From 23dc366b05edf6657a8a166640b8613f1f998c51 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 9 Apr 2026 12:48:06 +0200 Subject: [PATCH 1/8] =?UTF-8?q?div.=20=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/Classes/cKassenbuch.vb | 14 + SDL/Fakturierung/frmFaktEmail.vb | 3 + SDL/USTV/frmMDM_USTVAntrag.vb | 30 +- .../frmDakosyStammreferenzVerwalten.vb | 1 + .../Classes/cAufschubKonten.vb | 18 +- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 181 ++++++++-- .../Schnittstellen/cSyska_Interface.vb | 315 ++++++++++++------ .../cGesamtsicherheitsReferenz.vb | 53 ++- 8 files changed, 475 insertions(+), 140 deletions(-) diff --git a/SDL/Classes/cKassenbuch.vb b/SDL/Classes/cKassenbuch.vb index da483bba..f1cbf7ce 100644 --- a/SDL/Classes/cKassenbuch.vb +++ b/SDL/Classes/cKassenbuch.vb @@ -28,6 +28,11 @@ Public Class cKassenbuch Property rksv_BelegId As Object = Nothing Property rksv_aktiv As Boolean = False Property durchfuehrender_Benutzer As Integer = -1 + Property FilialenNr As Integer + Property AbfertigungsNr As Integer + Property UnterNr As Integer = -1 + + Property Trdin As Boolean = False Dim SQL As New SQL @@ -104,6 +109,10 @@ 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.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr")) + Me.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr")) + Me.UnterNr = cSqlDb.checkNullInteger(dr.Item("UnterNr")) + Me.Trdin = cSqlDb.checkNullReturnValue(dr.Item("Trdin"), False) @@ -151,6 +160,11 @@ Public Class cKassenbuch 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)) + list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FilialenNr", FilialenNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("AbfertigungsNr", AbfertigungsNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("UnterNr", UnterNr)) + Return list End Function diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 0061c539..88d2f187 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -692,8 +692,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/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/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..c50d5775 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -35,7 +35,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 +46,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 +93,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 +120,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 +234,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 +245,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 +259,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 +270,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 +411,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 +431,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 +448,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 +496,12 @@ 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 dtVZ IsNot Nothing AndAlso dtVZ.Rows.Count > 0 Then For Each VZ_ROW In dtVZ.Rows @@ -503,16 +520,30 @@ 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 BelegNr = " & ROW("RK_RechnungsNr"), "FMZOLL") + End If End If + + End If End If Next @@ -533,12 +564,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 +616,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 +623,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 +646,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 +760,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 +774,51 @@ 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, min(tblKassenbuch.UnterNr) 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" + + 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,40 @@ 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(BelegDat) as RK_RechnungsDatum,max(rksv_BelegId) as RK_RechnungsNr,max(BelegDat) AS RK_Abfertigungsdatum, min(FilialenNr) as RK_FilialenNr, min(AbfertigungsNr) AS RK_AbfertigungsNr, min(UnterNr) 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] where tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033 + group by rksv_BelegId + HAVING max(BelegDat)='" & RechnungsDatum.ToShortDateString & "' AND 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..eb1c984e 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 @@ -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\BUCHHALTUNG\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,93 @@ 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 + + If r("Buchungstext").ToString.Contains("26000033") Then + Dim test As String = "" + End If + + 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 +575,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 +623,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 +761,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 +851,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 +883,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 +1056,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() From aba848dc3f436cadb81268696076ceb7253a7fb2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 9 Apr 2026 13:01:46 +0200 Subject: [PATCH 2/8] gesamtsicherheiten, Ref, Mail, etc. --- .../frmNacherfassungLeihgeld.Designer.vb | 99 ++++++++++--------- SDL/kassenbuch/frmNacherfassungLeihgeld.vb | 18 +++- 2 files changed, 64 insertions(+), 53 deletions(-) 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 From 968f77f8b3a2fff636297a88b78f38cc4f7c1010 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 9 Apr 2026 13:18:42 +0200 Subject: [PATCH 3/8] INV, Kassenbuch --- SDL/Classes/cKassenbuch.vb | 11 ----------- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 7 +------ 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/SDL/Classes/cKassenbuch.vb b/SDL/Classes/cKassenbuch.vb index f1cbf7ce..efe250b1 100644 --- a/SDL/Classes/cKassenbuch.vb +++ b/SDL/Classes/cKassenbuch.vb @@ -28,10 +28,6 @@ Public Class cKassenbuch Property rksv_BelegId As Object = Nothing Property rksv_aktiv As Boolean = False Property durchfuehrender_Benutzer As Integer = -1 - Property FilialenNr As Integer - Property AbfertigungsNr As Integer - Property UnterNr As Integer = -1 - Property Trdin As Boolean = False Dim SQL As New SQL @@ -109,9 +105,6 @@ 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.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr")) - Me.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr")) - Me.UnterNr = cSqlDb.checkNullInteger(dr.Item("UnterNr")) Me.Trdin = cSqlDb.checkNullReturnValue(dr.Item("Trdin"), False) @@ -159,11 +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)) - list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FilialenNr", FilialenNr)) - list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("AbfertigungsNr", AbfertigungsNr)) - list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("UnterNr", UnterNr)) Return list End Function diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index c50d5775..f8063fac 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -787,23 +787,18 @@ Class TrdInvoice_FUNCTIONS 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, min(tblKassenbuch.UnterNr) AS RK_UnterNr, + 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, From 3f637bed331f241175cd4a3283c9a8e943682758 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 9 Apr 2026 17:44:30 +0200 Subject: [PATCH 4/8] trdinin, syska --- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 65 ++++++++++++------- .../Schnittstellen/cSyska_Interface.vb | 4 -- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index f8063fac..d5e6bd56 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -539,7 +539,7 @@ Class TrdInvoice_FUNCTIONS 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 BelegNr = " & ROW("RK_RechnungsNr"), "FMZOLL") + 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 @@ -786,27 +786,40 @@ Class TrdInvoice_FUNCTIONS 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 + 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 + '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='" & 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" + 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);" @@ -837,7 +850,7 @@ Class TrdInvoice_FUNCTIONS 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(BelegDat) as RK_RechnungsDatum,max(rksv_BelegId) as RK_RechnungsNr,max(BelegDat) AS RK_Abfertigungsdatum, min(FilialenNr) as RK_FilialenNr, min(AbfertigungsNr) AS RK_AbfertigungsNr, min(UnterNr) AS RK_UnterNr, + 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 @@ -867,8 +880,10 @@ Class TrdInvoice_FUNCTIONS 'KB' as Source, '' as RP_Belegdaten, '' as AufschubkontoNr - FROM [tblKassenbuch] where tblKassenbuch.Mandant='VERA' and tblKassenbuch.Niederlassung='SUA' And Konto=5033 - group by rksv_BelegId - HAVING max(BelegDat)='" & RechnungsDatum.ToShortDateString & "' AND rksv_BelegId=" & RechnungsNr + 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 eb1c984e..e8973501 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -364,10 +364,6 @@ Public Class cSyska_Interface For Each r In dt.Rows - If r("Buchungstext").ToString.Contains("26000033") Then - Dim test As String = "" - End If - 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) From 494d8e938325e491a1a5350b0c6b0122a7b49bd4 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 10 Apr 2026 08:36:57 +0200 Subject: [PATCH 5/8] fix trdinvoice --- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 51 ++++++++------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index d5e6bd56..bc87b31d 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -786,38 +786,25 @@ Class TrdInvoice_FUNCTIONS 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 - '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 + 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" From cacc212561a1c8c841ba40c74a93969f1588bb5e Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 10 Apr 2026 09:29:38 +0200 Subject: [PATCH 6/8] tradinvioce, etc. --- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index bc87b31d..f76383b3 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -503,6 +503,10 @@ Class TrdInvoice_FUNCTIONS 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 If CDate(TRD_INVOICE.Rechnungsdatum) = CDate(VZ_ROW("RK_RechnungsDatum")) And TRD_INVOICE.FilialenNr.ToString = VZ_ROW("RK_FilialenNr").ToString And TRD_INVOICE.AbfertigungsNr = VZ_ROW("RK_AbfertigungsNr") And CDate(TRD_INVOICE.Abfertigungsdatum) = CDate(VZ_ROW("RK_Abfertigungsdatum")) And TRD_INVOICE.UnterNr = VZ_ROW("RK_UnterNr") And TRD_INVOICE.BelegartenNr = VZ_ROW("RK_BelegartenNr") Then From 456e14350a43c3d50c702147cf2f14bfc5eb7f77 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 10 Apr 2026 11:27:58 +0200 Subject: [PATCH 7/8] trdinvoice, etc. --- SDL/Fakturierung/frmFaktEmail.vb | 158 ++++++++++---------- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 3 +- 2 files changed, 83 insertions(+), 78 deletions(-) diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 88d2f187..4b393959 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -546,7 +546,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 +554,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 diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index f76383b3..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 @@ -549,7 +550,7 @@ Class TrdInvoice_FUNCTIONS End If - End If + End If Next Return True From f11bc1e25d58265bff2cde6ce95f98cc5412833b Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 13 Apr 2026 08:23:18 +0200 Subject: [PATCH 8/8] =?UTF-8?q?syska-pfad=C3=A4nderung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/Fakturierung/cAutomailversand.vb | 282 ++++++++++++++--- SDL/Fakturierung/cFakturierung.vb | 28 +- SDL/Fakturierung/frmFaktEmail.vb | 19 +- .../frmFaktSammelRgDrucken.Designer.vb | 2 +- SDL/Fakturierung/frmFaktSammelRgDrucken.vb | 283 +++++++++++++++--- .../usrCntlFaktAbrechnung.Designer.vb | 14 + SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 8 + .../Schnittstellen/cSyska_Interface.vb | 4 +- 8 files changed, 523 insertions(+), 117 deletions(-) diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 581cf348..9b3d3b15 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -1,5 +1,4 @@ Imports System.IO -Imports com.sun.tools.doclets.internal.toolkit.util Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN @@ -12,7 +11,7 @@ Public Class cAutomailversand Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz - WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "' + WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Sammelrechnungsdatum.ToShortDateString & "' and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & " GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU ORDER BY RechnungsLandKz, RechnungsKundenNr" @@ -22,35 +21,41 @@ Public Class cAutomailversand For Each row As DataRow In dt.Rows - + Dim BelegartenNr = "70" + Dim steuerbetrag As Double = 0 Dim SR_DT As DataTable = Nothing Dim RechnungsNr As Integer = -1 Dim DruckDatumZeit As DateTime Dim Rechnungsdatum = Nothing Dim ATTACHMENTS As New List(Of cFakt_MailATTach) - 'AKTUELL IMMER MIT KOPIE - MDMKopiedrucken = True - Dim isEU As Boolean = row.Item("MitgliedslandEU") + If FirmaID = 19 Then - If isEU Then - If row.Item("keineMWST") Then - '1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail! - MDMKopiedrucken = Not row.Item("keineMWST") + 'AKTUELL IMMER MIT KOPIE + MDMKopiedrucken = True + Dim isEU As Boolean = row.Item("MitgliedslandEU") + + If isEU Then + If row.Item("keineMWST") Then + '1. Schritt: kein MWST Kunde -> ORIGINAL-RE per Mail! + MDMKopiedrucken = Not row.Item("keineMWST") + End If + + '2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail! + If MDMKopiedrucken Then + MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0 + End If + + Else + 'immer KOPIE weil Ausdruck aktuell noch gesendet! End If - '2. Schritt: MWST Kunde -> wenn kein MWST-BEtrag ->Original sonst Kopie per Mail! - If MDMKopiedrucken Then - MDMKopiedrucken = CDbl(row.Item("Steuer")) <> 0 - End If - - Else - 'immer KOPIE weil Ausdruck aktuell noch gesendet! End If - SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),, , , , True) + SR_DT = cFakturierung.GET_SR_SQLDT(FirmaID, SammelrechungArt, Sammelrechnungsdatum, row.Item("RechnungsKundenNr"),,,,, True) Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(row.Item("RechnungsKundenNr")) + Dim FISKAL = New cFiskal_Daten(row.Item("RechnungsKundenNr")) If RechnungsNr = -1 Then If SR_DT.Rows.Count > 0 Then @@ -60,12 +65,16 @@ Public Class cAutomailversand RechnungsNr = distinctDT_SR.Rows(0).Item("RechnungsNr") DruckDatumZeit = distinctDT_SR.Rows(0).Item("DruckDatumZeit") Rechnungsdatum = distinctDT_SR.Rows(0).Item("Rechnungsdatum") + BelegartenNr = SR_DT.Rows(0)("BelegartenNr") + For Each r In SR_DT.Rows + steuerbetrag += r("steuerpflichtigerGesamtbetrag") + If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For + Next End If End If End If - Dim SR As Boolean = True Dim MailTo As String = "" @@ -101,13 +110,14 @@ Public Class cAutomailversand End If + 'im TESTSYSTEM bewusst die Empfänger leeren! + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MailTo = "" MailtoCC = "" - MailtoBCC = "mmdabrechnung@verag.ag" - + MailtoBCC = setAccountToSend(FirmaID) Else - MailtoBCC = "mmdabrechnung@verag.ag" + MailtoBCC = setAccountToSend(FirmaID) End If @@ -119,8 +129,8 @@ Public Class cAutomailversand Dim listPDFs As New List(Of String) Dim showError As Boolean = False - setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail) - If doRechnung(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then + setEmailText(row, FirmaID, RechnungsNr, Mailsubject, HTMLMail, SammelrechungArt, dt, BelegartenNr) + If do_SR(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs,,,, showError) Then loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs) If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" @@ -156,51 +166,99 @@ Public Class cAutomailversand End Sub - Sub sendMailEinzelrechnung(Rechnungsdatum As Date, RechungArt As Integer, FirmaID As Integer, Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False) + Sub sendMailEinzelrechnungen(Rechnungsdatum As Date, FirmaID As Integer, Optional Sachbearbeiter As String = "", Optional KundenNr As Integer = -1, Optional mailoeffnen As Boolean = False) + Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + + Dim rechnungenMailversand = "SELECT RechnungsNr,RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST, max(Rechnungsausgang.[RechnungsLandKz]) as RechnungsLandKz, MitgliedslandEU, sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer FROM Rechnungsausgang + LEFT JOIN tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr + INNER JOIN Währungstabelle on LandKz = Rechnungsausgang.RechnungsLandKz + WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + and isnull(Rechnungsausgang.Automailversand,0) = 1 and RechnungsNr > 0 " & IIf(KundenNr > 0, " AND RechnungsKundenNr = " & KundenNr, "") & " + GROUP BY RechnungsNr, RechnungsKundenNr,isnull(tblKundenErweitert.kde_keineMWSt,0),RechnungsLandKz, MitgliedslandEU + ORDER BY RechnungsLandKz, RechnungsKundenNr" + + Dim dt As DataTable = sql.loadDgvBySql(rechnungenMailversand, "FMZOLL") + Try + + For Each r In dt.Rows + + Dim MailTo As String = "" + Dim MailtoCC As String = "" + Dim MailtoBCC As String = "" + + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + MailTo = "" + MailtoCC = "" + MailtoBCC = setAccountToSend(FirmaID) + Else + MailtoBCC = setAccountToSend(FirmaID) + End If + + + Next + + Catch ex As System.Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,,) + + End Try End Sub - Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String) + Private Sub setEmailText(row As DataRow, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, dt As DataTable, ByRef BelegartenNr As Integer) Dim txtRgNr As String = IIf(RechnungsNr < 0, -1, RechnungsNr) Dim Mailtext As String - Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL - Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID) - Dim spracheRechnung As String = "EN" 'Defaultsprache + If SammelrechungArt <> 6 Then - Select Case row.Item("RechnungsLandKz") - Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz") - Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE" - Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB" - End Select + Subject = "VERAG Sammel-Rechnung" + TextHTML &= getSammelRgTExt(getSelectionLandKz(dt), Firma_ID) - If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then + + Else - Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung) - If r IsNot Nothing Then - Subject = r.txt_betreff - Subject = Subject.Replace("%BelegNr%", txtRgNr) - TextHTML &= r.txt_text - If Mailtext <> "" Then TextHTML &= Mailtext - TextHTML &= vbNewLine & vbNewLine + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID) + + Dim spracheRechnung As String = "EN" 'Defaultsprache + + Select Case row.Item("RechnungsLandKz") + Case "TR", "RO", "DE", "SRB" : spracheRechnung = row.Item("RechnungsLandKz") + Case "A", "AT", "D", "CH", "DE" : spracheRechnung = "DE" + Case "HR", "SLO", "BIH", "MNE", "MK", "MO" : spracheRechnung = "SRB" + End Select + If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then + + + Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung) + If r IsNot Nothing Then + Subject = r.txt_betreff + Subject = Subject.Replace("%BelegNr%", txtRgNr) + TextHTML &= r.txt_text + If Mailtext <> "" Then TextHTML &= Mailtext + TextHTML &= vbNewLine & vbNewLine + + + End If End If + End If End Sub - Private Function doRechnung(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True) + Private Function do_SR(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False, Optional showError As Boolean = True) Dim RechnungsNrisSet As Boolean = False - RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, 6, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie,, saveInThereFore, showError) + RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(FirmaID, Sammelrechnungsart, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie, True, saveInThereFore, showError) Return RechnungsNrisSet End Function @@ -315,6 +373,9 @@ Public Class cAutomailversand Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean + + Dim accountToSend = setAccountToSend(FirmaID) + Dim mailcreated As Boolean = False Dim sql As New VERAG_PROG_ALLGEMEIN.SQL @@ -329,14 +390,14 @@ Public Class cAutomailversand If Mail IsNot Nothing Then EMails = Mail.To EMails_CC = Mail.CC - EMails_BCC = Mail.BCC + EMails_BCC = accountToSend 'Mail.BCC EMail_subject = Mail.Subject EMail_HTML = Mail.Body AttCount = Mail.Attachments.Count Else EMails = MailTo EMails_CC = MailtoCC - EMails_BCC = MailtoBCC + EMails_BCC = accountToSend 'MailtoBCC EMail_subject = Mailsubject EMail_HTML = Mailhtml AttCount = ATTACHMENTS.Count @@ -356,7 +417,7 @@ Public Class cAutomailversand - Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG-MDM",,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr) + Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG_" & FirmaID,,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr) API.api_EMail = EMails API.api_EMailCC = EMails_CC @@ -383,7 +444,7 @@ Public Class cAutomailversand Next - If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, "mmdabrechnung@verag.ag", False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", "mmdabrechnung@verag.ag")) Then + If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then API.UPDTAE_OK() mailcreated = True Else @@ -402,5 +463,130 @@ Public Class cAutomailversand Return mailcreated + End Function + + Function getSammelRgTExt(RechnungsLandKz, FIRMA_ID) As String + + If RechnungsLandKz = "" Then + + getSammelRgTExt = "Sehr geehrte Damen und Herren,
" + getSammelRgTExt &= "Dear Ladies and Gentlemen,
" + getSammelRgTExt &= "Sayin Bayanlar ve Baylar,
" + getSammelRgTExt &= "
" + getSammelRgTExt &= "im Anhang senden wir Ihnen die o.g. Rechnung.
" + getSammelRgTExt &= "attached we send you the invoice mentioned above.
" + getSammelRgTExt &= "ekte baslikta yazan faturayi bulabilirsinz.
" + getSammelRgTExt &= "
" + getSammelRgTExt &= "


