syska-pfadänderung

This commit is contained in:
2026-04-13 08:23:18 +02:00
parent 456e14350a
commit f11bc1e25d
8 changed files with 523 additions and 117 deletions

View File

@@ -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,<br>"
getSammelRgTExt &= "Dear Ladies and Gentlemen,<br>"
getSammelRgTExt &= "Sayin Bayanlar ve Baylar,<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.<br>"
getSammelRgTExt &= "attached we send you the invoice mentioned above.<br>"
getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.<br>"
getSammelRgTExt &= "<br>"
getSammelRgTExt &= "<br><br><br>Mit freundlichen Grüßen / Best regards / Saygilarimizla<br><br>VERAG Spedition AG<br><br>" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID)
Return "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
End If
getSammelRgTExt = "<div style=""font-family:Calibri, Arial"">" & getSammelRgTExt & "</div>"
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

View File

@@ -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)

View File

@@ -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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
' TextHTML &= "<br><br><br>Saygilarimizla<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case "A", "AT", "D", "DE", "CH"
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
' TextHTML &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case Else
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>attached we send you the invoice mentioned above."
' TextHTML &= "<br><br><br>Best regards<br><br>" & 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"))

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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