fakt, automail, etc.
This commit is contained in:
@@ -4,7 +4,7 @@ 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 = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False)
|
||||
Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, avisoIDs As List(Of Integer), Optional KundenNrList As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False)
|
||||
Try
|
||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
@@ -27,7 +27,7 @@ Public Class cAutomailversand
|
||||
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, "") & "
|
||||
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNrList IsNot Nothing, getWhereKundenNr(KundenNrList), "") & "
|
||||
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
|
||||
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
||||
|
||||
@@ -37,7 +37,7 @@ Public Class cAutomailversand
|
||||
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, "") & IIf(IsDate(datumBis), " AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & datumBis.ToShortDateString & "'", "") & "
|
||||
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 and FakturierungsGruppe = '" & faktGruppe & "'" & IIf(KundenNrList IsNot Nothing, getWhereKundenNr(KundenNrList), "") & IIf(IsDate(datumBis), " AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & datumBis.ToShortDateString & "'", "") & "
|
||||
GROUP BY RechnungsNr, RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX
|
||||
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
||||
|
||||
@@ -51,6 +51,9 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
For Each row As DataRow In dt.Rows
|
||||
|
||||
If dt.Rows.Count = 0 Then Exit Sub
|
||||
|
||||
Dim BelegartenNr = "70"
|
||||
Dim steuerbetrag As Double = 0
|
||||
Dim SR_DT As DataTable = Nothing
|
||||
@@ -58,7 +61,7 @@ Public Class cAutomailversand
|
||||
Dim DruckDatumZeit As DateTime
|
||||
Dim Rechnungsdatum = Nothing
|
||||
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
|
||||
|
||||
Dim AVISOID As New List(Of Integer)
|
||||
|
||||
If FirmaID = 19 AndAlso SammelrechungArt = 6 Then
|
||||
|
||||
@@ -89,116 +92,104 @@ Public Class cAutomailversand
|
||||
|
||||
End If
|
||||
|
||||
Dim LoopForSR = 1
|
||||
If IM_EX Then LoopForSR = 2
|
||||
|
||||
For i = 1 To LoopForSR
|
||||
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),, avisoIDs,,, True, True, CInt(row.Item("RechnungsNr")))
|
||||
|
||||
Dim AbfertigungsNr As String = ""
|
||||
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")
|
||||
|
||||
End If
|
||||
|
||||
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
|
||||
|
||||
If IM_EX Then
|
||||
AbfertigungsNr = getAbertigungsNr(i)
|
||||
End If
|
||||
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"))
|
||||
Dim SR As Boolean = True
|
||||
|
||||
If i = 2 Then
|
||||
ATTACHMENTS.Clear() 'leeren
|
||||
RechnungsNr = -1 'nochmals zurücksetzen!
|
||||
End If
|
||||
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
|
||||
If Not clearBCC Then 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(RechnungsNr, row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, datumBis, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, , faktGruppe) Then
|
||||
loadAndSetAnhaenge_new(RechnungsNr, BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
|
||||
|
||||
If mailoeffnen Then
|
||||
Dim Mail = createMail(AD, 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(AD.LandKz, 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
|
||||
|
||||
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
|
||||
|
||||
Else
|
||||
|
||||
MsgBox("Es konnte kein Email-Empfänger ermittelt werden!")
|
||||
|
||||
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
|
||||
If Not clearBCC Then MailtoBCC = setAccountToSend(FirmaID)
|
||||
End If
|
||||
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, datumBis, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError, AbfertigungsNr, faktGruppe) Then
|
||||
loadAndSetAnhaenge_new(RechnungsNr, BelegartenNr, AD.LandKz, SR_DT, ATTACHMENTS, listPDFs,,, KDE_ERW.kde_merge_pdf)
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
|
||||
|
||||
If mailoeffnen Then
|
||||
Dim Mail = createMail(AD, 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(AD.LandKz, 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
|
||||
|
||||
Else
|
||||
|
||||
MsgBox("Es konnte kein Email-Empfänger ermittelt werden!")
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Next
|
||||
Catch ex As System.Exception
|
||||
@@ -207,6 +198,17 @@ Public Class cAutomailversand
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Shared Function getWhereKundenNr(ids As List(Of Integer)) As String
|
||||
If ids Is Nothing Then Return ""
|
||||
If ids.Count = 0 Then Return ""
|
||||
getWhereKundenNr = " AND RechnungsKundenNr IN ("
|
||||
For Each i In ids
|
||||
getWhereKundenNr &= "'" & i & "',"
|
||||
Next
|
||||
getWhereKundenNr = getWhereKundenNr.Substring(0, getWhereKundenNr.Length - 1) ' ","
|
||||
getWhereKundenNr &= ") "
|
||||
End Function
|
||||
|
||||
|
||||
Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, clearBCC As Boolean, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True)
|
||||
|
||||
@@ -489,7 +491,7 @@ Public Class cAutomailversand
|
||||
End Sub
|
||||
|
||||
|
||||
Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, DatumBis As Date, 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 = "")
|
||||
Private Function do_SR(RechnungsNr As Integer, kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, DatumBis As Date, 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
|
||||
|
||||
@@ -497,7 +499,7 @@ Public Class cAutomailversand
|
||||
DatumBis = Rechnungsdatum
|
||||
End If
|
||||
|
||||
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError)
|
||||
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit,,,,,, faktGruppe, AbfertigungsArt, True, Kopie, True, saveInThereFore, showError,, RechnungsNr)
|
||||
|
||||
Return RechnungsNrisSet
|
||||
End Function
|
||||
@@ -511,6 +513,21 @@ Public Class cAutomailversand
|
||||
Mail = outl.CreateItem(0)
|
||||
|
||||
Mail.Subject = Mailsubject
|
||||
Dim oAccount As Outlook.Account
|
||||
Dim accountToSent = ""
|
||||
|
||||
accountToSent = setAccountToSend(FirmaID)
|
||||
|
||||
If accountToSent <> "" Then
|
||||
If outl.Session.Accounts.Count > 0 Then
|
||||
For Each oAccount In outl.Session.Accounts
|
||||
If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
|
||||
Mail.SendUsingAccount = oAccount
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Dim TextHTML = ""
|
||||
@@ -529,12 +546,7 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
|
||||
TextHTML &= "<br>"
|
||||
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br><br>"
|
||||
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True)
|
||||
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
|
||||
|
||||
@@ -564,8 +576,7 @@ Public Class cAutomailversand
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub loadAndSetAnhaenge_new(Belegnr As String, BelegartenNr As Integer, sprache As String, 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)
|
||||
|
||||
Private Function getAnhangbezeichnung(sprache As String, RECHNUNG As cRechnungsausgang, BelegartenNr As Integer)
|
||||
|
||||
Dim Anhangsbez = ""
|
||||
If RECHNUNG IsNot Nothing Then
|
||||
@@ -587,6 +598,15 @@ Public Class cAutomailversand
|
||||
|
||||
End If
|
||||
|
||||
Return Anhangsbez
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub loadAndSetAnhaenge_new(Belegnr As String, BelegartenNr As Integer, sprache As String, 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 Anhangsbez = getAnhangbezeichnung(sprache, RECHNUNG, BelegartenNr)
|
||||
|
||||
|
||||
Dim zielPfad_PDFZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(Belegnr & "_" & Anhangsbez, ".pdf",, False, "Zusammenfassung")
|
||||
@@ -623,9 +643,9 @@ Public Class cAutomailversand
|
||||
' Beleg + Anhänge zusammenführen
|
||||
If mergeAllPDFS AndAlso ATTACHMENTS.Count > 1 Then
|
||||
|
||||
Dim prefix = If(RECHNUNG.BelegartenKz = "AR", "Rechnungs", "Gutschrifts")
|
||||
Dim prefix = getAnhangbezeichnung(sprache, RECHNUNG, BelegartenNr)
|
||||
|
||||
Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix & "anhang.pdf", ".pdf",, False, "Zusammenfassung")
|
||||
Dim zielPfad = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(prefix, ".pdf",, False, "Zusammenfassung")
|
||||
|
||||
Dim pdfs As New List(Of String)
|
||||
pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList()
|
||||
@@ -1522,54 +1542,54 @@ Public Class cAutomailversand
|
||||
|
||||
Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff
|
||||
|
||||
Select Case RechnungsLandKz
|
||||
Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
|
||||
End Select
|
||||
Select Case RechnungsLandKz
|
||||
Case "A", "AT", "D", "DE", "CH" : Sprache = "DE"
|
||||
End Select
|
||||
|
||||
Select Case Sprache
|
||||
Case "DE"
|
||||
Select Case Sprache
|
||||
Case "DE"
|
||||
|
||||
TextHTML &= "<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>"
|
||||
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"
|
||||
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>"
|
||||
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
|
||||
End Select
|
||||
|
||||
|
||||
|
||||
@@ -1634,7 +1654,7 @@ Public Class cAutomailversand
|
||||
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4213,17 +4213,19 @@ Public Class cFakturierung
|
||||
' 3-_> Sammel-Rg gedruckt
|
||||
' 4-_> ? irgendwas mit SR 6 Maut/Diesel??
|
||||
|
||||
Public Shared Function GET_SR_SQLDT(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Optional whereKdNr As String = "", Optional SB As String = "", Optional AvisoIds As List(Of Integer) = Nothing, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional AUTOMailversand As String = "") As DataTable
|
||||
Public Shared Function GET_SR_SQLDT(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Optional whereKdNr As String = "", Optional SB As String = "", Optional AvisoIds As List(Of Integer) = Nothing, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional AUTOMailversand As String = "", Optional RechnungsNrAlreadySet As Boolean = False, Optional RechnungNr As Integer = -1) As DataTable
|
||||
If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") "
|
||||
Dim whereAbfArt = ""
|
||||
If Abfertigungsart <> "" Then whereAbfArt = " AND (SELECT TOP 1 Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & Abfertigungsart & ") "
|
||||
Dim whereAutoMailversand = ""
|
||||
If AUTOMailversand <> "" Then whereAutoMailversand = " AND isnull(Rechnungsausgang.Automailversand,0) = 1 "
|
||||
Dim whereRechnungsNr = ""
|
||||
If RechnungNr > 0 AndAlso RechnungsNrAlreadySet Then whereRechnungsNr = " AND isnull(Rechnungsausgang.RechnungsNr,0) =" & RechnungNr
|
||||
|
||||
Dim sqlStr = " SELECT Rechnungsausgang.RK_ID, Rechnungsausgang.Firma_ID, Rechnungsausgang.FilialenNr, Rechnungsausgang.RechnungsKundenNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Status, Rechnungsausgang.Sammelrechnung, Rechnungsausgang.Abfertigungsdatum, Rechnungsausgang.Buchungsjahr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.SpeditionsbuchUnterNr,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag],Rechnungsausgang.Rechnungsart
|
||||
From Rechnungsausgang
|
||||
WHERE Rechnungsausgang.Status IN(0, 2) And Rechnungsausgang.Firma_ID = " & Firma_ID & " And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And Rechnungsausgang.FakturierungsGruppe = '" & FakturierungsGruppe & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & DatumBis.ToShortDateString & "' " & whereKdNr & whereAbfArt & "
|
||||
" & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & "" & getWhereAvisoId(AvisoIds) & whereAutoMailversand
|
||||
" & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & getWhereAvisoId(AvisoIds) & whereAutoMailversand & whereRechnungsNr
|
||||
'Rechnungsausgang.Status IN(0, 2) --> vorher nur 2, da Anlagen vor der SR gedruckt wurden...
|
||||
If SammelrechungArt = 7 Then
|
||||
sqlStr &= " ORDER BY Rechnungsausgang.AvisoID,Rechnungsausgang.Firma_ID,Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, CASE Rechnungsausgang.Rechnungsart WHEN 'RK' THEN 1 WHEN 'RU' THEN 2 WHEN 'RG' THEN 3 ELSE 4 END "
|
||||
@@ -4289,7 +4291,7 @@ Public Class cFakturierung
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional RENralreadySet As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True, Optional onlySetRENRforAUTOMAIL As Boolean = False) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional RENralreadySet As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True, Optional onlySetRENRforAUTOMAIL As Boolean = False, Optional RechnungsNr As Integer = -1) As Boolean
|
||||
Try
|
||||
|
||||
Dim VorschauID = ""
|
||||
@@ -4299,25 +4301,28 @@ Public Class cFakturierung
|
||||
|
||||
If SammelrechungArt = 7 And (AvisoIds IsNot Nothing AndAlso AvisoIds.Count = 0) Then Return False 'Prüfung, ob Daten vorhanden; Abbruch ZB wenn keine AvisoId
|
||||
|
||||
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart) 'SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
If dt Is Nothing Then MsgBox("ERR01: Keine Daten") : Return True
|
||||
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart,, RENralreadySet, RechnungsNr)
|
||||
If dt.Rows.Count = 0 Then MsgBox("ERR02: Keine Daten") : Return True
|
||||
If Not CHECK_SR_SQLDT(dt) Then MsgBox("ERR03: Es wurden Rechnungen mit einem 0-Betrag gefunden. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
|
||||
If Not CHECK_SR_GESSUM_SQLDT(dt) Then MsgBox("ERR04: Summe der Rechnungen in Sammelrechnung ist '0'. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
|
||||
'Rechnungsart prüfen, ob Sammelrechnung oder unvollständige SRG /
|
||||
If Not CHECK_SR_RU_RK_SQLDT(dt) Then MsgBox("ERR05: Bei Kopf-Sammelrechnung müssen Kopfdaten und unvollständige Rg-Einträge vorhanden sein. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True
|
||||
|
||||
Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum, Firma_ID) 'IIf(Rechnungsdatum.Month = 1, Rechnungsdatum.Year - 1, Rechnungsdatum.Year)
|
||||
Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum, Firma_ID)
|
||||
|
||||
Dim Aktuelle_RgNr As Integer = -1
|
||||
Dim RgNrSetFirstTime As Boolean = False
|
||||
|
||||
If Not vorschau Then
|
||||
If Not RENralreadySet Then
|
||||
If RechnungsNr > 0 AndAlso RENralreadySet Then
|
||||
Aktuelle_RgNr = RechnungsNr
|
||||
Else
|
||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) 'Nimmt die aktuelle RgNr und zählt eine Pos. hoch. nur wenn keine Vorschau oder keine Re.Nr vergeben!!!
|
||||
RgNrSetFirstTime = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
||||
|
||||
If listPDFs Is Nothing Then listPDFs = New List(Of String)
|
||||
@@ -4335,13 +4340,13 @@ Public Class cFakturierung
|
||||
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||
If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal
|
||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
|
||||
If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
|
||||
If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then
|
||||
|
||||
Dim path = ""
|
||||
|
||||
If Not onlySetRENRforAUTOMAIL Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) 'hier wird auch die RG Nr erhöht!
|
||||
|
||||
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
|
||||
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand AndAlso Not RgNrSetFirstTime Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen, weil pro AVISO-ID neu NR.
|
||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
End If
|
||||
|
||||
@@ -4354,7 +4359,7 @@ Public Class cFakturierung
|
||||
Case 6 'MDM Abrechnung
|
||||
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
|
||||
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
|
||||
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then
|
||||
' KEIN doSAMMELRechnungsDruck_Abschnitt!!!!
|
||||
If (Not RENralreadySet AndAlso Aktuelle_RgNr < 0) Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
|
||||
@@ -4363,14 +4368,14 @@ Public Class cFakturierung
|
||||
Case Else
|
||||
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
|
||||
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
|
||||
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then
|
||||
Dim path = ""
|
||||
|
||||
If Not onlySetRENRforAUTOMAIL Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
|
||||
|
||||
If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
|
||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
End If
|
||||
'If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
|
||||
' Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
'End If
|
||||
|
||||
If path <> "" Then listPDFs.Add(path)
|
||||
|
||||
@@ -4383,7 +4388,10 @@ Public Class cFakturierung
|
||||
FIRMATmp = RG.Firma_ID
|
||||
RG.Automailversand = setAutoMailversand
|
||||
|
||||
If Aktuelle_RgNr > 0 Then RG.[RechnungsNr] = Aktuelle_RgNr
|
||||
If Aktuelle_RgNr > 0 Then
|
||||
RG.[RechnungsNr] = Aktuelle_RgNr
|
||||
RgNrSetFirstTime = False
|
||||
End If
|
||||
|
||||
|
||||
If vorschau Then
|
||||
@@ -4413,21 +4421,6 @@ Public Class cFakturierung
|
||||
If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
|
||||
|
||||
End Select
|
||||
|
||||
'If SammelrechungArt = 6 OrElse (onlySetRENRforAUTOMAIL AndAlso SammelrechungArt <> 6) Then
|
||||
' If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung bzw. der Sammelrechnung für Mailversand!!
|
||||
' RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!!
|
||||
|
||||
' Else
|
||||
' RG.[Status] = 4 ' Beim finalen Versenden der Sammelrechnung keine neue ReNr vergeben.
|
||||
' If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
|
||||
' End If
|
||||
|
||||
'Else
|
||||
' RG.[Status] = 3
|
||||
'End If
|
||||
|
||||
|
||||
RG.[RechnungsDatum] = Rechnungsdatum.ToShortDateString
|
||||
RG.[Buchungsjahr] = Buchungsjahr
|
||||
RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
||||
@@ -4788,11 +4781,7 @@ Public Class cFakturierung
|
||||
|
||||
Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelTransFerry360(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
Try
|
||||
'Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,Abfertigungsarten.Abfertigungsbezeichnung, (SELECT SUM([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) FROM RechnungsausgangPositionen where RechnungsausgangPositionen.RK_ID=Rechnungsausgang.RK_ID) as Betrag
|
||||
' ,isnull((SELECT cast(Sum(Anzahl)as varchar(5)) FROM RechnungsausgangPositionen AS POS2 where POS2.RK_ID=Rechnungsausgang.RK_ID and POS2.[BerechnungsartNr]=10),'') As POSAnz
|
||||
' FROM Rechnungsausgang INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr
|
||||
' INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart
|
||||
' WHERE 1=1 "
|
||||
|
||||
Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,
|
||||
Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,POS.LeistungsBez,([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) Betrag
|
||||
,CASE WHEN [BerechnungsartNr]=10 THEN '' ELSE pos.Anzahl END as [Count],CASE WHEN [BerechnungsartNr]=10 THEN pos.Anzahl ELSE '' END as POSCnt
|
||||
@@ -4805,7 +4794,7 @@ Public Class cFakturierung
|
||||
Else
|
||||
sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' "
|
||||
End If
|
||||
'sqlStr &= " ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr"
|
||||
|
||||
sqlStr &= " order by Rechnungsausgang.AvisoID desc, FilialenNr,AbfertigungsNr,POS.[BerechnungsartNr]"
|
||||
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ Public Class frmFaktSammelRgDrucken
|
||||
|
||||
sqlStr = "
|
||||
SELECT
|
||||
max(Rechnungsausgang.RechnungsNr) as RENR,
|
||||
Rechnungsausgang.RechnungsNr as RENR,
|
||||
Rechnungsausgang.RechnungsKundenNr,
|
||||
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
|
||||
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
|
||||
@@ -175,7 +175,7 @@ Public Class frmFaktSammelRgDrucken
|
||||
" & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & "
|
||||
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
|
||||
GROUP BY
|
||||
RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX " & If(Sammelrechung = 7, ", AvisoId", "") & "
|
||||
RechnungsNr,RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX " & If(Sammelrechung = 7, ", AvisoId", "") & "
|
||||
ORDER BY
|
||||
Rechnungsausgang.RechnungsKundenNr"
|
||||
|
||||
@@ -202,6 +202,10 @@ Public Class frmFaktSammelRgDrucken
|
||||
.Columns("LKW").Width = 80
|
||||
End If
|
||||
|
||||
If .Columns("RENR").Visible = Visible Then
|
||||
.Columns("RENR").Width = 60
|
||||
End If
|
||||
|
||||
If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then
|
||||
.Columns("IM_EX").Width = 45
|
||||
End If
|
||||
@@ -476,6 +480,20 @@ Public Class frmFaktSammelRgDrucken
|
||||
Return AvisoIds
|
||||
End Function
|
||||
|
||||
Function getKundenNr() As List(Of Integer)
|
||||
|
||||
Dim KundenNr As New List(Of Integer)
|
||||
If MyDatagridview1.SelectedRows.Count > 0 Then
|
||||
For Each r In MyDatagridview1.SelectedRows
|
||||
If r.cells("RechnungsKundenNr").value Is DBNull.Value Then
|
||||
Return (New List(Of Integer))
|
||||
End If
|
||||
KundenNr.Add(r.cells("RechnungsKundenNr").value)
|
||||
Next
|
||||
End If
|
||||
Return KundenNr
|
||||
End Function
|
||||
|
||||
Sub doSammelrechnung(ausgabeArt As Integer, Optional vorschau As Boolean = False)
|
||||
Try
|
||||
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
|
||||
@@ -659,7 +677,8 @@ Public Class frmFaktSammelRgDrucken
|
||||
Dim abfertigungsarten = getValues()
|
||||
|
||||
For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
|
||||
|
||||
Me.Enabled = False
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
|
||||
|
||||
Dim RENRExisting As Boolean = False
|
||||
@@ -667,33 +686,36 @@ Public Class frmFaktSammelRgDrucken
|
||||
If Not RENRExisting Then
|
||||
|
||||
Dim IM_EX As Boolean = False
|
||||
IM_EX = r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
|
||||
If r.Cells("IM_EX").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("IM_EX").Value) Then
|
||||
IM_EX = r.Cells("IM_EX").Value
|
||||
End If 'AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value <> ""
|
||||
|
||||
If abfertigungsarten = "" AndAlso IM_EX Then
|
||||
MsgBox("Achtung, RechnungNr für Kunde " & r.Cells("RechnungsKundenNr").Value & " konnte nicht gesetzt, weil keine Abfertigungsart ausgewählt wurde!")
|
||||
Continue For
|
||||
|
||||
Else
|
||||
If Sammelrechung <> 7 Then
|
||||
createsSammelRechungsNr(r.Cells("RechnungsKundenNr").Value, abfertigungsarten)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Me.Enabled = True
|
||||
Me.Cursor = Cursors.Default
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Me.Enabled = False
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
|
||||
Dim SonstAnlagen As New List(Of String)
|
||||
Dim listPDFs As New List(Of String)
|
||||
Dim RechnungsNrisSet As Boolean = False
|
||||
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
|
||||
If Not RechnungsNrisSet Then
|
||||
MsgBox("Fehler bei RechnungsNr-Erzeugung!")
|
||||
If Sammelrechung = 7 Then
|
||||
Me.Enabled = False
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
createsSammelRechungsNr(getSelectionKdNr, abfertigungsarten)
|
||||
Me.Enabled = True
|
||||
Me.Cursor = Cursors.Default
|
||||
End If
|
||||
|
||||
Me.Enabled = True
|
||||
Me.Cursor = Cursors.Default
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
@@ -714,6 +736,15 @@ Public Class frmFaktSammelRgDrucken
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function createsSammelRechungsNr(KundenNr As String, abfertigungsarten As String) As Boolean
|
||||
Dim SonstAnlagen As New List(Of String)
|
||||
Dim listPDFs As New List(Of String)
|
||||
Dim RechnungsNrisSet As Boolean = False
|
||||
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, KundenNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True,,, True)
|
||||
Return RechnungsNrisSet
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
If MyDatagridview1.SelectedRows.Count > 0 Then
|
||||
|
||||
@@ -977,19 +1008,26 @@ Public Class frmFaktSammelRgDrucken
|
||||
|
||||
If MyDatagridview1.SelectedRows.Count > 0 Then
|
||||
|
||||
' If Not IsNumeric(getSelectionKdNr_Simple) Then MsgBox("Es muss eine eindeutige KundenNr ausgewählt werden!") : Exit Sub
|
||||
|
||||
|
||||
If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
|
||||
|
||||
For Each r In MyDatagridview1.SelectedRows
|
||||
Dim fun As New cAutomailversand
|
||||
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
|
||||
|
||||
Next
|
||||
|
||||
Dim fun As New cAutomailversand
|
||||
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
|
||||
|
||||
|
||||
initDGV()
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
|
||||
|
||||
Dim where As String = ""
|
||||
|
||||
@@ -112,7 +112,7 @@ Public Class frmLogin
|
||||
|
||||
|
||||
Dim func As New cAutomailversand
|
||||
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)
|
||||
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID, Nothing)
|
||||
|
||||
Application.Exit()
|
||||
End 'immediately terminates further execution
|
||||
|
||||
@@ -990,8 +990,10 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
|
||||
Catch ex As Exception
|
||||
Try
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("MAIL ERROR - VOR SENDEN" & ex.Message, "FROM: " & eMailfrom & vbNewLine & "TO: " & eMailTo & vbNewLine & "SUBJ: " & betreff & vbNewLine & "TXT: " & text, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,, furtherMailAdress)
|
||||
Return False
|
||||
Catch ex2 As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("MAIL ERROR - VOR SENDEN LOG! " & ex2.Message, "FROM: " & eMailfrom & vbNewLine & "TO: " & eMailTo & vbNewLine & "SUBJ: " & betreff & vbNewLine & "TXT: " & text, ex2.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Try
|
||||
|
||||
Reference in New Issue
Block a user