Mit freundlichen Grüßen / Best regards / Saygilarimizla

VERAG Spedition AG

" & cFakturierung.getSignature(RechnungsLandKz, FIRMA_ID) + Return "
" & getSammelRgTExt & "
" + End If + + + + getSammelRgTExt = "
" & getSammelRgTExt & "
" + End Function + + Function getSelectionLandKz(dt As DataTable) As String + getSelectionLandKz = "" + If dt.Rows.Count > 0 Then + + If dt.Rows.Count > 0 Then + + For Each r As DataRow In dt.Rows + + If Not IsDBNull(r("RechnungsLandKz")) Then + + Dim landKz As String = r("RechnungsLandKz").ToString() + + If getSelectionLandKz = "" Then + getSelectionLandKz = landKz + ElseIf getSelectionLandKz <> landKz Then + Return "" + End If + + End If + + Next + + End If + End If + + + End Function + + Private Function setAccountToSend(FIRMA_ID) As String + Dim accountToSend = "" + + Select Case FIRMA_ID + + Case 24 + accountToSend = SDL.cFakturierung.getDefaultMail("AMBAR",, True) + Case 19 + accountToSend = "mmdabrechnung@verag.ag" 'bewusst falsch geschrieben!!!! + Case 7 + accountToSend = "rechnung@atilla-spedition.com" + Case Else + accountToSend = "rechnungsversand@verag.ag" + End Select + + Return accountToSend + End Function + + Function addRgData_ZF_Passau(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String ' NUR EINZELRECHNUNG + addRgData_ZF_Passau = vbNewLine & vbNewLine + Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung + + Select Case RechnungsLandKz + Case "TR" + addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + Case "A", "AT", "D", "DE", "CH" + addRgData_ZF_Passau &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_ZF_Passau &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_ZF_Passau &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + Case Else + addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + End Select + + ' addRgData_ZF_Passau = RichTextBox.Text.Replace("Mit freundlichen Grüßen", "") + + + End Function + Function addRgData_Parsan(RechnungsLandKz As String, RECHNUNG As cRechnungsausgang, SPEDBUCH As cSpeditionsbuch) As String 'NUR EINZELRECHNUNG + addRgData_Parsan = vbNewLine & vbNewLine + Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung + + Select Case RechnungsLandKz + Case "TR" + ' addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + Case "A", "AT", "D", "DE", "CH" + ' addRgData_Parsan &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_Parsan &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_Parsan &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + Case Else + 'addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine + If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle, SPEDBUCH.Zollsystem_Land) Then + addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine + addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine + End If + End Select + + + End Function End Class diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 4c6a779d..a36a2496 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -4348,12 +4348,8 @@ Public Class cFakturierung ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr - ' KEIN doSAMMELRechnungsDruck_Abschnitt!!!! If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - - - End If kdTmp = RG.RechnungsKundenNr FilialeTmp = RG.FilialenNr @@ -4363,12 +4359,16 @@ Public Class cFakturierung ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr - Dim path = "" - doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) - Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) - If path <> "" Then listPDFs.Add(path) + If Not setAutoMailversand Then + Dim path = "" + doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) + Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) + If path <> "" Then listPDFs.Add(path) + Else + If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) + End If End If - kdTmp = RG.RechnungsKundenNr + kdTmp = RG.RechnungsKundenNr FilialeTmp = RG.FilialenNr FIRMATmp = RG.Firma_ID End Select @@ -4377,8 +4377,8 @@ Public Class cFakturierung RG.[VorschauID] = VorschauID Else - If SammelrechungArt = 6 Then - If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung! + If SammelrechungArt = 6 Or (setAutoMailversand And SammelrechungArt <> 6) Then + If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung bzw. der Sammelrechnung für Mailversand!! RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!! RG.Automailversand = setAutoMailversand Else @@ -4413,7 +4413,9 @@ Public Class cFakturierung 'Letzter Abschnitt: If found Then Dim path = "" - If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore) + If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then + doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore) + End If If path <> "" Then listPDFs.Add(path) End If lastAktuelle_RgNr = Aktuelle_RgNr @@ -4874,7 +4876,7 @@ Public Class cFakturierung RG_Bezeichnung = "Provisionsabrechnung_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf" End If - If isMDMRechnungsdruck Then + If isMDMRechnungsdruck AndAlso FIRMA.Firma_ID = 19 Then rpt = SammelRechnungAnlagenDruck_MDM(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath) Else rpt = SammelRechnungAnlagenDruck(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath) diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 4b393959..11875af0 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -2,8 +2,6 @@ Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN - - Public Class frmFaktEmail Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang @@ -78,23 +76,8 @@ Public Class frmFaktEmail End Sub - - Private Sub frmFaktEmail_Load(sender As Object, e As EventArgs) Handles MyBase.Load - 'Select Case RECHNUNG.RechnungsLandKz - ' Case "TR" - ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr - ' TextHTML = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." - ' TextHTML &= "


