fakt, automail, etc.

This commit is contained in:
2026-07-23 16:59:40 +02:00
parent a5c43ba6e0
commit 99f1af3f63
5 changed files with 257 additions and 208 deletions

View File

@@ -4,7 +4,7 @@ Imports VERAG_PROG_ALLGEMEIN
Public Class cAutomailversand
Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False)
Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, avisoIDs As List(Of Integer), Optional KundenNrList As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False)
Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
@@ -27,7 +27,7 @@ Public Class cAutomailversand
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
WHERE Rechnungsausgang.Status IN (2) and Rechnungsausgang.Automailversand_sent is null And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & _Rechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNrList IsNot Nothing, getWhereKundenNr(KundenNrList), "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -37,7 +37,7 @@ Public Class cAutomailversand
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
WHERE Rechnungsausgang.Status IN (2) and Rechnungsausgang.Automailversand_sent is null And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & _Rechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & IIf(IsDate(datumBis), " AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & datumBis.ToShortDateString & "'", "") & "
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNrList IsNot Nothing, getWhereKundenNr(KundenNrList), "") & IIf(IsDate(datumBis), " AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & datumBis.ToShortDateString & "'", "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -51,6 +51,9 @@ Public Class cAutomailversand
For Each row As DataRow In dt.Rows
If dt.Rows.Count = 0 Then Exit Sub
Dim BelegartenNr = "70"
Dim steuerbetrag As Double = 0
Dim SR_DT As DataTable = Nothing
@@ -58,7 +61,7 @@ Public Class cAutomailversand
Dim DruckDatumZeit As DateTime
Dim Rechnungsdatum = Nothing
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
Dim AVISOID As New List(Of Integer)
If FirmaID = 19 AndAlso SammelrechungArt = 6 Then
@@ -89,116 +92,104 @@ Public Class cAutomailversand
End If
Dim LoopForSR = 1
If IM_EX Then LoopForSR = 2
For i = 1 To LoopForSR
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),, avisoIDs,,, True, True, CInt(row.Item("RechnungsNr")))
Dim AbfertigungsNr As String = ""
If SR_DT.Rows.Count = 0 Then Continue For
Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr"))
Dim KDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(row.Item("RechnungsKundenNr"))
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
If RechnungsNr = -1 Then
If SR_DT.Rows.Count > 0 Then
Dim displayView = New DataView(SR_DT, "RechnungsNr is not null", "RechnungsNr", DataViewRowState.CurrentRows)
Dim distinctDT_SR As DataTable = displayView.ToTable(True, "RechnungsNr", "DruckDatumZeit", "Rechnungsdatum")
If distinctDT_SR.Rows.Count = 1 Then
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
End If
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
For Each r In SR_DT.Rows
steuerbetrag += r("steuerpflichtigerGesamtbetrag")
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
Next
If IM_EX Then
AbfertigungsNr = getAbertigungsNr(i)
End If
End If
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),,,, AbfertigungsNr, True)
If SR_DT.Rows.Count = 0 Then Continue For
Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr"))
Dim KDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(row.Item("RechnungsKundenNr"))
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
Dim SR As Boolean = True
If i = 2 Then
ATTACHMENTS.Clear() 'leeren
RechnungsNr = -1 'nochmals zurücksetzen!
End If
Dim MailTo As String = ""
Dim MailtoCC As String = ""
Dim MailtoBCC As String = ""
setEmpfaengerMail_SR(SR_DT, AD, MailTo, MailtoCC, MailtoBCC, FirmaID, SammelrechungArt)
'im TESTSYSTEM bewusst die Empfänger leeren!
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""
MailtoBCC = setAccountToSend(FirmaID)
Else
If Not clearBCC Then MailtoBCC = setAccountToSend(FirmaID)
End If
If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then
Dim Mailsubject As String = ""
Dim HTMLMail As String = ""
Dim listPDFs As New List(Of String)
Dim showError As Boolean = False
showError = mailoeffnen 'bei MailÖffnen fehler anzeigen!
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
If do_SR(RechnungsNr, row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, datumBis, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, , faktGruppe) Then
loadAndSetAnhaenge_new(RechnungsNr, BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
If mailoeffnen Then
Dim Mail = createMail(AD, Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID)
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum,,,,,,, Mail) Then
Mail.Display()
End If
Else
Dim TextHTML = ""
TextHTML &= HTMLMail
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,, True)
HTMLMail = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then
If RechnungsNr = -1 Then
If SR_DT.Rows.Count > 0 Then
Dim displayView = New DataView(SR_DT, "RechnungsNr is not null", "RechnungsNr", DataViewRowState.CurrentRows)
Dim distinctDT_SR As DataTable = displayView.ToTable(True, "RechnungsNr", "DruckDatumZeit", "Rechnungsdatum")
If distinctDT_SR.Rows.Count = 1 Then
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
For Each r In SR_DT.Rows
steuerbetrag += r("steuerpflichtigerGesamtbetrag")
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
Next
End If
End If
End If
Else
MsgBox("Es konnte kein Email-Empfänger ermittelt werden!")
Dim SR As Boolean = True
Dim MailTo As String = ""
Dim MailtoCC As String = ""
Dim MailtoBCC As String = ""
setEmpfaengerMail_SR(SR_DT, AD, MailTo, MailtoCC, MailtoBCC, FirmaID, SammelrechungArt)
'im TESTSYSTEM bewusst die Empfänger leeren!
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""
MailtoBCC = setAccountToSend(FirmaID)
Else
If Not clearBCC Then MailtoBCC = setAccountToSend(FirmaID)
End If
End If
If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then
Dim Mailsubject As String = ""
Dim HTMLMail As String = ""
Dim listPDFs As New List(Of String)
Dim showError As Boolean = False
showError = mailoeffnen 'bei MailÖffnen fehler anzeigen!
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, datumBis, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then
loadAndSetAnhaenge_new(RechnungsNr, BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
If mailoeffnen Then
Dim Mail = createMail(AD, Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID)
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum,,,,,,, Mail) Then
Mail.Display()
End If
Else
Dim TextHTML = ""
TextHTML &= HTMLMail
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True,,,,, True)
HTMLMail = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then
End If
End If
End If
Else
MsgBox("Es konnte kein Email-Empfänger ermittelt werden!")
End If
Next
Next
Catch ex As System.Exception
@@ -207,6 +198,17 @@ Public Class cAutomailversand
End Try
End Sub
Public Shared Function getWhereKundenNr(ids As List(Of Integer)) As String
If ids Is Nothing Then Return ""
If ids.Count = 0 Then Return ""
getWhereKundenNr = " AND RechnungsKundenNr IN ("
For Each i In ids
getWhereKundenNr &= "'" & i & "',"
Next
getWhereKundenNr = getWhereKundenNr.Substring(0, getWhereKundenNr.Length - 1) ' ","
getWhereKundenNr &= ") "
End Function
Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, clearBCC As Boolean, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True)
@@ -489,7 +491,7 @@ Public Class cAutomailversand
End Sub
Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, DatumBis As Date, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True, Optional AbfertigungsArt As String = "", Optional faktGruppe As String = "")
Private Function do_SR(RechnungsNr As Integer, kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, DatumBis As Date, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True, Optional AbfertigungsArt As String = "", Optional faktGruppe As String = "")
Dim RechnungsNrisSet As Boolean = False
@@ -497,7 +499,7 @@ Public Class cAutomailversand
DatumBis = Rechnungsdatum
End If
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError)
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError,, RechnungsNr)
Return RechnungsNrisSet
End Function
@@ -511,6 +513,21 @@ Public Class cAutomailversand
Mail = outl.CreateItem(0)
Mail.Subject = Mailsubject
Dim oAccount As Outlook.Account
Dim accountToSent = ""
accountToSent = setAccountToSend(FirmaID)
If accountToSent <> "" Then
If outl.Session.Accounts.Count > 0 Then
For Each oAccount In outl.Session.Accounts
If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
Mail.SendUsingAccount = oAccount
Exit For
End If
Next
End If
End If
Dim TextHTML = ""
@@ -529,12 +546,7 @@ Public Class cAutomailversand
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br><br>"
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True)
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
@@ -564,8 +576,7 @@ Public Class cAutomailversand
End Function
Private Sub loadAndSetAnhaenge_new(Belegnr As String, BelegartenNr As Integer, sprache As String, SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional mergeAllPDFS As Boolean = False)
Private Function getAnhangbezeichnung(sprache As String, RECHNUNG As cRechnungsausgang, BelegartenNr As Integer)
Dim Anhangsbez = ""
If RECHNUNG IsNot Nothing Then
@@ -587,6 +598,15 @@ Public Class cAutomailversand
End If
Return Anhangsbez
End Function
Private Sub loadAndSetAnhaenge_new(Belegnr As String, BelegartenNr As Integer, sprache As String, SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional mergeAllPDFS As Boolean = False)
Dim Anhangsbez = getAnhangbezeichnung(sprache, RECHNUNG, BelegartenNr)
Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Belegnr & "_" & Anhangsbez, ".pdf",, False, "Zusammenfassung")
@@ -623,9 +643,9 @@ Public Class cAutomailversand
' Beleg + Anhänge zusammenführen
If mergeAllPDFS AndAlso ATTACHMENTS.Count > 1 Then
Dim prefix = If(RECHNUNG.BelegartenKz = "AR", "Rechnungs", "Gutschrifts")
Dim prefix = getAnhangbezeichnung(sprache, RECHNUNG, BelegartenNr)
Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix & "anhang.pdf", ".pdf",, False, "Zusammenfassung")
Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix, ".pdf",, False, "Zusammenfassung")
Dim pdfs As New List(Of String)
pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList()
@@ -1522,54 +1542,54 @@ Public Class cAutomailversand
Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff
Select Case RechnungsLandKz
Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
End Select
Select Case RechnungsLandKz
Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
End Select
Select Case Sprache
Case "DE"
Select Case Sprache
Case "DE"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>UID-Nr.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Firma:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Sehr geehrte Damen & Herren!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "<br>"
TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "<br>"
TextHTML &= "<br>"
TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Freundliche Grüße"
TextHTML &= "<br><br>"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>UID-Nr.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Firma:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Sehr geehrte Damen & Herren!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "<br>"
TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "<br>"
TextHTML &= "<br>"
TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Freundliche Grüße"
TextHTML &= "<br><br>"
Case "EN"
Case "EN"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>VAT-ID.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Company:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Dear Sir or Madam!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "We would like to inform you, that we made the customs clearance and subsequent intra-community supply of goods for the company above-mentioned (Code 4200).<br>"
TextHTML &= "The documents are attached." & "<br>"
TextHTML &= "<br>"
TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Yours faithfully,"
TextHTML &= "<br><br>"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>VAT-ID.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Company:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Dear Sir or Madam!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "We would like to inform you, that we made the customs clearance and subsequent intra-community supply of goods for the company above-mentioned (Code 4200).<br>"
TextHTML &= "The documents are attached." & "<br>"
TextHTML &= "<br>"
TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Yours faithfully,"
TextHTML &= "<br><br>"
End Select
End Select
@@ -1634,7 +1654,7 @@ Public Class cAutomailversand
End If
End If

