diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb
index 581cf348..9b3d3b15 100644
--- a/SDL/Fakturierung/cAutomailversand.vb
+++ b/SDL/Fakturierung/cAutomailversand.vb
@@ -1,5 +1,4 @@
Imports System.IO
-Imports com.sun.tools.doclets.internal.toolkit.util
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -12,7 +11,7 @@ Public Class cAutomailversand
Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
- WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "'
+ WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "'
and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
ORDER BY RechnungsLandKz, RechnungsKundenNr"
@@ -22,35 +21,41 @@ Public Class cAutomailversand
For Each row As DataRow In dt.Rows
-
+ Dim BelegartenNr = "70"
+ Dim steuerbetrag As Double = 0
Dim SR_DT As DataTable = Nothing
Dim RechnungsNr As Integer = -1
Dim DruckDatumZeit As DateTime
Dim Rechnungsdatum = Nothing
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
- 'AKTUELL IMMER MIT KOPIE
- MDMKopiedrucken = True
- Dim isEU As Boolean = row.Item("MitgliedslandEU")
+ If FirmaID = 19 Then
- If isEU Then
- If row.Item("keineMWST") Then
- '1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail!
- MDMKopiedrucken = Not row.Item("keineMWST")
+ 'AKTUELL IMMER MIT KOPIE
+ MDMKopiedrucken = True
+ Dim isEU As Boolean = row.Item("MitgliedslandEU")
+
+ If isEU Then
+ If row.Item("keineMWST") Then
+ '1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail!
+ MDMKopiedrucken = Not row.Item("keineMWST")
+ End If
+
+ '2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail!
+ If MDMKopiedrucken Then
+ MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0
+ End If
+
+ Else
+ 'immer KOPIE weil Ausdruck aktuell noch gesendet!
End If
- '2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail!
- If MDMKopiedrucken Then
- MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0
- End If
-
- Else
- 'immer KOPIE weil Ausdruck aktuell noch gesendet!
End If
- SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),, , , , True)
+ SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True)
Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr"))
+ Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr"))
If RechnungsNr = -1 Then
If SR_DT.Rows.Count > 0 Then
@@ -60,12 +65,16 @@ Public Class cAutomailversand
RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr")
DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit")
Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum")
+ BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
+ For Each r In SR_DT.Rows
+ steuerbetrag += r("steuerpflichtigerGesamtbetrag")
+ If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For
+ Next
End If
End If
End If
-
Dim SR As Boolean = True
Dim MailTo As String = ""
@@ -101,13 +110,14 @@ Public Class cAutomailversand
End If
+ 'im TESTSYSTEM bewusst die Empfänger leeren!
+
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
MailTo = ""
MailtoCC = ""
- MailtoBCC = "mmdabrechnung@verag.ag"
-
+ MailtoBCC = setAccountToSend(FirmaID)
Else
- MailtoBCC = "mmdabrechnung@verag.ag"
+ MailtoBCC = setAccountToSend(FirmaID)
End If
@@ -119,8 +129,8 @@ Public Class cAutomailversand
Dim listPDFs As New List(Of String)
Dim showError As Boolean = False
- setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail)
- If doRechnung(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then
+ setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr)
+ If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then
loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
@@ -156,51 +166,99 @@ Public Class cAutomailversand
End Sub
- Sub sendMailEinzelrechnung(Rechnungsdatum As Date, RechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
+ Sub sendMailEinzelrechnungen(Rechnungsdatum As Date, FirmaID As Integer, Optional Sachbearbeiter As String = "", Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False)
+ Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
+
+ Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang
+ LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
+ INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz
+ WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
+ and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & "
+ GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU
+ ORDER BY RechnungsLandKz, RechnungsKundenNr"
+
+ Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL")
+ Try
+
+ For Each r In dt.Rows
+
+ Dim MailTo As String = ""
+ Dim MailtoCC As String = ""
+ Dim MailtoBCC As String = ""
+
+
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
+ MailTo = ""
+ MailtoCC = ""
+ MailtoBCC = setAccountToSend(FirmaID)
+ Else
+ MailtoBCC = setAccountToSend(FirmaID)
+ End If
+
+
+ Next
+
+ Catch ex As System.Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,,)
+
+ End Try
End Sub
- Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String)
+ Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, dt As DataTable, ByRef BelegartenNr As Integer)
Dim txtRgNr As String = IIf(RechnungsNr < 0, -1, RechnungsNr)
Dim Mailtext As String
- Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
- Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID)
- Dim spracheRechnung As String = "EN" 'Defaultsprache
+ If SammelrechungArt <> 6 Then
- Select Case row.Item("RechnungsLandKz")
- Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz")
- Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE"
- Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB"
- End Select
+ Subject = "VERAG Sammel-Rechnung"
+ TextHTML &= getSammelRgTExt(getSelectionLandKz(dt), Firma_ID)
- If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
+
+ Else
- Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
- If r IsNot Nothing Then
- Subject = r.txt_betreff
- Subject = Subject.Replace("%BelegNr%", txtRgNr)
- TextHTML &= r.txt_text
- If Mailtext <> "" Then TextHTML &= Mailtext
- TextHTML &= vbNewLine & vbNewLine
+ Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
+ Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID)
+
+ Dim spracheRechnung As String = "EN" 'Defaultsprache
+
+ Select Case row.Item("RechnungsLandKz")
+ Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz")
+ Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE"
+ Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB"
+ End Select
+ If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
+
+
+ Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
+ If r IsNot Nothing Then
+ Subject = r.txt_betreff
+ Subject = Subject.Replace("%BelegNr%", txtRgNr)
+ TextHTML &= r.txt_text
+ If Mailtext <> "" Then TextHTML &= Mailtext
+ TextHTML &= vbNewLine & vbNewLine
+
+
+ End If
End If
+
End If
End Sub
- Private Function doRechnung(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True)
+ Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True)
Dim RechnungsNrisSet As Boolean = False
- RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, 6, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie,, saveInThereFore, showError)
+ RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie, True, saveInThereFore, showError)
Return RechnungsNrisSet
End Function
@@ -315,6 +373,9 @@ Public Class cAutomailversand
Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean
+
+ Dim accountToSend = setAccountToSend(FirmaID)
+
Dim mailcreated As Boolean = False
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
@@ -329,14 +390,14 @@ Public Class cAutomailversand
If Mail IsNot Nothing Then
EMails = Mail.To
EMails_CC = Mail.CC
- EMails_BCC = Mail.BCC
+ EMails_BCC = accountToSend 'Mail.BCC
EMail_subject = Mail.Subject
EMail_HTML = Mail.Body
AttCount = Mail.Attachments.Count
Else
EMails = MailTo
EMails_CC = MailtoCC
- EMails_BCC = MailtoBCC
+ EMails_BCC = accountToSend 'MailtoBCC
EMail_subject = Mailsubject
EMail_HTML = Mailhtml
AttCount = ATTACHMENTS.Count
@@ -356,7 +417,7 @@ Public Class cAutomailversand
- Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG-MDM",,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
+ Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG_" & FirmaID,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
@@ -383,7 +444,7 @@ Public Class cAutomailversand
Next
- If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, "mmdabrechnung@verag.ag", False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", "mmdabrechnung@verag.ag")) Then
+ If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then
API.UPDTAE_OK()
mailcreated = True
Else
@@ -402,5 +463,130 @@ Public Class cAutomailversand
Return mailcreated
+ End Function
+
+ Function getSammelRgTExt(RechnungsLandKz, FIRMA_ID) As String
+
+ If RechnungsLandKz = "" Then
+
+ getSammelRgTExt = "Sehr geehrte Damen und Herren,
"
+ getSammelRgTExt &= "Dear Ladies and Gentlemen,
"
+ getSammelRgTExt &= "Sayin Bayanlar ve Baylar,
"
+ getSammelRgTExt &= "
"
+ getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.
"
+ getSammelRgTExt &= "attached we send you the invoice mentioned above.
"
+ getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.
"
+ getSammelRgTExt &= "
"
+ getSammelRgTExt &= "
Mit freundlichen Grüßen / Best regards / Saygilarimizla
VERAG Spedition AG
" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID)
+ Return "
" & getSammelRgTExt & "
"
+ End If
+
+
+
+ getSammelRgTExt = "" & getSammelRgTExt & "
"
+ End Function
+
+ Function getSelectionLandKz(dt As DataTable) As String
+ getSelectionLandKz = ""
+ If dt.Rows.Count > 0 Then
+
+ If dt.Rows.Count > 0 Then
+
+ For Each r As DataRow In dt.Rows
+
+ If Not IsDBNull(r("RechnungsLandKz")) Then
+
+ Dim landKz As String = r("RechnungsLandKz").ToString()
+
+ If getSelectionLandKz = "" Then
+ getSelectionLandKz = landKz
+ ElseIf getSelectionLandKz <> landKz Then
+ Return ""
+ End If
+
+ End If
+
+ Next
+
+ End If
+ End If
+
+
+ End Function
+
+ Private Function setAccountToSend(FIRMA_ID) As String
+ Dim accountToSend = ""
+
+ Select Case FIRMA_ID
+
+ Case 24
+ accountToSend = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
+ Case 19
+ accountToSend = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
+ Case 7
+ accountToSend = "rechnung@atilla-spedition.com"
+ Case Else
+ accountToSend = "rechnungsversand@verag.ag"
+ End Select
+
+ Return accountToSend
+ End Function
+
+ Function addRgData_ZF_Passau(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String ' NUR EINZELRECHNUNG
+ addRgData_ZF_Passau = vbNewLine & vbNewLine
+ Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
+
+ Select Case RechnungsLandKz
+ Case "TR"
+ addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ Case "A", "AT", "D", "DE", "CH"
+ addRgData_ZF_Passau &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_ZF_Passau &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_ZF_Passau &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ Case Else
+ addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ End Select
+
+ ' addRgData_ZF_Passau = RichTextBox.Text.Replace("Mit freundlichen Grüßen", "")
+
+
+ End Function
+ Function addRgData_Parsan(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String 'NUR EINZELRECHNUNG
+ addRgData_Parsan = vbNewLine & vbNewLine
+ Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
+
+ Select Case RechnungsLandKz
+ Case "TR"
+ ' addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ Case "A", "AT", "D", "DE", "CH"
+ ' addRgData_Parsan &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_Parsan &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_Parsan &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ Case Else
+ 'addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
+ If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then
+ addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
+ addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
+ End If
+ End Select
+
+
+
End Function
End Class
diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb
index 4c6a779d..a36a2496 100644
--- a/SDL/Fakturierung/cFakturierung.vb
+++ b/SDL/Fakturierung/cFakturierung.vb
@@ -4348,12 +4348,8 @@ Public Class cFakturierung
' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr '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
-
' KEIN doSAMMELRechnungsDruck_Abschnitt!!!!
If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
-
-
-
End If
kdTmp = RG.RechnungsKundenNr
FilialeTmp = RG.FilialenNr
@@ -4363,12 +4359,16 @@ Public Class cFakturierung
' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr '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
- Dim path = ""
- doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
- Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
- If path <> "" Then listPDFs.Add(path)
+ If Not setAutoMailversand Then
+ Dim path = ""
+ doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore)
+ Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
+ If path <> "" Then listPDFs.Add(path)
+ Else
+ If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
+ End If
End If
- kdTmp = RG.RechnungsKundenNr
+ kdTmp = RG.RechnungsKundenNr
FilialeTmp = RG.FilialenNr
FIRMATmp = RG.Firma_ID
End Select
@@ -4377,8 +4377,8 @@ Public Class cFakturierung
RG.[VorschauID] = VorschauID
Else
- If SammelrechungArt = 6 Then
- If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung!
+ If SammelrechungArt = 6 Or (setAutoMailversand And 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!!
RG.Automailversand = setAutoMailversand
Else
@@ -4413,7 +4413,9 @@ Public Class cFakturierung
'Letzter Abschnitt:
If found Then
Dim path = ""
- If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore)
+ If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then
+ doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore)
+ End If
If path <> "" Then listPDFs.Add(path)
End If
lastAktuelle_RgNr = Aktuelle_RgNr
@@ -4874,7 +4876,7 @@ Public Class cFakturierung
RG_Bezeichnung = "Provisionsabrechnung_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf"
End If
- If isMDMRechnungsdruck Then
+ If isMDMRechnungsdruck AndAlso FIRMA.Firma_ID = 19 Then
rpt = SammelRechnungAnlagenDruck_MDM(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath)
Else
rpt = SammelRechnungAnlagenDruck(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath)
diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb
index 4b393959..11875af0 100644
--- a/SDL/Fakturierung/frmFaktEmail.vb
+++ b/SDL/Fakturierung/frmFaktEmail.vb
@@ -2,8 +2,6 @@
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
-
-
Public Class frmFaktEmail
Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang
@@ -78,23 +76,8 @@ Public Class frmFaktEmail
End Sub
-
-
Private Sub frmFaktEmail_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 'Select Case RECHNUNG.RechnungsLandKz
- ' Case "TR"
- ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
- ' TextHTML = "Sayin Bayanlar ve Baylar,
ekte baslikta yazan faturayi bulabilirsinz."
- ' TextHTML &= "
Saygilarimizla
" & cFakturierung.getSignature(RECHNUNG)
- ' Case "A", "AT", "D", "DE", "CH"
- ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
- ' TextHTML = "Sehr geehrte Damen und Herren,
im Anhang senden wir Ihnen die o.g. Rechnung."
- ' TextHTML &= "
Mit freundlichen Grüßen
" & cFakturierung.getSignature(RECHNUNG)
- ' Case Else
- ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
- ' TextHTML = "Sehr geehrte Damen und Herren,
attached we send you the invoice mentioned above."
- ' TextHTML &= "
Best regards
" & cFakturierung.getSignature(RECHNUNG)
- 'End Select
+
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN"))
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
index e168f871..2a71cda1 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb
@@ -401,7 +401,7 @@ Partial Class frmFaktSammelRgDrucken
'cbxAUTOMail
'
Me.cbxAUTOMail.AutoSize = True
- Me.cbxAUTOMail.Location = New System.Drawing.Point(555, 44)
+ Me.cbxAUTOMail.Location = New System.Drawing.Point(532, 66)
Me.cbxAUTOMail.Name = "cbxAUTOMail"
Me.cbxAUTOMail.Size = New System.Drawing.Size(116, 17)
Me.cbxAUTOMail.TabIndex = 30
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
index bf9a5f82..39617ca5 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
@@ -58,6 +58,8 @@ Public Class frmFaktSammelRgDrucken
Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
End Select
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cbxAUTOMail.Visible = True : pnlAUTOMailversand.Visible = True
+
initDGV()
End Sub
@@ -65,53 +67,153 @@ Public Class frmFaktSammelRgDrucken
Sub initDGV()
With MyDatagridview1
- Dim whereAbfArt = ""
- Dim whereMWST = ""
+ 'Dim whereAbfArt = ""
+ 'Dim whereMWST = ""
+ 'Dim abfertigungsarten = getValues()
+
+ 'If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
+ ' whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") "
+ 'End If
+ 'If cbxMWST.CheckState.Indeterminate Then
+ ' whereMWST = ""
+ 'Else
+ ' whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0")
+ 'End If
+
+ 'If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then
+ ' whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
+ ' whereAbfArt &= " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
+ 'End If
+
+ 'Dim sqlStr = ""
+
+ 'Select Case Sammelrechung
+
+ ' Case 6 ' Maut Sammelrechnung
+
+ ' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST
+ ' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
+ ' FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
+ ' WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "'
+ ' " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
+ ' " & whereAbfArt & " " & whereMWST & "
+ ' GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0)
+ ' ORDER BY RechnungsLandKz, RechnungsKundenNr "
+
+ ' Case Else
+
+ ' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & "
+ ' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
+ ' FROM Rechnungsausgang
+ ' WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "'
+ ' " & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
+ ' " & whereAbfArt & "
+ ' AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
+ ' GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & "
+ ' ORDER BY Rechnungsausgang.RechnungsKundenNr "
+
+ 'End Select
+
+
+ Dim whereAbfArt As String = ""
+ Dim whereMWST As String = ""
+ Dim whereAutoMail As String = ""
+
Dim abfertigungsarten = getValues()
+ ' Abfertigungsarten
If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then
- whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") "
- End If
- If cbxMWST.CheckState.Indeterminate Then
- whereMWST = ""
- Else
- whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0")
+ whereAbfArt = " AND (SELECT Abfertigungsart
+ FROM Speditionsbuch
+ WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr
+ AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr
+ AND Speditionsbuch.UnterNr = Rechnungsausgang.SpeditionsbuchUnterNr
+ ) IN (" & abfertigungsarten & ") "
End If
- If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then
- whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0")
+ ' MWST
+ If Not cbxMWST.CheckState = CheckState.Indeterminate Then
+ whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
End If
- Dim sqlStr = ""
+ whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) = " & If(cbxAUTOMail.Checked, "1", "0")
+
+ Dim sqlStr As String = ""
Select Case Sammelrechung
Case 6 ' Maut Sammelrechnung
- sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST
- ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
- FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
- WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "'
- " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
- " & whereAbfArt & " " & whereMWST & "
- GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0)
- ORDER BY RechnungsLandKz, RechnungsKundenNr "
+ sqlStr = "
+ SELECT
+ Rechnungsausgang.RechnungsKundenNr,
+ MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1],
+ 0 AS AvisoId,
+ MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
+ COUNT(*) AS Anzahl,
+ SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,
+ SUM(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer,
+ ISNULL(tblKundenErweitert.kde_keineMWSt,0) AS keineMWST,
+ (SELECT CASE
+ WHEN Rechnungsdruck = 0 THEN 'POST'
+ WHEN Rechnungsdruck = 1 THEN 'FAX'
+ WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
+ ELSE '-' END
+ FROM Adressen
+ WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
+ FROM Rechnungsausgang
+ LEFT JOIN tblKundenErweitert
+ ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
+ WHERE
+ Rechnungsausgang.Status = 2
+ AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
+ AND Rechnungsausgang.Sammelrechnung = " & Sammelrechung & "
+ AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) = '" & txtRechnungsdatum._value & "'
+ " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
+ " & whereAbfArt & whereMWST & whereAutoMail & "
+ GROUP BY
+ RechnungsKundenNr,
+ ISNULL(tblKundenErweitert.kde_keineMWSt,0)
+ ORDER BY
+ RechnungsLandKz, RechnungsKundenNr"
Case Else
- sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & "
- ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck
- FROM Rechnungsausgang
- WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "'
- " & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & "
- " & whereAbfArt & "
- AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
- GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & "
- ORDER BY Rechnungsausgang.RechnungsKundenNr "
+ sqlStr = "
+ SELECT
+ min(Rechnungsausgang.RechnungsNr) as RENR,
+ Rechnungsausgang.RechnungsKundenNr,
+ MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1],
+ " & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId,
+ MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz],
+ COUNT(*) AS Anzahl,
+ SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe
+ " & If(Sammelrechung = 7, ", MAX([LKW Kennzeichen]) AS LKW", "") & ",
+ (SELECT CASE
+ WHEN Rechnungsdruck = 0 THEN 'POST'
+ WHEN Rechnungsdruck = 1 THEN 'FAX'
+ WHEN Rechnungsdruck = 2 THEN 'E-MAIL'
+ ELSE '-' END
+ FROM Adressen
+ WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck
+ FROM Rechnungsausgang
+ WHERE
+ Rechnungsausgang.Status IN (0,2)
+ AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "'
+ AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "'
+ AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "'
+ " & If(Sammelrechung = 7 AndAlso cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
+ " & whereAbfArt & whereAutoMail & "
+ AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "'
+ GROUP BY
+ RechnungsKundenNr " & If(Sammelrechung = 7, ", AvisoId", "") & "
+ ORDER BY
+ Rechnungsausgang.RechnungsKundenNr"
End Select
+
'Rechnungsausgang.Status IN (0,2) --> vormals nur 2
.SET_SQL(sqlStr, "FMZOLL")
.LOAD()
@@ -137,8 +239,12 @@ Public Class frmFaktSammelRgDrucken
.Columns("RechnungsLandKz").Visible = True
End If
- If .Columns.Contains("keineMWST") Then
- .Columns("keineMWST").Visible = False
+ If .Columns.Contains("keineMWST") Then
+ .Columns("keineMWST").Visible = False
+ End If
+
+ If .Columns.Contains("RENR") Then
+ .Columns("RENR").Visible = False
End If
If .Columns.Contains("Steuer") Then
@@ -558,21 +664,73 @@ Public Class frmFaktSammelRgDrucken
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
+
If vbYes = MsgBox("Möchten Sie alle markieren Rechnungen den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then
- setMailversand(True, 19, 6, 2)
+ Dim noRENRExisting As Boolean = False
+
+ If MyDatagridview1.Columns.Contains("RENR") Then
+ noRENRExisting = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value))
+
+ If noRENRExisting Then
+
+ If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub
+ If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub
+ If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub
+
+ If vbYes = MsgBox("Es wird eine Belegsnummer vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then
+
+ For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value))
+
+ 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
+
+
+ Me.Enabled = False
+ Me.Cursor = Cursors.WaitCursor
+ Dim listPDFs As New List(Of String)
+ Dim SonstAnlagen As New List(Of String)
+ Dim RechnungsNrisSet As Boolean = False
+
+ Dim abfertigungsarten = getValues()
+
+ 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)
+ If Not RechnungsNrisSet Then
+ MsgBox("Fehler bei RechnungsNrErzeugung!")
+ End If
+ Me.Enabled = True
+ End If
+
+ Next
+ Me.Enabled = True
+ Me.Cursor = Cursors.Default
+
+
+ Else
+
+
+ End If
+ End If
+ End If
+
+ setMailversand_ALL(True, Firma, Sammelrechung, 2)
+ Me.Enabled = True
+ Me.Cursor = Cursors.Default
End If
+
End If
+
+
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
If vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand deaktiveren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then
- setMailversand(False, 19, 6, 2)
+ 'setMailversand(false, Firma, Sammelrechung, 2)
+ setMailversand_ALL(False, Firma, Sammelrechung, 2)
End If
End If
@@ -593,6 +751,7 @@ Public Class frmFaktSammelRgDrucken
For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
If IsDate(txtRechnungsdatum.Text) AndAlso r.Cells("RechnungsLandKz").Value <> "" AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
+
If (New SQL).doSQL("UPDATE Rechnungsausgang set Automailversand = " & mailversandString &
" from Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr where Rechnungsausgang.Status In (" & Status & ") And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" &
CDate(txtRechnungsdatum.Text).ToShortDateString & "' and RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & " and RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value & " ' and isnull(Automailversand, 0) <> " & mailversandString &
@@ -609,6 +768,60 @@ Public Class frmFaktSammelRgDrucken
+
+ End Function
+
+ Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean
+
+ Dim count As Integer = 0
+ Dim mailversandString As String = If(Mailversand, "1", "0")
+
+ Dim whereMWST As String = ""
+ Dim whereAutoMail As String = ""
+
+ ' MWST Filter
+ If cbxMWST.CheckState <> CheckState.Indeterminate Then
+ whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0")
+ End If
+
+ ' Automail Filter (nur ändern wenn unterschiedlich)
+ whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) <> " & mailversandString
+
+ For Each r As DataGridViewRow In MyDatagridview1.SelectedRows
+
+ Dim sql As String = ""
+
+ If IsDate(txtRechnungsdatum.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then
+
+ sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr
+ WHERE
+ Rechnungsausgang.Status IN (" & Status & ")
+ AND Rechnungsausgang.Firma_ID = '" & FirmaID & "'
+ AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "'
+ AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "'
+ AND Rechnungsausgang.RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & "
+ AND Rechnungsausgang.RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value.ToString.Trim & "'
+ " & whereAutoMail & "
+ " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & "
+ " & whereMWST
+
+ End If
+
+ If (New SQL).doSQL(sql, "FMZOLL") Then
+ count += 1
+ End If
+
+ Next
+
+ If count <> MyDatagridview1.SelectedRows.Count Then
+ MsgBox("ACHTUNG" & vbNewLine &
+ "Der automatische Mailversand wurde nur bei " & count & " Rechnungen " &
+ If(Mailversand, "aktiviert!", "deaktiviert!") & vbNewLine &
+ "Markiert waren " & MyDatagridview1.SelectedRows.Count & " Rechnungen!")
+ End If
+
+
+
End Function
Private Sub cbxAUTOMail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAUTOMail.CheckedChanged
@@ -638,7 +851,7 @@ Public Class frmFaktSammelRgDrucken
If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) Then
- Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = 6" & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL")
+ Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL")
If dtRE.Rows.Count > 0 Then
Dim RK_ID As String = ""
@@ -696,11 +909,11 @@ Public Class frmFaktSammelRgDrucken
If MyDatagridview1.SelectedRows.Count > 0 Then
- If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub
+ If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub
Dim fun As New cAutomailversand
For Each r In MyDatagridview1.SelectedRows
- fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), 6, 19, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
+ fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked)
Next
initDGV()
diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb
index d529c6e1..fcc48cfd 100644
--- a/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb
+++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb
@@ -288,6 +288,7 @@ Partial Class usrCntlFaktAbrechnung
Me.GutschriftAnVeragToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.VeragAGToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.VeragCSToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+ Me.cbxAUTOMailversand = New System.Windows.Forms.CheckBox()
Me.pnlTop.SuspendLayout()
Me.Panel3.SuspendLayout()
Me.Panel1.SuspendLayout()
@@ -804,6 +805,7 @@ Partial Class usrCntlFaktAbrechnung
'Panel1
'
Me.Panel1.AutoScroll = True
+ Me.Panel1.Controls.Add(Me.cbxAUTOMailversand)
Me.Panel1.Controls.Add(Me.Button17)
Me.Panel1.Controls.Add(Me.txtTextZZ)
Me.Panel1.Controls.Add(Me.dgvAnhaenge)
@@ -4057,6 +4059,17 @@ Partial Class usrCntlFaktAbrechnung
Me.VeragCSToolStripMenuItem.Size = New System.Drawing.Size(122, 22)
Me.VeragCSToolStripMenuItem.Text = "Verag CS"
'
+ 'cbxAUTOMailversand
+ '
+ Me.cbxAUTOMailversand.AutoSize = True
+ Me.cbxAUTOMailversand.Location = New System.Drawing.Point(697, 142)
+ Me.cbxAUTOMailversand.Name = "cbxAUTOMailversand"
+ Me.cbxAUTOMailversand.Size = New System.Drawing.Size(116, 17)
+ Me.cbxAUTOMailversand.TabIndex = 241
+ Me.cbxAUTOMailversand.Text = "AUTO Mailversand"
+ Me.cbxAUTOMailversand.UseVisualStyleBackColor = True
+ Me.cbxAUTOMailversand.Visible = False
+ '
'usrCntlFaktAbrechnung
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -4351,4 +4364,5 @@ Partial Class usrCntlFaktAbrechnung
Friend WithEvents cboVorauskasse As VERAG_PROG_ALLGEMEIN.MyComboBox
Friend WithEvents cboRgArt As VERAG_PROG_ALLGEMEIN.MyComboBox
Friend WithEvents Label57 As Label
+ Friend WithEvents cbxAUTOMailversand As CheckBox
End Class
diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
index a759c96b..1b3119dd 100644
--- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
+++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
@@ -142,6 +142,7 @@ Public Class usrCntlFaktAbrechnung
Label40.Visible = False
sbLeistung._value = ""
cbxOriginalPrint.Checked = False
+ cbxAUTOMailversand.Checked = False
If RK_ID_TMP > 0 Then
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID_TMP)
@@ -302,6 +303,7 @@ Public Class usrCntlFaktAbrechnung
txtErfassungsnummer.Text = If(RECHNUNG.ErfassungsNr, "")
cboRechnungNotiz.Text = If(RECHNUNG.Notiz, "")
+ cbxAUTOMailversand.Checked = RECHNUNG.Automailversand
initRgArt()
cboRgArt._value = RECHNUNG.Rechnungsart
@@ -544,6 +546,10 @@ Public Class usrCntlFaktAbrechnung
FirmaTmp = "VERAG360"
End If
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
+ cbxAUTOMailversand.Visible = True
+ End If
+
cboVorauskasse.Items.Clear()
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", 0))
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", 1))
@@ -2496,6 +2502,8 @@ Public Class usrCntlFaktAbrechnung
RECHNUNG.KdAuftragsNr = cProgramFunctions.isLeerNothing(txtKdAuftragsNr.Text)
+ RECHNUNG.Automailversand = cbxAUTOMailversand.Checked
+
If RECHNUNG.Abfertigungsdatum < CDate("01.01.2000") Then RECHNUNG.Abfertigungsdatum = Now
If dgvOffertenSperrliste.SelectedRows.Count > 0 Then RECHNUNG.OffertenNr = dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value 'Wenn mehrfachauswahl möcglich-> Ändern
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
index e8973501..b69d4dc0 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
@@ -130,7 +130,7 @@ Public Class cSyska_Interface
'DATEIPFAD für Stammdaten
'-------------------------------------------------------------------------------------------
Dim pathArchivKD = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
- Dim pathKD = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\"
+ Dim pathKD = "\\syncluster01.verag.ost.dmn\F\FIBU\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
@@ -296,7 +296,7 @@ Public Class cSyska_Interface
'DATEIPFAD für Buchungsdaten
'-------------------------------------------------------------------------------------------
Dim pathArchiv = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
- Dim path = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\"
+ Dim path = "\\syncluster01.verag.ost.dmn\F\FIBU\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then