fakt, automail, etc.
This commit is contained in:
@@ -4,7 +4,7 @@ Imports VERAG_PROG_ALLGEMEIN
|
|||||||
|
|
||||||
Public Class cAutomailversand
|
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
|
Try
|
||||||
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Public Class cAutomailversand
|
|||||||
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
|
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
|
||||||
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
|
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 & "'
|
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
|
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
|
||||||
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ Public Class cAutomailversand
|
|||||||
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
|
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
|
||||||
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
|
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 & "'
|
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
|
GROUP BY RechnungsNr, RechnungsKundenNr,tblKundenErweitert.kde_SR_IM_EX
|
||||||
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
ORDER BY RechnungsLandKz, RechnungsKundenNr"
|
||||||
|
|
||||||
@@ -51,6 +51,9 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
|
|
||||||
For Each row As DataRow In dt.Rows
|
For Each row As DataRow In dt.Rows
|
||||||
|
|
||||||
|
If dt.Rows.Count = 0 Then Exit Sub
|
||||||
|
|
||||||
Dim BelegartenNr = "70"
|
Dim BelegartenNr = "70"
|
||||||
Dim steuerbetrag As Double = 0
|
Dim steuerbetrag As Double = 0
|
||||||
Dim SR_DT As DataTable = Nothing
|
Dim SR_DT As DataTable = Nothing
|
||||||
@@ -58,7 +61,7 @@ Public Class cAutomailversand
|
|||||||
Dim DruckDatumZeit As DateTime
|
Dim DruckDatumZeit As DateTime
|
||||||
Dim Rechnungsdatum = Nothing
|
Dim Rechnungsdatum = Nothing
|
||||||
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
|
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
|
||||||
|
Dim AVISOID As New List(Of Integer)
|
||||||
|
|
||||||
If FirmaID = 19 AndAlso SammelrechungArt = 6 Then
|
If FirmaID = 19 AndAlso SammelrechungArt = 6 Then
|
||||||
|
|
||||||
@@ -89,18 +92,8 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
End If
|
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 IM_EX Then
|
|
||||||
AbfertigungsNr = getAbertigungsNr(i)
|
|
||||||
End If
|
|
||||||
|
|
||||||
SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, _Rechnungsdatum, row.Item("RechnungsKundenNr"),,,, AbfertigungsNr, True)
|
|
||||||
|
|
||||||
If SR_DT.Rows.Count = 0 Then Continue For
|
If SR_DT.Rows.Count = 0 Then Continue For
|
||||||
|
|
||||||
@@ -108,10 +101,7 @@ Public Class cAutomailversand
|
|||||||
Dim KDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(row.Item("RechnungsKundenNr"))
|
Dim KDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(row.Item("RechnungsKundenNr"))
|
||||||
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
|
Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
|
||||||
|
|
||||||
If i = 2 Then
|
|
||||||
ATTACHMENTS.Clear() 'leeren
|
|
||||||
RechnungsNr = -1 'nochmals zurücksetzen!
|
|
||||||
End If
|
|
||||||
|
|
||||||
If RechnungsNr = -1 Then
|
If RechnungsNr = -1 Then
|
||||||
If SR_DT.Rows.Count > 0 Then
|
If SR_DT.Rows.Count > 0 Then
|
||||||
@@ -121,12 +111,14 @@ Public Class cAutomailversand
|
|||||||
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
|
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
|
||||||
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
|
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
|
||||||
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
|
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
|
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
|
||||||
For Each r In SR_DT.Rows
|
For Each r In SR_DT.Rows
|
||||||
steuerbetrag += r("steuerpflichtigerGesamtbetrag")
|
steuerbetrag += r("steuerpflichtigerGesamtbetrag")
|
||||||
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
|
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
|
||||||
Next
|
Next
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -165,7 +157,7 @@ Public Class cAutomailversand
|
|||||||
showError = mailoeffnen 'bei MailÖffnen fehler anzeigen!
|
showError = mailoeffnen 'bei MailÖffnen fehler anzeigen!
|
||||||
|
|
||||||
setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
|
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
|
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)
|
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 VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
|
||||||
@@ -198,7 +190,6 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
Next
|
Next
|
||||||
Catch ex As System.Exception
|
Catch ex As System.Exception
|
||||||
@@ -207,6 +198,17 @@ Public Class cAutomailversand
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
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)
|
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
|
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
|
Dim RechnungsNrisSet As Boolean = False
|
||||||
|
|
||||||
@@ -497,7 +499,7 @@ Public Class cAutomailversand
|
|||||||
DatumBis = Rechnungsdatum
|
DatumBis = Rechnungsdatum
|
||||||
End If
|
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
|
Return RechnungsNrisSet
|
||||||
End Function
|
End Function
|
||||||
@@ -511,6 +513,21 @@ Public Class cAutomailversand
|
|||||||
Mail = outl.CreateItem(0)
|
Mail = outl.CreateItem(0)
|
||||||
|
|
||||||
Mail.Subject = Mailsubject
|
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 = ""
|
Dim TextHTML = ""
|
||||||
@@ -529,12 +546,7 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br><br>"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
|
|
||||||
TextHTML &= "<br>"
|
|
||||||
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True)
|
TextHTML &= cFakturierung.getSignature(AD.LandKz, FirmaID, True, True)
|
||||||
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
|
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
|
||||||
|
|
||||||
@@ -564,8 +576,7 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
End Function
|
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 = ""
|
Dim Anhangsbez = ""
|
||||||
If RECHNUNG IsNot Nothing Then
|
If RECHNUNG IsNot Nothing Then
|
||||||
@@ -587,6 +598,15 @@ Public Class cAutomailversand
|
|||||||
|
|
||||||
End If
|
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")
|
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
|
' Beleg + Anhänge zusammenführen
|
||||||
If mergeAllPDFS AndAlso ATTACHMENTS.Count > 1 Then
|
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)
|
Dim pdfs As New List(Of String)
|
||||||
pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList()
|
pdfs = ATTACHMENTS.Select(Function(a) a.Pfad.ToString).ToList()
|
||||||
|
|||||||
@@ -4213,17 +4213,19 @@ Public Class cFakturierung
|
|||||||
' 3-_> Sammel-Rg gedruckt
|
' 3-_> Sammel-Rg gedruckt
|
||||||
' 4-_> ? irgendwas mit SR 6 Maut/Diesel??
|
' 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 & ") "
|
If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") "
|
||||||
Dim whereAbfArt = ""
|
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 & ") "
|
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 = ""
|
Dim whereAutoMailversand = ""
|
||||||
If AUTOMailversand <> "" Then whereAutoMailversand = " AND isnull(Rechnungsausgang.Automailversand,0) = 1 "
|
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
|
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
|
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 & "
|
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...
|
'Rechnungsausgang.Status IN(0, 2) --> vorher nur 2, da Anlagen vor der SR gedruckt wurden...
|
||||||
If SammelrechungArt = 7 Then
|
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 "
|
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
|
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
|
Try
|
||||||
|
|
||||||
Dim VorschauID = ""
|
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
|
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")
|
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart,, RENralreadySet, RechnungsNr)
|
||||||
If dt Is Nothing Then MsgBox("ERR01: Keine Daten") : Return True
|
|
||||||
If dt.Rows.Count = 0 Then MsgBox("ERR02: Keine Daten") : Return True
|
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_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
|
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 /
|
'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
|
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 Aktuelle_RgNr As Integer = -1
|
||||||
|
Dim RgNrSetFirstTime As Boolean = False
|
||||||
|
|
||||||
If Not vorschau Then
|
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!!!
|
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
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
||||||
|
|
||||||
If listPDFs Is Nothing Then listPDFs = New List(Of String)
|
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 kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||||
If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal
|
If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal
|
||||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID '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 = ""
|
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 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)
|
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -4354,7 +4359,7 @@ Public Class cFakturierung
|
|||||||
Case 6 'MDM Abrechnung
|
Case 6 'MDM Abrechnung
|
||||||
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID '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!!!!
|
' KEIN doSAMMELRechnungsDruck_Abschnitt!!!!
|
||||||
If (Not RENralreadySet AndAlso Aktuelle_RgNr < 0) Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
If (Not RENralreadySet AndAlso Aktuelle_RgNr < 0) Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||||
|
|
||||||
@@ -4363,14 +4368,14 @@ Public Class cFakturierung
|
|||||||
Case Else
|
Case Else
|
||||||
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal
|
||||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID '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 = ""
|
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 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!
|
'If Not RENralreadySet AndAlso Aktuelle_RgNr > 0 AndAlso setAutoMailversand Then 'nächste SR bei AUTOMAIL -> ReNr erhöhen!
|
||||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
' Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
If path <> "" Then listPDFs.Add(path)
|
If path <> "" Then listPDFs.Add(path)
|
||||||
|
|
||||||
@@ -4383,7 +4388,10 @@ Public Class cFakturierung
|
|||||||
FIRMATmp = RG.Firma_ID
|
FIRMATmp = RG.Firma_ID
|
||||||
RG.Automailversand = setAutoMailversand
|
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
|
If vorschau Then
|
||||||
@@ -4413,21 +4421,6 @@ Public Class cFakturierung
|
|||||||
If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
|
If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr
|
||||||
|
|
||||||
End Select
|
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.[RechnungsDatum] = Rechnungsdatum.ToShortDateString
|
||||||
RG.[Buchungsjahr] = Buchungsjahr
|
RG.[Buchungsjahr] = Buchungsjahr
|
||||||
RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
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
|
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
|
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,
|
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
|
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
|
,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
|
Else
|
||||||
sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' "
|
sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' "
|
||||||
End If
|
End If
|
||||||
'sqlStr &= " ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr"
|
|
||||||
sqlStr &= " order by Rechnungsausgang.AvisoID desc, FilialenNr,AbfertigungsNr,POS.[BerechnungsartNr]"
|
sqlStr &= " order by Rechnungsausgang.AvisoID desc, FilialenNr,AbfertigungsNr,POS.[BerechnungsartNr]"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
|
|
||||||
sqlStr = "
|
sqlStr = "
|
||||||
SELECT
|
SELECT
|
||||||
max(Rechnungsausgang.RechnungsNr) as RENR,
|
Rechnungsausgang.RechnungsNr as RENR,
|
||||||
Rechnungsausgang.RechnungsKundenNr,
|
Rechnungsausgang.RechnungsKundenNr,
|
||||||
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
|
MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma,
|
||||||
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
|
" & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
|
||||||
@@ -175,7 +175,7 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
" & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & "
|
" & whereAbfArt & whereAutoMail & SQLAUTOMAIL_RECHNUNGSDATuM & "
|
||||||
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
|
AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
|
||||||
GROUP BY
|
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
|
ORDER BY
|
||||||
Rechnungsausgang.RechnungsKundenNr"
|
Rechnungsausgang.RechnungsKundenNr"
|
||||||
|
|
||||||
@@ -202,6 +202,10 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
.Columns("LKW").Width = 80
|
.Columns("LKW").Width = 80
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If .Columns("RENR").Visible = Visible Then
|
||||||
|
.Columns("RENR").Width = 60
|
||||||
|
End If
|
||||||
|
|
||||||
If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then
|
If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then
|
||||||
.Columns("IM_EX").Width = 45
|
.Columns("IM_EX").Width = 45
|
||||||
End If
|
End If
|
||||||
@@ -476,6 +480,20 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
Return AvisoIds
|
Return AvisoIds
|
||||||
End Function
|
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)
|
Sub doSammelrechnung(ausgabeArt As Integer, Optional vorschau As Boolean = False)
|
||||||
Try
|
Try
|
||||||
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
|
If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
|
||||||
@@ -659,7 +677,8 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
Dim abfertigungsarten = getValues()
|
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))
|
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
|
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
|
Dim RENRExisting As Boolean = False
|
||||||
@@ -667,32 +686,35 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
If Not RENRExisting Then
|
If Not RENRExisting Then
|
||||||
|
|
||||||
Dim IM_EX As Boolean = False
|
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
|
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!")
|
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
|
End If
|
||||||
|
|
||||||
|
|
||||||
Me.Enabled = True
|
Me.Enabled = True
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
If Sammelrechung = 7 Then
|
||||||
Me.Enabled = False
|
Me.Enabled = False
|
||||||
Me.Cursor = Cursors.WaitCursor
|
Me.Cursor = Cursors.WaitCursor
|
||||||
|
createsSammelRechungsNr(getSelectionKdNr, abfertigungsarten)
|
||||||
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!")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Me.Enabled = True
|
Me.Enabled = True
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -714,6 +736,15 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
|
|
||||||
End Sub
|
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
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||||
If MyDatagridview1.SelectedRows.Count > 0 Then
|
If MyDatagridview1.SelectedRows.Count > 0 Then
|
||||||
|
|
||||||
@@ -977,19 +1008,26 @@ Public Class frmFaktSammelRgDrucken
|
|||||||
|
|
||||||
If MyDatagridview1.SelectedRows.Count > 0 Then
|
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
|
If Not cAutomailversand.automRechnungsversand_durchführen Then Exit Sub
|
||||||
|
|
||||||
For Each r In MyDatagridview1.SelectedRows
|
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
|
Next
|
||||||
|
|
||||||
|
Dim fun As New cAutomailversand
|
||||||
|
fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked)
|
||||||
|
|
||||||
|
|
||||||
initDGV()
|
initDGV()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
|
Private Sub btnNurAbf_Click(sender As Object, e As EventArgs) Handles btnNurImport.Click, btnNurExport.Click
|
||||||
|
|
||||||
Dim where As String = ""
|
Dim where As String = ""
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ Public Class frmLogin
|
|||||||
|
|
||||||
|
|
||||||
Dim func As New cAutomailversand
|
Dim func As New cAutomailversand
|
||||||
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)
|
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID, Nothing)
|
||||||
|
|
||||||
Application.Exit()
|
Application.Exit()
|
||||||
End 'immediately terminates further execution
|
End 'immediately terminates further execution
|
||||||
|
|||||||
@@ -990,8 +990,10 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
|
|||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Try
|
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)
|
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
|
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)
|
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
|
||||||
|
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
Reference in New Issue
Block a user