diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 4a5e8a9c..883c3c27 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) + 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) Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL @@ -149,7 +149,7 @@ Public Class cAutomailversand MailtoCC = "" MailtoBCC = setAccountToSend(FirmaID) Else - MailtoBCC = setAccountToSend(FirmaID) + If Not clearBCC Then MailtoBCC = setAccountToSend(FirmaID) End If @@ -166,7 +166,7 @@ Public Class cAutomailversand 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(BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf) + loadAndSetAnhaenge_new(RechnungsNr, BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf) If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" @@ -190,6 +190,10 @@ Public Class cAutomailversand End If End If + Else + + MsgBox("Es konnte kein Email-Empfänger ermittelt werden!") + End If @@ -204,7 +208,7 @@ Public Class cAutomailversand End Sub - Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True) + 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) Dim sql As New VERAG_PROG_ALLGEMEIN.SQL @@ -260,7 +264,7 @@ Public Class cAutomailversand MailtoCC = "" MailtoBCC = setAccountToSend(FirmaID) Else - MailtoBCC = setAccountToSend(FirmaID) + If Not clearBCC Then MailtoBCC = setAccountToSend(FirmaID) End If If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then @@ -282,7 +286,7 @@ Public Class cAutomailversand Dim Mailsubject As String = "" Dim HTMLMail As String = "" setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr, SPEDBUCH, RECHNUNG) - loadAndSetAnhaenge_new(RECHNUNG.BelegartenNr, AD.LandKz, dt, ATTACHMENTS, listPDFs, RECHNUNG, SPEDBUCH, KDE_ERW.kde_merge_pdf) + loadAndSetAnhaenge_new(RECHNUNG.RechnungsNr, RECHNUNG.BelegartenNr, AD.LandKz, dt, ATTACHMENTS, listPDFs, RECHNUNG, SPEDBUCH, KDE_ERW.kde_merge_pdf) If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" @@ -305,6 +309,9 @@ Public Class cAutomailversand End If + Else + MsgBox("Es konnte kein Email-Empfänger ermittelt werden!") + End If @@ -557,14 +564,14 @@ Public Class cAutomailversand End Function - Private Sub loadAndSetAnhaenge_new(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 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 = "" If RECHNUNG IsNot Nothing Then Select Case sprache - Case "DE" : If BelegartenNr = 71 Then Anhangsbez = "Gutschriftsanhänge.pdf" Else Anhangsbez = "Rechnungsanhänge.pdf" + Case "A", "AT", "D", "DE", "CH" : If BelegartenNr = 71 Then Anhangsbez = "Gutschriftsanhänge.pdf" Else Anhangsbez = "Rechnungsanhänge.pdf" Case "TR" : If BelegartenNr = 71 Then Anhangsbez = "Kredi.pdf" Else Anhangsbez = "Fatura.pdf" Case Else : If BelegartenNr = 71 Then Anhangsbez = "Creditnote.pdf" Else Anhangsbez = "Invoice.pdf" End Select @@ -573,7 +580,7 @@ Public Class cAutomailversand Select Case sprache - Case "DE" : If BelegartenNr = 71 Then Anhangsbez = "Sammelgutschrift.pdf" Else Anhangsbez = "Sammelrechnung.pdf" + Case "A", "AT", "D", "DE", "CH" : If BelegartenNr = 71 Then Anhangsbez = "Sammelgutschrift.pdf" Else Anhangsbez = "Sammelrechnung.pdf" Case "TR" : If BelegartenNr = 71 Then Anhangsbez = "Toplukredi.pdf" Else Anhangsbez = "Toplufatura.pdf" Case Else : If BelegartenNr = 71 Then Anhangsbez = "Collectivecreditnote.pdf" Else Anhangsbez = "Collectiveinvoice.pdf" End Select @@ -582,7 +589,7 @@ Public Class cAutomailversand - Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Anhangsbez, ".pdf",, False, "Zusammenfassung") + Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Belegnr & "_" & Anhangsbez, ".pdf",, False, "Zusammenfassung") '==================================================== ' EINZELRECHNUNG diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index d8db3648..f25f11dc 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -4289,22 +4289,9 @@ 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 MDMRENrvoarhanden As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True) 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 - 'If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False + 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 Try - 'If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") " - '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 - ' From Rechnungsausgang - ' WHERE Rechnungsausgang.Status IN(0, 2) And Rechnungsausgang.Firma_ID = " & Firma_ID & " And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & DatumBis.ToShortDateString & "' " & whereKdNr & " - ' " & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & "" - ''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 " - 'Else - ' sqlStr &= " ORDER BY Rechnungsausgang.Firma_ID, Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID " - 'End If - Dim VorschauID = "" If vorschau Then VorschauID = Now.ToString("dd.MM.yyyy HH:mm:ss.fff") & "_" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "_" & Firma_ID @@ -4324,7 +4311,7 @@ Public Class cFakturierung Dim Aktuelle_RgNr As Integer = -1 If Not vorschau Then - If Not MDMRENrvoarhanden Then + If Not RENralreadySet Then 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!!! End If @@ -4342,94 +4329,126 @@ Public Class cFakturierung Dim found = False For Each r In dt.Rows Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(r("RK_ID")) - If RG IsNot Nothing Then - Select Case SammelrechungArt - Case 7 'LKW Abrechnung - If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal - If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal - ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr '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 - Dim path = "" - 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 RG Is Nothing Then Continue For + Select Case SammelrechungArt + Case 7 'LKW Abrechnung + 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 + + 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! Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - If path <> "" Then listPDFs.Add(path) End If - kdTmp = RG.RechnungsKundenNr - AvisoIdTmp = RG.AvisoID - FilialeTmp = RG.FilialenNr - FIRMATmp = RG.Firma_ID - Case 6 'MDM Abrechnung - If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal - ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr '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 - ' KEIN doSAMMELRechnungsDruck_Abschnitt!!!! - If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - End If - kdTmp = RG.RechnungsKundenNr - FilialeTmp = RG.FilialenNr - FIRMATmp = RG.Firma_ID - Case Else - If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal - ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr '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 Not setAutoMailversand Then - Dim path = "" - doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) - Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - If path <> "" Then listPDFs.Add(path) - Else - If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - End If - End If - kdTmp = RG.RechnungsKundenNr - FilialeTmp = RG.FilialenNr - FIRMATmp = RG.Firma_ID - End Select - If vorschau Then - RG.[VorschauID] = VorschauID - Else + If path <> "" Then listPDFs.Add(path) - If SammelrechungArt = 6 Or (setAutoMailversand And SammelrechungArt <> 6) Then + End If + + AvisoIdTmp = RG.AvisoID + + 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 + ' KEIN doSAMMELRechnungsDruck_Abschnitt!!!! + If (Not RENralreadySet AndAlso Aktuelle_RgNr < 0) Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) + + End If + + 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 + 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 path <> "" Then listPDFs.Add(path) + + End If + + End Select + + kdTmp = RG.RechnungsKundenNr + FilialeTmp = RG.FilialenNr + FIRMATmp = RG.Firma_ID + RG.Automailversand = setAutoMailversand + + If Aktuelle_RgNr > 0 Then RG.[RechnungsNr] = Aktuelle_RgNr + + + If vorschau Then + RG.[VorschauID] = VorschauID + Else + + Select Case SammelrechungArt + Case 6 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!! - RG.Automailversand = setAutoMailversand 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 + If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr - RG.[RechnungsNr] = Aktuelle_RgNr - RG.[RechnungsDatum] = Rechnungsdatum.ToShortDateString - RG.[Buchungsjahr] = Buchungsjahr - RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") - End If - RG.SAVE() + Case Else - If RechnungsdruckArt <> 7 Then - If Not RG.checkRechnungsNrIsSet() AndAlso Not vorschau Then - If showError Then MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") - Return False - Else - found = True - End If - End If + If RechnungsdruckArt = 7 AndAlso onlySetRENRforAUTOMAIL Then + RG.[Status] = 2 ' Druck später!! + ElseIf Not onlySetRENRforAUTOMAIL AndAlso Not RechnungsdruckArt = 7 Then + RG.[Status] = 4 ' Beim finalen Versenden der Sammelrechnung keine neue ReNr vergeben. + Else + RG.[Status] = 3 + End If + + 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") End If + RG.SAVE() + + If RechnungsdruckArt <> 7 And Not onlySetRENRforAUTOMAIL Then + If Not RG.checkRechnungsNrIsSet() AndAlso Not vorschau Then + If showError Then MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") + Return False + Else + found = True + End If + End If + Next 'Letzter Abschnitt: If found Then Dim path = "" - If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then + If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) And Not onlySetRENRforAUTOMAIL Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore) End If If path <> "" Then listPDFs.Add(path) @@ -5740,7 +5759,7 @@ Public Class cFakturierung End If If USRKURZNAME = "" Then USRKURZNAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME - Dim txt = SQL.getValueTxtBySql("SELECT top 1 CASE WHEN mit_geschlecht='w' THEN 'Frau ' ELSE (CASE WHEN mit_geschlecht='m' THEN 'Herr ' ELSE '' END ) END + mit_nname FROM [tblMitarbeiter] WHERE [mit_username]='" & USRKURZNAME & "' ", "ADMIN") + Dim txt = SQL.getValueTxtBySql("SELECT top 1 CASE WHEN mit_geschlecht='w' THEN 'Frau ' ELSE (CASE WHEN mit_geschlecht='m' THEN 'Herr ' ELSE '' END ) END + mit_nname FROM [tblMitarbeiter] WHERE [mit_username]='" & USRKURZNAME & "' and isnull(mit_gekuendigt,0) = 0 ", "ADMIN") If txt <> "" Then Return txt Return USRKURZNAME End Function diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb index c3ae395e..bda671a5 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb @@ -89,6 +89,8 @@ Partial Class frmAbrechnungsMaske Me.btnVonJahr = New System.Windows.Forms.Button() Me.UsrCntlFaktAbrechnung1 = New SDL.usrCntlFaktAbrechnung() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cbxMailoeffnen = New System.Windows.Forms.CheckBox() + Me.txtMailanzeigen = New System.Windows.Forms.TextBox() Me.pnl.SuspendLayout() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() @@ -201,6 +203,8 @@ Partial Class frmAbrechnungsMaske 'Panel2 ' Me.Panel2.BackColor = System.Drawing.Color.White + Me.Panel2.Controls.Add(Me.txtMailanzeigen) + Me.Panel2.Controls.Add(Me.cbxMailoeffnen) Me.Panel2.Controls.Add(Me.btn_doMailAutoversand) Me.Panel2.Controls.Add(Me.Button11) Me.Panel2.Controls.Add(Me.cbxOriginalDrucken) @@ -233,7 +237,7 @@ Partial Class frmAbrechnungsMaske Me.btn_doMailAutoversand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch Me.btn_doMailAutoversand.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btn_doMailAutoversand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btn_doMailAutoversand.Location = New System.Drawing.Point(286, 10) + Me.btn_doMailAutoversand.Location = New System.Drawing.Point(306, 10) Me.btn_doMailAutoversand.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3) Me.btn_doMailAutoversand.Name = "btn_doMailAutoversand" Me.btn_doMailAutoversand.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0) @@ -288,7 +292,7 @@ Partial Class frmAbrechnungsMaske Me.cboPrinter.FormattingEnabled = True Me.cboPrinter.Location = New System.Drawing.Point(133, 52) Me.cboPrinter.Name = "cboPrinter" - Me.cboPrinter.Size = New System.Drawing.Size(201, 21) + Me.cboPrinter.Size = New System.Drawing.Size(160, 21) Me.cboPrinter.TabIndex = 25 ' 'Button9 @@ -364,7 +368,7 @@ Partial Class frmAbrechnungsMaske Me.btnWiederholeRgDruck.BackgroundImage = Global.SDL.My.Resources.Resources.print_rg Me.btnWiederholeRgDruck.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnWiederholeRgDruck.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnWiederholeRgDruck.Location = New System.Drawing.Point(437, 9) + Me.btnWiederholeRgDruck.Location = New System.Drawing.Point(444, 9) Me.btnWiederholeRgDruck.Name = "btnWiederholeRgDruck" Me.btnWiederholeRgDruck.Size = New System.Drawing.Size(53, 36) Me.btnWiederholeRgDruck.TabIndex = 11 @@ -373,7 +377,7 @@ Partial Class frmAbrechnungsMaske 'Label4 ' Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!) - Me.Label4.Location = New System.Drawing.Point(430, 46) + Me.Label4.Location = New System.Drawing.Point(437, 46) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(67, 26) Me.Label4.TabIndex = 12 @@ -408,7 +412,7 @@ Partial Class frmAbrechnungsMaske Me.Button3.BackgroundImage = Global.SDL.My.Resources.Resources.moneybag1 Me.Button3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button3.Location = New System.Drawing.Point(378, 9) + Me.Button3.Location = New System.Drawing.Point(383, 9) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(53, 36) Me.Button3.TabIndex = 9 @@ -417,7 +421,7 @@ Partial Class frmAbrechnungsMaske 'Label3 ' Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!) - Me.Label3.Location = New System.Drawing.Point(375, 46) + Me.Label3.Location = New System.Drawing.Point(380, 46) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(56, 26) Me.Label3.TabIndex = 10 @@ -521,7 +525,7 @@ Partial Class frmAbrechnungsMaske ' Me.PictureBox5.BackgroundImage = Global.SDL.My.Resources.Resources.fragezeichen Me.PictureBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox5.Location = New System.Drawing.Point(543, 3) + Me.PictureBox5.Location = New System.Drawing.Point(281, 6) Me.PictureBox5.Name = "PictureBox5" Me.PictureBox5.Size = New System.Drawing.Size(28, 29) Me.PictureBox5.TabIndex = 133 @@ -547,7 +551,7 @@ Partial Class frmAbrechnungsMaske Me.cboRechnungsdruck.Location = New System.Drawing.Point(442, 23) Me.cboRechnungsdruck.Margin = New System.Windows.Forms.Padding(2) Me.cboRechnungsdruck.Name = "cboRechnungsdruck" - Me.cboRechnungsdruck.Size = New System.Drawing.Size(94, 21) + Me.cboRechnungsdruck.Size = New System.Drawing.Size(106, 21) Me.cboRechnungsdruck.TabIndex = 53 ' 'Label14 @@ -580,7 +584,7 @@ Partial Class frmAbrechnungsMaske Me.cboER_SR.Location = New System.Drawing.Point(442, 3) Me.cboER_SR.Margin = New System.Windows.Forms.Padding(2) Me.cboER_SR.Name = "cboER_SR" - Me.cboER_SR.Size = New System.Drawing.Size(94, 21) + Me.cboER_SR.Size = New System.Drawing.Size(106, 21) Me.cboER_SR.TabIndex = 33 ' 'Label5 @@ -992,6 +996,28 @@ Partial Class frmAbrechnungsMaske Me.ContextMenuStrip1.Name = "ContextMenuStrip1" Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4) ' + 'cbxMailoeffnen + ' + Me.cbxMailoeffnen.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbxMailoeffnen.AutoSize = True + Me.cbxMailoeffnen.Checked = True + Me.cbxMailoeffnen.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxMailoeffnen.Location = New System.Drawing.Point(306, 58) + Me.cbxMailoeffnen.Name = "cbxMailoeffnen" + Me.cbxMailoeffnen.Size = New System.Drawing.Size(15, 14) + Me.cbxMailoeffnen.TabIndex = 32 + Me.cbxMailoeffnen.UseVisualStyleBackColor = True + ' + 'txtMailanzeigen + ' + Me.txtMailanzeigen.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtMailanzeigen.Location = New System.Drawing.Point(327, 51) + Me.txtMailanzeigen.Multiline = True + Me.txtMailanzeigen.Name = "txtMailanzeigen" + Me.txtMailanzeigen.Size = New System.Drawing.Size(57, 34) + Me.txtMailanzeigen.TabIndex = 33 + Me.txtMailanzeigen.Text = "Mail anzeigen" + ' 'frmAbrechnungsMaske ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -1086,4 +1112,6 @@ Partial Class frmAbrechnungsMaske Friend WithEvents lblKunde As Label Friend WithEvents KdSearchBox1 As VERAG_PROG_ALLGEMEIN.KdSearchBox Friend WithEvents btn_doMailAutoversand As Button + Friend WithEvents txtMailanzeigen As TextBox + Friend WithEvents cbxMailoeffnen As CheckBox End Class diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 25004bed..721e0d49 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -350,6 +350,8 @@ Public Class frmAbrechnungsMaske 'UsrCntlFaktAbrechnung1.cbxAUTOMailversand.Enabled = enableAUTOMAIL btn_doMailAutoversand.Visible = enableAUTOMAIL_BTN AndAlso enableAUTOMAIL + txtMailanzeigen.Visible = enableAUTOMAIL_BTN AndAlso enableAUTOMAIL + cbxMailoeffnen.Visible = enableAUTOMAIL_BTN AndAlso enableAUTOMAIL Button11.Visible = Not (enableAUTOMAIL_BTN AndAlso enableAUTOMAIL) Button7.Visible = Not (enableAUTOMAIL_BTN AndAlso enableAUTOMAIL) Button8.Visible = Not (enableAUTOMAIL_BTN AndAlso enableAUTOMAIL) @@ -1029,7 +1031,7 @@ Public Class frmAbrechnungsMaske Next Dim fun As New cAutomailversand - fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cboSachbearbeiter._value, ListOfRK_ID) + fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cbxMailoeffnen.Checked, cboSachbearbeiter._value, ListOfRK_ID, cbxMailoeffnen.Checked) initDGV() If printAfterSent Then diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index a5febaec..73cf89d9 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -1,4 +1,5 @@ Imports Microsoft.Office.Interop +Imports VERAG_PROG_ALLGEMEIN Public Class frmFaktSammelRgDrucken @@ -655,6 +656,8 @@ Public Class frmFaktSammelRgDrucken If vbYes = MsgBox("Es wird eine Beleg-NR vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then + 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)) 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 @@ -663,25 +666,11 @@ Public Class frmFaktSammelRgDrucken RENRExisting = r.Cells("RENR").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value.ToString().Trim() <> "" If Not RENRExisting Then - Me.Enabled = False - Me.Cursor = Cursors.WaitCursor - Dim listPDFs As New List(Of String) - Dim SonstAnlagen As New List(Of String) - Dim RechnungsNrisSet As Boolean = False - - Dim abfertigungsarten = getValues() - 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 abfertigungsarten = "" AndAlso IM_EX Then - MsgBox("Achtung, Rechnung für Kunde " & r.Cells("RechnungsKundenNr").Value & " wurde nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!") - Else - 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) - If Not RechnungsNrisSet Then - MsgBox("Fehler bei RechnungsNr-Erzeugung!") - End If - + MsgBox("Achtung, RechnungNr für Kunde " & r.Cells("RechnungsKundenNr").Value & " konnte nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!") End If @@ -690,6 +679,18 @@ Public Class frmFaktSammelRgDrucken 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!") + End If + Me.Enabled = True Me.Cursor = Cursors.Default @@ -980,7 +981,7 @@ Public Class frmFaktSammelRgDrucken 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)) + fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked) Next initDGV()