From 25e7bff3d45e57350c6667c716283ada32683914 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 14 Apr 2026 09:49:55 +0200 Subject: [PATCH] AUTOMAILVERSAND, etc. --- SDL/Fakturierung/cAutomailversand.vb | 742 ++++++++++++++---- SDL/Fakturierung/cFakturierung.vb | 15 +- .../frmAbrechnungsMaske.Designer.vb | 38 +- SDL/Fakturierung/frmAbrechnungsMaske.vb | 100 ++- SDL/Fakturierung/frmFaktEmail.vb | 5 - SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 36 +- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 43 +- .../Classes/cRechnungsausgang.vb | 5 +- 8 files changed, 789 insertions(+), 195 deletions(-) diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 9b3d3b15..5a6ae6a0 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -4,14 +4,16 @@ Imports VERAG_PROG_ALLGEMEIN Public Class cAutomailversand - Sub sendMailSammelrechnung(Sammelrechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False) + Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False) Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + 'BEI SAMMELRECHNUNG WIRD ZUERST INTERN DER STATUS AUF 2 GESETZT + 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 - WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "' + 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, "") & " GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU ORDER BY RechnungsLandKz, RechnungsKundenNr" @@ -52,7 +54,7 @@ Public Class cAutomailversand End If - SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True) + SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True) Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr")) Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr")) @@ -81,34 +83,8 @@ Public Class cAutomailversand Dim MailtoCC As String = "" Dim MailtoBCC As String = "" - If SammelrechungArt <> 6 Then - - Dim email_receipt As String = "" - - Dim allAtilla = IIf(FirmaID = 7, True, False) - If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then - For Each r In SR_DT.Rows - If "4801" <> r("FilialenNr") And "4802" <> r("FilialenNr") Then - allAtilla = False - Exit For - End If - Next - End If - - email_receipt = IIf(allAtilla, VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)"), "") - - MailTo = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an") - MailtoCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)")) - MailtoBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)")) - - Else - - If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then MailTo &= AD.E_Mail & ";" - If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then MailTo &= AD.E_Mail2 & ";" - - - End If + setEmpfaengerMail_SR(SR_DT, AD, MailTo, MailtoCC, MailtoBCC, FirmaID, SammelrechungArt) 'im TESTSYSTEM bewusst die Empfänger leeren! @@ -148,7 +124,7 @@ Public Class cAutomailversand TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True) HTMLMail = "
" & TextHTML & "
" - If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then + If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then End If @@ -166,17 +142,27 @@ Public Class cAutomailversand End Sub - Sub sendMailEinzelrechnungen(Rechnungsdatum As Date, FirmaID As Integer, Optional Sachbearbeiter As String = "", Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False) + 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) Dim sql As New VERAG_PROG_ALLGEMEIN.SQL - 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 + Dim SQL_RKID As String = "" + + If RK_ID IsNot Nothing Then + If RK_ID.Count > 0 Then + SQL_RKID = " AND RK_ID IN (" & String.Join(",", RK_ID) & ")" + End If + End If + + 'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft + + Dim rechnungenMailversand = "SELECT RK_ID,RechnungsKundenNr,Rechnungsausgang.VermittlerKundenNr,Rechnungsausgang.RechnungsLandKz,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.UnterNr, Rechnungsausgang.ErfassungsNr , Rechnungsausgang.SteuerpflichtigerGesamtbetrag AS Steuer FROM Rechnungsausgang LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz - WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' - and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & " - GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU - ORDER BY RechnungsLandKz, RechnungsKundenNr" + WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) <= '" & Rechnungsdatum.ToShortDateString & "' + and isnull(Rechnungsausgang.Automailversand,0) = 1 AND Automailversand_sent IS NULL " & IIf(Sachbearbeiter <> "", " AND Sachbearbeiter = '" & Sachbearbeiter & "'", "") & SQL_RKID & " + + ORDER BY RechnungsLandKz, RechnungsKundenNr, Rechnungsausgang.Rechnungsdatum" Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL") Try @@ -187,6 +173,17 @@ Public Class cAutomailversand Dim MailtoCC As String = "" Dim MailtoBCC As String = "" + Dim FISKAL As cFiskal_Daten = Nothing + + + Dim AD As New cAdressen(r.Item("RechnungsKundenNr")) + Dim ATTACHMENTS As New List(Of cFakt_MailATTach) + Dim RECHNUNG As New cRechnungsausgang(r.Item("RK_ID")) + Dim SPEDBUCH As New cSpeditionsbuch(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr, RECHNUNG.UnterNr) + FISKAL = New cFiskal_Daten(r.Item("RechnungsKundenNr")) + + + setEmpfaengerMail_ER(SPEDBUCH, AD, MailTo, MailtoCC, MailtoBCC, "") If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MailTo = "" @@ -196,12 +193,54 @@ Public Class cAutomailversand MailtoBCC = setAccountToSend(FirmaID) End If + If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then + + + Dim pathRG As String + If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, 4, pathRG,, True) Then + Continue For + End If + + 'EINZELBELEG ANFÜGEN + If pathRG <> "" Then ATTACHMENTS.Add(New cFakt_MailATTach(pathRG, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf"))) + + Dim Mailsubject As String = "" + Dim HTMLMail As String = "" + + Dim listPDFs As New List(Of String) + Dim showError As Boolean = False + setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr) + + loadAndSetAnhaenge(dt, ATTACHMENTS, listPDFs, RECHNUNG) + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" + + If mailoeffnen Then + Dim Mail = createMail(Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID) + If setLog(dt, r, FirmaID, RECHNUNG.Sammelrechnung, Rechnungsdatum,,,,,,, Mail, RECHNUNG) Then + Mail.Display() + End If + + Else + + Dim TextHTML = "" + TextHTML &= HTMLMail + TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True) + HTMLMail = "
" & TextHTML & "
" + + If setLog(dt, r, FirmaID, RECHNUNG.Sammelrechnung, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,, RECHNUNG, FISKAL, SPEDBUCH) Then + + End If + + End If + + End If + Next Catch ex As System.Exception - VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,,) - + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,, "d.breimaier@verag.ag",,, setAccountToSend(FirmaID)) End Try End Sub @@ -212,14 +251,102 @@ Public Class cAutomailversand Dim Mailtext As String - If SammelrechungArt <> 6 Then + If SammelrechungArt <> 6 Then 'EINZELRECHNUNGEN - MDM oder ANDERE - Subject = "VERAG Sammel-Rechnung" - TextHTML &= getSammelRgTExt(getSelectionLandKz(dt), Firma_ID) + + Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(1, "", Firma_ID) + + Dim spracheRechnung As String = "EN" 'Defaultsprache + Dim belegtyp As String = If(BelegartenNr = 71, "credit note", "invoice") + + Select Case row.Item("RechnungsLandKz") + Case "TR" : spracheRechnung = "TR" : spracheRechnung = row.Item("RechnungsLandKz") : belegtyp = If(BelegartenNr = 71, "Kredi", "Fatura") + Case "RO" : spracheRechnung = "RO" : spracheRechnung = row.Item("RechnungsLandKz") : belegtyp = If(BelegartenNr = 71, "nota de credit", "factura") + Case "DE", "A", "AT", "D", "CH" : spracheRechnung = "DE" : belegtyp = If(BelegartenNr = 71, "Gutschrift", "Rechnung") + Case "SRB", "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB" : belegtyp = If(BelegartenNr = 71, "credit note", "invoice") 'Belegarten auf Englisch! + End Select + + If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then + + Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung) + If r IsNot Nothing Then + Subject = r.txt_betreff + Subject = Subject.Replace("%Belegtyp%", belegtyp) + Subject = Subject.Replace("%BelegNr%", txtRgNr) + + TextHTML &= r.txt_text + + 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")) + 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")) + + If row("VermittlerKundenNr") = 150000 Or row("VermittlerKundenNr") = 140000 Or row("VermittlerKundenNr").ToString.Substring(0, 2) = 18 Then + + replaceKZ("nichtRMC", TextHTML) + TextHTML = TextHTML.ToString.Replace("%RMC:", "") : TextHTML = TextHTML.ToString.Replace("RMC%", "") + + replaceKZ("KZ1", TextHTML) + replaceKZ("KZ4", TextHTML) + TextHTML = TextHTML.ToString.Replace("%", "") + + Else + + replaceKZ("RMC", TextHTML) + TextHTML = TextHTML.ToString.Replace("%nichtRMC:", "") : TextHTML = TextHTML.ToString.Replace("nichtRMC%", "") + + If USTV_ANTRAG.UStVAn_Sicherheit Then + replaceKZ("KZ1", TextHTML) + TextHTML = TextHTML.ToString.Replace("%KZ4:", "") : TextHTML = TextHTML.ToString.Replace("%", "") + + ElseIf KUNDE_ERW.kde_Erstattungsart = 4 Then + replaceKZ("KZ1", TextHTML) + TextHTML = TextHTML.ToString.Replace("%KZ4:", "") : TextHTML = TextHTML.ToString.Replace("%", "") + + ElseIf KUNDE_ERW.kde_Erstattungsart = 1 Then + replaceKZ("KZ4", TextHTML) + TextHTML = TextHTML.ToString.Replace("%KZ1:", "") : TextHTML = TextHTML.ToString.Replace("%", "") + + Else + replaceKZ("KZ1", TextHTML) + replaceKZ("KZ4", TextHTML) + TextHTML = TextHTML.ToString.Replace("%", "") + End If + + End If + + If Mailtext <> "" Then TextHTML &= Mailtext & vbNewLine + + + End If + + Else + 'sonst alles weg! + replaceKZ("nichtRMC", TextHTML) + replaceKZ("RMC", TextHTML) + replaceKZ("KZ1", TextHTML) + replaceKZ("KZ4", TextHTML) + TextHTML = TextHTML.ToString.Replace("%", "") + + + End If + + End If + + End If + + End If - Else + + ElseIf SammelrechungArt = 6 Then 'MDM-SAMMELRECHNUNGEN Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL @@ -310,68 +437,92 @@ Public Class cAutomailversand End Function - Private Sub loadAndSetAnhaenge(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String)) + 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) - ATTACHMENTS.Clear() - 'Rechnungsanhänge anfügen Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment", ".pdf",, False, "Zusammenfassung") + 'Rechnungsanhänge anfügen For Each l In listPDFs - ATTACHMENTS.Add(New cFakt_MailATTach(l, "")) - Next - '----------------------------------------------------------------- - If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then - Dim myList As New List(Of String) + If RECHNUNG IsNot Nothing Then - 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 + '----------------------------------------------------------------- EINZELRECHNUNGEN------------------------------------------------ - Dim FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) - - If FilialenNr = 4817 Then 'diese immer zusammenfassen! - - 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 - 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 - End If - - - - End If + 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)) 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")) + + '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")) + + '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 + + + Else + + '----------------------------------------------------------------- SAMMELRECHNUNGEN------------------------------------------------ + + If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then + 'ATTACHMENTS.Clear() + Dim myList 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) + + If FilialenNr = 4817 Then 'diese immer zusammenfassen! + + 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 + 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 + End If + + + + End If + Next + End If + + End If - '----------------------------------------------------------------- - - End Sub - 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) As Boolean + 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 Dim accountToSend = setAccountToSend(FirmaID) @@ -406,17 +557,28 @@ Public Class cAutomailversand Dim AbfertigungsNr As Integer Dim FilialenNr As Integer + Dim UnterNr As Integer - If SR_DT.Rows.Count > 0 Then - For Each r As DataRow In SR_DT.Rows - AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0) - FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) - Next + If SPEDBUCH IsNot Nothing Then + FilialenNr = SPEDBUCH.FilialenNr + AbfertigungsNr = SPEDBUCH.AbfertigungsNr + UnterNr = SPEDBUCH.UnterNr + Else + + + If SR_DT.Rows.Count > 0 Then + For Each r As DataRow In SR_DT.Rows + AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0) + FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) + Next + + End If End If + Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG_" & FirmaID,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr) API.api_EMail = EMails @@ -429,6 +591,23 @@ Public Class cAutomailversand If Mail IsNot Nothing Then API.UPDTAE_OK() + + If RECHNUNG IsNot Nothing Then ' EINZELRECHNUNG + RECHNUNG.Automailversand_sent = Now() + RECHNUNG.SAVE() + + Else + ' 'Bei erfolg. SAMMELRECHNUNG SENT-STATUS setzen + sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL") + + End If + + '---------------------TODO ! ---------------------------- + createMailFISKAL(SPEDBUCH, FISKAL, True, FirmaID, row.Item("RechnungsKundenNr"), row.Item("RechnungsLandKz")) + '---------------------TODO ! ---------------------------- + + mailcreated = True Else @@ -446,74 +625,47 @@ Public Class cAutomailversand If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then API.UPDTAE_OK() + + If RECHNUNG IsNot Nothing Then + RECHNUNG.Automailversand_sent = Now() + RECHNUNG.SAVE() + + Else + sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL") + End If + + '---------------------TODO ! ---------------------------- + createMailFISKAL(SPEDBUCH, FISKAL, False, FirmaID, row.Item("RechnungsKundenNr"), row.Item("RechnungsLandKz")) + '---------------------TODO ! ---------------------------- + mailcreated = True Else API.UPDTAE_ERR() - sql.doSQL("update Rechnungsausgang set Status = 2 where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + + 'Bei FEHLER EINZELRECHNUNG VON STATUS 4 auf 2 zurücksetzen! + + If RECHNUNG IsNot Nothing Then + RECHNUNG.Automailversand_sent = Nothing + RECHNUNG.Status = 2 + RECHNUNG.SAVE() + Else + 'Bei FEHLER SAMMELRECHNUNG VON STATUS 4 auf 2 zurücksetzen! + sql.doSQL("update Rechnungsausgang set Status = 2, Automailversand_sent = NULL where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4", "FMZOLL") + End If Return mailcreated End If - - End If Return mailcreated End Function - Function getSammelRgTExt(RechnungsLandKz, FIRMA_ID) As String - - If RechnungsLandKz = "" Then - - getSammelRgTExt = "Sehr geehrte Damen und Herren,
" - getSammelRgTExt &= "Dear Ladies and Gentlemen,
" - getSammelRgTExt &= "Sayin Bayanlar ve Baylar,
" - getSammelRgTExt &= "
" - getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.
" - getSammelRgTExt &= "attached we send you the invoice mentioned above.
" - getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.
" - getSammelRgTExt &= "
" - getSammelRgTExt &= "


Mit freundlichen Grüßen / Best regards / Saygilarimizla

VERAG Spedition AG

" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID) - Return "
" & getSammelRgTExt & "
" - End If - - - - getSammelRgTExt = "
" & getSammelRgTExt & "
" - End Function - - Function getSelectionLandKz(dt As DataTable) As String - getSelectionLandKz = "" - If dt.Rows.Count > 0 Then - - If dt.Rows.Count > 0 Then - - For Each r As DataRow In dt.Rows - - If Not IsDBNull(r("RechnungsLandKz")) Then - - Dim landKz As String = r("RechnungsLandKz").ToString() - - If getSelectionLandKz = "" Then - getSelectionLandKz = landKz - ElseIf getSelectionLandKz <> landKz Then - Return "" - End If - - End If - - Next - - End If - End If - - - End Function - Private Function setAccountToSend(FIRMA_ID) As String Dim accountToSend = "" @@ -589,4 +741,306 @@ Public Class cAutomailversand End Function + + Public Shared Function automRechnungsversand_deaktivieren(Optional isEinzelrechnung As Boolean = False) + + Dim RE_Text = "" + + If isEinzelrechnung Then + RE_Text = "diese Rechnung" + Else + RE_Text = "alle markieren Rechnungen" + End If + + If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand deaktivieren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then + Return True + Else + Return False + End If + End Function + + Public Shared Function automRechnungsversand_aktivieren(Optional isEinzelrechnung As Boolean = False) + + Dim RE_Text = "" + + If isEinzelrechnung Then + RE_Text = "diese Rechnung" + Else + RE_Text = "alle markieren Rechnungen" + End If + + If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then + Return True + Else + Return False + End If + End Function + + Public Shared Function automRechnungsversand_durchführen(Optional isEinzelrechnung As Boolean = False) + + Dim RE_Text = "" + + If isEinzelrechnung Then + RE_Text = "diese Rechnung" + Else + RE_Text = "alle markieren Rechnungen" + End If + + If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then + Return True + Else + Return False + End If + End Function + + Private Sub replaceKZ(KZ As String, ByRef TextHTML As String) + + If TextHTML = "" Then Exit Sub + + Dim index_start As Integer = TextHTML.ToString.IndexOf("%" & KZ & ":") + If index_start < 0 Then Exit Sub + Dim txtKZ = TextHTML.ToString.Substring(index_start) + Dim index_end As Integer = txtKZ.ToString.IndexOf("%", 1) + + If index_start <= 0 AndAlso index_end <= 0 Then + Exit Sub + End If + + Dim txtKZ_replace As String = TextHTML.ToString.Substring(index_start, index_end) + TextHTML = TextHTML.ToString.Replace(txtKZ_replace, "") + + + End Sub + + + Private Function createMailFISKAL(SPEDBUCH As cSpeditionsbuch, FISKAL As cFiskal_Daten, showMail As Boolean, FirmaID As Integer, kundenNr As Integer, RechnungsLandKz As String) As Boolean + + Dim MailSteuerberater As String = "" + Dim MailFA As String = "" + + Dim MailSteuerberater_do As Boolean = False + Dim MailFA_do As Boolean = False + + Dim Subject As String = "" + Dim TextHTML As String = "" + + Dim MailTo As String = "" + Dim MailCC As String = "" + + If FISKAL IsNot Nothing AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart IsNot Nothing AndAlso IsNumeric(SPEDBUCH.Abfertigungsart) AndAlso (SPEDBUCH.Abfertigungsart = 26 Or SPEDBUCH.Abfertigungsart = 28) AndAlso (SPEDBUCH.FilialenNr = 4805 Or SPEDBUCH.FilialenNr = 4811) Then 'Prüfung + MailSteuerberater_do = (If(FISKAL.fisk_schreibenSB_Mail, "") <> "") + MailSteuerberater = If(FISKAL.fisk_schreibenSB_Mail, "") + MailFA_do = (If(FISKAL.fisk_schreibenFA_Mail, "") <> "") + MailFA = If(FISKAL.fisk_schreibenFA_Mail, "") + End If + + + + If MailSteuerberater_do Or MailFA_do Then + + If MailSteuerberater <> "" Then + MailTo = MailSteuerberater + MailCC = MailFA + Else + MailTo = MailFA + 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) + + Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff + + Select Case RechnungsLandKz + Case "A", "AT", "D", "DE", "CH" : Sprache = "DE" + End Select + + 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 &= "

" + + 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 &= "

" + + End Select + + + + 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 + + If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True) + + + TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "") + TextHTML &= "" + + Mail_StbFA.HTMLBody = TextHTML + + + Mail_StbFA.To = MailTo + Mail_StbFA.CC = MailCC + + ''----------------------------------------------------------------- + ''Steuerbescheid anfügen + ''----------------------------------------------------------------- + 'getAnhaenge(False) + + ''Anhang an Mail anfügen + ''----------------------------------------------------------------- + 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked) + ''----------------------------------------------------------------- + + + 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 + + + + + + End If + + + + + + + + + + End Function + + Private Function setEmpfaengerMail_ER(SPEDBUCH As cSpeditionsbuch, AD As cAdressen, EMAILTMP As String, EMAILTMPCC As String, EMAILTMPBCC As String, email_receipt As String) + + + If SPEDBUCH IsNot Nothing Then + Dim IMPEXP = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(IMEX,'')", "Aviso", "AvisoId='" & SPEDBUCH.AvisoID & "'", "AVISO") + Select Case IMPEXP + Case "IMPORT" + If VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an IMPORT") <> "" Then + EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an IMPORT"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an") + + EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an IMPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an IMPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + End If + Case "EXPORT" + If VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an EXPORT") <> "" Then + EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an EXPORT"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an") + + EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an EXPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an EXPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + End If + End Select + End If + + + 'wenn leere Mailadressen, dann Standardadresse holen + If EMAILTMP = "" And EMAILTMPCC = "" And EMAILTMPBCC = "" Then + EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an") + + EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + + End If + + End Function + + Private Function setEmpfaengerMail_SR(SR_DT As DataTable, AD As cAdressen, EMAILTMP As String, EMAILTMPCC As String, EMAILTMPBCC As String, FirmaID As Integer, SammelrechungArt As String) + + If SammelrechungArt <> 6 Then + + + Dim email_receipt As String = "" + + Dim allAtilla = IIf(FirmaID = 7, True, False) + If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then + For Each r In SR_DT.Rows + If "4801" <> r("FilialenNr") And "4802" <> r("FilialenNr") Then + allAtilla = False + Exit For + End If + Next + End If + + email_receipt = IIf(allAtilla, VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)"), "") + + EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an") + EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)")) + + Else + + If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then EMAILTMP &= AD.E_Mail & ";" + If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then EMAILTMP &= AD.E_Mail2 & ";" + + + End If + + End Function + + End Class diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index a36a2496..4e5fa6cc 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -794,6 +794,8 @@ Public Class cFakturierung rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True + rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026) + 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim @@ -1013,6 +1015,8 @@ Public Class cFakturierung rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True + rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026) + 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim @@ -1122,6 +1126,9 @@ Public Class cFakturierung rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall") + + rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026) + Case 20 '"IMEX" If RechnungsLandKz = "TR" Then ' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" @@ -4851,7 +4858,7 @@ Public Class cFakturierung Dim ROW As DataRow = IIf(dt.Rows.Count > 0, dt.Rows(0), Nothing) - Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status")) + Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"), ROW("Firma_ID")) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID")) Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) @@ -5749,7 +5756,7 @@ Public Class cFakturierung Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(firmaID) Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) - Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status")) + Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"), firmaID) If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False @@ -6211,10 +6218,12 @@ Public Class cFakturierung Return "" End Function - Shared Function checkIfMDMSammelrechnung(Rechnungsdruck As Integer, Status As Integer) + Shared Function checkIfMDMSammelrechnung(Rechnungsdruck As Integer, Status As Integer, Firma_ID As Integer) 'If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4)) Then Return True + If Firma_ID <> 19 Then Return False + If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 8 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 3 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 2 AndAlso (Status = 2 Or Status = 4)) Then Return True Return False diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb index 39e431b4..4283c005 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb @@ -88,6 +88,7 @@ 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.btn_doMailAutoversand = New System.Windows.Forms.Button() Me.pnl.SuspendLayout() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() @@ -200,6 +201,7 @@ Partial Class frmAbrechnungsMaske 'Panel2 ' Me.Panel2.BackColor = System.Drawing.Color.White + Me.Panel2.Controls.Add(Me.btn_doMailAutoversand) Me.Panel2.Controls.Add(Me.Button11) Me.Panel2.Controls.Add(Me.cbxOriginalDrucken) Me.Panel2.Controls.Add(Me.cboSort) @@ -231,7 +233,7 @@ Partial Class frmAbrechnungsMaske Me.Button11.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.Button11.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button11.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button11.Location = New System.Drawing.Point(220, 21) + Me.Button11.Location = New System.Drawing.Point(214, 21) Me.Button11.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3) Me.Button11.Name = "Button11" Me.Button11.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0) @@ -269,9 +271,9 @@ Partial Class frmAbrechnungsMaske Me.cboPrinter._value = "" Me.cboPrinter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboPrinter.FormattingEnabled = True - Me.cboPrinter.Location = New System.Drawing.Point(142, 52) + Me.cboPrinter.Location = New System.Drawing.Point(133, 52) Me.cboPrinter.Name = "cboPrinter" - Me.cboPrinter.Size = New System.Drawing.Size(157, 21) + Me.cboPrinter.Size = New System.Drawing.Size(200, 21) Me.cboPrinter.TabIndex = 25 ' 'Button9 @@ -280,7 +282,7 @@ Partial Class frmAbrechnungsMaske Me.Button9.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.Button9.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button9.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button9.Location = New System.Drawing.Point(142, 21) + Me.Button9.Location = New System.Drawing.Point(136, 21) Me.Button9.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3) Me.Button9.Name = "Button9" Me.Button9.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0) @@ -295,7 +297,7 @@ Partial Class frmAbrechnungsMaske Me.Button8.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.Button8.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button8.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button8.Location = New System.Drawing.Point(181, 21) + Me.Button8.Location = New System.Drawing.Point(175, 21) Me.Button8.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3) Me.Button8.Name = "Button8" Me.Button8.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0) @@ -310,7 +312,7 @@ Partial Class frmAbrechnungsMaske Me.Button7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.Button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button7.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button7.Location = New System.Drawing.Point(259, 21) + Me.Button7.Location = New System.Drawing.Point(253, 21) Me.Button7.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3) Me.Button7.Name = "Button7" Me.Button7.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0) @@ -347,7 +349,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(388, 9) + Me.btnWiederholeRgDruck.Location = New System.Drawing.Point(406, 9) Me.btnWiederholeRgDruck.Name = "btnWiederholeRgDruck" Me.btnWiederholeRgDruck.Size = New System.Drawing.Size(53, 36) Me.btnWiederholeRgDruck.TabIndex = 11 @@ -356,7 +358,7 @@ Partial Class frmAbrechnungsMaske 'Label4 ' Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!) - Me.Label4.Location = New System.Drawing.Point(381, 46) + Me.Label4.Location = New System.Drawing.Point(399, 46) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(67, 26) Me.Label4.TabIndex = 12 @@ -391,7 +393,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(329, 9) + Me.Button3.Location = New System.Drawing.Point(347, 9) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(53, 36) Me.Button3.TabIndex = 9 @@ -400,7 +402,7 @@ Partial Class frmAbrechnungsMaske 'Label3 ' Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!) - Me.Label3.Location = New System.Drawing.Point(326, 46) + Me.Label3.Location = New System.Drawing.Point(344, 46) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(56, 26) Me.Label3.TabIndex = 10 @@ -974,6 +976,21 @@ Partial Class frmAbrechnungsMaske Me.ContextMenuStrip1.Name = "ContextMenuStrip1" Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4) ' + 'btn_doMailAutoversand + ' + Me.btn_doMailAutoversand.BackgroundImage = Global.SDL.My.Resources.Resources.zauberstab + Me.btn_doMailAutoversand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + 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(293, 21) + 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) + Me.btn_doMailAutoversand.Size = New System.Drawing.Size(40, 25) + Me.btn_doMailAutoversand.TabIndex = 29 + Me.btn_doMailAutoversand.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btn_doMailAutoversand.UseVisualStyleBackColor = True + ' 'frmAbrechnungsMaske ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -1067,4 +1084,5 @@ Partial Class frmAbrechnungsMaske Friend WithEvents PictureBox5 As PictureBox Friend WithEvents lblKunde As Label Friend WithEvents KdSearchBox1 As VERAG_PROG_ALLGEMEIN.KdSearchBox + Friend WithEvents btn_doMailAutoversand As Button End Class diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 8447081c..60dd8c41 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -1,5 +1,8 @@ Imports System.IO +Imports com.sun.tools.javac.comp Imports Microsoft.Office.Interop +Imports VERAG_PROG_ALLGEMEIN +Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class frmAbrechnungsMaske Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL @@ -38,6 +41,7 @@ Public Class frmAbrechnungsMaske cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FAX", "1")) cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E-MAIL", "2")) cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MAIL+KOPIE", "5")) + cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AUTO-MAIL", "6")) cboRechnungsdruck.changeItem("") cboSort.Items.Clear() @@ -181,7 +185,11 @@ Public Class frmAbrechnungsMaske Dim dgv As VERAG_PROG_ALLGEMEIN.MyDatagridview = getDGV() Dim reNrSQL As String = "" - If cbx.Checked Then reNrSQL = " isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr, " + If cbx.Checked Then + reNrSQL = " isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr,cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, " + Else + reNrSQL = " cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, " + End If With dgv @@ -221,25 +229,37 @@ Public Class frmAbrechnungsMaske .Columns("BelegartenKz").Visible = False .Columns("PosNr").HeaderText = "Pos-Nr." - If cbx.Checked Then .Columns("ReNr").HeaderText = "ReNr." - - .Columns("UnterNr").Width = 35 - .Columns("Art").Width = 30 - .Columns("Betrag").Width = 100 - .Columns("Rechnungsempfänger").MinimumWidth = 150 - .Columns("Rechnungsempfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - - If Not cbxGutschriftenAnVerag.Checked Then - .Columns("Rechnungsdruck").Width = 60 - .Columns("Rechnungsdruck").HeaderText = "Rg.Art" - .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter + If .Columns.Contains("ReNr") Then + .Columns("ReNr").HeaderText = "ReNr." End If + If .Columns.Contains("AUTO_sent") Then + .Columns("AUTO_sent").HeaderText = "gesen." + .Columns("AUTO_sent").Width = 40 + If cboRechnungsdruck._value <> "6" Then + .Columns("AUTO_sent").Visible = False + Else + .Columns("AUTO_sent").Visible = True + End If + End If - .Columns("Betrag").DefaultCellStyle.Format = "C2" - End If + .Columns("UnterNr").Width = 35 + .Columns("Art").Width = 30 + .Columns("Betrag").Width = 100 + .Columns("Rechnungsempfänger").MinimumWidth = 150 + .Columns("Rechnungsempfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - If cboFirma._value <> "" AndAlso cboFirma._value = "19" Then + If Not cbxGutschriftenAnVerag.Checked Then + .Columns("Rechnungsdruck").Width = 60 + .Columns("Rechnungsdruck").HeaderText = "Rg.Art" + .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter + End If + + + .Columns("Betrag").DefaultCellStyle.Format = "C2" + End If + + If cboFirma._value <> "" AndAlso cboFirma._value = "19" Then For Each r In .Rows @@ -269,15 +289,19 @@ Public Class frmAbrechnungsMaske Function getRGWhere(filterSR As String, Optional filialenNr As Integer = -1) Dim sqlstr = "" Dim srchSB = "" ' "NÖBAUER ANJA" 'VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + + Dim enableAUTOMAIL As Boolean = True + Dim enableAUTOMAIL_BTN As Boolean = False + srchSB = cboSachbearbeiter._value If cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" AndAlso cboFirma._value = 24 Then Return sqlstr Select Case filterSR Case "ER" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (0) " - Case "SR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (0,6) " - Case "MSR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (6) " - Case Else : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (6) " + Case "SR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (0,6) " : enableAUTOMAIL = False + Case "MSR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (6) " : enableAUTOMAIL = False + Case Else : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (6) " : enableAUTOMAIL = False End Select @@ -287,6 +311,7 @@ Public Class frmAbrechnungsMaske If cbx.Checked Then + enableAUTOMAIL = False 'sqlstr &= " AND Status = 0 " sqlstr &= " AND DruckDatumZeit BETWEEN '" & txtAbfertDat._value & " 00:00:00' AND '" & txtAbfertDatBis._value & " 23:59:59'" sqlstr &= IIf(filterSR = "MSR", " And (Status = 4)", "") @@ -303,14 +328,22 @@ Public Class frmAbrechnungsMaske End If If cboRechnungsdruck._value <> "" Then - sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' " + Select Case cboRechnungsdruck._value + Case 6 : sqlstr &= " And isnull(Automailversand,0)=1 " : enableAUTOMAIL_BTN = True + Case 2, 5 : sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' " + Case Else + sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' " : enableAUTOMAIL = False + End Select + Else + enableAUTOMAIL = False End If If srchSB <> "" Then sqlstr &= " And Rechnungsausgang.Sachbearbeiter='" & srchSB & "' " If cboFirma._value <> "" Then sqlstr &= " AND Rechnungsausgang.Firma_ID=" & cboFirma._value & " " If KdSearchBox1.KdNr_value > 0 Then sqlstr &= " AND Rechnungsausgang.RechnungsKundenNr=" & KdSearchBox1.KdNr_value & " " - + UsrCntlFaktAbrechnung1.cbxAUTOMailversand.Enabled = enableAUTOMAIL + btn_doMailAutoversand.Visible = enableAUTOMAIL_BTN AndAlso enableAUTOMAIL ' sqlstr &= " AND (SteuerpflichtigerGesamtbetrag<>0 OR SteuerfreierGesamtbetrag<>0)" Return sqlstr @@ -930,4 +963,29 @@ Public Class frmAbrechnungsMaske Process.Start(webAddress) End Sub + Private Sub btn_doMailAutoversand_Click(sender As Object, e As EventArgs) Handles btn_doMailAutoversand.Click + + + If dgvRechnungen.SelectedRows.Count > 0 Then + + If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub + + Dim ListOfRK_ID As New List(Of Integer) + + For Each row As DataGridViewRow In dgvRechnungen.SelectedRows + + If Not IsDBNull(row.Cells("RK_ID").Value) AndAlso IsNumeric(row.Cells("RK_ID").Value) Then + ListOfRK_ID.Add(CInt(row.Cells("RK_ID").Value)) + End If + + Next + + Dim fun As New cAutomailversand + fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cboSachbearbeiter._value, ListOfRK_ID) + initDGV() + + End If + + + End Sub End Class \ No newline at end of file diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 11875af0..97089548 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -723,11 +723,6 @@ Public Class frmFaktEmail Exit Sub End If - 'If Not RECHNUNG.checkRechnungsNrIsSet() Then - ' MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") - ' Exit Sub - 'End If - RechnungsNr = RECHNUNG.RechnungsNr If cbxRgKopieDrucken.Checked Then diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 39617ca5..e4ea1ba7 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -665,7 +665,7 @@ Public Class frmFaktSammelRgDrucken Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If MyDatagridview1.SelectedRows.Count > 0 Then - If vbYes = MsgBox("Möchten Sie alle markieren Rechnungen den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then + If cAutomailversand.automRechnungsversand_aktivieren() Then Dim noRENRExisting As Boolean = False @@ -727,7 +727,8 @@ Public Class frmFaktSammelRgDrucken Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click If MyDatagridview1.SelectedRows.Count > 0 Then - If vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand deaktiveren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then + + If cAutomailversand.automRechnungsversand_deaktivieren() Then 'setMailversand(false, Firma, Sammelrechung, 2) setMailversand_ALL(False, Firma, Sammelrechung, 2) @@ -735,6 +736,7 @@ Public Class frmFaktSammelRgDrucken End If End If + End Sub Private Function setMailversand(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean @@ -895,6 +897,30 @@ Public Class frmFaktSammelRgDrucken End If + End Sub + + Private Sub mnuItem_Clicked(sender As Object, e As EventArgs) + + + ContextMenuStrip1.Hide() + Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem) + + If item IsNot Nothing Then + + If item.Name <> "" AndAlso IsNumeric(item.Name) Then + + Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name) + f.Show(Me) + + + End If + + Else + MsgBox("Funktion nicht implementiert!") + End If + + + End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click @@ -909,10 +935,10 @@ Public Class frmFaktSammelRgDrucken If MyDatagridview1.SelectedRows.Count > 0 Then - If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub + If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub - Dim fun As New cAutomailversand For Each r In MyDatagridview1.SelectedRows + Dim fun As New cAutomailversand fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked) Next @@ -923,9 +949,7 @@ Public Class frmFaktSammelRgDrucken End Sub - Private Sub mnuItem_Clicked(sender As Object, e As EventArgs) - End Sub Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 1b3119dd..ba6c7c42 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -1,7 +1,4 @@ -Imports System.Data.SqlClient -Imports System.IO -Imports System.Web.UI.WebControls.Expressions -Imports com.sun.xml.internal.rngom +Imports System.Web.UI.WebControls.Expressions Imports VERAG_PROG_ALLGEMEIN Public Class usrCntlFaktAbrechnung @@ -348,6 +345,7 @@ Public Class usrCntlFaktAbrechnung Button2.Enabled = (RECHNUNG.Status = 0) btnOK.Enabled = (RECHNUNG.Status = 0) + If RECHNUNG.Status <> 0 Then cbxAUTOMailversand.Enabled = False 'RECHNUNG.OffertenNr = OfferteNrTmp ' RECHNUNG.OffertenNr = OfferteNrTmp @@ -3513,6 +3511,43 @@ Public Class usrCntlFaktAbrechnung If Not checkUIDNR() Then Exit Sub + If RECHNUNG.Sammelrechnung = 0 Then 'nur bei ER + If cbxAUTOMailversand.Checked AndAlso Not RECHNUNG.Automailversand Then + If cAutomailversand.automRechnungsversand_aktivieren(RECHNUNG.Sammelrechnung = 0) Then + + If RECHNUNG.RechnungsDatum Is Nothing Then + + 'LAUT AUSSAGE VON VERR. IMMER HEUTIGES DATUM! + RECHNUNG.RechnungsDatum = Today() + 'If Not cFakturierung.getRgDatInput("", RECHNUNG.[RechnungsDatum]) Then 'Now.ToShortDateString + ' cbxAUTOMailversand.Checked = False + ' Exit Sub + 'End If + End If + + RECHNUNG.Automailversand = True + + Else + cbxAUTOMailversand.Checked = False + End If + + ElseIf Not cbxAUTOMailversand.Checked AndAlso RECHNUNG.Automailversand Then + If cAutomailversand.automRechnungsversand_deaktivieren(RECHNUNG.Sammelrechnung = 0) Then + + If Not RECHNUNG.RechnungsDatum Is Nothing Then + RECHNUNG.RechnungsDatum = Nothing + End If + + + RECHNUNG.Automailversand = False + Else + cbxAUTOMailversand.Checked = True + End If + + End If + End If + + saveMe() End Sub diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb index 059eaa1e..82e4b4e6 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb @@ -119,10 +119,10 @@ Public Class cRechnungsausgang Property TextZZ As Object = Nothing Property ForceSteuerschlüssel As Object = Nothing Property Automailversand As Boolean = False - Property Rechnungsart As String = "RG" ' RG=Rechnung; RU=Rechnung Unvollständig; RK=RechnungKopf -> bei unvollständiger Rechnung ein Kopf benötigt (zB Staffelabrechnung) - Property Vorlageprovision_Mindestbetrag As Object = Nothing + Property Automailversand_sent As Object = Nothing + Property dsId As Object = Nothing @@ -371,6 +371,7 @@ Public Class cRechnungsausgang list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsart", Rechnungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorlageprovision_Mindestbetrag", Vorlageprovision_Mindestbetrag)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dsId", dsId)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Automailversand_sent", Automailversand_sent)) Return list End Function