diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb
index 78f72300..e14cad41 100644
--- a/SDL/Fakturierung/cAutomailversand.vb
+++ b/SDL/Fakturierung/cAutomailversand.vb
@@ -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 = "
" & TextHTML & "
"
+
+ 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 = "" & TextHTML & "
"
-
- 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 & "
"
- TextHTML &= "
"
+ TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
"
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True)
Mail.HTMLBody = "" & TextHTML & "
"
@@ -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 &= ""
- TextHTML &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
- TextHTML &= "| UID-Nr.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
- TextHTML &= "| Firma: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
- TextHTML &= " | " & If(AD.Straße, "") & " |
"
- TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
- TextHTML &= "
"
- TextHTML &= "
"
- TextHTML &= "
"
- TextHTML &= "Sehr geehrte Damen & Herren!" & "
"
- TextHTML &= "
"
- TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "
"
- TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "
"
- TextHTML &= "
"
- TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "
"
- TextHTML &= "
"
- TextHTML &= "Freundliche Grüße"
- TextHTML &= "
"
+ TextHTML &= ""
+ TextHTML &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
+ TextHTML &= "| UID-Nr.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
+ TextHTML &= "| Firma: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
+ TextHTML &= " | " & If(AD.Straße, "") & " |
"
+ TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "Sehr geehrte Damen & Herren!" & "
"
+ TextHTML &= "
"
+ TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "
"
+ TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "
"
+ TextHTML &= "
"
+ TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "
"
+ TextHTML &= "
"
+ TextHTML &= "Freundliche Grüße"
+ TextHTML &= "
"
- Case "EN"
+ Case "EN"
- TextHTML &= ""
- TextHTML &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
- TextHTML &= "| VAT-ID.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
- TextHTML &= "| Company: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
- TextHTML &= " | " & If(AD.Straße, "") & " |
"
- TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
- TextHTML &= "
"
- TextHTML &= "
"
- TextHTML &= "
"
- TextHTML &= "Dear Sir or Madam!" & "
"
- TextHTML &= "
"
- 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).
"
- TextHTML &= "The documents are attached." & "
"
- TextHTML &= "
"
- TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "
"
- TextHTML &= "
"
- TextHTML &= "Yours faithfully,"
- TextHTML &= "
"
+ TextHTML &= ""
+ TextHTML &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
+ TextHTML &= "| VAT-ID.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
+ TextHTML &= "| Company: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
+ TextHTML &= " | " & If(AD.Straße, "") & " |
"
+ TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "Dear Sir or Madam!" & "
"
+ TextHTML &= "
"
+ 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).
"
+ TextHTML &= "The documents are attached." & "
"
+ TextHTML &= "
"
+ TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "
"
+ TextHTML &= "
"
+ TextHTML &= "Yours faithfully,"
+ TextHTML &= "
"
- End Select
+ End Select
@@ -1634,7 +1654,7 @@ Public Class cAutomailversand
- End If
+ End If
diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb
index f25f11dc..46fa463c 100644
--- a/SDL/Fakturierung/cFakturierung.vb
+++ b/SDL/Fakturierung/cFakturierung.vb
@@ -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]"
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
index 896d9387..8e2f9af2 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
@@ -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 = ""
diff --git a/SDL/frmLogin.vb b/SDL/frmLogin.vb
index 489f5c1a..2add7a16 100644
--- a/SDL/frmLogin.vb
+++ b/SDL/frmLogin.vb
@@ -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
diff --git a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
index 44612024..d67f3d1f 100644
--- a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
+++ b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
@@ -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