Imports System.IO Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Public Class cAutomailversand Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "") Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL 'BEI SAMMELRECHNUNG WIRD ZUERST INTERN DER STATUS AUF 2 GESETZT 'STATUS 0-_> Rechnung angelegt 'STATUS 1-_> Einzel-Rg gedruckt 'STATUS 2-_> Anlagen zur Rg gedruckt 'STATUS 3-_> Sammel-Rg gedruckt 'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel?? 'NUR STATUS 2 -> d.b. Rechnungsdatum + RechnungsNr vergeben! Dim rechnungenMailversand = "" Select Case SammelrechungArt Case 6 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.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" Case Else rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, tblKundenErweitert.kde_SR_IM_EX 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.Automailversand_sent is null And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & _Rechnungsdatum.ToShortDateString & "' and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & " GROUP BY RechnungsNr, RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX ORDER BY RechnungsLandKz, RechnungsKundenNr" End Select Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL") Dim MDMKopiedrucken As Boolean = False Dim IM_EX As Boolean = False For Each row As DataRow In dt.Rows Dim BelegartenNr = "70" Dim steuerbetrag As Double = 0 Dim SR_DT As DataTable = Nothing Dim RechnungsNr As Integer = -1 Dim DruckDatumZeit As DateTime Dim Rechnungsdatum = Nothing Dim ATTACHMENTS As New List(Of cFakt_MailATTach) If FirmaID = 19 AndAlso SammelrechungArt = 6 Then 'AKTUELL IMMER MIT KOPIE MDMKopiedrucken = True Dim isEU As Boolean = row.Item("MitgliedslandEU") If isEU Then If row.Item("keineMWST") Then '1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail! MDMKopiedrucken = Not row.Item("keineMWST") End If '2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail! If MDMKopiedrucken Then MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0 End If Else 'immer KOPIE weil Ausdruck aktuell noch gesendet! End If Else IM_EX = row.Item("kde_SR_IM_EX") End If Dim LoopForSR = 1 If IM_EX Then LoopForSR = 2 For i = 1 To LoopForSR Dim AbfertigungsNr As String = "" If IM_EX Then AbfertigungsNr = getAbertigungsNr(i) End If SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),,,, AbfertigungsNr, True) If SR_DT.Rows.Count = 0 Then Continue For Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr")) Dim KDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(row.Item("RechnungsKundenNr")) Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr")) If RechnungsNr = -1 Then If SR_DT.Rows.Count > 0 Then Dim displayView = New DataView(SR_DT, "RechnungsNr is not null", "RechnungsNr", DataViewRowState.CurrentRows) Dim distinctDT_SR As DataTable = displayView.ToTable(True, "RechnungsNr", "DruckDatumZeit", "Rechnungsdatum") If distinctDT_SR.Rows.Count = 1 Then RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr") DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit") Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum") BelegartenNr = SR_DT.Rows(0)("BelegartenNr") For Each r In SR_DT.Rows steuerbetrag += r("steuerpflichtigerGesamtbetrag") If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For Next End If End If End If Dim SR As Boolean = True Dim MailTo As String = "" Dim MailtoCC As String = "" Dim MailtoBCC As String = "" setEmpfaengerMail_SR(SR_DT, AD, MailTo, MailtoCC, MailtoBCC, FirmaID, SammelrechungArt) 'im TESTSYSTEM bewusst die Empfänger leeren! If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MailTo = "" MailtoCC = "" MailtoBCC = setAccountToSend(FirmaID) Else MailtoBCC = setAccountToSend(FirmaID) End If If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then Dim Mailsubject As String = "" Dim HTMLMail As String = "" Dim listPDFs As New List(Of String) Dim showError As Boolean = False showError = mailoeffnen 'bei MailÖffnen fehler anzeigen! setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr) If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then loadAndSetAnhaenge_new(SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf) If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" If mailoeffnen Then Dim Mail = createMail(Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID) If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum,,,,,,, Mail) Then Mail.Display() End If Else Dim TextHTML = "" TextHTML &= HTMLMail TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True) HTMLMail = "
" & TextHTML & "
" If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then End If End If End If End If Next 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,,,,,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", "mmdabrechnung@verag.ag")) End Try End Sub Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True) Dim sql As New VERAG_PROG_ALLGEMEIN.SQL 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 'STATUS 0-_> Rechnung angelegt 'STATUS 1-_> Einzel-Rg gedruckt 'STATUS 2-_> Anlagen zur Rg gedruckt 'STATUS 3-_> Sammel-Rg gedruckt 'STATUS 4-_> ? irgendwas mit SR 6 Maut/Diesel?? 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 (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 For Each r In dt.Rows Dim MailTo As String = "" Dim MailtoCC As String = "" Dim MailtoBCC As String = "" Dim FISKAL As cFiskal_Daten = Nothing Dim AD As New cAdressen(r.Item("RechnungsKundenNr")) Dim KDE_ERW As New cKundenErweitert(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.SpeditionsbuchUnterNr) FISKAL = New cFiskal_Daten(r.Item("RechnungsKundenNr")) setEmpfaengerMail_ER(SPEDBUCH, AD, MailTo, MailtoCC, MailtoBCC, "") If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MailTo = "" MailtoCC = "" MailtoBCC = setAccountToSend(FirmaID) Else MailtoBCC = setAccountToSend(FirmaID) End If If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then Dim pathRG As String Dim Rechnungsdruck As Integer = 4 'gibt nur PDF-Pfad zurück! If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, Rechnungsdruck, pathRG,, True) Then Continue For End If Dim listPDFs As New List(Of String) 'EINZELBELEG ANFÜGEN If pathRG <> "" Then listPDFs.Add(pathRG) End If Dim Mailsubject As String = "" Dim HTMLMail As String = "" setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr, SPEDBUCH, RECHNUNG) loadAndSetAnhaenge_new(dt, ATTACHMENTS, listPDFs, RECHNUNG, SPEDBUCH, KDE_ERW.kde_merge_pdf) 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, FISKAL, SPEDBUCH) 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,,, "d.breimaier@verag.ag",,, setAccountToSend(FirmaID)) End Try 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, 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 = 0 Then 'EINZELRECHNUNGEN 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") 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 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 ElseIf SammelrechungArt <> 0 Then 'SAMMELRECHNUNGEN Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", 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", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz") : belegtyp = If(BelegartenNr = 71, "Kredi", "Fatura") Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE" : belegtyp = If(BelegartenNr = 71, "Gutschrift", "Rechnung") Case "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("%BelegNr%", txtRgNr) Subject = Subject.Replace("%Belegtyp%", belegtyp) TextHTML &= r.txt_text If Mailtext <> "" Then TextHTML &= Mailtext TextHTML &= vbNewLine & vbNewLine TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp) End If End If End If End Sub Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True, Optional AbfertigungsArt As String = "", Optional faktGruppe As String = "") Dim RechnungsNrisSet As Boolean = False RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError) Return RechnungsNrisSet End Function Private Function createMail(Mailsubject As String, Mailhtml As String, ATTACHMENTS As List(Of cFakt_MailATTach), MailTo As String, MailtoCC As String, MailtoBCC As String, FirmaID As Integer) As Microsoft.Office.Interop.Outlook.MailItem Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Mail.Subject = Mailsubject Dim TextHTML = "" TextHTML &= Mailhtml TextHTML &= "
" TextHTML &= "
" TextHTML &= "Mit freundlichen Grüßen
" TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" TextHTML &= "
" TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True) Mail.HTMLBody = "
" & TextHTML & "
" Mail.To = MailTo Mail.BCC = MailtoBCC Mail.CC = MailtoCC For Each att In ATTACHMENTS If att.Pfad.ToString.ToLower.EndsWith("maut_at.pdf") Or att.Pfad.ToString.ToLower.EndsWith("maut_uta.pdf") Or att.Pfad.ToString.ToLower.EndsWith("maut_mse.pdf") Then 'diese Anh. nicht mitanfügen! Else If att.Pfad <> "" Then Mail.Attachments.Add(att.Pfad, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , att.MailName) End If Next Return Mail Catch End Try End Function Private Sub loadAndSetAnhaenge_new(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing, Optional mergeAllPDFS As Boolean = False) Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Anhang.pdf", ".pdf",, False, "Zusammenfassung") '==================================================== ' EINZELRECHNUNG '==================================================== If RECHNUNG IsNot Nothing Then Dim mergeList As New List(Of String) ' Beleg Dim belegName = If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf") For Each pdf In listPDFs ATTACHMENTS.Add(New cFakt_MailATTach(pdf, belegName)) Next ' Rechnungsanhänge RECHNUNG.LOAD_ANHAENGE() For Each anh In RECHNUNG.ANHAENGE HandlePdf(anh.dsId, anh.Bezeichnung, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False, mergeList, ATTACHMENTS) Next ' Zoll-Unterlagen LoadZollAttachments(SPEDBUCH, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False, mergeList, ATTACHMENTS) ' Zusammenfassung erzeugen AddMergedPdf(mergeList, zielPfad_PDFZusammenfassung, ATTACHMENTS) ' Beleg + Anhänge zusammenführen If mergeAllPDFS AndAlso ATTACHMENTS.Count > 1 Then Dim prefix = If(RECHNUNG.BelegartenKz = "AR", "Rechnungs", "Gutschrifts") Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix & "anhang.pdf", ".pdf",, False, "Zusammenfassung") Dim pdfs As New List(Of String) pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList() If FormularManagerNEU.MergePdfFiles(pdfs, zielPfad) Then ATTACHMENTS.Clear() ATTACHMENTS.Add(New cFakt_MailATTach(zielPfad, "")) End If End If Return End If '==================================================== ' SAMMELRECHNUNG '==================================================== If SR_DT Is Nothing OrElse SR_DT.Rows.Count = 0 Then Return Dim mergeListSR As New List(Of String)(listPDFs) ' Zoll-Unterlagen For Each row As DataRow In SR_DT.Rows Dim spedbuchTemp As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(row("FilialenNr"), row("AbfertigungsNr"), row("SpeditionsbuchUnterNr")) Dim filialenNr = If(IsDBNull(row("FilialenNr")), 0, CInt(row("FilialenNr"))) Dim firmaId = If(IsDBNull(row("Firma_ID")), 0, CInt(row("Firma_ID"))) LoadZollAttachments(spedbuchTemp, filialenNr, firmaId, True, mergeListSR, ATTACHMENTS) Next ' Rechnungsanhänge For Each row As DataRow In SR_DT.Rows Dim filialenNr = If(IsDBNull(row("FilialenNr")), 0, CInt(row("FilialenNr"))) Dim firmaId = If(IsDBNull(row("Firma_ID")), 0, CInt(row("Firma_ID"))) Dim anhaenge = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(row("RK_ID")) If anhaenge Is Nothing Then Continue For For Each anh In anhaenge HandlePdf(anh.dsId, anh.Bezeichnung, filialenNr, firmaId, True, mergeListSR, ATTACHMENTS) Next Next ' Zusammenfassung erzeugen AddMergedPdf(mergeListSR, zielPfad_PDFZusammenfassung, ATTACHMENTS) End Sub 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, Optional mergeAllPDFS As Boolean = False) '---- Zusammenfassung der PDFs in 3 Schritten: '1--> Beleg '2--> Anhänge der Rechnung '3--> Zoll-Anhänge aus SPED-BUCH Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment.pdf", ".pdf",, False, "Zusammenfassung") Dim pdfAnhang_merge As Boolean = False '----------------------------------------------------------------- EINZELRECHNUNGEN------------------------------------------------ If RECHNUNG IsNot Nothing Then '1--> Beleg For Each l In listPDFs ATTACHMENTS.Add(New cFakt_MailATTach(l, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf"))) Next '2--> Anhänge der Rechnung Dim zsmf_ER As New List(Of String) RECHNUNG.LOAD_ANHAENGE() For Each ANH In RECHNUNG.ANHAENGE Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False) If pdfAnhang_merge 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 '3--> Zoll-Anhänge aus SPED-BUCH If SPEDBUCH IsNot Nothing Then Dim ZOLL = IIf(SPEDBUCH.DokumentId_Mitteilung IsNot Nothing, "AT", "DE") Select Case ZOLL Case "DE" If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg) pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False) If pdfAnhang_merge Then zsmf_ER.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Steuerbescheid.pdf")) End If End If If SPEDBUCH.DokumentId_VBD IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD) pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False) If pdfAnhang_merge Then zsmf_ER.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Abgabenbescheid.pdf")) End If End If Case "AT" If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg) pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False) If pdfAnhang_merge Then zsmf_ER.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Verzollungsnachweis.pdf")) End If End If If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung) pdfAnhang_merge = mergeSinglePDFDocuments(path, RECHNUNG.FilialenNr, RECHNUNG.Firma_ID, False) If pdfAnhang_merge Then zsmf_ER.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Versandschein.pdf")) End If End If End Select End If If zsmf_ER.Any() Then If zsmf_ER.Count = 1 Then Dim fileInfo As New FileInfo(zsmf_ER(0)) ATTACHMENTS.Add(New cFakt_MailATTach(zsmf_ER(0), fileInfo.Name)) Else 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 End If If mergeAllPDFS Then 'also Beleg + Anhänge in Beleg Dim Anhangsbezeichnung = If(RECHNUNG.BelegartenKz = "AR", "Invoice_", "Credit_Note_") Dim zielPfadZusammenfassung2 = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Anhangsbezeichnung & "Attachment.pdf", ".pdf",, False, "Zusammenfassung") If ATTACHMENTS.Count > 1 Then Dim myList As New List(Of String) For Each a In ATTACHMENTS myList.Add(a.Pfad) Next If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung2) Then ATTACHMENTS.Clear() : ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung2, "")) End If End If End If Else '----------------------------------------------------------------- SAMMELRECHNUNGEN------------------------------------------------ If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then 'ATTACHMENTS.Clear() Dim zsmf_SR As New List(Of String) For Each l In listPDFs zsmf_SR.Add(l) Next For Each r In SR_DT.Rows Dim SPEDBUCH_TEMP As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(r("FilialenNr"), r("AbfertigungsNr"), r("SpeditionsbuchUnterNr")) 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 SPEDBUCH_TEMP IsNot Nothing Then Dim ZOLL = IIf(SPEDBUCH_TEMP.DokumentId_Mitteilung IsNot Nothing, "AT", "DE") Select Case ZOLL Case "DE" If SPEDBUCH_TEMP.DokumentId_Steuerbeleg IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Steuerbeleg) pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False) If pdfAnhang_merge Then zsmf_SR.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Steuerbescheid.pdf")) End If End If If SPEDBUCH_TEMP.DokumentId_VBD IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_VBD) pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False) If pdfAnhang_merge Then zsmf_SR.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Abgabenbescheid.pdf")) End If End If Case "AT" If SPEDBUCH_TEMP.DokumentId_Steuerbeleg IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Steuerbeleg) pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False) If pdfAnhang_merge Then zsmf_SR.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Verzollungsnachweis.pdf")) End If End If If SPEDBUCH_TEMP.DokumentId_Mitteilung IsNot Nothing Then Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH_TEMP.DokumentId_Mitteilung) pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, False) If pdfAnhang_merge Then zsmf_SR.Add(path) Else ATTACHMENTS.Add(New cFakt_MailATTach(path, "Versandschein.pdf")) End If End If End Select End If Next 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) For Each ANH In RG_ANH Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) 'hier die LOGIK, was alles zusammengefasst werden soll! pdfAnhang_merge = mergeSinglePDFDocuments(path, FilialenNr, FIRMA_ID, True) If pdfAnhang_merge 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 End If Next End If Next If zsmf_SR.Any() Then If zsmf_SR.Count = 1 Then Dim fileInfo As New FileInfo(zsmf_SR(0)) ATTACHMENTS.Add(New cFakt_MailATTach(zsmf_SR(0), fileInfo.Name)) Else 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 'nicht bei SR! 'If mergeAllPDFS Then 'also Beleg + Anhänge in Beleg ' Dim Anhangsbezeichnung = "SR_" ' Dim zielPfadZusammenfassung2 = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Anhangsbezeichnung & "Attachment.pdf", ".pdf",, False, "Zusammenfassung") ' If ATTACHMENTS.Count > 1 Then ' Dim myList As New List(Of String) ' For Each a In ATTACHMENTS ' myList.Add(a.Pfad) ' Next ' If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung2) Then ' ATTACHMENTS.Clear() : ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung2, "")) ' End If ' End If 'End If End If End If End Sub Private Function mergeSinglePDFDocuments(path As String, Filiale As Integer, Firma As Integer, isSR As Boolean) Dim zusammenfassen As Boolean = False 'True ' → mergeList ' → später zu einer PDF zusammenführen 'False ' → sofort als separates Mail-Attachment 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 1 If Not isSR Then Return True Else 'mit Marlene sprechen! If Not (path.ToString.ToLower.Contains("flyercbam") OrElse Not (path.ToString.ToLower.Contains("sammelrechnung"))) Then Return True End If End If Case 20 If Not isSR Then Return True Else 'mit ÜMMÜ sprechen! If Not (path.ToString.ToLower.Contains("flyercbam") OrElse Not (path.ToString.ToLower.Contains("sammelrechnung"))) Then Return True End If End If Case 11 If Not isSR Then Return True Else 'mit WIESNER sprechen! If Not (path.ToString.ToLower.Contains("flyercbam") OrElse Not (path.ToString.ToLower.Contains("sammelrechnung"))) Then Return True End If End If Case 7 Return False End Select Return zusammenfassen End Function Private Sub AddToMergeList(list As List(Of String), path As String) If String.IsNullOrWhiteSpace(path) Then Return If Not list.Any(Function(p) System.IO.Path.GetFileName(p).Equals(System.IO.Path.GetFileName(path), StringComparison.OrdinalIgnoreCase)) Then list.Add(path) End If End Sub Private Sub AddAttachmentIfNotExists(attachments As List(Of cFakt_MailATTach), path As String, bezeichnung As String) If String.IsNullOrWhiteSpace(path) Then Return Dim fileName = System.IO.Path.GetFileName(path) If Not attachments.Any(Function(a) System.IO.Path.GetFileName(a.Pfad).Equals(fileName, StringComparison.OrdinalIgnoreCase)) Then attachments.Add(New cFakt_MailATTach(path, bezeichnung)) End If End Sub Private Sub HandlePdf(docId As Object, displayName As String, filiale As Integer, firma As Integer, isSR As Boolean, mergeList As List(Of String), attachments As List(Of cFakt_MailATTach)) If docId Is Nothing Then Return Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(docId) If mergeSinglePDFDocuments(path, filiale, firma, isSR) Then AddToMergeList(mergeList, path) Else AddAttachmentIfNotExists(attachments, path, displayName) End If End Sub Private Sub LoadZollAttachments(spedbuch As cSpeditionsbuch, filiale As Integer, firma As Integer, isSR As Boolean, mergeList As List(Of String), attachments As List(Of cFakt_MailATTach), Optional FiskalMail As Boolean = False) If spedbuch Is Nothing Then Return Dim isAT = spedbuch.DokumentId_Mitteilung IsNot Nothing If FiskalMail Then attachments.Clear() 'liste leeren End If If isAT Then HandlePdf(spedbuch.DokumentId_Steuerbeleg, "Verzollungsnachweis.pdf", filiale, firma, isSR, mergeList, attachments) HandlePdf(spedbuch.DokumentId_Mitteilung, "Versandschein.pdf", filiale, firma, isSR, mergeList, attachments) Else HandlePdf(spedbuch.DokumentId_Steuerbeleg, "Steuerbescheid.pdf", filiale, firma, isSR, mergeList, attachments) If Not FiskalMail Then 'bei FIskal-Mail nicht mitschicken HandlePdf(spedbuch.DokumentId_VBD, "Abgabenbescheid.pdf", filiale, firma, isSR, mergeList, attachments) End If End If End Sub Private Sub AddMergedPdf(mergeList As List(Of String), zielPfad As String, attachments As List(Of cFakt_MailATTach)) If Not mergeList.Any Then Return If mergeList.Count = 1 Then Dim fi As New FileInfo(mergeList(0)) attachments.Add(New cFakt_MailATTach(mergeList(0), fi.Name)) Return End If If FormularManagerNEU.MergePdfFiles(mergeList, zielPfad) Then Dim fi As New FileInfo(zielPfad) attachments.Add(New cFakt_MailATTach(zielPfad, fi.Name)) 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, Optional RECHNUNG As cRechnungsausgang = Nothing, Optional FISKAL As cFiskal_Daten = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing) As Boolean Dim accountToSend = setAccountToSend(FirmaID) Dim mailcreated As Boolean = False Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim EMails As String = "" Dim EMails_CC As String = "" Dim EMails_BCC As String = "" Dim EMail_subject As String = "" Dim EMail_HTML As String = "" Dim AttCount As Integer = 0 If Mail IsNot Nothing Then EMails = Mail.To EMails_CC = Mail.CC EMails_BCC = accountToSend 'Mail.BCC EMail_subject = Mail.Subject EMail_HTML = Mail.Body AttCount = Mail.Attachments.Count Else EMails = MailTo EMails_CC = MailtoCC EMails_BCC = accountToSend 'MailtoBCC EMail_subject = Mailsubject EMail_HTML = Mailhtml If ATTACHMENTS Is Nothing Then AttCount = 0 Else AttCount = ATTACHMENTS.Count End If End If Dim AbfertigungsNr As Integer Dim FilialenNr As Integer Dim UnterNr As Integer 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) UnterNr = IIf(Not IsDBNull(r.Item("SpeditionsbuchUnterNr")) AndAlso IsNumeric(r.Item("SpeditionsbuchUnterNr")), CInt(r.Item("SpeditionsbuchUnterNr")), 0) Next End If End If Dim cAPIID = -1 Dim bezAPI As String = "" Select Case Sammelrechnungsart Case 0 cAPIID = VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_EINZELRECHNUNG bezAPI = "EINZELRECHNUNG_" & FirmaID Case 6 cAPIID = VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG bezAPI = "MDM_SAMMELRECHNUNG_" & FirmaID Case Else cAPIID = VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_SAMMELRECHNUNG bezAPI = "SAMMELRECHNUNG_" & FirmaID End Select Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, cAPIID, bezAPI,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr) API.api_EMail = EMails API.api_EMailCC = EMails_CC API.api_EMailBCC = EMails_BCC API.api_EMailSubject = EMail_subject API.api_EMailText = EMail_HTML API.api_EMailAttCnt = AttCount 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 Dim attachList As New List(Of String) If ATTACHMENTS IsNot Nothing Then For Each ATT As cFakt_MailATTach In ATTACHMENTS If ATT.Pfad.ToString.ToLower.EndsWith("maut_at.pdf") Or ATT.Pfad.ToString.ToLower.EndsWith("maut_uta.pdf") Or ATT.Pfad.ToString.ToLower.EndsWith("maut_mse.pdf") Then 'diese Anh. nicht mitanfügen! Else attachList.Add(ATT.Pfad) End If Next End If 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() '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 Private Function setAccountToSend(FIRMA_ID) As String Dim accountToSend = "" 'ev aus tabelle TBLFIRMA ziehen??! allerdings IMEX nicht korrekt! -> abklären Select Case FIRMA_ID Case 24 accountToSend = SDL.cFakturierung.getDefaultMail("AMBAR",, True) Case 19 accountToSend = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!! Case 7 accountToSend = "rechnung@atilla-spedition.com" Case 20 accountToSend = "finanz@imex-group.at" Case 11 accountToSend = "versand@verag.com" Case 26 accountToSend = "Invoice@verag-unisped.uk" Case Else accountToSend = "rechnungsversand@verag.ag" End Select Return accountToSend End Function Function addRgData_ZF_Passau(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String ' NUR EINZELRECHNUNG addRgData_ZF_Passau = vbNewLine & vbNewLine Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung Select Case RechnungsLandKz Case "TR" addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If Case "A", "AT", "D", "DE", "CH" addRgData_ZF_Passau &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_ZF_Passau &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_ZF_Passau &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If Case Else addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If End Select ' addRgData_ZF_Passau = RichTextBox.Text.Replace("Mit freundlichen Grüßen", "") End Function Function addRgData_Parsan(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String 'NUR EINZELRECHNUNG addRgData_Parsan = vbNewLine & vbNewLine Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung Select Case RechnungsLandKz Case "TR" ' addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If Case "A", "AT", "D", "DE", "CH" ' addRgData_Parsan &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_Parsan &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_Parsan &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If Case Else 'addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine End If End Select 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 markierten 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 markierten 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, Optional printAfterSent As Boolean = False) Dim RE_Text = "" If isEinzelrechnung Then RE_Text = "diese Rechnung" Else RE_Text = "alle markierten Rechnungen" End If If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand JETZT durchführen?" & IIf(printAfterSent, vbNewLine & "Die Rechnungen werden nach dem verschicken ausgedruckt!", "") & 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 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) 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) ''----------------------------------------------------------------- LoadZollAttachments(SPEDBUCH, SPEDBUCH.FilialenNr, FirmaID, False, attachList, Nothing, True) For Each att In attachList Mail_StbFA.Attachments.Add(att, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue) Next Mail_StbFA.Display() Else LoadZollAttachments(SPEDBUCH, SPEDBUCH.FilialenNr, FirmaID, False, attachList, Nothing, True) 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(ByRef SPEDBUCH As cSpeditionsbuch, ByRef AD As cAdressen, ByRef EMAILTMP As String, ByRef EMAILTMPCC As String, ByRef EMAILTMPBCC As String, ByRef email_receipt As String) If SPEDBUCH.FilialenNr = "4801" Or SPEDBUCH.FilialenNr = "4802" Then email_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)") 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(ByRef SR_DT As DataTable, ByRef AD As cAdressen, ByRef EMAILTMP As String, ByRef EMAILTMPCC As String, ByRef EMAILTMPBCC As String, ByRef FirmaID As Integer, ByRef 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 Private Function getAbertigungsNr(counter As Integer) As String Dim SQLWhere = "" If counter = 1 Then SQLWhere = "SELECT Abfertigungsart FROM [Abfertigungsarten] Where Typ = 'I'" Else SQLWhere = "SELECT Abfertigungsart FROM [Abfertigungsarten] Where Typ = 'E'" End If Return SQLWhere End Function End Class