diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb
index 9b3d3b15..5a6ae6a0 100644
--- a/SDL/Fakturierung/cAutomailversand.vb
+++ b/SDL/Fakturierung/cAutomailversand.vb
@@ -4,14 +4,16 @@ Imports VERAG_PROG_ALLGEMEIN
Public Class cAutomailversand
- Sub sendMailSammelrechnung(Sammelrechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
+ Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
Try
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
+ 'BEI SAMMELRECHNUNG WIRD ZUERST INTERN DER STATUS AUF 2 GESETZT
+
Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
- WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "'
+ WHERE Rechnungsausgang.Status IN (2) and Rechnungsausgang.Automailversand_sent is null And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & _Rechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -52,7 +54,7 @@ Public Class cAutomailversand
End If
- SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True)
+ SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True)
Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr"))
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
@@ -81,34 +83,8 @@ Public Class cAutomailversand
Dim MailtoCC As String = ""
Dim MailtoBCC As String = ""
- If SammelrechungArt <> 6 Then
-
- Dim email_receipt As String = ""
-
- Dim allAtilla = IIf(FirmaID = 7, True, False)
- If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
- For Each r In SR_DT.Rows
- If "4801" <> r("FilialenNr") And "4802" <> r("FilialenNr") Then
- allAtilla = False
- Exit For
- End If
- Next
- End If
-
- email_receipt = IIf(allAtilla, VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)"), "")
-
- MailTo = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
- MailtoCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
- MailtoBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
-
- Else
-
- If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then MailTo &= AD.E_Mail & ";"
- If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then MailTo &= AD.E_Mail2 & ";"
-
-
- End If
+ setEmpfaengerMail_SR(SR_DT, AD, MailTo, MailtoCC, MailtoBCC, FirmaID, SammelrechungArt)
'im TESTSYSTEM bewusst die Empfänger leeren!
@@ -148,7 +124,7 @@ Public Class cAutomailversand
TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True)
HTMLMail = "
" & TextHTML & "
"
- If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then
+ If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then
End If
@@ -166,17 +142,27 @@ Public Class cAutomailversand
End Sub
- Sub sendMailEinzelrechnungen(Rechnungsdatum As Date, FirmaID As Integer, Optional Sachbearbeiter As String = "", Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
+ Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True)
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
- Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
+ Dim SQL_RKID As String = ""
+
+ If RK_ID IsNot Nothing Then
+ If RK_ID.Count > 0 Then
+ SQL_RKID = " AND RK_ID IN (" & String.Join(",", RK_ID) & ")"
+ End If
+ End If
+
+ 'BEI EINZELRECHNUNG WIRD STATUS 0 und 2 geprüft
+
+ Dim rechnungenMailversand = "SELECT RK_ID,RechnungsKundenNr,Rechnungsausgang.VermittlerKundenNr,Rechnungsausgang.RechnungsLandKz,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.UnterNr, Rechnungsausgang.ErfassungsNr , Rechnungsausgang.SteuerpflichtigerGesamtbetrag AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
- WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
- and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
- GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
- ORDER BY RechnungsLandKz, RechnungsKundenNr"
+ WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) <= '" & Rechnungsdatum.ToShortDateString & "'
+ and isnull(Rechnungsausgang.Automailversand,0) = 1 AND Automailversand_sent IS NULL " & IIf(Sachbearbeiter <> "", " AND Sachbearbeiter = '" & Sachbearbeiter & "'", "") & SQL_RKID & "
+
+ ORDER BY RechnungsLandKz, RechnungsKundenNr, Rechnungsausgang.Rechnungsdatum"
Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL")
Try
@@ -187,6 +173,17 @@ Public Class cAutomailversand
Dim MailtoCC As String = ""
Dim MailtoBCC As String = ""
+ Dim FISKAL As cFiskal_Daten = Nothing
+
+
+ Dim AD As New cAdressen(r.Item("RechnungsKundenNr"))
+ Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
+ Dim RECHNUNG As New cRechnungsausgang(r.Item("RK_ID"))
+ Dim SPEDBUCH As New cSpeditionsbuch(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr, RECHNUNG.UnterNr)
+ FISKAL = New cFiskal_Daten(r.Item("RechnungsKundenNr"))
+
+
+ setEmpfaengerMail_ER(SPEDBUCH, AD, MailTo, MailtoCC, MailtoBCC, "")
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
@@ -196,12 +193,54 @@ Public Class cAutomailversand
MailtoBCC = setAccountToSend(FirmaID)
End If
+ If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then
+
+
+ Dim pathRG As String
+ If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, 4, pathRG,, True) Then
+ Continue For
+ End If
+
+ 'EINZELBELEG ANFÜGEN
+ If pathRG <> "" Then ATTACHMENTS.Add(New cFakt_MailATTach(pathRG, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf")))
+
+ Dim Mailsubject As String = ""
+ Dim HTMLMail As String = ""
+
+ Dim listPDFs As New List(Of String)
+ Dim showError As Boolean = False
+ setEmailText(r, FirmaID, RECHNUNG.RechnungsNr, Mailsubject, HTMLMail, RECHNUNG.Sammelrechnung, dt, RECHNUNG.BelegartenNr)
+
+ loadAndSetAnhaenge(dt, ATTACHMENTS, listPDFs, RECHNUNG)
+
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
+
+ If mailoeffnen Then
+ Dim Mail = createMail(Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID)
+ If setLog(dt, r, FirmaID, RECHNUNG.Sammelrechnung, Rechnungsdatum,,,,,,, Mail, RECHNUNG) Then
+ Mail.Display()
+ End If
+
+ Else
+
+ Dim TextHTML = ""
+ TextHTML &= HTMLMail
+ TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True)
+ HTMLMail = "" & TextHTML & "
"
+
+ If setLog(dt, r, FirmaID, RECHNUNG.Sammelrechnung, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,, RECHNUNG, FISKAL, SPEDBUCH) Then
+
+ End If
+
+ End If
+
+ End If
+
Next
Catch ex As System.Exception
- VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,,)
-
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,, "d.breimaier@verag.ag",,, setAccountToSend(FirmaID))
End Try
End Sub
@@ -212,14 +251,102 @@ Public Class cAutomailversand
Dim Mailtext As String
- If SammelrechungArt <> 6 Then
+ If SammelrechungArt <> 6 Then 'EINZELRECHNUNGEN - MDM oder ANDERE
- Subject = "VERAG Sammel-Rechnung"
- TextHTML &= getSammelRgTExt(getSelectionLandKz(dt), Firma_ID)
+
+ Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(1, "", Firma_ID)
+
+ Dim spracheRechnung As String = "EN" 'Defaultsprache
+ Dim belegtyp As String = If(BelegartenNr = 71, "credit note", "invoice")
+
+ Select Case row.Item("RechnungsLandKz")
+ Case "TR" : spracheRechnung = "TR" : spracheRechnung = row.Item("RechnungsLandKz") : belegtyp = If(BelegartenNr = 71, "Kredi", "Fatura")
+ Case "RO" : spracheRechnung = "RO" : spracheRechnung = row.Item("RechnungsLandKz") : belegtyp = If(BelegartenNr = 71, "nota de credit", "factura")
+ Case "DE", "A", "AT", "D", "CH" : spracheRechnung = "DE" : belegtyp = If(BelegartenNr = 71, "Gutschrift", "Rechnung")
+ Case "SRB", "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB" : belegtyp = If(BelegartenNr = 71, "credit note", "invoice") 'Belegarten auf Englisch!
+ End Select
+
+ If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
+
+ Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
+ If r IsNot Nothing Then
+ Subject = r.txt_betreff
+ Subject = Subject.Replace("%Belegtyp%", belegtyp)
+ Subject = Subject.Replace("%BelegNr%", txtRgNr)
+
+ TextHTML &= r.txt_text
+
+ TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp)
+
+ If Firma_ID = 19 Then
+
+ Dim KUNDE_ERW As New cKundenErweitert(row("RechnungsKundenNr"))
+
+ If row.Item("FilialenNr") = 4817 AndAlso row.Item("ErfassungsNr") IsNot Nothing Then
+ Dim SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(row.Item("FilialenNr"), row.Item("AbfertigungsNr"), row.Item("UnterNr"))
+ If SPEDBUCH.hasEntry AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then
+ Dim USTV_ANTRAG As New cUSTVAntrag(row.Item("ErfassungsNr"))
+
+ If row("VermittlerKundenNr") = 150000 Or row("VermittlerKundenNr") = 140000 Or row("VermittlerKundenNr").ToString.Substring(0, 2) = 18 Then
+
+ replaceKZ("nichtRMC", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%RMC:", "") : TextHTML = TextHTML.ToString.Replace("RMC%", "")
+
+ replaceKZ("KZ1", TextHTML)
+ replaceKZ("KZ4", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%", "")
+
+ Else
+
+ replaceKZ("RMC", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%nichtRMC:", "") : TextHTML = TextHTML.ToString.Replace("nichtRMC%", "")
+
+ If USTV_ANTRAG.UStVAn_Sicherheit Then
+ replaceKZ("KZ1", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%KZ4:", "") : TextHTML = TextHTML.ToString.Replace("%", "")
+
+ ElseIf KUNDE_ERW.kde_Erstattungsart = 4 Then
+ replaceKZ("KZ1", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%KZ4:", "") : TextHTML = TextHTML.ToString.Replace("%", "")
+
+ ElseIf KUNDE_ERW.kde_Erstattungsart = 1 Then
+ replaceKZ("KZ4", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%KZ1:", "") : TextHTML = TextHTML.ToString.Replace("%", "")
+
+ Else
+ replaceKZ("KZ1", TextHTML)
+ replaceKZ("KZ4", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%", "")
+ End If
+
+ End If
+
+ If Mailtext <> "" Then TextHTML &= Mailtext & vbNewLine
+
+
+ End If
+
+ Else
+ 'sonst alles weg!
+ replaceKZ("nichtRMC", TextHTML)
+ replaceKZ("RMC", TextHTML)
+ replaceKZ("KZ1", TextHTML)
+ replaceKZ("KZ4", TextHTML)
+ TextHTML = TextHTML.ToString.Replace("%", "")
+
+
+ End If
+
+ End If
+
+ End If
+
+ End If
- Else
+
+ ElseIf SammelrechungArt = 6 Then 'MDM-SAMMELRECHNUNGEN
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -310,68 +437,92 @@ Public Class cAutomailversand
End Function
- Private Sub loadAndSetAnhaenge(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String))
+ Private Sub loadAndSetAnhaenge(SR_DT As DataTable, ATTACHMENTS As List(Of cFakt_MailATTach), listPDFs As List(Of String), Optional RECHNUNG As cRechnungsausgang = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing)
- ATTACHMENTS.Clear()
- 'Rechnungsanhänge anfügen
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment", ".pdf",, False, "Zusammenfassung")
+ 'Rechnungsanhänge anfügen
For Each l In listPDFs
-
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
-
Next
- '-----------------------------------------------------------------
- If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
- Dim myList As New List(Of String)
+ If RECHNUNG IsNot Nothing Then
- For Each r As DataRow In SR_DT.Rows
- Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
- If RG_ANH IsNot Nothing Then
+ '----------------------------------------------------------------- EINZELRECHNUNGEN------------------------------------------------
- Dim FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0)
-
- If FilialenNr = 4817 Then 'diese immer zusammenfassen!
-
- For Each ANH In RG_ANH
-
- Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)
- If Not (path.ToString.ToLower.Contains("sammelrechnung") OrElse path.ToString.Contains("Maut") OrElse path.ToString.Contains("POS") OrElse path.ToString.ToLower.Contains("invoice") OrElse path.ToString.ToLower.Contains("rechnung")) Then
- If path <> "" Then myList.Add(path)
- Else
- ATTACHMENTS.Add(New cFakt_MailATTach(path, ANH.Bezeichnung))
- End If
-
- Next
- If myList.Any() Then
- If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung) Then
- Dim fileInfo As New FileInfo(zielPfadZusammenfassung)
- ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, fileInfo.Name))
- End If
- End If
- Else
- For Each ANH In RG_ANH
- ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
- Next
- End If
-
-
-
- End If
+ RECHNUNG.LOAD_ANHAENGE()
+ For Each ANH In RECHNUNG.ANHAENGE
+ ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
Next
+
+ If SPEDBUCH IsNot Nothing Then
+
+ If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Versandschein.pdf"))
+
+ 'AT
+ If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Abgabenbescheid.pdf"))
+ If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Verzollungsnachweis.pdf"))
+
+ 'DE
+ If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Steuerbescheid.pdf"))
+ If SPEDBUCH.DokumentId_VBD IsNot Nothing Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD), "Abgabenbescheid.pdf"))
+ End If
+
+
+ Else
+
+ '----------------------------------------------------------------- SAMMELRECHNUNGEN------------------------------------------------
+
+ If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
+ 'ATTACHMENTS.Clear()
+ Dim myList As New List(Of String)
+
+ For Each r As DataRow In SR_DT.Rows
+ Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
+ If RG_ANH IsNot Nothing Then
+
+ Dim FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0)
+
+ If FilialenNr = 4817 Then 'diese immer zusammenfassen!
+
+ For Each ANH In RG_ANH
+
+ Dim path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)
+ If Not (path.ToString.ToLower.Contains("sammelrechnung") OrElse path.ToString.Contains("Maut") OrElse path.ToString.Contains("POS") OrElse path.ToString.ToLower.Contains("invoice") OrElse path.ToString.ToLower.Contains("rechnung")) Then
+ If path <> "" Then myList.Add(path)
+ Else
+ ATTACHMENTS.Add(New cFakt_MailATTach(path, ANH.Bezeichnung))
+ End If
+
+ Next
+ If myList.Any() Then
+ If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung) Then
+ Dim fileInfo As New FileInfo(zielPfadZusammenfassung)
+ ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, fileInfo.Name))
+ End If
+ End If
+ Else
+ For Each ANH In RG_ANH
+ ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
+ Next
+ End If
+
+
+
+ End If
+ Next
+ End If
+
+
End If
- '-----------------------------------------------------------------
-
-
End Sub
- Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean
+ Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing, Optional RECHNUNG As cRechnungsausgang = Nothing, Optional FISKAL As cFiskal_Daten = Nothing, Optional SPEDBUCH As cSpeditionsbuch = Nothing) As Boolean
Dim accountToSend = setAccountToSend(FirmaID)
@@ -406,17 +557,28 @@ Public Class cAutomailversand
Dim AbfertigungsNr As Integer
Dim FilialenNr As Integer
+ Dim UnterNr As Integer
- If SR_DT.Rows.Count > 0 Then
- For Each r As DataRow In SR_DT.Rows
- AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0)
- FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0)
- Next
+ If SPEDBUCH IsNot Nothing Then
+ FilialenNr = SPEDBUCH.FilialenNr
+ AbfertigungsNr = SPEDBUCH.AbfertigungsNr
+ UnterNr = SPEDBUCH.UnterNr
+ Else
+
+
+ If SR_DT.Rows.Count > 0 Then
+ For Each r As DataRow In SR_DT.Rows
+ AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0)
+ FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0)
+ Next
+
+ End If
End If
+
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG_" & FirmaID,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
API.api_EMail = EMails
@@ -429,6 +591,23 @@ Public Class cAutomailversand
If Mail IsNot Nothing Then
API.UPDTAE_OK()
+
+ If RECHNUNG IsNot Nothing Then ' EINZELRECHNUNG
+ RECHNUNG.Automailversand_sent = Now()
+ RECHNUNG.SAVE()
+
+ Else
+ ' 'Bei erfolg. SAMMELRECHNUNG SENT-STATUS setzen
+ sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
+ And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL")
+
+ End If
+
+ '---------------------TODO ! ----------------------------
+ createMailFISKAL(SPEDBUCH, FISKAL, True, FirmaID, row.Item("RechnungsKundenNr"), row.Item("RechnungsLandKz"))
+ '---------------------TODO ! ----------------------------
+
+
mailcreated = True
Else
@@ -446,74 +625,47 @@ Public Class cAutomailversand
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then
API.UPDTAE_OK()
+
+ If RECHNUNG IsNot Nothing Then
+ RECHNUNG.Automailversand_sent = Now()
+ RECHNUNG.SAVE()
+
+ Else
+ sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
+ And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL")
+ End If
+
+ '---------------------TODO ! ----------------------------
+ createMailFISKAL(SPEDBUCH, FISKAL, False, FirmaID, row.Item("RechnungsKundenNr"), row.Item("RechnungsLandKz"))
+ '---------------------TODO ! ----------------------------
+
mailcreated = True
Else
API.UPDTAE_ERR()
- sql.doSQL("update Rechnungsausgang set Status = 2 where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
+
+ 'Bei FEHLER EINZELRECHNUNG VON STATUS 4 auf 2 zurücksetzen!
+
+ If RECHNUNG IsNot Nothing Then
+ RECHNUNG.Automailversand_sent = Nothing
+ RECHNUNG.Status = 2
+ RECHNUNG.SAVE()
+ Else
+ 'Bei FEHLER SAMMELRECHNUNG VON STATUS 4 auf 2 zurücksetzen!
+ sql.doSQL("update Rechnungsausgang set Status = 2, Automailversand_sent = NULL where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4", "FMZOLL")
+ End If
Return mailcreated
End If
-
-
End If
Return mailcreated
End Function
- Function getSammelRgTExt(RechnungsLandKz, FIRMA_ID) As String
-
- If RechnungsLandKz = "" Then
-
- getSammelRgTExt = "Sehr geehrte Damen und Herren,
"
- getSammelRgTExt &= "Dear Ladies and Gentlemen,
"
- getSammelRgTExt &= "Sayin Bayanlar ve Baylar,
"
- getSammelRgTExt &= "
"
- getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.
"
- getSammelRgTExt &= "attached we send you the invoice mentioned above.
"
- getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.
"
- getSammelRgTExt &= "
"
- getSammelRgTExt &= "
Mit freundlichen Grüßen / Best regards / Saygilarimizla
VERAG Spedition AG
" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID)
- Return "" & getSammelRgTExt & "
"
- End If
-
-
-
- getSammelRgTExt = "" & getSammelRgTExt & "
"
- End Function
-
- Function getSelectionLandKz(dt As DataTable) As String
- getSelectionLandKz = ""
- If dt.Rows.Count > 0 Then
-
- If dt.Rows.Count > 0 Then
-
- For Each r As DataRow In dt.Rows
-
- If Not IsDBNull(r("RechnungsLandKz")) Then
-
- Dim landKz As String = r("RechnungsLandKz").ToString()
-
- If getSelectionLandKz = "" Then
- getSelectionLandKz = landKz
- ElseIf getSelectionLandKz <> landKz Then
- Return ""
- End If
-
- End If
-
- Next
-
- End If
- End If
-
-
- End Function
-
Private Function setAccountToSend(FIRMA_ID) As String
Dim accountToSend = ""
@@ -589,4 +741,306 @@ Public Class cAutomailversand
End Function
+
+ Public Shared Function automRechnungsversand_deaktivieren(Optional isEinzelrechnung As Boolean = False)
+
+ Dim RE_Text = ""
+
+ If isEinzelrechnung Then
+ RE_Text = "diese Rechnung"
+ Else
+ RE_Text = "alle markieren Rechnungen"
+ End If
+
+ If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand deaktivieren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Public Shared Function automRechnungsversand_aktivieren(Optional isEinzelrechnung As Boolean = False)
+
+ Dim RE_Text = ""
+
+ If isEinzelrechnung Then
+ RE_Text = "diese Rechnung"
+ Else
+ RE_Text = "alle markieren Rechnungen"
+ End If
+
+ If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Public Shared Function automRechnungsversand_durchführen(Optional isEinzelrechnung As Boolean = False)
+
+ Dim RE_Text = ""
+
+ If isEinzelrechnung Then
+ RE_Text = "diese Rechnung"
+ Else
+ RE_Text = "alle markieren Rechnungen"
+ End If
+
+ If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Sub replaceKZ(KZ As String, ByRef TextHTML As String)
+
+ If TextHTML = "" Then Exit Sub
+
+ Dim index_start As Integer = TextHTML.ToString.IndexOf("%" & KZ & ":")
+ If index_start < 0 Then Exit Sub
+ Dim txtKZ = TextHTML.ToString.Substring(index_start)
+ Dim index_end As Integer = txtKZ.ToString.IndexOf("%", 1)
+
+ If index_start <= 0 AndAlso index_end <= 0 Then
+ Exit Sub
+ End If
+
+ Dim txtKZ_replace As String = TextHTML.ToString.Substring(index_start, index_end)
+ TextHTML = TextHTML.ToString.Replace(txtKZ_replace, "")
+
+
+ End Sub
+
+
+ Private Function createMailFISKAL(SPEDBUCH As cSpeditionsbuch, FISKAL As cFiskal_Daten, showMail As Boolean, FirmaID As Integer, kundenNr As Integer, RechnungsLandKz As String) As Boolean
+
+ Dim MailSteuerberater As String = ""
+ Dim MailFA As String = ""
+
+ Dim MailSteuerberater_do As Boolean = False
+ Dim MailFA_do As Boolean = False
+
+ Dim Subject As String = ""
+ Dim TextHTML As String = ""
+
+ Dim MailTo As String = ""
+ Dim MailCC As String = ""
+
+ If FISKAL IsNot Nothing AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart IsNot Nothing AndAlso IsNumeric(SPEDBUCH.Abfertigungsart) AndAlso (SPEDBUCH.Abfertigungsart = 26 Or SPEDBUCH.Abfertigungsart = 28) AndAlso (SPEDBUCH.FilialenNr = 4805 Or SPEDBUCH.FilialenNr = 4811) Then 'Prüfung
+ MailSteuerberater_do = (If(FISKAL.fisk_schreibenSB_Mail, "") <> "")
+ MailSteuerberater = If(FISKAL.fisk_schreibenSB_Mail, "")
+ MailFA_do = (If(FISKAL.fisk_schreibenFA_Mail, "") <> "")
+ MailFA = If(FISKAL.fisk_schreibenFA_Mail, "")
+ End If
+
+
+
+ If MailSteuerberater_do Or MailFA_do Then
+
+ If MailSteuerberater <> "" Then
+ MailTo = MailSteuerberater
+ MailCC = MailFA
+ Else
+ MailTo = MailFA
+ End If
+
+ Dim AD As New cAdressen(kundenNr)
+ Dim KD As New cKunde(kundenNr)
+ Dim Sprache As String = "EN"
+ Dim attachList As New List(Of String)
+
+ Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff
+
+ Select Case RechnungsLandKz
+ Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
+ End Select
+
+ Select Case Sprache
+ Case "DE"
+
+ TextHTML &= ""
+ TextHTML &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
+ TextHTML &= "| UID-Nr.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
+ TextHTML &= "| Firma: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
+ TextHTML &= " | " & If(AD.Straße, "") & " |
"
+ TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
+ TextHTML &= "
"
+ 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 &= "| EORI-Nr.: | " & If(KD.EORITIN, "") & " |
"
+ TextHTML &= "| VAT-ID.: | " & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & " |
"
+ TextHTML &= "| Company: | " & If(AD.Name_1, "") & If(AD.Name_2, "") & " |
"
+ TextHTML &= " | " & If(AD.Straße, "") & " |
"
+ TextHTML &= " | " & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & " |
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "
"
+ TextHTML &= "Dear Sir or Madam!" & "
"
+ TextHTML &= "
"
+ TextHTML &= "We would like to inform you, that we made the customs clearance and subsequent intra-community supply of goods for the company above-mentioned (Code 4200).
"
+ TextHTML &= "The documents are attached." & "
"
+ TextHTML &= "
"
+ TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "
"
+ TextHTML &= "
"
+ TextHTML &= "Yours faithfully,"
+ TextHTML &= "
"
+
+ End Select
+
+
+
+ If showMail Then
+
+ Dim outl As New Outlook.Application
+ Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem
+ Mail_StbFA = outl.CreateItem(0)
+ Mail_StbFA.Subject = Subject
+
+ If FirmaID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
+
+
+ TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID,,,, "")
+ TextHTML &= ""
+
+ Mail_StbFA.HTMLBody = TextHTML
+
+
+ Mail_StbFA.To = MailTo
+ Mail_StbFA.CC = MailCC
+
+ ''-----------------------------------------------------------------
+ ''Steuerbescheid anfügen
+ ''-----------------------------------------------------------------
+ 'getAnhaenge(False)
+
+ ''Anhang an Mail anfügen
+ ''-----------------------------------------------------------------
+ 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
+ ''-----------------------------------------------------------------
+
+
+ Mail_StbFA.Display()
+
+ Else
+ Dim accountToSend = setAccountToSend(FirmaID)
+ VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(MailTo, Subject, TextHTML, accountToSend, False, False, MailCC, accountToSend, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend))
+
+ ''-----------------------------------------------------------------
+ ''Steuerbescheid anfügen
+ ''-----------------------------------------------------------------
+ 'getAnhaenge(False)
+
+ ''Anhang an Mail anfügen
+ ''-----------------------------------------------------------------
+ 'addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
+ ''-----------------------------------------------------------------
+
+
+ End If
+
+
+
+
+
+ End If
+
+
+
+
+
+
+
+
+
+ End Function
+
+ Private Function setEmpfaengerMail_ER(SPEDBUCH As cSpeditionsbuch, AD As cAdressen, EMAILTMP As String, EMAILTMPCC As String, EMAILTMPBCC As String, email_receipt As String)
+
+
+ If SPEDBUCH IsNot Nothing Then
+ Dim IMPEXP = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("isnull(IMEX,'')", "Aviso", "AvisoId='" & SPEDBUCH.AvisoID & "'", "AVISO")
+ Select Case IMPEXP
+ Case "IMPORT"
+ If VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an IMPORT") <> "" Then
+ EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an IMPORT"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
+
+ EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an IMPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an IMPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ End If
+ Case "EXPORT"
+ If VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an EXPORT") <> "" Then
+ EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an EXPORT"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
+
+ EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an EXPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an EXPORT"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ End If
+ End Select
+ End If
+
+
+ 'wenn leere Mailadressen, dann Standardadresse holen
+ If EMAILTMP = "" And EMAILTMPCC = "" And EMAILTMPBCC = "" Then
+ EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
+
+ EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+
+ End If
+
+ End Function
+
+ Private Function setEmpfaengerMail_SR(SR_DT As DataTable, AD As cAdressen, EMAILTMP As String, EMAILTMPCC As String, EMAILTMPBCC As String, FirmaID As Integer, SammelrechungArt As String)
+
+ If SammelrechungArt <> 6 Then
+
+
+ Dim email_receipt As String = ""
+
+ Dim allAtilla = IIf(FirmaID = 7, True, False)
+ If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
+ For Each r In SR_DT.Rows
+ If "4801" <> r("FilialenNr") And "4802" <> r("FilialenNr") Then
+ allAtilla = False
+ Exit For
+ End If
+ Next
+ End If
+
+ email_receipt = IIf(allAtilla, VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)"), "")
+
+ EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
+ EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+ EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ Else
+
+ If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then EMAILTMP &= AD.E_Mail & ";"
+ If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then EMAILTMP &= AD.E_Mail2 & ";"
+
+
+ End If
+
+ End Function
+
+
End Class
diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb
index a36a2496..4e5fa6cc 100644
--- a/SDL/Fakturierung/cFakturierung.vb
+++ b/SDL/Fakturierung/cFakturierung.vb
@@ -794,6 +794,8 @@ Public Class cFakturierung
rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim
rpt.txtBank3.Visible = True
+ rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026)
+
'Änderung Ticket_Nr.: 6983
'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim
'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim
@@ -1013,6 +1015,8 @@ Public Class cFakturierung
rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim
rpt.txtBank3.Visible = True
+ rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026)
+
'Änderung Ticket_Nr.: 6983
'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim
'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim
@@ -1122,6 +1126,9 @@ Public Class cFakturierung
rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim
rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall")
+
+ rpt.txtBank2.Visible = False 'soll beim AMBAR ausgeblendet werden (Laut I.Ordu am 27.03.2026)
+
Case 20 '"IMEX"
If RechnungsLandKz = "TR" Then
' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713"
@@ -4851,7 +4858,7 @@ Public Class cFakturierung
Dim ROW As DataRow = IIf(dt.Rows.Count > 0, dt.Rows(0), Nothing)
- Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"))
+ Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"), ROW("Firma_ID"))
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID"))
Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr"))
@@ -5749,7 +5756,7 @@ Public Class cFakturierung
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(firmaID)
Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr"))
- Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"))
+ Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status"), firmaID)
If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False
@@ -6211,10 +6218,12 @@ Public Class cFakturierung
Return ""
End Function
- Shared Function checkIfMDMSammelrechnung(Rechnungsdruck As Integer, Status As Integer)
+ Shared Function checkIfMDMSammelrechnung(Rechnungsdruck As Integer, Status As Integer, Firma_ID As Integer)
'If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4)) Then Return True
+ If Firma_ID <> 19 Then Return False
+
If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 8 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 3 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 2 AndAlso (Status = 2 Or Status = 4)) Then Return True
Return False
diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb
index 39e431b4..4283c005 100644
--- a/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb
+++ b/SDL/Fakturierung/frmAbrechnungsMaske.Designer.vb
@@ -88,6 +88,7 @@ Partial Class frmAbrechnungsMaske
Me.btnVonJahr = New System.Windows.Forms.Button()
Me.UsrCntlFaktAbrechnung1 = New SDL.usrCntlFaktAbrechnung()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
+ Me.btn_doMailAutoversand = New System.Windows.Forms.Button()
Me.pnl.SuspendLayout()
CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer.Panel1.SuspendLayout()
@@ -200,6 +201,7 @@ Partial Class frmAbrechnungsMaske
'Panel2
'
Me.Panel2.BackColor = System.Drawing.Color.White
+ Me.Panel2.Controls.Add(Me.btn_doMailAutoversand)
Me.Panel2.Controls.Add(Me.Button11)
Me.Panel2.Controls.Add(Me.cbxOriginalDrucken)
Me.Panel2.Controls.Add(Me.cboSort)
@@ -231,7 +233,7 @@ Partial Class frmAbrechnungsMaske
Me.Button11.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button11.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button11.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.Button11.Location = New System.Drawing.Point(220, 21)
+ Me.Button11.Location = New System.Drawing.Point(214, 21)
Me.Button11.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.Button11.Name = "Button11"
Me.Button11.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
@@ -269,9 +271,9 @@ Partial Class frmAbrechnungsMaske
Me.cboPrinter._value = ""
Me.cboPrinter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboPrinter.FormattingEnabled = True
- Me.cboPrinter.Location = New System.Drawing.Point(142, 52)
+ Me.cboPrinter.Location = New System.Drawing.Point(133, 52)
Me.cboPrinter.Name = "cboPrinter"
- Me.cboPrinter.Size = New System.Drawing.Size(157, 21)
+ Me.cboPrinter.Size = New System.Drawing.Size(200, 21)
Me.cboPrinter.TabIndex = 25
'
'Button9
@@ -280,7 +282,7 @@ Partial Class frmAbrechnungsMaske
Me.Button9.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button9.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button9.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.Button9.Location = New System.Drawing.Point(142, 21)
+ Me.Button9.Location = New System.Drawing.Point(136, 21)
Me.Button9.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.Button9.Name = "Button9"
Me.Button9.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
@@ -295,7 +297,7 @@ Partial Class frmAbrechnungsMaske
Me.Button8.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button8.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button8.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.Button8.Location = New System.Drawing.Point(181, 21)
+ Me.Button8.Location = New System.Drawing.Point(175, 21)
Me.Button8.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.Button8.Name = "Button8"
Me.Button8.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
@@ -310,7 +312,7 @@ Partial Class frmAbrechnungsMaske
Me.Button7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button7.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.Button7.Location = New System.Drawing.Point(259, 21)
+ Me.Button7.Location = New System.Drawing.Point(253, 21)
Me.Button7.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
Me.Button7.Name = "Button7"
Me.Button7.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
@@ -347,7 +349,7 @@ Partial Class frmAbrechnungsMaske
Me.btnWiederholeRgDruck.BackgroundImage = Global.SDL.My.Resources.Resources.print_rg
Me.btnWiederholeRgDruck.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btnWiederholeRgDruck.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.btnWiederholeRgDruck.Location = New System.Drawing.Point(388, 9)
+ Me.btnWiederholeRgDruck.Location = New System.Drawing.Point(406, 9)
Me.btnWiederholeRgDruck.Name = "btnWiederholeRgDruck"
Me.btnWiederholeRgDruck.Size = New System.Drawing.Size(53, 36)
Me.btnWiederholeRgDruck.TabIndex = 11
@@ -356,7 +358,7 @@ Partial Class frmAbrechnungsMaske
'Label4
'
Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!)
- Me.Label4.Location = New System.Drawing.Point(381, 46)
+ Me.Label4.Location = New System.Drawing.Point(399, 46)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(67, 26)
Me.Label4.TabIndex = 12
@@ -391,7 +393,7 @@ Partial Class frmAbrechnungsMaske
Me.Button3.BackgroundImage = Global.SDL.My.Resources.Resources.moneybag1
Me.Button3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat
- Me.Button3.Location = New System.Drawing.Point(329, 9)
+ Me.Button3.Location = New System.Drawing.Point(347, 9)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(53, 36)
Me.Button3.TabIndex = 9
@@ -400,7 +402,7 @@ Partial Class frmAbrechnungsMaske
'Label3
'
Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 7.0!)
- Me.Label3.Location = New System.Drawing.Point(326, 46)
+ Me.Label3.Location = New System.Drawing.Point(344, 46)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(56, 26)
Me.Label3.TabIndex = 10
@@ -974,6 +976,21 @@ Partial Class frmAbrechnungsMaske
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
Me.ContextMenuStrip1.Size = New System.Drawing.Size(61, 4)
'
+ 'btn_doMailAutoversand
+ '
+ Me.btn_doMailAutoversand.BackgroundImage = Global.SDL.My.Resources.Resources.zauberstab
+ Me.btn_doMailAutoversand.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
+ Me.btn_doMailAutoversand.FlatStyle = System.Windows.Forms.FlatStyle.Flat
+ Me.btn_doMailAutoversand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.btn_doMailAutoversand.Location = New System.Drawing.Point(293, 21)
+ Me.btn_doMailAutoversand.Margin = New System.Windows.Forms.Padding(10, 3, 3, 3)
+ Me.btn_doMailAutoversand.Name = "btn_doMailAutoversand"
+ Me.btn_doMailAutoversand.Padding = New System.Windows.Forms.Padding(20, 0, 0, 0)
+ Me.btn_doMailAutoversand.Size = New System.Drawing.Size(40, 25)
+ Me.btn_doMailAutoversand.TabIndex = 29
+ Me.btn_doMailAutoversand.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ Me.btn_doMailAutoversand.UseVisualStyleBackColor = True
+ '
'frmAbrechnungsMaske
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1067,4 +1084,5 @@ Partial Class frmAbrechnungsMaske
Friend WithEvents PictureBox5 As PictureBox
Friend WithEvents lblKunde As Label
Friend WithEvents KdSearchBox1 As VERAG_PROG_ALLGEMEIN.KdSearchBox
+ Friend WithEvents btn_doMailAutoversand As Button
End Class
diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb
index 8447081c..60dd8c41 100644
--- a/SDL/Fakturierung/frmAbrechnungsMaske.vb
+++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb
@@ -1,5 +1,8 @@
Imports System.IO
+Imports com.sun.tools.javac.comp
Imports Microsoft.Office.Interop
+Imports VERAG_PROG_ALLGEMEIN
+Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class frmAbrechnungsMaske
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -38,6 +41,7 @@ Public Class frmAbrechnungsMaske
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FAX", "1"))
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E-MAIL", "2"))
cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MAIL+KOPIE", "5"))
+ cboRechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AUTO-MAIL", "6"))
cboRechnungsdruck.changeItem("")
cboSort.Items.Clear()
@@ -181,7 +185,11 @@ Public Class frmAbrechnungsMaske
Dim dgv As VERAG_PROG_ALLGEMEIN.MyDatagridview = getDGV()
Dim reNrSQL As String = ""
- If cbx.Checked Then reNrSQL = " isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr, "
+ If cbx.Checked Then
+ reNrSQL = " isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr,cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, "
+ Else
+ reNrSQL = " cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, "
+ End If
With dgv
@@ -221,25 +229,37 @@ Public Class frmAbrechnungsMaske
.Columns("BelegartenKz").Visible = False
.Columns("PosNr").HeaderText = "Pos-Nr."
- If cbx.Checked Then .Columns("ReNr").HeaderText = "ReNr."
-
- .Columns("UnterNr").Width = 35
- .Columns("Art").Width = 30
- .Columns("Betrag").Width = 100
- .Columns("Rechnungsempfänger").MinimumWidth = 150
- .Columns("Rechnungsempfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
-
- If Not cbxGutschriftenAnVerag.Checked Then
- .Columns("Rechnungsdruck").Width = 60
- .Columns("Rechnungsdruck").HeaderText = "Rg.Art"
- .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
+ If .Columns.Contains("ReNr") Then
+ .Columns("ReNr").HeaderText = "ReNr."
End If
+ If .Columns.Contains("AUTO_sent") Then
+ .Columns("AUTO_sent").HeaderText = "gesen."
+ .Columns("AUTO_sent").Width = 40
+ If cboRechnungsdruck._value <> "6" Then
+ .Columns("AUTO_sent").Visible = False
+ Else
+ .Columns("AUTO_sent").Visible = True
+ End If
+ End If
- .Columns("Betrag").DefaultCellStyle.Format = "C2"
- End If
+ .Columns("UnterNr").Width = 35
+ .Columns("Art").Width = 30
+ .Columns("Betrag").Width = 100
+ .Columns("Rechnungsempfänger").MinimumWidth = 150
+ .Columns("Rechnungsempfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
- If cboFirma._value <> "" AndAlso cboFirma._value = "19" Then
+ If Not cbxGutschriftenAnVerag.Checked Then
+ .Columns("Rechnungsdruck").Width = 60
+ .Columns("Rechnungsdruck").HeaderText = "Rg.Art"
+ .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
+ End If
+
+
+ .Columns("Betrag").DefaultCellStyle.Format = "C2"
+ End If
+
+ If cboFirma._value <> "" AndAlso cboFirma._value = "19" Then
For Each r In .Rows
@@ -269,15 +289,19 @@ Public Class frmAbrechnungsMaske
Function getRGWhere(filterSR As String, Optional filialenNr As Integer = -1)
Dim sqlstr = ""
Dim srchSB = "" ' "NÖBAUER ANJA" 'VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
+
+ Dim enableAUTOMAIL As Boolean = True
+ Dim enableAUTOMAIL_BTN As Boolean = False
+
srchSB = cboSachbearbeiter._value
If cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" AndAlso cboFirma._value = 24 Then Return sqlstr
Select Case filterSR
Case "ER" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (0) "
- Case "SR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (0,6) "
- Case "MSR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (6) "
- Case Else : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (6) "
+ Case "SR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (0,6) " : enableAUTOMAIL = False
+ Case "MSR" : sqlstr &= " And Rechnungsausgang.Sammelrechnung IN (6) " : enableAUTOMAIL = False
+ Case Else : sqlstr &= " And Rechnungsausgang.Sammelrechnung NOT IN (6) " : enableAUTOMAIL = False
End Select
@@ -287,6 +311,7 @@ Public Class frmAbrechnungsMaske
If cbx.Checked Then
+ enableAUTOMAIL = False
'sqlstr &= " AND Status = 0 "
sqlstr &= " AND DruckDatumZeit BETWEEN '" & txtAbfertDat._value & " 00:00:00' AND '" & txtAbfertDatBis._value & " 23:59:59'"
sqlstr &= IIf(filterSR = "MSR", " And (Status = 4)", "")
@@ -303,14 +328,22 @@ Public Class frmAbrechnungsMaske
End If
If cboRechnungsdruck._value <> "" Then
- sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' "
+ Select Case cboRechnungsdruck._value
+ Case 6 : sqlstr &= " And isnull(Automailversand,0)=1 " : enableAUTOMAIL_BTN = True
+ Case 2, 5 : sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' "
+ Case Else
+ sqlstr &= " And Rechnungsdruck='" & cboRechnungsdruck._value & "' " : enableAUTOMAIL = False
+ End Select
+ Else
+ enableAUTOMAIL = False
End If
If srchSB <> "" Then sqlstr &= " And Rechnungsausgang.Sachbearbeiter='" & srchSB & "' "
If cboFirma._value <> "" Then sqlstr &= " AND Rechnungsausgang.Firma_ID=" & cboFirma._value & " "
If KdSearchBox1.KdNr_value > 0 Then sqlstr &= " AND Rechnungsausgang.RechnungsKundenNr=" & KdSearchBox1.KdNr_value & " "
-
+ UsrCntlFaktAbrechnung1.cbxAUTOMailversand.Enabled = enableAUTOMAIL
+ btn_doMailAutoversand.Visible = enableAUTOMAIL_BTN AndAlso enableAUTOMAIL
' sqlstr &= " AND (SteuerpflichtigerGesamtbetrag<>0 OR SteuerfreierGesamtbetrag<>0)"
Return sqlstr
@@ -930,4 +963,29 @@ Public Class frmAbrechnungsMaske
Process.Start(webAddress)
End Sub
+ Private Sub btn_doMailAutoversand_Click(sender As Object, e As EventArgs) Handles btn_doMailAutoversand.Click
+
+
+ If dgvRechnungen.SelectedRows.Count > 0 Then
+
+ If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
+
+ Dim ListOfRK_ID As New List(Of Integer)
+
+ For Each row As DataGridViewRow In dgvRechnungen.SelectedRows
+
+ If Not IsDBNull(row.Cells("RK_ID").Value) AndAlso IsNumeric(row.Cells("RK_ID").Value) Then
+ ListOfRK_ID.Add(CInt(row.Cells("RK_ID").Value))
+ End If
+
+ Next
+
+ Dim fun As New cAutomailversand
+ fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cboSachbearbeiter._value, ListOfRK_ID)
+ initDGV()
+
+ End If
+
+
+ End Sub
End Class
\ No newline at end of file
diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb
index 11875af0..97089548 100644
--- a/SDL/Fakturierung/frmFaktEmail.vb
+++ b/SDL/Fakturierung/frmFaktEmail.vb
@@ -723,11 +723,6 @@ Public Class frmFaktEmail
Exit Sub
End If
- 'If Not RECHNUNG.checkRechnungsNrIsSet() Then
- ' MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
- ' Exit Sub
- 'End If
-
RechnungsNr = RECHNUNG.RechnungsNr
If cbxRgKopieDrucken.Checked Then
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
index 39617ca5..e4ea1ba7 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
@@ -665,7 +665,7 @@ Public Class frmFaktSammelRgDrucken
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
- If vbYes = MsgBox("Möchten Sie alle markieren Rechnungen den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then
+ If cAutomailversand.automRechnungsversand_aktivieren() Then
Dim noRENRExisting As Boolean = False
@@ -727,7 +727,8 @@ Public Class frmFaktSammelRgDrucken
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
- If vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand deaktiveren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then
+
+ If cAutomailversand.automRechnungsversand_deaktivieren() Then
'setMailversand(false, Firma, Sammelrechung, 2)
setMailversand_ALL(False, Firma, Sammelrechung, 2)
@@ -735,6 +736,7 @@ Public Class frmFaktSammelRgDrucken
End If
End If
+
End Sub
Private Function setMailversand(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean
@@ -895,6 +897,30 @@ Public Class frmFaktSammelRgDrucken
End If
+ End Sub
+
+ Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
+
+
+ ContextMenuStrip1.Hide()
+ Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
+
+ If item IsNot Nothing Then
+
+ If item.Name <> "" AndAlso IsNumeric(item.Name) Then
+
+ Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name)
+ f.Show(Me)
+
+
+ End If
+
+ Else
+ MsgBox("Funktion nicht implementiert!")
+ End If
+
+
+
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
@@ -909,10 +935,10 @@ Public Class frmFaktSammelRgDrucken
If MyDatagridview1.SelectedRows.Count > 0 Then
- If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub
+ If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
- Dim fun As New cAutomailversand
For Each r In MyDatagridview1.SelectedRows
+ Dim fun As New cAutomailversand
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
Next
@@ -923,9 +949,7 @@ Public Class frmFaktSammelRgDrucken
End Sub
- Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
- End Sub
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
index 1b3119dd..ba6c7c42 100644
--- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
+++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
@@ -1,7 +1,4 @@
-Imports System.Data.SqlClient
-Imports System.IO
-Imports System.Web.UI.WebControls.Expressions
-Imports com.sun.xml.internal.rngom
+Imports System.Web.UI.WebControls.Expressions
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung
@@ -348,6 +345,7 @@ Public Class usrCntlFaktAbrechnung
Button2.Enabled = (RECHNUNG.Status = 0)
btnOK.Enabled = (RECHNUNG.Status = 0)
+ If RECHNUNG.Status <> 0 Then cbxAUTOMailversand.Enabled = False
'RECHNUNG.OffertenNr = OfferteNrTmp
' RECHNUNG.OffertenNr = OfferteNrTmp
@@ -3513,6 +3511,43 @@ Public Class usrCntlFaktAbrechnung
If Not checkUIDNR() Then Exit Sub
+ If RECHNUNG.Sammelrechnung = 0 Then 'nur bei ER
+ If cbxAUTOMailversand.Checked AndAlso Not RECHNUNG.Automailversand Then
+ If cAutomailversand.automRechnungsversand_aktivieren(RECHNUNG.Sammelrechnung = 0) Then
+
+ If RECHNUNG.RechnungsDatum Is Nothing Then
+
+ 'LAUT AUSSAGE VON VERR. IMMER HEUTIGES DATUM!
+ RECHNUNG.RechnungsDatum = Today()
+ 'If Not cFakturierung.getRgDatInput("", RECHNUNG.[RechnungsDatum]) Then 'Now.ToShortDateString
+ ' cbxAUTOMailversand.Checked = False
+ ' Exit Sub
+ 'End If
+ End If
+
+ RECHNUNG.Automailversand = True
+
+ Else
+ cbxAUTOMailversand.Checked = False
+ End If
+
+ ElseIf Not cbxAUTOMailversand.Checked AndAlso RECHNUNG.Automailversand Then
+ If cAutomailversand.automRechnungsversand_deaktivieren(RECHNUNG.Sammelrechnung = 0) Then
+
+ If Not RECHNUNG.RechnungsDatum Is Nothing Then
+ RECHNUNG.RechnungsDatum = Nothing
+ End If
+
+
+ RECHNUNG.Automailversand = False
+ Else
+ cbxAUTOMailversand.Checked = True
+ End If
+
+ End If
+ End If
+
+
saveMe()
End Sub
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
index 059eaa1e..82e4b4e6 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
@@ -119,10 +119,10 @@ Public Class cRechnungsausgang
Property TextZZ As Object = Nothing
Property ForceSteuerschlüssel As Object = Nothing
Property Automailversand As Boolean = False
-
Property Rechnungsart As String = "RG" ' RG=Rechnung; RU=Rechnung Unvollständig; RK=RechnungKopf -> bei unvollständiger Rechnung ein Kopf benötigt (zB Staffelabrechnung)
-
Property Vorlageprovision_Mindestbetrag As Object = Nothing
+ Property Automailversand_sent As Object = Nothing
+
Property dsId As Object = Nothing
@@ -371,6 +371,7 @@ Public Class cRechnungsausgang
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsart", Rechnungsart))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorlageprovision_Mindestbetrag", Vorlageprovision_Mindestbetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dsId", dsId))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Automailversand_sent", Automailversand_sent))
Return list
End Function