From 23dc366b05edf6657a8a166640b8613f1f998c51 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 9 Apr 2026 12:48:06 +0200 Subject: [PATCH] =?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()