Files
SDL/SDL/Fakturierung/cAutomailversand.vb

1674 lines
76 KiB
VB.net

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 = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
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 = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
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 &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True)
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
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 &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>UID-Nr.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Firma:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Sehr geehrte Damen & Herren!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "<br>"
TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "<br>"
TextHTML &= "<br>"
TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Freundliche Grüße"
TextHTML &= "<br><br>"
Case "EN"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>VAT-ID.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Company:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Dear Sir or Madam!" & "<br>"
TextHTML &= "<br>"
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).<br>"
TextHTML &= "The documents are attached." & "<br>"
TextHTML &= "<br>"
TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Yours faithfully,"
TextHTML &= "<br><br>"
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 &= "</div>"
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