View File

@@ -4213,17 +4213,19 @@ Public Class cFakturierung
' 3-_> Sammel-Rg gedruckt
' 4-_> ? irgendwas mit SR 6 Maut/Diesel??
Public Shared Function GET_SR_SQLDT(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Optional whereKdNr As String = "", Optional SB As String = "", Optional AvisoIds As List(Of Integer) = Nothing, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional AUTOMailversand As String = "") As DataTable
Public Shared Function GET_SR_SQLDT(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Optional whereKdNr As String = "", Optional SB As String = "", Optional AvisoIds As List(Of Integer) = Nothing, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional AUTOMailversand As String = "", Optional RechnungsNrAlreadySet As Boolean = False, Optional RechnungNr As Integer = -1) As DataTable
If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") "
Dim whereAbfArt = ""
If Abfertigungsart <> "" Then whereAbfArt = " AND (SELECT TOP 1 Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & Abfertigungsart & ") "
Dim whereAutoMailversand = ""
If AUTOMailversand <> "" Then whereAutoMailversand = " AND isnull(Rechnungsausgang.Automailversand,0) = 1 "
Dim whereRechnungsNr = ""
If RechnungNr > 0 AndAlso RechnungsNrAlreadySet Then whereRechnungsNr = " AND isnull(Rechnungsausgang.RechnungsNr,0) =" & RechnungNr
Dim sqlStr = " SELECT Rechnungsausgang.RK_ID, Rechnungsausgang.Firma_ID, Rechnungsausgang.FilialenNr, Rechnungsausgang.RechnungsKundenNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Status, Rechnungsausgang.Sammelrechnung, Rechnungsausgang.Abfertigungsdatum, Rechnungsausgang.Buchungsjahr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.SpeditionsbuchUnterNr,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag],Rechnungsausgang.Rechnungsart
From Rechnungsausgang
WHERE Rechnungsausgang.Status IN(0, 2) And Rechnungsausgang.Firma_ID = " & Firma_ID & " And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And Rechnungsausgang.FakturierungsGruppe = '" & FakturierungsGruppe & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & DatumBis.ToShortDateString & "' " & whereKdNr & whereAbfArt & "
" & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & "" & getWhereAvisoId(AvisoIds) & whereAutoMailversand
" & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & getWhereAvisoId(AvisoIds) & whereAutoMailversand & whereRechnungsNr
'Rechnungsausgang.Status IN(0, 2) --> vorher nur 2, da Anlagen vor der SR gedruckt wurden...
If SammelrechungArt = 7 Then
sqlStr &= " ORDER BY Rechnungsausgang.AvisoID,Rechnungsausgang.Firma_ID,Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, CASE Rechnungsausgang.Rechnungsart WHEN 'RK' THEN 1 WHEN 'RU' THEN 2 WHEN 'RG' THEN 3 ELSE 4 END "
@@ -4289,7 +4291,7 @@ Public Class cFakturierung
End Function
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional RENralreadySet As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True, Optional onlySetRENRforAUTOMAIL As Boolean = False) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional RENralreadySet As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True, Optional onlySetRENRforAUTOMAIL As Boolean = False, Optional RechnungsNr As Integer = -1) As Boolean
Try
Dim VorschauID = ""
@@ -4299,25 +4301,28 @@ Public Class cFakturierung
If SammelrechungArt = 7 And (AvisoIds IsNot Nothing AndAlso AvisoIds.Count = 0) Then Return False 'Prüfung, ob Daten vorhanden; Abbruch ZB wenn keine AvisoId
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart) 'SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt Is Nothing Then MsgBox("ERR01: Keine Daten") : Return True
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart,, RENralreadySet, RechnungsNr)
If dt.Rows.Count = 0 Then MsgBox("ERR02: Keine Daten") : Return True
If Not CHECK_SR_SQLDT(dt) Then MsgBox("ERR03: Es wurden Rechnungen mit einem 0-Betrag gefunden. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
If Not CHECK_SR_GESSUM_SQLDT(dt) Then MsgBox("ERR04: Summe der Rechnungen in Sammelrechnung ist '0'. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
'Rechnungsart prüfen, ob Sammelrechnung oder unvollständige SRG /
If Not CHECK_SR_RU_RK_SQLDT(dt) Then MsgBox("ERR05: Bei Kopf-Sammelrechnung müssen Kopfdaten und unvollständige Rg-Einträge vorhanden sein. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum, Firma_ID) 'IIf(Rechnungsdatum.Month = 1, Rechnungsdatum.Year - 1, Rechnungsdatum.Year)
Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum, Firma_ID)
Dim Aktuelle_RgNr As Integer = -1
Dim RgNrSetFirstTime As Boolean = False
If Not vorschau Then
If Not RENralreadySet Then
If RechnungsNr > 0 AndAlso RENralreadySet Then
Aktuelle_RgNr = RechnungsNr
Else
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) 'Nimmt die aktuelle RgNr und zählt eine Pos. hoch. nur wenn keine Vorschau oder keine Re.Nr vergeben!!!
RgNrSetFirstTime = True
End If
End If
DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff")
If listPDFs Is Nothing Then listPDFs = New List(Of String)
@@ -4335,13 +4340,13 @@ Public Class cFakturierung
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then
Dim path = ""
If Not onlySetRENRforAUTOMAIL Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) 'hier wird auch die RG Nr erhöht!
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand AndAlso Not RgNrSetFirstTime Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen, weil pro AVISO-ID neu NR.
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
End If
@@ -4354,7 +4359,7 @@ Public Class cFakturierung
Case 6 'MDM Abrechnung
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then
' KEIN doSAMMELRechnungsDruck_Abschnitt!!!!
If (Not RENralreadySet AndAlso Aktuelle_RgNr < 0) Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
@@ -4363,14 +4368,14 @@ Public Class cFakturierung
Case Else
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then
Dim path = ""
If Not onlySetRENRforAUTOMAIL Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
End If
'If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
' Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
'End If
If path <> "" Then listPDFs.Add(path)
@@ -4383,7 +4388,10 @@ Public Class cFakturierung
FIRMATmp = RG.Firma_ID
RG.Automailversand = setAutoMailversand
If Aktuelle_RgNr > 0 Then RG.[RechnungsNr] = Aktuelle_RgNr
If Aktuelle_RgNr > 0 Then
RG.[RechnungsNr] = Aktuelle_RgNr
RgNrSetFirstTime = False
End If
If vorschau Then
@@ -4413,21 +4421,6 @@ Public Class cFakturierung
If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
End Select
'If SammelrechungArt = 6 OrElse (onlySetRENRforAUTOMAIL AndAlso SammelrechungArt <> 6) Then
' If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung bzw. der Sammelrechnung für Mailversand!!
' RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!!
' Else
' RG.[Status] = 4 ' Beim finalen Versenden der Sammelrechnung keine neue ReNr vergeben.
' If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
' End If
'Else
' RG.[Status] = 3
'End If
RG.[RechnungsDatum] = Rechnungsdatum.ToShortDateString
RG.[Buchungsjahr] = Buchungsjahr
RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff")
@@ -4788,11 +4781,7 @@ Public Class cFakturierung
Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelTransFerry360(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
Try
'Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,Abfertigungsarten.Abfertigungsbezeichnung, (SELECT SUM([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) FROM RechnungsausgangPositionen where RechnungsausgangPositionen.RK_ID=Rechnungsausgang.RK_ID) as Betrag
' ,isnull((SELECT cast(Sum(Anzahl)as varchar(5)) FROM RechnungsausgangPositionen AS POS2 where POS2.RK_ID=Rechnungsausgang.RK_ID and POS2.[BerechnungsartNr]=10),'') As POSAnz
' FROM Rechnungsausgang INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr
' INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart
' WHERE 1=1 "
Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,
Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,POS.LeistungsBez,([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) Betrag
,CASE WHEN [BerechnungsartNr]=10 THEN '' ELSE pos.Anzahl END as [Count],CASE WHEN [BerechnungsartNr]=10 THEN pos.Anzahl ELSE '' END as POSCnt
@@ -4805,7 +4794,7 @@ Public Class cFakturierung
Else
sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' "
End If
'sqlStr &= " ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr"
sqlStr &= " order by Rechnungsausgang.AvisoID desc, FilialenNr,AbfertigungsNr,POS.[BerechnungsartNr]"

View File

@@ -149,7 +149,7 @@ Public Class frmFaktSammelRgDrucken
sqlStr = "
SELECT
max(Rechnungsausgang.RechnungsNr) as RENR,
Rechnungsausgang.RechnungsNr as RENR,
Rechnungsausgang.RechnungsKundenNr,
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
@@ -175,7 +175,7 @@ Public Class frmFaktSammelRgDrucken
" & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & "
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
GROUP BY
RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX " & If(Sammelrechung = 7, ", AvisoId", "") & "
RechnungsNr,RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX " & If(Sammelrechung = 7, ", AvisoId", "") & "
ORDER BY
Rechnungsausgang.RechnungsKundenNr"
@@ -202,6 +202,10 @@ Public Class frmFaktSammelRgDrucken
.Columns("LKW").Width = 80
End If
If .Columns("RENR").Visible = Visible Then
.Columns("RENR").Width = 60
End If
If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then
.Columns("IM_EX").Width = 45
End If
@@ -476,6 +480,20 @@ Public Class frmFaktSammelRgDrucken
Return AvisoIds
End Function
Function getKundenNr() As List(Of Integer)
Dim KundenNr As New List(Of Integer)
If MyDatagridview1.SelectedRows.Count > 0 Then
For Each r In MyDatagridview1.SelectedRows
If r.cells("RechnungsKundenNr").value Is DBNull.Value Then
Return (New List(Of Integer))
End If
KundenNr.Add(r.cells("RechnungsKundenNr").value)
Next
End If
Return KundenNr
End Function
Sub doSammelrechnung(ausgabeArt As Integer, Optional vorschau As Boolean = False)
Try
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
@@ -659,7 +677,8 @@ Public Class frmFaktSammelRgDrucken
Dim abfertigungsarten = getValues()
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
Dim RENRExisting As Boolean = False
@@ -667,33 +686,36 @@ Public Class frmFaktSammelRgDrucken
If Not RENRExisting Then
Dim IM_EX As Boolean = False
IM_EX = r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
If r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) Then
IM_EX = r.Cells("IM_EX").Value
End If 'AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
If abfertigungsarten = "" AndAlso IM_EX Then
MsgBox("Achtung, RechnungNr für Kunde " & r.Cells("RechnungsKundenNr").Value & " konnte nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!")
Continue For
Else
If Sammelrechung <> 7 Then
createsSammelRechungsNr(r.Cells("RechnungsKundenNr").Value, abfertigungsarten)
End If
End If
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
End If
Next
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
Dim SonstAnlagen As New List(Of String)
Dim listPDFs As New List(Of String)
Dim RechnungsNrisSet As Boolean = False
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
If Not RechnungsNrisSet Then
MsgBox("Fehler bei RechnungsNr-Erzeugung!")
If Sammelrechung = 7 Then
Me.Enabled = False
Me.Cursor = Cursors.WaitCursor
createsSammelRechungsNr(getSelectionKdNr, abfertigungsarten)
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
Me.Enabled = True
Me.Cursor = Cursors.Default
End If
End If
@@ -714,6 +736,15 @@ Public Class frmFaktSammelRgDrucken
End Sub
Private Function createsSammelRechungsNr(KundenNr As String, abfertigungsarten As String) As Boolean
Dim SonstAnlagen As New List(Of String)
Dim listPDFs As New List(Of String)
Dim RechnungsNrisSet As Boolean = False
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, KundenNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
Return RechnungsNrisSet
End Function
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
@@ -977,19 +1008,26 @@ Public Class frmFaktSammelRgDrucken
If MyDatagridview1.SelectedRows.Count > 0 Then
' If Not IsNumeric(getSelectionKdNr_Simple) Then MsgBox("Es muss eine eindeutige KundenNr ausgewählt werden!") : Exit Sub
If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
For Each r In MyDatagridview1.SelectedRows
Dim fun As New cAutomailversand
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
Next
Dim fun As New cAutomailversand
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
initDGV()
End If
End Sub
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
Dim where As String = ""

View File

@@ -112,7 +112,7 @@ Public Class frmLogin
Dim func As New cAutomailversand
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID, Nothing)
Application.Exit()
End 'immediately terminates further execution

View File

@@ -990,8 +990,10 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
Catch ex As Exception
Try
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("MAIL ERROR - VOR SENDEN" & ex.Message, "FROM: " & eMailfrom & vbNewLine & "TO: " & eMailTo & vbNewLine & "SUBJ: " & betreff & vbNewLine & "TXT: " & text, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,, furtherMailAdress)
Return False
Catch ex2 As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("MAIL ERROR - VOR SENDEN LOG! " & ex2.Message, "FROM: " & eMailfrom & vbNewLine & "TO: " & eMailTo & vbNewLine & "SUBJ: " & betreff & vbNewLine & "TXT: " & text, ex2.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
Return False
End Try
End Try