Saygilarimizla

" & cFakturierung.getSignature(RECHNUNG) - ' Case "A", "AT", "D", "DE", "CH" - ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr - ' TextHTML = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." - ' TextHTML &= "


Mit freundlichen Grüßen

" & cFakturierung.getSignature(RECHNUNG) - ' Case Else - ' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr - ' TextHTML = "Sehr geehrte Damen und Herren,

attached we send you the invoice mentioned above." - ' TextHTML &= "


Best regards

" & cFakturierung.getSignature(RECHNUNG) - 'End Select + cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE")) cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN")) diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb index e168f871..2a71cda1 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb @@ -401,7 +401,7 @@ Partial Class frmFaktSammelRgDrucken 'cbxAUTOMail ' Me.cbxAUTOMail.AutoSize = True - Me.cbxAUTOMail.Location = New System.Drawing.Point(555, 44) + Me.cbxAUTOMail.Location = New System.Drawing.Point(532, 66) Me.cbxAUTOMail.Name = "cbxAUTOMail" Me.cbxAUTOMail.Size = New System.Drawing.Size(116, 17) Me.cbxAUTOMail.TabIndex = 30 diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index bf9a5f82..39617ca5 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -58,6 +58,8 @@ Public Class frmFaktSammelRgDrucken Case 7 : txtZeitraumBis.Text = Now.ToShortDateString : lblSB.Visible = True : cboSB.Visible = True : cboSB.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) End Select + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cbxAUTOMail.Visible = True : pnlAUTOMailversand.Visible = True + initDGV() End Sub @@ -65,53 +67,153 @@ Public Class frmFaktSammelRgDrucken Sub initDGV() With MyDatagridview1 - Dim whereAbfArt = "" - Dim whereMWST = "" + 'Dim whereAbfArt = "" + 'Dim whereMWST = "" + 'Dim abfertigungsarten = getValues() + + 'If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then + ' whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") " + 'End If + 'If cbxMWST.CheckState.Indeterminate Then + ' whereMWST = "" + 'Else + ' whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0") + 'End If + + 'If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then + ' whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0") + ' whereAbfArt &= " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0") + 'End If + + 'Dim sqlStr = "" + + 'Select Case Sammelrechung + + ' Case 6 ' Maut Sammelrechnung + + ' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST + ' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck + ' FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr + ' WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "' + ' " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " + ' " & whereAbfArt & " " & whereMWST & " + ' GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0) + ' ORDER BY RechnungsLandKz, RechnungsKundenNr " + + ' Case Else + + ' sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & " + ' ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck + ' FROM Rechnungsausgang + ' WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "' + ' " & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " + ' " & whereAbfArt & " + ' AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "' + ' GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & " + ' ORDER BY Rechnungsausgang.RechnungsKundenNr " + + 'End Select + + + Dim whereAbfArt As String = "" + Dim whereMWST As String = "" + Dim whereAutoMail As String = "" + Dim abfertigungsarten = getValues() + ' Abfertigungsarten If Sammelrechung <> 6 AndAlso abfertigungsarten <> "" Then - whereAbfArt = " AND (SELECT Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr) IN (" & abfertigungsarten & ") " - End If - If cbxMWST.CheckState.Indeterminate Then - whereMWST = "" - Else - whereMWST = "AND isnull(tblKundenErweitert.kde_keineMWSt,0) = " & IIf(cbxMWST.Checked, "1", "0") + whereAbfArt = " AND (SELECT Abfertigungsart + FROM Speditionsbuch + WHERE Speditionsbuch.FilialenNr = Rechnungsausgang.FilialenNr + AND Speditionsbuch.AbfertigungsNr = Rechnungsausgang.AbfertigungsNr + AND Speditionsbuch.UnterNr = Rechnungsausgang.SpeditionsbuchUnterNr + ) IN (" & abfertigungsarten & ") " End If - If cbxAUTOMail.Checked Or Not cbxAUTOMail.Checked Then - whereMWST = " AND isnull(Rechnungsausgang.Automailversand,0) = " & IIf(cbxAUTOMail.Checked, "1", "0") + ' MWST + If Not cbxMWST.CheckState = CheckState.Indeterminate Then + whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0") End If - Dim sqlStr = "" + whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) = " & If(cbxAUTOMail.Checked, "1", "0") + + Dim sqlStr As String = "" Select Case Sammelrechung Case 6 ' Maut Sammelrechnung - sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1],0 as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe,sum(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, isnull(tblKundenErweitert.kde_keineMWSt,0) as keineMWST - ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck - FROM Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr - WHERE Rechnungsausgang.Status IN (2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = 6 And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & txtRechnungsdatum._value & "' - " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " - " & whereAbfArt & " " & whereMWST & " - GROUP BY RechnungsKundenNr, isnull(tblKundenErweitert.kde_keineMWSt,0) - ORDER BY RechnungsLandKz, RechnungsKundenNr " + sqlStr = " + SELECT + Rechnungsausgang.RechnungsKundenNr, + MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1], + 0 AS AvisoId, + MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz], + COUNT(*) AS Anzahl, + SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe, + SUM(Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Steuer, + ISNULL(tblKundenErweitert.kde_keineMWSt,0) AS keineMWST, + (SELECT CASE + WHEN Rechnungsdruck = 0 THEN 'POST' + WHEN Rechnungsdruck = 1 THEN 'FAX' + WHEN Rechnungsdruck = 2 THEN 'E-MAIL' + ELSE '-' END + FROM Adressen + WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck + FROM Rechnungsausgang + LEFT JOIN tblKundenErweitert + ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr + WHERE + Rechnungsausgang.Status = 2 + AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' + AND Rechnungsausgang.Sammelrechnung = " & Sammelrechung & " + AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) = '" & txtRechnungsdatum._value & "' + " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " + " & whereAbfArt & whereMWST & whereAutoMail & " + GROUP BY + RechnungsKundenNr, + ISNULL(tblKundenErweitert.kde_keineMWSt,0) + ORDER BY + RechnungsLandKz, RechnungsKundenNr" Case Else - sqlStr = " SELECT Rechnungsausgang.RechnungsKundenNr, max(Rechnungsausgang.[RechnungsName 1]) as [RechnungsName 1]," & If(Sammelrechung = 7, "AvisoId", "0") & " as AvisoId,max(Rechnungsausgang.[RechnungsLandKz]) as [RechnungsLandKz] , count(*) as Anzahl, SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe" & If(Sammelrechung = 7, ",max([LKW Kennzeichen]) as LKW", "") & " - ,(SELECT CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' ELSE '-' END FROM Adressen WHERE AdressenNr=Rechnungsausgang.RechnungsKundenNr ) as Rechnungsdruck - FROM Rechnungsausgang - WHERE Rechnungsausgang.Status IN (0,2) And Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & txtZeitraumBis._value & "' - " & If(Sammelrechung = 7 And cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "' ", "") & " - " & whereAbfArt & " - AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "' - GROUP BY RechnungsKundenNr " & If(Sammelrechung = 7, ",AvisoId", "") & " - ORDER BY Rechnungsausgang.RechnungsKundenNr " + sqlStr = " + SELECT + min(Rechnungsausgang.RechnungsNr) as RENR, + Rechnungsausgang.RechnungsKundenNr, + MAX(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1], + " & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId, + MAX(Rechnungsausgang.[RechnungsLandKz]) AS [RechnungsLandKz], + COUNT(*) AS Anzahl, + SUM(Rechnungsausgang.SteuerfreierGesamtbetrag + Rechnungsausgang.SteuerpflichtigerGesamtbetrag) AS Summe + " & If(Sammelrechung = 7, ", MAX([LKW Kennzeichen]) AS LKW", "") & ", + (SELECT CASE + WHEN Rechnungsdruck = 0 THEN 'POST' + WHEN Rechnungsdruck = 1 THEN 'FAX' + WHEN Rechnungsdruck = 2 THEN 'E-MAIL' + ELSE '-' END + FROM Adressen + WHERE AdressenNr = Rechnungsausgang.RechnungsKundenNr) AS Rechnungsdruck + FROM Rechnungsausgang + WHERE + Rechnungsausgang.Status IN (0,2) + AND Rechnungsausgang.Firma_ID = '" & cboFirma._value & "' + AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechung & "' + AND CONVERT(DATE, Rechnungsausgang.Abfertigungsdatum, 104) <= '" & txtZeitraumBis._value & "' + " & If(Sammelrechung = 7 AndAlso cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " + " & whereAbfArt & whereAutoMail & " + AND Rechnungsausgang.FakturierungsGruppe='" & cboFaktGrp._value & "' + GROUP BY + RechnungsKundenNr " & If(Sammelrechung = 7, ", AvisoId", "") & " + ORDER BY + Rechnungsausgang.RechnungsKundenNr" End Select + 'Rechnungsausgang.Status IN (0,2) --> vormals nur 2 .SET_SQL(sqlStr, "FMZOLL") .LOAD() @@ -137,8 +239,12 @@ Public Class frmFaktSammelRgDrucken .Columns("RechnungsLandKz").Visible = True End If - If .Columns.Contains("keineMWST") Then - .Columns("keineMWST").Visible = False + If .Columns.Contains("keineMWST") Then + .Columns("keineMWST").Visible = False + End If + + If .Columns.Contains("RENR") Then + .Columns("RENR").Visible = False End If If .Columns.Contains("Steuer") Then @@ -558,21 +664,73 @@ Public Class frmFaktSammelRgDrucken Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If MyDatagridview1.SelectedRows.Count > 0 Then + If vbYes = MsgBox("Möchten Sie alle markieren Rechnungen den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then - setMailversand(True, 19, 6, 2) + Dim noRENRExisting As Boolean = False + + If MyDatagridview1.Columns.Contains("RENR") Then + noRENRExisting = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value)) + + If noRENRExisting Then + + If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub + If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub + If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub + + If vbYes = MsgBox("Es wird eine Belegsnummer vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then + + For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value)) + + If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then + + + Me.Enabled = False + Me.Cursor = Cursors.WaitCursor + Dim listPDFs As New List(Of String) + Dim SonstAnlagen As New List(Of String) + Dim RechnungsNrisSet As Boolean = False + + Dim abfertigungsarten = getValues() + + RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, 7, listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, , cbxTransFerry.Checked, cboFaktGrp._value, abfertigungsarten,,, True) + If Not RechnungsNrisSet Then + MsgBox("Fehler bei RechnungsNrErzeugung!") + End If + Me.Enabled = True + End If + + Next + Me.Enabled = True + Me.Cursor = Cursors.Default + + + Else + + + End If + End If + End If + + setMailversand_ALL(True, Firma, Sammelrechung, 2) + Me.Enabled = True + Me.Cursor = Cursors.Default End If + End If + + End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click If MyDatagridview1.SelectedRows.Count > 0 Then If vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand deaktiveren?" & vbNewLine & "Die Rechnungen müssen dann manuell per Mail verschickt werden!", vbYesNoCancel) Then - setMailversand(False, 19, 6, 2) + 'setMailversand(false, Firma, Sammelrechung, 2) + setMailversand_ALL(False, Firma, Sammelrechung, 2) End If End If @@ -593,6 +751,7 @@ Public Class frmFaktSammelRgDrucken For Each r As DataGridViewRow In MyDatagridview1.SelectedRows If IsDate(txtRechnungsdatum.Text) AndAlso r.Cells("RechnungsLandKz").Value <> "" AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then + If (New SQL).doSQL("UPDATE Rechnungsausgang set Automailversand = " & mailversandString & " from Rechnungsausgang left join tblKundenErweitert on tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr where Rechnungsausgang.Status In (" & Status & ") And Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "' and RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & " and RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value & " ' and isnull(Automailversand, 0) <> " & mailversandString & @@ -609,6 +768,60 @@ Public Class frmFaktSammelRgDrucken + + End Function + + Private Function setMailversand_ALL(Mailversand As Boolean, FirmaID As Integer, Sammelrechnung As Integer, Status As Integer) As Boolean + + Dim count As Integer = 0 + Dim mailversandString As String = If(Mailversand, "1", "0") + + Dim whereMWST As String = "" + Dim whereAutoMail As String = "" + + ' MWST Filter + If cbxMWST.CheckState <> CheckState.Indeterminate Then + whereMWST = " AND ISNULL(tblKundenErweitert.kde_keineMWSt,0) = " & If(cbxMWST.Checked, "1", "0") + End If + + ' Automail Filter (nur ändern wenn unterschiedlich) + whereAutoMail = " AND ISNULL(Rechnungsausgang.Automailversand,0) <> " & mailversandString + + For Each r As DataGridViewRow In MyDatagridview1.SelectedRows + + Dim sql As String = "" + + If IsDate(txtRechnungsdatum.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then + + sql = "UPDATE Rechnungsausgang SET Automailversand = " & mailversandString & " FROM Rechnungsausgang LEFT JOIN tblKundenErweitert ON tblKundenErweitert.kde_KundenNr = Rechnungsausgang.RechnungsKundenNr + WHERE + Rechnungsausgang.Status IN (" & Status & ") + AND Rechnungsausgang.Firma_ID = '" & FirmaID & "' + AND Rechnungsausgang.Sammelrechnung = '" & Sammelrechnung & "' + AND CONVERT(DATE, Rechnungsausgang.Rechnungsdatum, 104) = '" & CDate(txtRechnungsdatum.Text).ToShortDateString & "' + AND Rechnungsausgang.RechnungsKundenNr = " & r.Cells("RechnungsKundenNr").Value & " + AND Rechnungsausgang.RechnungsLandKz = '" & r.Cells("RechnungsLandKz").Value.ToString.Trim & "' + " & whereAutoMail & " + " & If(cboSB._value <> "", " AND Rechnungsausgang.Sachbearbeiter='" & cboSB._value & "'", "") & " + " & whereMWST + + End If + + If (New SQL).doSQL(sql, "FMZOLL") Then + count += 1 + End If + + Next + + If count <> MyDatagridview1.SelectedRows.Count Then + MsgBox("ACHTUNG" & vbNewLine & + "Der automatische Mailversand wurde nur bei " & count & " Rechnungen " & + If(Mailversand, "aktiviert!", "deaktiviert!") & vbNewLine & + "Markiert waren " & MyDatagridview1.SelectedRows.Count & " Rechnungen!") + End If + + + End Function Private Sub cbxAUTOMail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAUTOMail.CheckedChanged @@ -638,7 +851,7 @@ Public Class frmFaktSammelRgDrucken If IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value) Then - Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = 6" & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL") + Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where RechnungsKundenNr = " & MyDatagridview1.SelectedRows(0).Cells("RechnungsKundenNr").Value & " AND cast(RechnungsDatum as Date) = '" & txtRechnungsdatum._value & "' AND Sammelrechnung = " & Sammelrechung & IIf(Firma > 0, " AND Firma_ID =" & Firma, ""), "FMZOLL") If dtRE.Rows.Count > 0 Then Dim RK_ID As String = "" @@ -696,11 +909,11 @@ Public Class frmFaktSammelRgDrucken If MyDatagridview1.SelectedRows.Count > 0 Then - If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub + If Not vbYes = MsgBox("Möchten Sie für alle markieren Rechnungen den automatischen Emailversand JETZT durchführen?" & vbNewLine & "Ansonsten werden sie im Nachtlauf automatisch versendet!", vbYesNoCancel) Then Exit Sub Dim fun As New cAutomailversand For Each r In MyDatagridview1.SelectedRows - fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), 6, 19, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked) + fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, r.Cells("RechnungsKundenNr").Value, cbxMailoeffnen.Checked) Next initDGV() diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb index d529c6e1..fcc48cfd 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.Designer.vb @@ -288,6 +288,7 @@ Partial Class usrCntlFaktAbrechnung Me.GutschriftAnVeragToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.VeragAGToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.VeragCSToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cbxAUTOMailversand = New System.Windows.Forms.CheckBox() Me.pnlTop.SuspendLayout() Me.Panel3.SuspendLayout() Me.Panel1.SuspendLayout() @@ -804,6 +805,7 @@ Partial Class usrCntlFaktAbrechnung 'Panel1 ' Me.Panel1.AutoScroll = True + Me.Panel1.Controls.Add(Me.cbxAUTOMailversand) Me.Panel1.Controls.Add(Me.Button17) Me.Panel1.Controls.Add(Me.txtTextZZ) Me.Panel1.Controls.Add(Me.dgvAnhaenge) @@ -4057,6 +4059,17 @@ Partial Class usrCntlFaktAbrechnung Me.VeragCSToolStripMenuItem.Size = New System.Drawing.Size(122, 22) Me.VeragCSToolStripMenuItem.Text = "Verag CS" ' + 'cbxAUTOMailversand + ' + Me.cbxAUTOMailversand.AutoSize = True + Me.cbxAUTOMailversand.Location = New System.Drawing.Point(697, 142) + Me.cbxAUTOMailversand.Name = "cbxAUTOMailversand" + Me.cbxAUTOMailversand.Size = New System.Drawing.Size(116, 17) + Me.cbxAUTOMailversand.TabIndex = 241 + Me.cbxAUTOMailversand.Text = "AUTO Mailversand" + Me.cbxAUTOMailversand.UseVisualStyleBackColor = True + Me.cbxAUTOMailversand.Visible = False + ' 'usrCntlFaktAbrechnung ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -4351,4 +4364,5 @@ Partial Class usrCntlFaktAbrechnung Friend WithEvents cboVorauskasse As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents cboRgArt As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents Label57 As Label + Friend WithEvents cbxAUTOMailversand As CheckBox End Class diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index a759c96b..1b3119dd 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -142,6 +142,7 @@ Public Class usrCntlFaktAbrechnung Label40.Visible = False sbLeistung._value = "" cbxOriginalPrint.Checked = False + cbxAUTOMailversand.Checked = False If RK_ID_TMP > 0 Then RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID_TMP) @@ -302,6 +303,7 @@ Public Class usrCntlFaktAbrechnung txtErfassungsnummer.Text = If(RECHNUNG.ErfassungsNr, "") cboRechnungNotiz.Text = If(RECHNUNG.Notiz, "") + cbxAUTOMailversand.Checked = RECHNUNG.Automailversand initRgArt() cboRgArt._value = RECHNUNG.Rechnungsart @@ -544,6 +546,10 @@ Public Class usrCntlFaktAbrechnung FirmaTmp = "VERAG360" End If + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + cbxAUTOMailversand.Visible = True + End If + cboVorauskasse.Items.Clear() cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", 0)) cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", 1)) @@ -2496,6 +2502,8 @@ Public Class usrCntlFaktAbrechnung RECHNUNG.KdAuftragsNr = cProgramFunctions.isLeerNothing(txtKdAuftragsNr.Text) + RECHNUNG.Automailversand = cbxAUTOMailversand.Checked + If RECHNUNG.Abfertigungsdatum < CDate("01.01.2000") Then RECHNUNG.Abfertigungsdatum = Now If dgvOffertenSperrliste.SelectedRows.Count > 0 Then RECHNUNG.OffertenNr = dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value 'Wenn mehrfachauswahl möcglich-> Ändern diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb index e8973501..b69d4dc0 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -130,7 +130,7 @@ Public Class cSyska_Interface 'DATEIPFAD für Stammdaten '------------------------------------------------------------------------------------------- Dim pathArchivKD = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\" - Dim pathKD = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\" + Dim pathKD = "\\syncluster01.verag.ost.dmn\F\FIBU\Syska\" & FIRMA.Firma_ID & "\" 'pathKD = pathArchivKD 'TEST If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then @@ -296,7 +296,7 @@ Public Class cSyska_Interface 'DATEIPFAD für Buchungsdaten '------------------------------------------------------------------------------------------- Dim pathArchiv = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\" - Dim path = "\\syncluster01.verag.ost.dmn\F\BUCHHALTUNG\FIBU\Syska\" & FIRMA.Firma_ID & "\" + Dim path = "\\syncluster01.verag.ost.dmn\F\FIBU\Syska\" & FIRMA.Firma_ID & "\" 'pathKD = pathArchivKD 'TEST If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then