From 798045c5a0c1b6ca959741b590808119f35047d7 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 16 Apr 2026 16:01:39 +0200 Subject: [PATCH] mitarbeiter, sendungsdet. Sammeldruck, etc. --- SDL/Fakturierung/cAutomailversand.vb | 341 +++++++++++++-------- SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 45 ++- SDL/frmdynMailvorlage.Designer.vb | 41 ++- SDL/frmdynMailvorlage.vb | 54 ++-- 4 files changed, 301 insertions(+), 180 deletions(-) diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index f009d13d..0f75a0b4 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -16,6 +16,9 @@ Public Class cAutomailversand 'STATUS 3-_> Sammel-Rg gedruckt 'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel?? + + 'NUR STATUS 2 -> d.b. Rechnungsdatum + RechnungsNr vergeben! + Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz @@ -222,7 +225,7 @@ Public Class cAutomailversand Dim listPDFs As New List(Of String) Dim showError As Boolean = False - setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr) + setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr, SPEDBUCH) loadAndSetAnhaenge(dt, ATTACHMENTS, listPDFs, RECHNUNG) @@ -258,16 +261,16 @@ Public Class cAutomailversand End Sub - Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, dt As DataTable, ByRef BelegartenNr As Integer) + Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, dt As DataTable, ByRef BelegartenNr As Integer, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional RECHNUNG As cRechnungsausgang = Nothing) Dim txtRgNr As String = IIf(RechnungsNr < 0, -1, RechnungsNr) Dim Mailtext As String - If SammelrechungArt <> 6 Then 'EINZELRECHNUNGEN - MDM oder ANDERE + If SammelrechungArt = 0 Then 'EINZELRECHNUNGEN - Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(1, "", Firma_ID) + Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(1, "", Firma_ID) 'ID -> 1 ist Einzelrechnungen Dim spracheRechnung As String = "EN" 'Defaultsprache Dim belegtyp As String = If(BelegartenNr = 71, "credit note", "invoice") @@ -291,12 +294,14 @@ Public Class cAutomailversand TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp) + + If Firma_ID = 19 Then Dim KUNDE_ERW As New cKundenErweitert(row("RechnungsKundenNr")) If row.Item("FilialenNr") = 4817 AndAlso row.Item("ErfassungsNr") IsNot Nothing Then - Dim SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(row.Item("FilialenNr"), row.Item("AbfertigungsNr"), row.Item("UnterNr")) + 'Dim SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(row.Item("FilialenNr"), row.Item("AbfertigungsNr"), row.Item("UnterNr")) If SPEDBUCH.hasEntry AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then Dim USTV_ANTRAG As New cUSTVAntrag(row.Item("ErfassungsNr")) @@ -350,8 +355,31 @@ Public Class cAutomailversand End If + + + + Else + + If SPEDBUCH IsNot Nothing Then + If (RECHNUNG.RechnungsKundenNr = 714869 Or RECHNUNG.RechnungsKundenNr = 715417) And (SPEDBUCH.Abfertigungsart = 39 Or SPEDBUCH.Abfertigungsart = 1) Then + TextHTML = TextHTML.Replace("%Platzhalter_div%", addRgData_ZF_Passau(row.Item("RechnungsLandKz"), RECHNUNG, SPEDBUCH)) + End If + End If + + 'Parsan + If SPEDBUCH IsNot Nothing Then + If (RECHNUNG.RechnungsKundenNr = 712814) Then + TextHTML = TextHTML.Replace("%Platzhalter_div%", addRgData_Parsan(row.Item("RechnungsLandKz"), RECHNUNG, SPEDBUCH)) + End If + End If + + TextHTML = TextHTML.Replace("%Platzhalter_div%", "") + + End If + + End If End If @@ -359,7 +387,7 @@ Public Class cAutomailversand - ElseIf SammelrechungArt = 6 Then 'MDM-SAMMELRECHNUNGEN + ElseIf SammelrechungArt <> 0 Then 'SAMMELRECHNUNGEN Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL @@ -453,10 +481,9 @@ Public Class cAutomailversand Private Sub loadAndSetAnhaenge(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) - Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment", ".pdf",, False, "Zusammenfassung") - - 'Rechnungsanhänge anfügen + Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment.pdf", ".pdf",, False, "Zusammenfassung") + 'Rechnungsanhänge anfügen -> RECHNUNG SELBST For Each l In listPDFs ATTACHMENTS.Add(New cFakt_MailATTach(l, "")) Next @@ -464,67 +491,103 @@ Public Class cAutomailversand If RECHNUNG IsNot Nothing Then '----------------------------------------------------------------- EINZELRECHNUNGEN------------------------------------------------ - + Dim zsmf_ER As New List(Of String) RECHNUNG.LOAD_ANHAENGE() For Each ANH In RECHNUNG.ANHAENGE - ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung)) + + Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) + + If PDFS_zusammenfassen(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID) Then + If path <> "" Then + If Not zsmf_ER.Any(Function(p) System.IO.Path.GetFileName(p.ToString).Equals(path, StringComparison.OrdinalIgnoreCase)) Then 'doppelte unterbinden! + zsmf_ER.Add(path) + End If + + End If + Else + Dim fileName = System.IO.Path.GetFileName(path) + If Not ATTACHMENTS.Any(Function(p) System.IO.Path.GetFileName(p.Pfad).Equals(fileName, StringComparison.OrdinalIgnoreCase)) Then 'doppelte unterbinden! + ATTACHMENTS.Add(New cFakt_MailATTach(path, ANH.Bezeichnung)) + End If + + End If + Next + If SPEDBUCH IsNot Nothing Then - If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Versandschein.pdf")) + Dim ZOLL = IIf(SPEDBUCH.DokumentId_Mitteilung IsNot Nothing, "AT", "DE") - 'AT - If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Abgabenbescheid.pdf")) - If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Verzollungsnachweis.pdf")) + Select Case ZOLL + Case "DE" + ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Steuerbescheid.pdf")) + If SPEDBUCH.DokumentId_VBD IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD), "Abgabenbescheid.pdf")) + Case "AT" + ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Verzollungsnachweis.pdf")) + ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Versandschein.pdf")) + If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Verzollungsnachweis.pdf")) + + End Select - 'DE - If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Steuerbescheid.pdf")) - If SPEDBUCH.DokumentId_VBD IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD), "Abgabenbescheid.pdf")) End If + + If zsmf_ER.Any() Then + If FormularManagerNEU.MergePdfFiles(zsmf_ER, zielPfadZusammenfassung) Then + Dim fileInfo As New FileInfo(zielPfadZusammenfassung) + ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, fileInfo.Name)) + End If + End If + Else - '----------------------------------------------------------------- SAMMELRECHNUNGEN------------------------------------------------ + '----------------------------------------------------------------- SAMMELRECHNUNGEN------------------------------------------------ - If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then + If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then 'ATTACHMENTS.Clear() - Dim myList As New List(Of String) + Dim zsmf_SR As New List(Of String) For Each r As DataRow In SR_DT.Rows Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID")) If RG_ANH IsNot Nothing Then Dim FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) + Dim FIRMA_ID = IIf(Not IsDBNull(r.Item("Firma_ID")) AndAlso IsNumeric(r.Item("Firma_ID")), CInt(r.Item("Firma_ID")), 0) - If FilialenNr = 4817 Then 'diese immer zusammenfassen! - For Each ANH In RG_ANH + For Each ANH In RG_ANH - Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) - If Not (path.ToString.ToLower.Contains("sammelrechnung") OrElse path.ToString.Contains("Maut") OrElse path.ToString.Contains("POS") OrElse path.ToString.ToLower.Contains("invoice") OrElse path.ToString.ToLower.Contains("rechnung")) Then - If path <> "" Then myList.Add(path) - Else + Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) + + 'hier die LOGIK, was alles zusammengefasst werden soll! + If PDFS_zusammenfassen(path, FilialenNr, FIRMA_ID) Then + If path <> "" Then + If Not zsmf_SR.Any(Function(p) System.IO.Path.GetFileName(p.ToString).Equals(path, StringComparison.OrdinalIgnoreCase)) Then 'doppelte unterbinden! + zsmf_SR.Add(path) + End If + + End If + Else + Dim fileName = System.IO.Path.GetFileName(path) + If Not ATTACHMENTS.Any(Function(p) System.IO.Path.GetFileName(p.Pfad).Equals(fileName, StringComparison.OrdinalIgnoreCase)) Then 'doppelte unterbinden! ATTACHMENTS.Add(New cFakt_MailATTach(path, ANH.Bezeichnung)) End If - Next - If myList.Any() Then - If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung) Then - Dim fileInfo As New FileInfo(zielPfadZusammenfassung) - ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, fileInfo.Name)) - End If End If - Else - For Each ANH In RG_ANH - ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung)) - Next + + Next + + If zsmf_SR.Any() Then + If FormularManagerNEU.MergePdfFiles(zsmf_SR, zielPfadZusammenfassung) Then + Dim fileInfo As New FileInfo(zielPfadZusammenfassung) + ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, fileInfo.Name)) + End If End If - - - End If + + Next End If @@ -535,6 +598,31 @@ Public Class cAutomailversand End Sub + Private Function PDFS_zusammenfassen(path As String, Filiale As Integer, Firma As Integer) + + Dim zusammenfassen As Boolean = False + + Select Case Firma + Case 19 + If Filiale = 4817 Then + If Not (path.ToString.ToLower.Contains("sammelrechnung") OrElse path.ToString.Contains("Maut") OrElse path.ToString.Contains("POS") OrElse path.ToString.ToLower.Contains("invoice") OrElse path.ToString.ToLower.Contains("rechnung")) Then + Return True + End If + Else + If Not (path.ToString.ToLower.Contains("flyercbam") OrElse Not (path.ToString.ToLower.Contains("sammelrechnung"))) Then + Return True + End If + End If + + Case Else + + + End Select + + Return zusammenfassen + + End Function + Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing, Optional RECHNUNG As cRechnungsausgang = Nothing, Optional FISKAL As cFiskal_Daten = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing) As Boolean @@ -858,109 +946,120 @@ Public Class cAutomailversand MailTo = MailFA End If + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + MailTo = "" + MailCC = "" + End If + Dim AD As New cAdressen(kundenNr) - Dim KD As New cKunde(kundenNr) - Dim Sprache As String = "EN" - Dim attachList As New List(Of String) + Dim KD As New cKunde(kundenNr) + Dim Sprache As String = "EN" + Dim attachList As New List(Of String) - Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff + 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 &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "
EORI-Nr.:" & If(KD.EORITIN, "") & "
UID-Nr.:" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "
Firma:" & If(AD.Name_1, "") & If(AD.Name_2, "") & "
" & If(AD.Straße, "") & "
" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "
" - 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 &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "
EORI-Nr.:" & If(KD.EORITIN, "") & "
UID-Nr.:" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "
Firma:" & If(AD.Name_1, "") & If(AD.Name_2, "") & "
" & If(AD.Straße, "") & "
" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "
" + 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 &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "" - TextHTML &= "
EORI-Nr.:" & If(KD.EORITIN, "") & "
VAT-ID.:" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "
Company:" & If(AD.Name_1, "") & If(AD.Name_2, "") & "
" & If(AD.Straße, "") & "
" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "
" - 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 &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "" + TextHTML &= "
EORI-Nr.:" & If(KD.EORITIN, "") & "
VAT-ID.:" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "
Company:" & If(AD.Name_1, "") & If(AD.Name_2, "") & "
" & If(AD.Straße, "") & "
" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "
" + 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 - If showMail Then + If showMail Then - Dim outl As New Outlook.Application - Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem - Mail_StbFA = outl.CreateItem(0) - Mail_StbFA.Subject = Subject + Dim outl As New Outlook.Application + Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem + Mail_StbFA = outl.CreateItem(0) + Mail_StbFA.Subject = Subject - If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True) + If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True) - TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "") - TextHTML &= "" + TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "") + TextHTML &= "" - Mail_StbFA.HTMLBody = TextHTML + Mail_StbFA.HTMLBody = TextHTML - Mail_StbFA.To = MailTo - Mail_StbFA.CC = MailCC + Mail_StbFA.To = MailTo + Mail_StbFA.CC = MailCC - ''----------------------------------------------------------------- - ''Steuerbescheid anfügen - ''----------------------------------------------------------------- - 'getAnhaenge(False) + ''----------------------------------------------------------------- + ''Steuerbescheid anfügen + ''----------------------------------------------------------------- + 'getAnhaenge(False) - ''Anhang an Mail anfügen - ''----------------------------------------------------------------- - 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked) - ''----------------------------------------------------------------- + ''Anhang an Mail anfügen + ''----------------------------------------------------------------- + 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked) + ''----------------------------------------------------------------- - Mail_StbFA.Display() + Mail_StbFA.Display() + + Else + Dim accountToSend = setAccountToSend(FirmaID) + VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, Subject, TextHTML, accountToSend, False, False, MailCC, accountToSend, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) + + ''----------------------------------------------------------------- + ''Steuerbescheid anfügen + ''----------------------------------------------------------------- + 'getAnhaenge(False) + + ''Anhang an Mail anfügen + ''----------------------------------------------------------------- + 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked) + ''----------------------------------------------------------------- + + + End If - Else - Dim accountToSend = setAccountToSend(FirmaID) - VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, Subject, TextHTML, accountToSend, False, False, MailCC, accountToSend, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) - ''----------------------------------------------------------------- - ''Steuerbescheid anfügen - ''----------------------------------------------------------------- - 'getAnhaenge(False) - ''Anhang an Mail anfügen - ''----------------------------------------------------------------- - 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked) - ''----------------------------------------------------------------- End If @@ -969,12 +1068,6 @@ Public Class cAutomailversand - End If - - - - - diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 251d4674..3e476c05 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -138,6 +138,8 @@ Public Class frmFaktSammelRgDrucken whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) = " & If(cbxAUTOMail.Checked, "1", "0") + + Dim sqlStr As String = "" Select Case Sammelrechung @@ -168,7 +170,7 @@ Public Class frmFaktSammelRgDrucken Rechnungsausgang.Status = 2 AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' AND Rechnungsausgang.Sammelrechnung = " & Sammelrechung & " - AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) = '" & txtRechnungsdatum._value & "' + AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "' " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " " & whereAbfArt & whereMWST & whereAutoMail & " GROUP BY @@ -179,6 +181,14 @@ Public Class frmFaktSammelRgDrucken Case Else + Dim SQLAUTOMAIL_RECHNUNGSDATuM = "" + + If cbxAUTOMail.Checked Then + SQLAUTOMAIL_RECHNUNGSDATuM = "AND Rechnungsausgang.Status IN (2) AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & txtRechnungsdatum._value & "'" + Else + SQLAUTOMAIL_RECHNUNGSDATuM = " AND Rechnungsausgang.Status IN (0,2) AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'" + End If + sqlStr = " SELECT min(Rechnungsausgang.RechnungsNr) as RENR, @@ -198,12 +208,10 @@ Public Class frmFaktSammelRgDrucken WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck FROM Rechnungsausgang WHERE - Rechnungsausgang.Status IN (0,2) - AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' + Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' - AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "' " & If(Sammelrechung = 7 AndAlso cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " - " & whereAbfArt & whereAutoMail & " + " & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & " AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "' GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ", AvisoId", "") & " @@ -722,7 +730,7 @@ Public Class frmFaktSammelRgDrucken End If End If - setMailversand_ALL(True, Firma, Sammelrechung, 2) + setMailversand_ALL(True, Firma, Sammelrechung) Me.Enabled = True Me.Cursor = Cursors.Default @@ -741,7 +749,7 @@ Public Class frmFaktSammelRgDrucken If cAutomailversand.automRechnungsversand_deaktivieren() Then 'setMailversand(false, Firma, Sammelrechung, 2) - setMailversand_ALL(False, Firma, Sammelrechung, 2) + setMailversand_ALL(False, Firma, Sammelrechung) End If End If @@ -783,13 +791,14 @@ Public Class frmFaktSammelRgDrucken End Function - Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean + Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer) As Boolean Dim count As Integer = 0 Dim mailversandString As String = If(Mailversand, "1", "0") Dim whereMWST As String = "" Dim whereAutoMail As String = "" + Dim whereSammelrechnung As String = "" ' MWST Filter If cbxMWST.CheckState <> CheckState.Indeterminate Then @@ -799,15 +808,22 @@ Public Class frmFaktSammelRgDrucken ' Automail Filter (nur ändern wenn unterschiedlich) whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) <> " & mailversandString + Select Case Sammelrechnung + Case 6 : whereSammelrechnung = "" + Case Else : whereSammelrechnung = "" + + End Select + For Each r As DataGridViewRow In MyDatagridview1.SelectedRows Dim sql As String = "" If IsDate(txtRechnungsdatum.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then - sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr + + sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr WHERE - Rechnungsausgang.Status IN (" & Status & ") + Rechnungsausgang.Status IN (2) AND Rechnungsausgang.Firma_ID = '" & FirmaID & "' AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "' @@ -817,12 +833,13 @@ Public Class frmFaktSammelRgDrucken " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " " & whereMWST - End If - If (New SQL).doSQL(sql, "FMZOLL") Then - count += 1 - End If + If (New SQL).doSQL(sql, "FMZOLL") Then + count += 1 + End If + + End If Next If count <> MyDatagridview1.SelectedRows.Count Then diff --git a/SDL/frmdynMailvorlage.Designer.vb b/SDL/frmdynMailvorlage.Designer.vb index 1dc40de2..6854819c 100644 --- a/SDL/frmdynMailvorlage.Designer.vb +++ b/SDL/frmdynMailvorlage.Designer.vb @@ -57,6 +57,8 @@ Partial Class frmdynMailvorlagen Me.btnAdd = New System.Windows.Forms.Button() Me.btnDelete = New System.Windows.Forms.Button() Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label14 = New System.Windows.Forms.Label() + Me.cboTypSelected = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.cbxSpracheSelected = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.Label8 = New System.Windows.Forms.Label() Me.txtSuche = New VERAG_PROG_ALLGEMEIN.MyTextBox() @@ -132,7 +134,7 @@ Partial Class frmdynMailvorlagen Me.cbxTyp.FormattingEnabled = True Me.cbxTyp.Location = New System.Drawing.Point(887, 20) Me.cbxTyp.Name = "cbxTyp" - Me.cbxTyp.Size = New System.Drawing.Size(92, 21) + Me.cbxTyp.Size = New System.Drawing.Size(120, 21) Me.cbxTyp.TabIndex = 46 ' 'Label13 @@ -283,7 +285,7 @@ Partial Class frmdynMailvorlagen Me.cboFirmensignatur._value = "" Me.cboFirmensignatur.DropDownWidth = 120 Me.cboFirmensignatur.FormattingEnabled = True - Me.cboFirmensignatur.Location = New System.Drawing.Point(985, 21) + Me.cboFirmensignatur.Location = New System.Drawing.Point(1031, 21) Me.cboFirmensignatur.Name = "cboFirmensignatur" Me.cboFirmensignatur.Size = New System.Drawing.Size(100, 21) Me.cboFirmensignatur.TabIndex = 31 @@ -291,7 +293,7 @@ Partial Class frmdynMailvorlagen 'Label7 ' Me.Label7.AutoSize = True - Me.Label7.Location = New System.Drawing.Point(982, 5) + Me.Label7.Location = New System.Drawing.Point(1028, 5) Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(103, 13) Me.Label7.TabIndex = 30 @@ -436,6 +438,8 @@ Partial Class frmdynMailvorlagen 'pnlTop ' Me.pnlTop.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.pnlTop.Controls.Add(Me.Label14) + Me.pnlTop.Controls.Add(Me.cboTypSelected) Me.pnlTop.Controls.Add(Me.cbxSpracheSelected) Me.pnlTop.Controls.Add(Me.Label8) Me.pnlTop.Controls.Add(Me.txtSuche) @@ -450,6 +454,29 @@ Partial Class frmdynMailvorlagen Me.pnlTop.Size = New System.Drawing.Size(1295, 48) Me.pnlTop.TabIndex = 100 ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label14.ForeColor = System.Drawing.Color.White + Me.Label14.Location = New System.Drawing.Point(909, 3) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(28, 13) + Me.Label14.TabIndex = 49 + Me.Label14.Text = "Typ" + ' + 'cboTypSelected + ' + Me.cboTypSelected._allowedValuesFreiText = Nothing + Me.cboTypSelected._allowFreiText = False + Me.cboTypSelected._value = "" + Me.cboTypSelected.DropDownWidth = 120 + Me.cboTypSelected.FormattingEnabled = True + Me.cboTypSelected.Location = New System.Drawing.Point(912, 19) + Me.cboTypSelected.Name = "cboTypSelected" + Me.cboTypSelected.Size = New System.Drawing.Size(114, 21) + Me.cboTypSelected.TabIndex = 48 + ' 'cbxSpracheSelected ' Me.cbxSpracheSelected._allowedValuesFreiText = Nothing @@ -489,12 +516,12 @@ Partial Class frmdynMailvorlagen Me.txtSuche._WaehrungZeichen = False Me.txtSuche.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtSuche.ForeColor = System.Drawing.Color.Black - Me.txtSuche.Location = New System.Drawing.Point(702, 19) + Me.txtSuche.Location = New System.Drawing.Point(431, 19) Me.txtSuche.MaxLineLength = -1 Me.txtSuche.MaxLines_Warning = "" Me.txtSuche.MaxLines_Warning_Label = Nothing Me.txtSuche.Name = "txtSuche" - Me.txtSuche.Size = New System.Drawing.Size(314, 20) + Me.txtSuche.Size = New System.Drawing.Size(425, 20) Me.txtSuche.TabIndex = 34 ' 'Label18 @@ -502,7 +529,7 @@ Partial Class frmdynMailvorlagen Me.Label18.AutoSize = True Me.Label18.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Label18.ForeColor = System.Drawing.Color.White - Me.Label18.Location = New System.Drawing.Point(699, 4) + Me.Label18.Location = New System.Drawing.Point(428, 3) Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(43, 13) Me.Label18.TabIndex = 33 @@ -647,4 +674,6 @@ Partial Class frmdynMailvorlagen Friend WithEvents TextBox2 As TextBox Friend WithEvents ContextMenuStrip1 As ContextMenuStrip Friend WithEvents KopierenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents Label14 As Label + Friend WithEvents cboTypSelected As VERAG_PROG_ALLGEMEIN.MyComboBox End Class diff --git a/SDL/frmdynMailvorlage.vb b/SDL/frmdynMailvorlage.vb index f702494b..7765b93f 100644 --- a/SDL/frmdynMailvorlage.vb +++ b/SDL/frmdynMailvorlage.vb @@ -1,4 +1,5 @@ -Imports Microsoft.Office.Interop +Imports DAKOSY_Worker.DEERRE +Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Public Class frmdynMailvorlagen @@ -48,7 +49,8 @@ Public Class frmdynMailvorlagen cbxSendungsvermerk.fillWithSQL("SELECT VermerkCodeId,Bezeichnung FROM [VermerkeCodes]", True, "AVISO", True) - setTypes() + cbxTyp.fillWithSQL("SELECT tkt_id,tkt_name FROM [tblTextkonserventyp] ", False, "FMZOLL", True) + cboTypSelected.fillWithSQL("SELECT tkt_id,tkt_name FROM [tblTextkonserventyp] ", False, "FMZOLL", True) cbxFirma.Enabled = editall btnDelete.Enabled = editall @@ -127,15 +129,15 @@ Public Class frmdynMailvorlagen End Try - End sub + End Sub - Private Sub initDGVMailvorlagen(Optional firma As String = "", Optional searchparam As String = "", Optional sprache As String = "") + Private Sub initDGVMailvorlagen(Optional firma As String = "", Optional searchparam As String = "", Optional sprache As String = "", Optional typ As Integer = -1) lblWarning.Text = "" Dim SQLString As String = "SELECT * FROM [tblTextkonserve] WHERE txt_kategorie = 'FRM_MNGR_MailText'" - Dim SQLWHere = "" + Dim SQLWHere = "" If firma <> "" Then SQLWHere &= " AND txt_FIRMA = '" & firma & "'" End If @@ -148,6 +150,10 @@ Public Class frmdynMailvorlagen SQLWHere &= " AND (txt_Sprache = '" & sprache & "')" End If + If typ > 0 Then + SQLWHere &= " AND (txt_typ = " & typ & ")" + End If + dgvMailvorlagen.SET_SQL(SQLString & SQLWHere, "FMZOLL", ,) dgvMailvorlagen.LOAD() @@ -356,11 +362,15 @@ Public Class frmdynMailvorlagen End Sub - Private Sub cbxFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxFirma.SelectedValueChanged, cbxSpracheSelected.SelectedValueChanged + Private Sub cbxFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxFirma.SelectedValueChanged, cbxSpracheSelected.SelectedValueChanged, cboTypSelected.SelectedValueChanged Try - setTypes() dgvMailvorlagen.GetOrder() - initDGVMailvorlagen(cbxFirma._value, txtSuche.Text, cbxSpracheSelected._value) + If cboTypSelected._value <> "" AndAlso IsNumeric(cboTypSelected._value) Then + initDGVMailvorlagen(cbxFirma._value, txtSuche.Text, cbxSpracheSelected._value, CInt(cboTypSelected._value)) + Else + initDGVMailvorlagen(cbxFirma._value, txtSuche.Text, cbxSpracheSelected._value) + End If + dgvMailvorlagen.SetOrder() Catch ex As Exception @@ -505,34 +515,6 @@ Public Class frmdynMailvorlagen End Sub - Private Sub setTypes() - - Select Case cbxFirma._value - Case "VERAG360" - cbxTyp.Items.Clear() - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MDM-Belege", "1")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Mahnung", "2")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("OP-Liste", "3")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MDM-SR", "4")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Erstattungsschreiben", "5")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Zu Wenig", "6")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MDM-VZ", "7")) - cbxTyp.changeItem("") - - Case Else - cbxTyp.Items.Clear() - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sendung", "1")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Mahnung", "2")) - cbxTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("OP-Liste", "3")) - cbxTyp.changeItem("") - - - End Select - - End Sub - Private Sub dgvMailvorlagen_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvMailvorlagen.CellMouseClick If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt