diff --git a/SDL/Classes/cKassenbuch.vb b/SDL/Classes/cKassenbuch.vb
index da483bba..efe250b1 100644
--- a/SDL/Classes/cKassenbuch.vb
+++ b/SDL/Classes/cKassenbuch.vb
@@ -28,6 +28,7 @@ Public Class cKassenbuch
Property rksv_BelegId As Object = Nothing
Property rksv_aktiv As Boolean = False
Property durchfuehrender_Benutzer As Integer = -1
+ Property Trdin As Boolean = False
Dim SQL As New SQL
@@ -104,6 +105,7 @@ Public Class cKassenbuch
Me.rksv_BelegId = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegId"), Nothing)
Me.rksv_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksv_aktiv"), False)
Me.durchfuehrender_Benutzer = cSqlDb.checkNullInteger(dr.Item("durchfuehrender_Benutzer"))
+ Me.Trdin = cSqlDb.checkNullReturnValue(dr.Item("Trdin"), False)
@@ -150,6 +152,7 @@ Public Class cKassenbuch
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_BelegId", rksv_BelegId))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_aktiv", rksv_aktiv))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("durchfuehrender_Benutzer", durchfuehrender_Benutzer))
+ list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Trdin", Trdin))
Return list
End Function
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 0061c539..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"))
@@ -546,7 +529,7 @@ Public Class frmFaktEmail
Mail = outl.CreateItem(0)
Mail.Subject = txtSubject.Text
- If Firma_ID = 24 OrElse Firma_ID = 19 Then
+ If Firma_ID = 24 OrElse Firma_ID = 19 OrElse Firma_ID = 1 OrElse Firma_ID = 7 Then
Try
Dim oAccount As Outlook.Account
Dim accountToSent = ""
@@ -554,109 +537,113 @@ Public Class frmFaktEmail
Select Case Firma_ID
Case 24
accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
- Case Else
+ Case 19
accountToSent = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
+ Case 7
+ accountToSent = "rechnung@atilla-spedition.com"
+ Case Else
+ accountToSent = "rechnungsversand@verag.ag"
End Select
If accountToSent <> "" Then
- If outl.Session.Accounts.Count > 0 Then
- For Each oAccount In outl.Session.Accounts
- If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
- Mail.SendUsingAccount = oAccount
- Exit For
+ If outl.Session.Accounts.Count > 0 Then
+ For Each oAccount In outl.Session.Accounts
+ If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
+ Mail.SendUsingAccount = oAccount
+ Exit For
+ End If
+ Next
End If
- Next
- End If
+ End If
+
+ Catch ex As Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ End Try
+
End If
- Catch ex As Exception
- VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
- End Try
-
- End If
-
- 'Mail-Adressen eintragen
- '-----------------------------------------------------------------
- For Each r In dgvEmail.Rows
- If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
- Next
- For Each r In dgvEmailCC.Rows
- If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
- Next
- For Each r In dgvEmailBCC.Rows
- If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
- Next
+ 'Mail-Adressen eintragen
+ '-----------------------------------------------------------------
+ For Each r In dgvEmail.Rows
+ If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
+ Next
+ For Each r In dgvEmailCC.Rows
+ If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
+ Next
+ For Each r In dgvEmailBCC.Rows
+ If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
+ Next
- RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", lastAktuelle_RgNr)
- txtSubject.Text = txtSubject.Text.Replace("%RgNr%", lastAktuelle_RgNr)
+ RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", lastAktuelle_RgNr)
+ txtSubject.Text = txtSubject.Text.Replace("%RgNr%", lastAktuelle_RgNr)
- Dim TextHTML = "" & RichTextBox.Text.Replace(ControlChars.Lf, "
") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine,, IIf(Firma_ID = "24", True, False)) & "
"
+ Dim TextHTML = "" & RichTextBox.Text.Replace(ControlChars.Lf, "
") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine,, IIf(Firma_ID = "24", True, False)) & "
"
- Mail.HTMLBody = TextHTML
- Mail.Subject = txtSubject.Text
+ Mail.HTMLBody = TextHTML
+ Mail.Subject = txtSubject.Text
- ATTACHMENTS.Clear()
- '-----------------------------------------------------------------
- 'Rechnungen anfügen
- '-----------------------------------------------------------------
- For Each l In listPDFs
- ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
+ ATTACHMENTS.Clear()
+ '-----------------------------------------------------------------
+ 'Rechnungen anfügen
+ '-----------------------------------------------------------------
+ For Each l In listPDFs
+ ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
- ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
+ ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
- Next
- For Each l In SonstAnlagen
- ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
+ Next
+ For Each l In SonstAnlagen
+ ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
- ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
+ ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
- Next
- addAttachments(Mail, lastAktuelle_RgNr, cbxMergeRg.Checked)
+ Next
+ addAttachments(Mail, lastAktuelle_RgNr, cbxMergeRg.Checked)
- '-----------------------------------------------------------------
- 'Steuerbescheid/VDB anfügen
- '-----------------------------------------------------------------
- getAnhaenge()
- 'For Each l In listPDFs
- ' ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
- ' ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
- 'Next
+ '-----------------------------------------------------------------
+ 'Steuerbescheid/VDB anfügen
+ '-----------------------------------------------------------------
+ getAnhaenge()
+ 'For Each l In listPDFs
+ ' ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
+ ' ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
+ 'Next
- 'Rechnungsanhänge anfügen
- '-----------------------------------------------------------------
- If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
- For Each r In SR_DT.Rows
- Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
- If RG_ANH IsNot Nothing Then
- For Each ANH In RG_ANH
- ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
+ 'Rechnungsanhänge anfügen
+ '-----------------------------------------------------------------
+ If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
+ For Each r In SR_DT.Rows
+ Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
+ If RG_ANH IsNot Nothing Then
+ For Each ANH In RG_ANH
+ ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
+ Next
+ End If
Next
End If
- Next
- End If
- '-----------------------------------------------------------------
+ '-----------------------------------------------------------------
- addAttachments(Mail, lastAktuelle_RgNr, cbxMergePDF.Checked)
+ addAttachments(Mail, lastAktuelle_RgNr, cbxMergePDF.Checked)
- If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
- Try
- Mail.SentOnBehalfOfName = "buchhaltung@ambarlog.com"
- Catch ex2 As Exception
- MsgBox(ex2.Message)
- End Try
- End If
+ If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
+ Try
+ Mail.SentOnBehalfOfName = "buchhaltung@ambarlog.com"
+ Catch ex2 As Exception
+ MsgBox(ex2.Message)
+ End Try
+ End If
- Mail.Display()
- '------------------------------------------------------------------------------------------
- ' STB /FA SR: ABFRAGE FISKAL-VZ
- If isFiskal Then
- send_StbFAMail(AD.AdressenNr, " Rg-Nr.: " & lastAktuelle_RgNr, lastAktuelle_RgNr)
- End If
+ Mail.Display()
+ '------------------------------------------------------------------------------------------
+ ' STB /FA SR: ABFRAGE FISKAL-VZ
+ If isFiskal Then
+ send_StbFAMail(AD.AdressenNr, " Rg-Nr.: " & lastAktuelle_RgNr, lastAktuelle_RgNr)
+ End If
'------------------------------------------------------------------------------------------
End If
@@ -692,8 +679,11 @@ Public Class frmFaktEmail
accountToSent = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
Case 19
accountToSent = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!!
+ Case 7
+ accountToSent = "rechnung@atilla-spedition.com"
Case Else
accountToSent = "rechnungsversand@verag.ag"
+
End Select
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/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb
index 19d1ff40..98ccbf53 100644
--- a/SDL/USTV/frmMDM_USTVAntrag.vb
+++ b/SDL/USTV/frmMDM_USTVAntrag.vb
@@ -544,7 +544,7 @@ Public Class frmMDM_USTVAntrag
Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
setValue(USTV_ANTRAG)
- If CInt(USTV_ANTRAG.UStVAn_KuNr) >= 150000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 160000 Then
+ If (CInt(USTV_ANTRAG.UStVAn_KuNr) >= 150000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 160000) Or (CInt(USTV_ANTRAG.UStVAn_KuNr) >= 180000 AndAlso CInt(USTV_ANTRAG.UStVAn_KuNr) < 190000) Then
btnRMCQuartal.Visible = True
Else
btnRMCQuartal.Visible = False
@@ -4088,20 +4088,26 @@ Public Class frmMDM_USTVAntrag
Private Sub btnRMCQuartal_Click(sender As Object, e As EventArgs) Handles btnRMCQuartal.Click
- Dim rmc As cRMC
- Dim nurUnter50EurAnzeigen As Boolean = True
+ Dim input = InputBox("Bitte geben Sie das gewünschte Quartal ein:", "RMC Quartalsgebühren")
+ If input <> "" AndAlso IsNumeric(input) AndAlso CInt(input) < 5 AndAlso CInt(input) > 0 Then
- Select Case MsgBox("Sollen nur Anträge angezeigt werden, deren Bearbeitung pro Quartal unter 50EUR liegt?", vbYesNo)
- Case vbYes : nurUnter50EurAnzeigen = True
- Case vbNo : nurUnter50EurAnzeigen = False
- End Select
+ Dim rmc As cRMC
+
+ Dim nurUnter50EurAnzeigen As Boolean = True
+
+ Select Case MsgBox("Sollen nur Anträge angezeigt werden, deren Bearbeitung pro Quartal unter 50EUR liegt?", vbYesNo)
+ Case vbYes : nurUnter50EurAnzeigen = True
+ Case vbNo : nurUnter50EurAnzeigen = False
+ End Select
+
+ Dim dt = rmc.getRMCQuartalsAbrechnungen(SQL, CInt(input), Now.Year, "373, 374", USTV_ANTRAG, Antrag_LandKz, nurUnter50EurAnzeigen)
+ If dt.Rows.Count > 0 Then
+ cProgramFunctions.genExcelFromDT_NEW(dt)
+ Else
+ MsgBox("keine Daten für ausgewählten Zeitraum")
+ End If
- Dim dt = rmc.getRMCQuartalsAbrechnungen(SQL, 1, Now.Year, "327", USTV_ANTRAG, Antrag_LandKz, nurUnter50EurAnzeigen)
- If dt.Rows.Count > 0 Then
- cProgramFunctions.genExcelFromDT_NEW(dt)
- Else
- MsgBox("keine Daten für ausgewählten Zeitraum")
End If
diff --git a/SDL/ZOLLSYSTEM/DAKOSY/Stammreferenz/frmDakosyStammreferenzVerwalten.vb b/SDL/ZOLLSYSTEM/DAKOSY/Stammreferenz/frmDakosyStammreferenzVerwalten.vb
index 7185e9b9..44e666d3 100644
--- a/SDL/ZOLLSYSTEM/DAKOSY/Stammreferenz/frmDakosyStammreferenzVerwalten.vb
+++ b/SDL/ZOLLSYSTEM/DAKOSY/Stammreferenz/frmDakosyStammreferenzVerwalten.vb
@@ -230,6 +230,7 @@ Public Class frmDakosyStammreferenzVerwalten
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEU", "NEU"))
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NKD", "NKD"))
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DTB", "DTB"))
+ cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBWO", "AMBWO"))
cboNL.changeItem("")
Case "IMEX"
diff --git a/SDL/kassenbuch/frmNacherfassungLeihgeld.Designer.vb b/SDL/kassenbuch/frmNacherfassungLeihgeld.Designer.vb
index a5093c67..99ef036b 100644
--- a/SDL/kassenbuch/frmNacherfassungLeihgeld.Designer.vb
+++ b/SDL/kassenbuch/frmNacherfassungLeihgeld.Designer.vb
@@ -50,14 +50,15 @@ Partial Class frmNacherfassungLeihgeld
Me.Label11 = New System.Windows.Forms.Label()
Me.cbxProvisionAuftraggeber = New System.Windows.Forms.CheckBox()
Me.Panel1 = New System.Windows.Forms.Panel()
+ Me.cbxProvinMAKassa = New System.Windows.Forms.CheckBox()
Me.txtAuftrProvision = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboProvisionBetrag = New VERAG_PROG_ALLGEMEIN.MyTextBox()
- Me.cboProvisionStaffel = New VERAG_PROG_ALLGEMEIN.MyComboBox()
- Me.txtProvisionProzent = New VERAG_PROG_ALLGEMEIN.MyTextBox()
- Me.cboProvisionStaffelArt = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.cboPrinter = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboPrinterProvisionBeleg = New VERAG_PROG_ALLGEMEIN.MyComboBox()
+ Me.cboProvisionStaffel = New VERAG_PROG_ALLGEMEIN.MyComboBox()
+ Me.txtProvisionProzent = New VERAG_PROG_ALLGEMEIN.MyTextBox()
+ Me.cboProvisionStaffelArt = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label44 = New System.Windows.Forms.Label()
Me.txtOpLeihgeld = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.txtKdAuftragsnummer = New VERAG_PROG_ALLGEMEIN.MyTextBox()
@@ -71,7 +72,6 @@ Partial Class frmNacherfassungLeihgeld
Me.txtFahrer = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cbxOP_sofort_buchen = New System.Windows.Forms.CheckBox()
Me.lblGesperrt = New System.Windows.Forms.Label()
- Me.cbxProvinMAKassa = New System.Windows.Forms.CheckBox()
Me.pnl.SuspendLayout()
Me.Panel1.SuspendLayout()
Me.Panel2.SuspendLayout()
@@ -409,6 +409,17 @@ Partial Class frmNacherfassungLeihgeld
Me.Panel1.Size = New System.Drawing.Size(441, 147)
Me.Panel1.TabIndex = 20
'
+ 'cbxProvinMAKassa
+ '
+ Me.cbxProvinMAKassa.AutoSize = True
+ Me.cbxProvinMAKassa.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.cbxProvinMAKassa.Location = New System.Drawing.Point(21, 31)
+ Me.cbxProvinMAKassa.Name = "cbxProvinMAKassa"
+ Me.cbxProvinMAKassa.Size = New System.Drawing.Size(138, 17)
+ Me.cbxProvinMAKassa.TabIndex = 22
+ Me.cbxProvinMAKassa.Text = "in Mitarbeiter-Kassa"
+ Me.cbxProvinMAKassa.UseVisualStyleBackColor = True
+ '
'txtAuftrProvision
'
Me.txtAuftrProvision._DateTimeOnly = False
@@ -457,6 +468,40 @@ Partial Class frmNacherfassungLeihgeld
Me.cboProvisionBetrag.Size = New System.Drawing.Size(124, 26)
Me.cboProvisionBetrag.TabIndex = 8
'
+ 'Panel2
+ '
+ Me.Panel2.Controls.Add(Me.Label6)
+ Me.Panel2.Controls.Add(Me.Label7)
+ Me.Panel2.Controls.Add(Me.cboPrinter)
+ Me.Panel2.Controls.Add(Me.cboPrinterProvisionBeleg)
+ Me.Panel2.Location = New System.Drawing.Point(210, 83)
+ Me.Panel2.Name = "Panel2"
+ Me.Panel2.Size = New System.Drawing.Size(228, 59)
+ Me.Panel2.TabIndex = 21
+ '
+ 'cboPrinter
+ '
+ Me.cboPrinter._allowedValuesFreiText = Nothing
+ Me.cboPrinter._allowFreiText = False
+ Me.cboPrinter._value = ""
+ Me.cboPrinter.FormattingEnabled = True
+ Me.cboPrinter.Location = New System.Drawing.Point(83, 6)
+ Me.cboPrinter.Name = "cboPrinter"
+ Me.cboPrinter.Size = New System.Drawing.Size(131, 21)
+ Me.cboPrinter.TabIndex = 1
+ '
+ 'cboPrinterProvisionBeleg
+ '
+ Me.cboPrinterProvisionBeleg._allowedValuesFreiText = Nothing
+ Me.cboPrinterProvisionBeleg._allowFreiText = False
+ Me.cboPrinterProvisionBeleg._value = ""
+ Me.cboPrinterProvisionBeleg.Enabled = False
+ Me.cboPrinterProvisionBeleg.FormattingEnabled = True
+ Me.cboPrinterProvisionBeleg.Location = New System.Drawing.Point(83, 30)
+ Me.cboPrinterProvisionBeleg.Name = "cboPrinterProvisionBeleg"
+ Me.cboPrinterProvisionBeleg.Size = New System.Drawing.Size(131, 21)
+ Me.cboPrinterProvisionBeleg.TabIndex = 3
+ '
'cboProvisionStaffel
'
Me.cboProvisionStaffel._allowedValuesFreiText = Nothing
@@ -505,40 +550,6 @@ Partial Class frmNacherfassungLeihgeld
Me.cboProvisionStaffelArt.Size = New System.Drawing.Size(156, 21)
Me.cboProvisionStaffelArt.TabIndex = 3
'
- 'Panel2
- '
- Me.Panel2.Controls.Add(Me.Label6)
- Me.Panel2.Controls.Add(Me.Label7)
- Me.Panel2.Controls.Add(Me.cboPrinter)
- Me.Panel2.Controls.Add(Me.cboPrinterProvisionBeleg)
- Me.Panel2.Location = New System.Drawing.Point(210, 83)
- Me.Panel2.Name = "Panel2"
- Me.Panel2.Size = New System.Drawing.Size(228, 59)
- Me.Panel2.TabIndex = 21
- '
- 'cboPrinter
- '
- Me.cboPrinter._allowedValuesFreiText = Nothing
- Me.cboPrinter._allowFreiText = False
- Me.cboPrinter._value = ""
- Me.cboPrinter.FormattingEnabled = True
- Me.cboPrinter.Location = New System.Drawing.Point(83, 6)
- Me.cboPrinter.Name = "cboPrinter"
- Me.cboPrinter.Size = New System.Drawing.Size(131, 21)
- Me.cboPrinter.TabIndex = 1
- '
- 'cboPrinterProvisionBeleg
- '
- Me.cboPrinterProvisionBeleg._allowedValuesFreiText = Nothing
- Me.cboPrinterProvisionBeleg._allowFreiText = False
- Me.cboPrinterProvisionBeleg._value = ""
- Me.cboPrinterProvisionBeleg.Enabled = False
- Me.cboPrinterProvisionBeleg.FormattingEnabled = True
- Me.cboPrinterProvisionBeleg.Location = New System.Drawing.Point(83, 30)
- Me.cboPrinterProvisionBeleg.Name = "cboPrinterProvisionBeleg"
- Me.cboPrinterProvisionBeleg.Size = New System.Drawing.Size(131, 21)
- Me.cboPrinterProvisionBeleg.TabIndex = 3
- '
'Label44
'
Me.Label44.AutoSize = True
@@ -810,6 +821,7 @@ Partial Class frmNacherfassungLeihgeld
'cbxOP_sofort_buchen
'
Me.cbxOP_sofort_buchen.AutoSize = True
+ Me.cbxOP_sofort_buchen.Enabled = False
Me.cbxOP_sofort_buchen.Location = New System.Drawing.Point(291, 290)
Me.cbxOP_sofort_buchen.Name = "cbxOP_sofort_buchen"
Me.cbxOP_sofort_buchen.Size = New System.Drawing.Size(145, 17)
@@ -829,17 +841,6 @@ Partial Class frmNacherfassungLeihgeld
Me.lblGesperrt.Text = "gesperrt!"
Me.lblGesperrt.Visible = False
'
- 'cbxProvinMAKassa
- '
- Me.cbxProvinMAKassa.AutoSize = True
- Me.cbxProvinMAKassa.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.cbxProvinMAKassa.Location = New System.Drawing.Point(21, 31)
- Me.cbxProvinMAKassa.Name = "cbxProvinMAKassa"
- Me.cbxProvinMAKassa.Size = New System.Drawing.Size(138, 17)
- Me.cbxProvinMAKassa.TabIndex = 22
- Me.cbxProvinMAKassa.Text = "in Mitarbeiter-Kassa"
- Me.cbxProvinMAKassa.UseVisualStyleBackColor = True
- '
'frmNacherfassungLeihgeld
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
diff --git a/SDL/kassenbuch/frmNacherfassungLeihgeld.vb b/SDL/kassenbuch/frmNacherfassungLeihgeld.vb
index ef817be8..a164d2cf 100644
--- a/SDL/kassenbuch/frmNacherfassungLeihgeld.vb
+++ b/SDL/kassenbuch/frmNacherfassungLeihgeld.vb
@@ -523,10 +523,20 @@ Public Class frmNacherfassungLeihgeld
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
RG.Sammelrechnung = 0
- RG.BelegartenKz = "AR"
- RG.BelegartenNr = 70
- RG.BelegartenBez = "Rechnung"
- RG.Vorzeichen = "+"
+
+ If summeBRUTTO >= 0 Then
+
+ RG.BelegartenNr = 70
+ RG.BelegartenKz = "AR"
+ RG.BelegartenBez = "Rechnung"
+ RG.Vorzeichen = "+"
+
+ Else
+ RG.BelegartenNr = 71
+ RG.BelegartenKz = "AG"
+ RG.BelegartenBez = "Gutschrift"
+ RG.Vorzeichen = "-"
+ End If
RG.VermittlerKundenNr = AD.AdressenNr
RG.VermittlerLandKz = AD.LandKz
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb b/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb
index 02a98999..1166c680 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb
@@ -17,12 +17,13 @@ Public Class cAufschubKonten
Property brgakto_gs_ust As Object = Nothing
Property brgakto_gs_aktSaldo As Decimal
Property brgakto_gs_ATR As Boolean = False
+ Property brgakto_firmaID As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
- Sub New(brgakto_id)
+ Sub New(brgakto_id As Integer)
Me.brgakto_id = brgakto_id
LOAD()
End Sub
@@ -33,6 +34,14 @@ Public Class cAufschubKonten
brgakto_betrag = getReferenzbetrag(Today)
End Sub
+
+ Sub New(brgakto_gs_standort As String, brgakto_firmaID As Integer)
+ Me.brgakto_gs_standort = brgakto_gs_standort
+ Me.brgakto_firmaID = brgakto_firmaID
+ LOADStandort(brgakto_firmaID)
+ brgakto_betrag = getReferenzbetrag(Today)
+ End Sub
+
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_id", brgakto_id,, True))
@@ -47,6 +56,7 @@ Public Class cAufschubKonten
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_ust", brgakto_gs_ust))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_ATR", brgakto_gs_ATR))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_gs_aktSaldo", brgakto_gs_aktSaldo))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("brgakto_firmaID", brgakto_firmaID))
Return list
@@ -95,16 +105,16 @@ Public Class cAufschubKonten
End Sub
- Public Sub LOADStandort()
-
+ Public Sub LOADStandort(Optional firma As Integer = 0)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN()
- Using cmd As New SqlCommand("SELECT * FROM tblBrgAufschubKonten WHERE brgakto_gs_standort=@brgakto_gs_standort ", conn)
+ Using cmd As New SqlCommand("SELECT * FROM tblBrgAufschubKonten WHERE brgakto_gs_standort=@brgakto_gs_standort " & IIf(firma <> 0, " AND brgakto_firma=@brgakto_firma", ""), conn)
cmd.Parameters.AddWithValue("@brgakto_gs_standort", brgakto_gs_standort)
+ If firma <> 0 Then cmd.Parameters.AddWithValue("@brgakto_firmaID", brgakto_firmaID)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb
index 8da21a2c..5365e6fc 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb
@@ -1,5 +1,6 @@
Imports System.Data.SqlClient
Imports System.Reflection
+Imports com.sun.org.apache.xpath.internal.operations
Public Class cTrdInvoice
@@ -35,7 +36,8 @@ Public Class cTrdInvoice
Property Firma_ID As Object = Nothing
Property UStVAn_ID As Object = Nothing
Property VZ As Integer
-
+ Property BV As Object = Nothing
+ Property Source As Object = Nothing
Property hasEntry As Boolean = False
@@ -45,21 +47,22 @@ Public Class cTrdInvoice
End Sub
- Sub New(Rechnungsdatum, Rechnungsnummer)
+ Sub New(Rechnungsdatum, Rechnungsnummer, Source)
Me.Rechnungsnummer = Rechnungsnummer
Me.Rechnungsdatum = Rechnungsdatum
+ Me.Source = Source
LOAD()
End Sub
- Sub New(Rechnungsdatum, Rechnungsnummer, Buchungsjahr)
+ Sub New(Rechnungsdatum, Rechnungsnummer, Buchungsjahr, Source)
Me.Rechnungsnummer = Buchungsjahr.ToString.Substring(2, 2) & Rechnungsnummer
Me.Rechnungsdatum = Rechnungsdatum
+ Me.Source = Source
LOAD()
End Sub
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum))
-
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer", Rechnungsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Speditionsbuch", Speditionsbuch))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", FilialenNr))
@@ -91,6 +94,8 @@ Public Class cTrdInvoice
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_ID", Firma_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_ID", UStVAn_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZ", VZ))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BV", BV))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Source", Source))
Return list
@@ -116,9 +121,10 @@ Public Class cTrdInvoice
Public Sub LOAD()
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
- Using cmd As New SqlCommand("SELECT * FROM tblTrdinInvoice WHERE Rechnungsnummer=@Rechnungsnummer and Rechnungsdatum=@Rechnungsdatum ", conn)
+ Using cmd As New SqlCommand("SELECT * FROM tblTrdinInvoice WHERE Rechnungsnummer=@Rechnungsnummer and Rechnungsdatum=@Rechnungsdatum and Source=@Source ", conn)
cmd.Parameters.AddWithValue("@Rechnungsnummer", Rechnungsnummer)
cmd.Parameters.AddWithValue("@Rechnungsdatum", Rechnungsdatum)
+ cmd.Parameters.AddWithValue("@Source", Source)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
hasEntry = True
@@ -229,7 +235,6 @@ Public Class cTrdProduct
Property Rechnungsdatum As Date
Property Rechnungsnummer As Integer
-
Property Leistungsnummer As Integer
Property Leistungsbezeichnung As String
Property Steuerpflichtig As Boolean
@@ -241,6 +246,7 @@ Public Class cTrdProduct
Property Sachkonto As Object = Nothing
Property Buchungstext As Object = Nothing
Property VZBetrag As Object = Nothing
+ Property Source As Object = Nothing
Dim SQL As New SQL
@@ -254,7 +260,6 @@ Public Class cTrdProduct
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer", Rechnungsnummer))
-
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsnummer", Leistungsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsbezeichnung", Leistungsbezeichnung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerpflichtig", Steuerpflichtig))
@@ -266,6 +271,7 @@ Public Class cTrdProduct
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachkonto", Sachkonto))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungstext", Buchungstext))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZBetrag", VZBetrag))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Source", Source))
Return list
End Function
@@ -406,7 +412,17 @@ Class TrdInvoice_FUNCTIONS
Dim WährungsdifferenzSteuerpflichtigerBetrag As Double
Dim WährungsdifferenzSteuerfreierBetrag As Integer
- Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr), "FMZOLL", 9800)
+ Dim dt As DataTable
+
+ If Not Firma = 7 Then
+
+ dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr, True), "FMZOLL", 9800)
+
+ Else
+
+ dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr, False) & " UNION ALL " & getSQLString_SELECTForTrdInvoice_Barverkauf("VERA", "SUA", 5033, Buchungsjahr, True), "FMZOLL", 9800) 'Nur Leigheldkonto!
+
+ End If
Dim dtVZ As DataTable
@@ -416,9 +432,9 @@ Class TrdInvoice_FUNCTIONS
For Each ROW In dt.Rows
Dim TRD_INVOICE As VERAG_PROG_ALLGEMEIN.cTrdInvoice
If Buchungsjahr > 2000 Then
- TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), Buchungsjahr) 'nur UNISPED!!!!
+ TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), Buchungsjahr, ROW("Source")) 'nur UNISPED!!!!
Else
- TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"))
+ TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), ROW("Source"))
End If
@@ -433,25 +449,21 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.SteuerfreierBetragLokal = ROW("RK_SteuerfreierBetrag")
TRD_INVOICE.SteuerbetragLokal = ROW("RK_Steuerbetrag")
TRD_INVOICE.RechnungsbetragLokal = ROW("RK_Rechnungsbetrag")
-
TRD_INVOICE.SteuerpflichtigerBetragFremd = 0
TRD_INVOICE.SteuerfreierBetragFremd = 0
TRD_INVOICE.SteuerbetragFremd = 0
TRD_INVOICE.RechnungsbetragFremd = 0
-
TRD_INVOICE.WährungFremd = Nothing
Else
TRD_INVOICE.SteuerpflichtigerBetragFremd = ROW("RK_SteuerpflichtigerBetrag")
TRD_INVOICE.SteuerfreierBetragFremd = ROW("RK_SteuerfreierBetrag")
TRD_INVOICE.SteuerbetragFremd = ROW("RK_Steuerbetrag")
TRD_INVOICE.RechnungsbetragFremd = ROW("RK_Rechnungsbetrag")
-
TRD_INVOICE.SteuerpflichtigerBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerpflichtigerBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerfreierBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerfreierBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerbetragLokal = CDbl(TRD_INVOICE.SteuerpflichtigerBetragLokal * ROW("RK_SteuersatzProzent") * 100) / 100
TRD_INVOICE.RechnungsbetragLokal = TRD_INVOICE.SteuerpflichtigerBetragLokal + TRD_INVOICE.SteuerfreierBetragLokal + TRD_INVOICE.SteuerbetragLokal
' Basis zur Feststellung von Rundungsdifferenzen schaffen.
-
TRD_INVOICE.SteuerpflichtigerBetragLokal = 0
TRD_INVOICE.SteuerfreierBetragLokal = 0
TRD_INVOICE.SteuerbetragLokal = 0
@@ -485,6 +497,16 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.Abgleich_op_debitor = 0
TRD_INVOICE.Nettozahlungsziel = ROW("RK_Nettozahlungsziel")
TRD_INVOICE.Firma_ID = ROW("RK_Firma_ID")
+ TRD_INVOICE.BV = 0
+ TRD_INVOICE.Source = ROW("Source")
+
+ If TRD_INVOICE.FilialenNr = 4813 AndAlso TRD_INVOICE.Firma_ID = 7 Then
+ TRD_INVOICE.BV = 1
+ End If
+
+ If TRD_INVOICE.Source = "KB" AndAlso Not TRD_INVOICE.BV = 1 Then
+ TRD_INVOICE.BV = 1
+ End If
If dtVZ IsNot Nothing AndAlso dtVZ.Rows.Count > 0 Then
For Each VZ_ROW In dtVZ.Rows
@@ -503,18 +525,32 @@ Class TrdInvoice_FUNCTIONS
' Buchungstext &= " / nicht verzinsen"
ElseIf Buchungstext <> "" AndAlso Buchungstext.Contains("Zahlungen") Then
Buchungstext = Buchungstext.Replace("Zahlungen", "Zinsen")
+ End If
+
+ If TRD_INVOICE.Source = "KB" Then
+ Select Case TRD_INVOICE.BelegartenNr
+ Case "30" : Buchungstext &= " Ausgabe-LG"
+ Case "31" : Buchungstext &= " Einnahme-LG"
+ End Select
End If
If TRD_INVOICE.SAVE Then
- If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ) Then
- 'UPDATE rechnugnsausgang
- Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "")
- Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "")
- SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & ROW("RK_RechnungsNr") & firmaTmpsql & buchungsjahrTmpsql, "FMZOLL")
+ If TRD_INVOICE.Source = "RE" Then
+ If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ, False) Then
+ Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "")
+ Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "")
+ SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & ROW("RK_RechnungsNr") & firmaTmpsql & buchungsjahrTmpsql, "FMZOLL")
+ End If
+ ElseIf TRD_INVOICE.Source = "KB" Then
+ If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), Buchungstext, TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, TRD_INVOICE.VZ, True) Then
+ SQL.doSQL("UPDATE [tblKassenbuch] SET [Trdin] = 1 WHERE tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033 AND convert(date,[BelegDat] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND rksv_BelegId = " & ROW("RK_RechnungsNr"), "FMZOLL")
+ End If
End If
+
+
End If
- End If
+ End If
Next
Return True
@@ -533,12 +569,21 @@ Class TrdInvoice_FUNCTIONS
- Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, isVZ) As Boolean
+ Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, isVZ, isBV) As Boolean
Try
Dim LOKALWÄHRUNG = "EUR"
- Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
+ Dim dt As DataTable
+
+ If isBV Then
+ dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct_Barverkauf(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
+ Else
+ dt = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
+ End If
+
+
+
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each ROW In dt.Rows
Dim TRD_PRODUCT As New VERAG_PROG_ALLGEMEIN.cTrdProduct()
@@ -576,7 +621,6 @@ Class TrdInvoice_FUNCTIONS
End If
End If
-
TRD_PRODUCT.Leistungsnummer = ROW("RP_LeistungsNr")
TRD_PRODUCT.Leistungsbezeichnung = ROW("RP_LeistungsBez")
TRD_PRODUCT.Steuerpflichtig = ROW("RP_Steuerpflichtig")
@@ -584,6 +628,17 @@ Class TrdInvoice_FUNCTIONS
TRD_PRODUCT.Sachkonto = getSachkonto(RK_Firma_ID, ROW("RP_LeistungsNr"), RK_RechnungsLandKz, ROW("RP_Steuerpflichtig"), ROW("AufschubkontoNr"))
TRD_PRODUCT.Buchungstext = RK_Buchungstext
+ If TRD_PRODUCT.Buchungstext.ToString.Contains("Pos. ") Then
+ TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.ToString.Replace("Pos. ", "")
+ End If
+
+ If TRD_PRODUCT.Buchungstext IsNot Nothing AndAlso TRD_PRODUCT.Buchungstext.Length > 35 Then
+ TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.ToString.Replace("Pos. ", "")
+ TRD_PRODUCT.Buchungstext = TRD_PRODUCT.Buchungstext.Substring(0, Math.Min(35, TRD_PRODUCT.Buchungstext.Length))
+ End If
+
+
+
If isVZ > 0 Then
Select Case ROW("RP_LeistungsNr")
Case "123", "124", "125", "126", "128", "117", "118", "119"
@@ -596,7 +651,11 @@ Class TrdInvoice_FUNCTIONS
End If
-
+ If isBV Then
+ TRD_PRODUCT.Source = "KB"
+ Else
+ TRD_PRODUCT.Source = "RE"
+ End If
TRD_PRODUCT.SAVE()
Next
@@ -706,7 +765,7 @@ Class TrdInvoice_FUNCTIONS
getSachkonto = CInt(getSachkonto)
End Function
- Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
+ Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1, Optional WithOrderClause As Boolean = True)
getSQLString_SELECTForTrdInvoice = "SELECT Rechnungsausgang.RechnungsDatum AS RK_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RK_RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum) AS RK_Abfertigungsdatum, min(Rechnungsausgang.FilialenNr) AS RK_FilialenNr,
min(Rechnungsausgang.AbfertigungsNr) AS RK_AbfertigungsNr, min(Rechnungsausgang.UnterNr) AS RK_UnterNr, min(Rechnungsausgang.BelegartenNr) AS RK_BelegartenNr,
case when min(Firma_ID)=19 and min(Rechnungsausgang.FilialenNr) = 8001 and min(Rechnungsausgang.OffertenNr) = 95 then
@@ -720,14 +779,46 @@ Class TrdInvoice_FUNCTIONS
Sum(RechnungsausgangPositionen.SteuerfreierBetrag) AS RK_SteuerfreierBetrag
, (Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100 AS RK_Steuerbetrag,
Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)+Sum(RechnungsausgangPositionen.SteuerfreierBetrag)+((Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100) AS RK_Rechnungsbetrag,
- Count(1) AS RK_Satzzähler, '' as VZ
+ Count(1) AS RK_Satzzähler, '' as VZ, 0 as BV, 'RE' as Source
FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE (((Rechnungsausgang.RechnungsDatum) Is Not Null) AND ((Rechnungsausgang.RechnungsNr) Is Not Null) AND ((Rechnungsausgang.Trdin)=0)) " & If(Firma > 0, " and Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Buchungsjahr=" & Buchungsjahr, "") & "
- GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr
- ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
+ GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr"
+
+ If WithOrderClause Then
+ getSQLString_SELECTForTrdInvoice &= " ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
+ End If
'" & If(Firma = 4, " and Rechnungsausgang.RechnungsNr='23800029'", "") & "
End Function
+ Shared Function getSQLString_SELECTForTrdInvoice_Barverkauf(Mandant As String, Niederlassung As String, Konto As Integer, Optional Buchungsjahr As Integer = -1, Optional WithOrderClause As Boolean = True) 'NUR LEIHGELD-KASE ATILLA!
+ getSQLString_SELECTForTrdInvoice_Barverkauf = " select
+ max(tblKassenbuch.BelegDat) as RK_RechnungsDatum,max(tblKassenbuch.rksv_BelegId) as RK_RechnungsNr,max(tblKassenbuch.BelegDat) AS RK_Abfertigungsdatum, min([tblEABelegnummer].FilialenNr) as RK_FilialenNr, min([tblEABelegnummer].AbfertigungsNr) AS RK_AbfertigungsNr, 0 AS RK_UnterNr,
+ case when SUM(soll) > 0 then
+ '31' --Einnahme
+ else
+ '30' -- Ausgabe
+ end as RK_BelegartenNr,
+ ISNULL(MIN(Buchungstext), '') + ' ' +ISNULL(MIN([LKW Kennzeichen]), '') + ' ' +ISNULL(MIN(Fahrer), '') AS RK_Buchungstext,
+ case when SUM(soll) > 0 then
+ MIN(KundenNr)
+ else
+ 2700
+ end as RK_KundenNrZentrale,
+ 0 AS RK_RechnungsKundenNr, 'AT' AS RK_RechnungsLandKz, '' AS RK_RechnungsUstIdKz,
+ ''AS RK_RechnungsUstIdNr, 0 AS RK_Lastschrift, 0 AS RK_Steuerschlüssel, 0 AS RK_SteuersatzProzent, 'EUR' AS RK_Währungscode,
+ 0 AS RK_Nettozahlungsziel, 7 as Firma_ID,0 AS RK_SteuerpflichtigerBetrag, (SUM(soll) + SUM(haben)) AS RK_SteuerfreierBetrag,
+ 0 AS RK_Steuerbetrag, (SUM(soll) + SUM(haben)) AS RK_Rechnungsbetrag,Count(1) AS RK_Satzzähler,'' as VZ,1 as BV,'KB' as Source
+ FROM [tblKassenbuch]
+ inner join [tblEABelegnummer] on [tblEABelegnummer].Mandant=tblKassenbuch.Mandant AND [tblEABelegnummer].Niederlassung=tblKassenbuch.Niederlassung AND [tblEABelegnummer].Benutzer=tblKassenbuch.Benutzer AND [tblEABelegnummer].BelegDat=tblKassenbuch.BelegDat AND [tblEABelegnummer].BelegNr=tblKassenbuch.BelegNr
+ WHERE tblKassenbuch.Mandant='" & Mandant & "' and tblKassenbuch.Niederlassung='" & Niederlassung & "' And Konto= " & Konto & " and Trdin = 0 " & If(Buchungsjahr > 0, " and Year(cast(Buchungsdatum as date)) =" & Buchungsjahr, "") & "
+ group by tblKassenbuch.rksv_BelegId, KundenNr HAVING case when SUM(soll) > 0 then MIN(KundenNr) else 2700 end > 0"
+
+ If WithOrderClause Then
+ getSQLString_SELECTForTrdInvoice_Barverkauf &= " ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
+ End If
+
+ End Function
+
Shared Function getSQLString_SELECT_VZ(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
getSQLString_SELECT_VZ = "SELECT Rechnungsausgang.RechnungsDatum AS RK_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RK_RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum) AS RK_Abfertigungsdatum, min(Rechnungsausgang.FilialenNr) AS RK_FilialenNr,
min(Rechnungsausgang.AbfertigungsNr) AS RK_AbfertigungsNr, min(Rechnungsausgang.UnterNr) AS RK_UnterNr, min(Rechnungsausgang.BelegartenNr) AS RK_BelegartenNr,max(CONVERT(int,isnull(tblUStVPositionen.UStVPo_VZ,0))) as VZ, MAX(isnull(tblUStVPositionen.UStVAn_ID,0)) as AntragsID
@@ -749,4 +840,42 @@ Class TrdInvoice_FUNCTIONS
HAVING (((Rechnungsausgang.RechnungsDatum)='" & RechnungsDatum.ToShortDateString & "') AND ((Rechnungsausgang.RechnungsNr)=" & RechnungsNr & ")) " & If(Firma > 0, " and Rechnungsausgang.Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Rechnungsausgang.Buchungsjahr=" & Buchungsjahr, "") & "
ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.LeistungsBez, RechnungsausgangPositionen.Steuerpflichtig;"
End Function
+
+ Shared Function getSQLString_SELECTForTrdProduct_Barverkauf(RechnungsDatum As Date, RechnungsNr As Integer, Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
+ getSQLString_SELECTForTrdProduct_Barverkauf = " select max(tblKassenbuch.BelegDat) as RK_RechnungsDatum,max(tblKassenbuch.rksv_BelegId) as RK_RechnungsNr,max(tblKassenbuch.BelegDat) AS RK_Abfertigungsdatum, min([tblEABelegnummer].FilialenNr) as RK_FilialenNr, min([tblEABelegnummer].AbfertigungsNr) AS RK_AbfertigungsNr, 0 AS RK_UnterNr,
+ case when SUM(soll) > 0 then
+ 'Einnahme-LG'
+ else
+ 'Ausgabe-LG'
+ end as RP_LeistungsBez,
+ 0 as RP_Steuerpflichtig,
+ min(Buchungstext) as RK_Buchungstext,
+ 110 as RP_LeistungsNr,
+ 0 AS RK_KundenNrZentrale,
+ 0 AS RK_RechnungsKundenNr,
+ 'AT' AS RK_RechnungsLandKz,
+ '' AS RK_RechnungsUstIdKz,
+ ''AS RK_RechnungsUstIdNr,
+ 0 AS RK_Lastschrift,
+ 0 AS RK_Steuerschlüssel,
+ 0 AS RK_SteuersatzProzent,
+ 'EUR' AS RK_Währungscode,
+ 0 AS RK_Nettozahlungsziel,
+ 7 as Firma_ID,
+ 0 AS RP_SteuerpflichtigerBetrag,
+ (SUM(soll) + SUM(haben)) AS RP_SteuerfreierBetrag,
+ 0 AS RK_Steuerbetrag,
+ (SUM(soll) + SUM(haben)) AS RK_Rechnungsbetrag,
+ Count(1) AS RP_Satzzähler,
+ '' as VZ,
+ 1 as BV,
+ 'KB' as Source,
+ '' as RP_Belegdaten,
+ '' as AufschubkontoNr
+ FROM [tblKassenbuch]
+ inner join [tblEABelegnummer] on [tblEABelegnummer].Mandant=tblKassenbuch.Mandant AND [tblEABelegnummer].Niederlassung=tblKassenbuch.Niederlassung AND [tblEABelegnummer].Benutzer=tblKassenbuch.Benutzer AND [tblEABelegnummer].BelegDat=tblKassenbuch.BelegDat AND [tblEABelegnummer].BelegNr=tblKassenbuch.BelegNr
+ where tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033
+ group by tblKassenbuch.rksv_BelegId
+ HAVING max(tblKassenbuch.BelegDat)='" & RechnungsDatum.ToShortDateString & "' AND tblKassenbuch.rksv_BelegId=" & RechnungsNr
+ End Function
End Class
\ No newline at end of file
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
index 74c7a823..b69d4dc0 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
@@ -1,5 +1,6 @@
Imports System.Text.RegularExpressions
Imports sun.util.resources.cldr.ve
+Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class cSyska_Interface
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
@@ -129,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
@@ -295,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 = "\\fmzoll\f\FMZoll\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
@@ -314,89 +315,27 @@ Public Class cSyska_Interface
'----------------- Buchungssätze -----------------
If True Then 'boolBuchungen Then
If WdhDateiname = "" AndAlso Not ambargubuchungen Then TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
- Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname, ambargubuchungen, ambarKreditor)
+ Dim dt_Buchungen_ALL As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname, ambargubuchungen, ambarKreditor)
' MsgBox(WdhDateiname & " - " & dt_Buchungen.Rows.Count)
- If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then
+ If dt_Buchungen_ALL IsNot Nothing AndAlso dt_Buchungen_ALL.Rows.Count > 0 Then
+
+ Dim ROWS_BV = dt_Buchungen_ALL.AsEnumerable().Where(Function(r) r.Field(Of Boolean)("BV") = True)
+ Dim ROWS_not_BV = dt_Buchungen_ALL.AsEnumerable().Where(Function(r) r.Field(Of Boolean)("BV") = False)
+
+ Dim dt_Buchungen_BV As DataTable = If(ROWS_BV.Any(), ROWS_BV.CopyToDataTable(), dt_Buchungen_ALL.Clone())
+ Dim dt_Buchungen As DataTable = If(ROWS_not_BV.Any(), ROWS_not_BV.CopyToDataTable(), dt_Buchungen_ALL.Clone())
+
Try
- Dim file As System.IO.StreamWriter
- Dim Dateiname = IIf(ambargubuchungen, "GS_AMBAR_" & ambarKreditor & "_", "AVISO_BUBE_") & Now.ToString("ddMMyyyy_HHmm") & ".txt"
- file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
-
- ' initKDNr(dt_Buchungen)
- Dim SummeBuchungen As Double = 0
- 'file.WriteLine(genBuchungenBeginn()) 'not needed
- For Each r In dt_Buchungen.Rows
-
- Dim curDifferenzbetrag As Double = 0
- If r("WährungFremd") Is DBNull.Value Then
- curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
- Else
- curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
- End If
-
- If r("BelegartenNr") = 70 Or ambargubuchungen And r("BelegartenNr") = 71 Then 'RECHNUNG ---> Immer am Anfang
- file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
- End If
- Dim dt_BuchungenZeilen As DataTable
-
- If Not ambargubuchungen Then
- dt_BuchungenZeilen = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
- Else
- dt_BuchungenZeilen = getBuchungenZeilenAMBAR(r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
- End If
-
- If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
- For Each rz In dt_BuchungenZeilen.Rows
- file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag, ambargubuchungen, r("Buchungstext"))) ' BuchungsZeilen...
- Next
- End If
- If curDifferenzbetrag <> 0 Then 'Differenz --> Ausgelich auf Diff.Konto
- file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag))
- End If
- If r("BelegartenNr") = 71 And Not ambargubuchungen Then 'GUTSCHRIFT ---> Immer am Schluss
- file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
- End If
- Next
-
- For Each r In dt_Buchungen.Rows
- If r("VZ") = 1 Then
- file.WriteLine(genBuchungsZeileVZ(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
- End If
- Next
- ' file.WriteLine(genBuchungenEnd(SummeBuchungen))
- bool_DatenVorhanden = True
-
- 'Update Filename TrdIn 'NOCH NICHT!!!! -->JETZT DOCH!!!
- Dim varDateiname As String = IIf(ambargubuchungen, "AmbDateiname", "TrdinDateiname")
- Dim whereAmbarBuchungen As String = ""
-
- If ambargubuchungen And ambarKreditor = "AG" Then
- whereAmbarBuchungen = "AND RechnungsKundenNr = 3013401 and RechnungsUstIdNr = 'U53187000' And BelegartenNr = 71"
- ElseIf ambargubuchungen And ambarKreditor = "CS" Then
- whereAmbarBuchungen = "AND RechnungsKundenNr = 3017683 and RechnungsUstIdNr = 'U68374109' And BelegartenNr = 71"
+ '2 Dateien Belege betreffend BV und andere Belege
+ If dt_Buchungen.Rows.Count > 0 Then
+ createBuchungszeilen(dt_Buchungen, ambargubuchungen, FIRMA, WdhDateiname, Geschaeftsjahr, path, pathArchiv, ambarKreditor, bool_DatenVorhanden, OpenFile, False)
+ End If
+ If dt_Buchungen_BV.Rows.Count > 0 Then
+ createBuchungszeilen(dt_Buchungen_BV, ambargubuchungen, FIRMA, WdhDateiname, Geschaeftsjahr, path, pathArchiv, ambarKreditor, bool_DatenVorhanden, OpenFile, True)
End If
- If WdhDateiname = "" Then
- SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " is null " & whereAmbarBuchungen, "FMZOLL")
- Else
- SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " ='" & WdhDateiname & "' " & whereAmbarBuchungen, "FMZOLL")
- End If
-
- file.Close()
-
- 'In Archiv sichern
- If pathArchiv <> "" Then
- If Not System.IO.Directory.Exists(pathArchiv) Then System.IO.Directory.CreateDirectory(pathArchiv)
- If path <> pathArchiv Then System.IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
- End If
-
- If bool_DatenVorhanden Then
- If OpenFile Then Process.Start(path & Dateiname)
- Else
- System.IO.File.Delete(path & Dateiname)
- End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
@@ -414,6 +353,89 @@ Public Class cSyska_Interface
Return False
End Function
+ Private Shared Function createBuchungszeilen(dt As DataTable, ambargubuchungen As Boolean, firma As cFirmen, WdhDateiname As String, Geschaeftsjahr As Integer, path As String, pathArchiv As String, ambarKreditor As String, bool_DatenVorhanden As Boolean, OpenFile As Boolean, onlyBarverkauf As Boolean)
+
+ Dim file As System.IO.StreamWriter
+ Dim Dateiname = IIf(ambargubuchungen, "GS_AMBAR_" & ambarKreditor & "_", "AVISO_BUBE_") & IIf(onlyBarverkauf, "BV_", "") & Now.ToString("ddMMyyyy_HHmm") & ".txt"
+ file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
+
+ Dim SummeBuchungen As Double = 0
+
+
+ For Each r In dt.Rows
+
+ Dim curDifferenzbetrag As Double = 0
+ If r("WährungFremd") Is DBNull.Value Then
+ curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
+ Else
+ curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
+ End If
+
+ If (r("BelegartenNr") = 70 Or ambargubuchungen And r("BelegartenNr") = 71) Then 'RECHNUNG ---> Immer am Anfang
+ file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
+ End If
+ Dim dt_BuchungenZeilen As DataTable
+
+ If Not ambargubuchungen Then
+ dt_BuchungenZeilen = getBuchungenZeilen(firma.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), r("Source"), WdhDateiname)
+ Else
+ dt_BuchungenZeilen = getBuchungenZeilenAMBAR(r("Rechnungsnummer"), r("Rechnungsdatum"), r("Source"), WdhDateiname)
+ End If
+
+ If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
+ For Each rz In dt_BuchungenZeilen.Rows
+ file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, firma, curDifferenzbetrag, ambargubuchungen, r("Buchungstext"))) ' BuchungsZeilen...
+ Next
+ End If
+ If curDifferenzbetrag <> 0 AndAlso Not (r("BelegartenNr") = 31 Or r("BelegartenNr") = 30) Then 'Differenz --> Ausgelich auf Diff.Konto -> nicht bei EINZAHLUNGEN/AUSZAHLUNGEN
+ file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, firma, curDifferenzbetrag))
+ End If
+ If (r("BelegartenNr") = 71 Or r("BelegartenNr") = 31 Or r("BelegartenNr") = 30) And Not ambargubuchungen Then 'GUTSCHRIFT|EINNAHNE|AUSGABE ---> Immer am Schluss
+ file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
+ End If
+ Next
+
+ For Each r In dt.Rows
+ If r("VZ") = 1 Then
+ file.WriteLine(genBuchungsZeileVZ(r, SummeBuchungen, Geschaeftsjahr, firma, ambargubuchungen))
+ End If
+ Next
+
+
+ bool_DatenVorhanden = True
+
+ Dim varDateiname As String = IIf(ambargubuchungen, "AmbDateiname", "TrdinDateiname")
+ Dim whereAmbarBuchungen As String = ""
+
+ If ambargubuchungen And ambarKreditor = "AG" Then
+ whereAmbarBuchungen = "AND RechnungsKundenNr = 3013401 and RechnungsUstIdNr = 'U53187000' And BelegartenNr = 71"
+ ElseIf ambargubuchungen And ambarKreditor = "CS" Then
+ whereAmbarBuchungen = "AND RechnungsKundenNr = 3017683 and RechnungsUstIdNr = 'U68374109' And BelegartenNr = 71"
+
+ End If
+
+ If WdhDateiname = "" Then
+ SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & firma.Firma_ID & " AND " & varDateiname & " is null and isnull(BV, 0) = " & IIf(onlyBarverkauf, "1", "0") & whereAmbarBuchungen, "FMZOLL")
+ Else
+ SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & firma.Firma_ID & " AND " & varDateiname & " ='" & WdhDateiname & "' and isnull(BV, 0) = " & IIf(onlyBarverkauf, "1", "0") & whereAmbarBuchungen, "FMZOLL")
+ End If
+
+ file.Close()
+
+ If pathArchiv <> "" Then
+ If Not System.IO.Directory.Exists(pathArchiv) Then System.IO.Directory.CreateDirectory(pathArchiv)
+ If path <> pathArchiv Then System.IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
+ End If
+
+ If bool_DatenVorhanden Then
+ If OpenFile Then Process.Start(path & Dateiname)
+ Else
+ System.IO.File.Delete(path & Dateiname)
+ End If
+
+
+ End Function
+
'Public Shared Function genDatensatz_BuchungenTEST(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
' Try
' Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
@@ -549,11 +571,11 @@ Public Class cSyska_Interface
,min(WährungFremd) as WährungFremd,min(SteuerbetragFremd) as SteuerbetragFremd,min(RechnungsbetragFremd) as RechnungsbetragFremd,min(TrdinDateiname) as TrdinDateiname,min(Abgleich_op_debitor+0) as Abgleich_op_debitor
,min(Nettozahlungsziel) as Nettozahlungsziel,min(Firma_ID) as Firma_ID,min(UStVAn_ID) as UStVAn_ID /*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/,sum(PROD.SteuerpflichtigerBetragLokal) as SteuerpflichtigerBetragLokal
,sum(PROD.SteuerfreierBetragLokal) as SteuerfreierBetragLokal,sum(PROD.SteuerpflichtigerBetragFremd) as SteuerpflichtigerBetragFremd,sum(PROD.SteuerfreierBetragFremd) as SteuerfreierBetragFremd,min(Belegdaten) as Belegdaten
- ,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd, MAX(VZ) as VZ, SUM(isnull(PROD.VZBetrag,0)) as VZBetrag
+ ,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd, MAX(VZ) as VZ, SUM(isnull(PROD.VZBetrag,0)) as VZBetrag, IVO.BV, IVO.Source
- FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum
+ FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum and IVO.Source = PROD.Source
" & where & "
- group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
+ group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum, IVO.BV, IVO.Source/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
ORDER BY IVO.Rechnungsdatum, IVO.Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
@@ -597,32 +619,32 @@ Public Class cSyska_Interface
'End Function
- Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
+ Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Source As String, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT Sachkonto,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
- sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
- FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
- WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
- GROUP BY Sachkonto,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
- ORDER BY Rechnungsdatum, Rechnungsnummer "
+ sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd, IVO.Source
+ FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum and IVO.Source = PROD.Source
+ WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Source = '" & Source & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
+ GROUP BY Sachkonto,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal, IVO.Source
+ ORDER BY Rechnungsdatum, Rechnungsnummer, IVO.Source "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
End Function
- Shared Function getBuchungenZeilenAMBAR(Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
+ Shared Function getBuchungenZeilenAMBAR(Rechnungsnummer As Integer, Rechnungsdatum As Date, Source As String, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT isnull(le.SachkontoEUSteuerfrei,'0000') as Sachkonto ,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO
- left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
+ left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum and IVO.Source = PROD.Source
left join [Leistungen] as le on le.LeistungsNr = PROD.Leistungsnummer
- WHERE Firma_ID ='24' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & "
- GROUP BY le.SachkontoEUSteuerfrei ,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
+ WHERE Firma_ID ='24' AND IVO.Source = '" & Source & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & "
+ GROUP BY le.SachkontoEUSteuerfrei ,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal, IVO.Source
ORDER BY Rechnungsdatum, Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
@@ -735,6 +757,79 @@ Public Class cSyska_Interface
End If
+
+
+
+ ElseIf row("BelegartenNr") = 31 Then 'Einnahme
+
+ Dim FiBuWährung = ""
+ Dim FiBuSollkontonummer = "0"
+ Dim FiBuHabenkontonummer = row("KundenNrZentrale")
+ Dim FiBuBruttobetrag As Double
+
+ If row("WährungFremd") Is DBNull.Value Then
+ FiBuWährung = row("WährungLokal")
+ FiBuBruttobetrag = (CDbl(row("RechnungsbetragLokal")))
+ Else
+ FiBuWährung = row("WährungFremd")
+ FiBuBruttobetrag = (CDbl(row("RechnungsbetragFremd")))
+ End If
+
+ Dim FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragLokal"))
+
+ genBuchungsZeileSum = "L" & vbTab
+ genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
+ genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
+
+ genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
+ genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
+
+ genBuchungsZeileSum &= IIf(row("Buchungstext") <> "" AndAlso row("Buchungstext").ToString.Contains("Zinsen"), row("Buchungstext") & vbTab, row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab)
+
+ genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
+ genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
+ genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
+ genBuchungsZeileSum &= FiBuWährung & vbTab
+ genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
+
+
+ ElseIf row("BelegartenNr") = 30 Then 'Ausgabe
+
+ Dim FiBuSollkontonummer = "0"
+ Dim FiBuHabenkontonummer = row("KundenNrZentrale") '2700
+
+ Dim Bruttobetrag As Double
+ Dim FiBuWährung = ""
+
+ If row("WährungFremd") Is DBNull.Value Then
+ Bruttobetrag = row("RechnungsbetragLokal") 'Bruttobetrag
+ Else
+ Bruttobetrag = row("RechnungsbetragFremd") 'Bruttobetrag
+ End If
+ If row("WährungFremd") Is DBNull.Value Then
+ FiBuWährung = row("WährungLokal")
+ Else
+ FiBuWährung = row("WährungFremd")
+ End If
+
+ Dim FiBuEigenbruttobetrag = row("RechnungsbetragLokal")
+
+ genBuchungsZeileSum = "L" & vbTab
+ genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
+ genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
+
+ genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
+ genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
+ 'genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
+ genBuchungsZeileSum &= IIf(row("Buchungstext") <> "" AndAlso row("Buchungstext").ToString.Contains("Zinsen"), row("Buchungstext") & vbTab, row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab)
+
+ genBuchungsZeileSum &= Format(CDbl(Bruttobetrag), fmt) & vbTab
+ genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
+ genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
+ genBuchungsZeileSum &= FiBuWährung & vbTab
+ genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
+
+
End If
@@ -752,11 +847,11 @@ Public Class cSyska_Interface
Dim FiBuSteuerbetrag As String
Dim FiBuSollkontonummer As Integer
Dim FiBuHabenkontonummer As Integer
-
Dim FiBuWährung = "EUR"
Select Case row("BelegartenNr")
- Case 70 'Rechnung
+
+ Case 70 'Rechnung
FiBuSollkontonummer = "0"
FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
If row("WährungFremd") Is DBNull.Value Then
@@ -784,6 +879,28 @@ Public Class cSyska_Interface
End If
+ Case 31 'Einnahme
+
+ FiBuSollkontonummer = 2700 'If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
+ FiBuHabenkontonummer = "0"
+ If row("WährungFremd") Is DBNull.Value Then
+ curNettobetrag = row("BetragLokal")
+ Else
+ curNettobetrag = row("BetragFremd")
+ End If
+
+ Case 30 'Ausgabe
+
+ FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0)
+ FiBuHabenkontonummer = "0"
+ If row("WährungFremd") Is DBNull.Value Then
+ curNettobetrag = row("BetragLokal")
+ Else
+ curNettobetrag = row("BetragFremd")
+ End If
+
+
+
End Select
If CBool(row("steuerpflichtig")) Then
@@ -935,6 +1052,14 @@ Public Class cSyska_Interface
Case 71 'Gutschrift
FiBuSollkontonummer = "8490"
FiBuHabenkontonummer = "0"
+
+ Case 31 'Einnahme
+ FiBuSollkontonummer = "8490"
+ FiBuHabenkontonummer = "0"
+ Case 30 'Ausgabe
+ FiBuSollkontonummer = "8490"
+ FiBuHabenkontonummer = "0"
+
End Select
diff --git a/VERAG_PROG_ALLGEMEIN/cGesamtsicherheitsReferenz.vb b/VERAG_PROG_ALLGEMEIN/cGesamtsicherheitsReferenz.vb
index 41358c34..512208f9 100644
--- a/VERAG_PROG_ALLGEMEIN/cGesamtsicherheitsReferenz.vb
+++ b/VERAG_PROG_ALLGEMEIN/cGesamtsicherheitsReferenz.vb
@@ -1,6 +1,5 @@
Imports System.Data.SqlClient
Imports System.Reflection
-Imports Spire.Pdf
Public Class cGesamtsicherheitsReferenz
@@ -14,6 +13,7 @@ Public Class cGesamtsicherheitsReferenz
Property gsr_Saldo As Object = Nothing
Property gsr_ATR As Boolean = False
Property gsr_standort As Object = Nothing
+ Property gsr_firma As Object = Nothing
Public hasEntry = False
@@ -23,11 +23,23 @@ Public Class cGesamtsicherheitsReferenz
End Sub
- Sub New(_gsr_standort)
+
+ Sub New(gsr_id As Integer)
+ gsr_id = gsr_id
+ LOADID()
+ End Sub
+
+ Sub New(_gsr_standort As String)
gsr_standort = _gsr_standort
LOAD()
End Sub
+ Sub New(_gsr_standort As String, _gsr_firma As String)
+ gsr_standort = _gsr_standort
+ gsr_firma = _gsr_firma
+ LOAD(_gsr_firma)
+ End Sub
+
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gsr_standort", gsr_standort,, True))
@@ -56,7 +68,7 @@ Public Class cGesamtsicherheitsReferenz
Return SQL.doSQLVarList(sqlstr, "AVISO", , list)
End Function
- Public Sub LOAD()
+ Public Sub LOAD(Optional Firma As String = "")
Try
@@ -64,8 +76,41 @@ Public Class cGesamtsicherheitsReferenz
Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
- Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_Standort=@gsr_standort ", conn)
+ Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_Standort=@gsr_standort " & IIf(Firma <> "", "AND gsr_firma=@gsr_firma", ""), conn)
cmd.Parameters.AddWithValue("@gsr_standort", gsr_standort)
+ If Firma <> "" Then cmd.Parameters.AddWithValue("@gsr_firma", gsr_firma)
+ Dim dr = cmd.ExecuteReader()
+ If dr.Read Then
+ For Each li In getParameterList()
+ Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
+
+ If dr.Item(li.Text) Is DBNull.Value Then
+ propInfo.SetValue(Me, Nothing)
+ Else
+ propInfo.SetValue(Me, dr.Item(li.Text))
+ End If
+ Next
+ hasEntry = True
+ End If
+ dr.Close()
+ End Using
+ End Using
+ Catch ex As Exception
+ MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
+ End Try
+ End Sub
+
+
+ Public Sub LOADID(Optional Firma As String = "")
+
+
+ Try
+ hasEntry = False
+ Using conn As SqlConnection = SQL.GetNewOpenConnectionAVISO()
+
+ Using cmd As New SqlCommand("SELECT * FROM tblGesamtsicherheitReferenz WHERE gsr_id=@gsr_id ", conn)
+ cmd.Parameters.AddWithValue("@gsr_id", gsr_id)
+
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()