From df5caf4283d324ec5e79b9132d8c8732c12085f2 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Thu, 13 Nov 2025 16:44:54 +0100 Subject: [PATCH] Syska-Direktverbuchung --- SDL/Classes/cRKSV.vb | 1145 ++++++++++++-------------------- SDL/My Project/AssemblyInfo.vb | 4 +- 2 files changed, 424 insertions(+), 725 deletions(-) diff --git a/SDL/Classes/cRKSV.vb b/SDL/Classes/cRKSV.vb index 15e165eb..c2084ef0 100644 --- a/SDL/Classes/cRKSV.vb +++ b/SDL/Classes/cRKSV.vb @@ -1,14 +1,7 @@ -Imports System.Drawing.Printing -Imports com.sun.xml.internal.rngom.digested -Imports com.sun.xml.internal.ws.api.pipe -Imports com.sun.xml.internal.xsom.impl.WildcardImpl -Imports GrapeCity.ActiveReports +Imports GrapeCity.ActiveReports Imports GrapeCity.DataVisualization.TypeScript -Imports GrapeCity.Documents.DX.DirectWrite Imports SDL.RKSVServer -Imports sun.security.provider.certpath Imports VERAG_PROG_ALLGEMEIN.DSFinVKService -Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class cRKSV Shared SQL As New SQL @@ -2375,13 +2368,12 @@ Public Class cRKSV End If '################ - ' Buchung im EABeleg eintragen. + ' DIREKTVERBUCHUNG SYSKA '################ If BelegSofortInFIBUverbuchten AndAlso BELEG.Beleg_TYP = "L" Then Dim stapelbuchung As Boolean = False 'createSyskaBuchung(RKSV_id, BELEG, stapelbuchung, KBEntry_List, KBEntryGB_List, KBEntryST_List) - End If BELEG.gebucht = True @@ -2426,6 +2418,7 @@ Public Class cRKSV Dim JAHR As Integer = Now.Year Dim PERIODE As Integer = Now.Month Dim BETRAG As Double = 0 + Dim BUCHUNGSBETRAG As Double = 0 Dim TYP As String = "EINZAHLUNG" Dim Kontonummer As Integer = 0 @@ -2436,6 +2429,7 @@ Public Class cRKSV Dim Bestandskonto As Integer = 0 Dim Erlöskonto As Integer = 0 + Dim Sachkonto As Integer = 0 If beleg.KundenNr > 0 Then Habenkonto = beleg.KundenNr @@ -2480,11 +2474,20 @@ Public Class cRKSV Dim R3 As DataRow = dt_Verbuchungskonten.NewRow R3("Nr") = 1 R3("Konto") = r.Konto + Bestandskonto = r.Konto R3("Soll") = r.Soll R3("Haben") = r.Haben dt_Verbuchungskonten.Rows.Add(R3) kontenzaehler += 1 + Dim R4 As DataRow = dt_Verbuchungskonten.NewRow + R4("Nr") = kontenzaehler + R4("Konto") = Kassenkonto + R4("Soll") = r.Haben + R4("Haben") = r.Soll + dt_Verbuchungskonten.Rows.Add(R4) + kontenzaehler += 1 + If r.Buchungstext = "AUSZAHLUNG" Then BelegBuchungsKreis = "KA" TYP = r.Buchungstext @@ -2493,34 +2496,39 @@ Public Class cRKSV BelegBuchungsKreis = "KE" End If - Dim R4 As DataRow = dt_Verbuchungskonten.NewRow - R4("Nr") = kontenzaehler - R4("Konto") = Kassenkonto - R4("Soll") = r.Haben - R4("Haben") = r.Soll - dt_Verbuchungskonten.Rows.Add(R4) - kontenzaehler += 1 - Next - Dim Buchungstext As String = BelegBuchungsKreis & "_" & beleg.AbfertigungsNr & "_" & beleg.LKW_Kennzeichen & "_" & beleg.Frachtführer & "_" & beleg.Fahrer & "_" & beleg.Passnummer + + Dim Buchungstext As String = IIf(BETRAG < 0, "STORNO", "") & BelegBuchungsKreis & "_" & beleg.AbfertigungsNr & "_" & beleg.LKW_Kennzeichen & "_" & beleg.Frachtführer & "_" & beleg.Fahrer & "_" & beleg.Passnummer Dim BuchungstextBemerkung As String = "" If Buchungstext IsNot Nothing AndAlso Buchungstext.Length > 48 Then BuchungstextBemerkung = Buchungstext.Substring(48) Buchungstext = Buchungstext.Substring(0, 48) End If + Dim ckennsoll2 = "" + Dim ckennhab2 = "" + Dim ckennsoll = "LE" + Dim kkennungsoll As Integer = 0 + Dim kkennungsoll2 As Integer = 0 + + Dim ckennhab = "LE" + Dim kkennunghab As Integer = 0 + Dim kkennunghab2 As Integer = 0 + Dim dt_Sollkonto As DataTable = VERAG_SQL.loadDgvBySql("SELECT top(1) isnull([FIBU2].dbo.fibu_konto.c_kontoart,'LE'), isnull([FIBU2].dbo.fibu_konto.i_kennung,0) FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = " & Sollkonto & " AND [FIBU2].dbo.fibu_konto.i_firm_refid = " & MANDANT, "FIBU") If dt_Sollkonto.Rows.Count > 0 Then - Sollkonto = dt_Sollkonto.Rows(0).Item("i_kennung") + kkennungsoll = dt_Sollkonto.Rows(0).Item("i_kennung") + ckennsoll = dt_Sollkonto.Rows(0).Item("c_kontoart") End If Dim dt_Habenkonto As DataTable = VERAG_SQL.loadDgvBySql("SELECT TOP(1) isnull([FIBU2].dbo.fibu_konto.c_kontoart,'LE'), isnull([FIBU2].dbo.fibu_konto.i_kennung,0) FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = " & Habenkonto & " AND [FIBU2].dbo.fibu_konto.i_firm_refid = " & MANDANT, "FIBU") If dt_Habenkonto.Rows.Count > 0 Then - Habenkonto = dt_Habenkonto.Rows(0).Item("i_kennung") + kkennunghab = dt_Habenkonto.Rows(0).Item("i_kennung") + ckennhab = dt_Habenkonto.Rows(0).Item("c_kontoart") End If - 'STAPEL NICHT NOTWENDIG + 'STAPEL NICHT UNBEDINGT NOTWENDIG Dim StapelAZK As String = VERAG_SQL.getValueTxtBySqlVarList("SELECT [FIBU2].dbo.fibu_stapelart.i_stapel_refid FROM [FIBU2].dbo.fibu_stapelart WHERE [FIBU2].dbo.fibu_stapelart.c_stapelname LIKE 'Auszahlungskasse 1' AND [FIBU2].dbo.fibu_stapelart.i_firm_refid = " & MANDANT, "FIBU",, "") Dim Zaehler1 As String = VERAG_SQL.getValueTxtBySqlVarList("SELECT COUNT([FIBU2].dbo.fibu_stapel.i_lfdnr) FROM [FIBU2].dbo.fibu_stapel WHERE ISNULL([FIBU2].dbo.fibu_stapel.si_pruef, 0) > 0", "FIBU",, "0") @@ -2538,341 +2546,259 @@ Public Class cRKSV If StapelAZK = "" Then StapelAZK = "0000" - Dim timestamp As String = Now.ToString("dd HH:mm:ss") - Dim ProtokollID As String = StapelAZK.ToString() & "-" & ZSBuchnrINT.ToString("0000") & "-" & JAHR & "-" & PERIODE.ToString("N2") & "-" & timestamp + Dim dt_creation As String = Now.ToString("dd HH:mm:ss") + Dim ProtokollID As String = StapelAZK.ToString() & "-" & ZSBuchnrINT.ToString("0000") & "-" & JAHR & "-" & PERIODE.ToString("N2") & "-" & dt_creation Dim pruef As Integer = 0 - Dim ZSzeilenr As Integer = 0 - Dim Belegart As Integer = 1 - Dim Splitart As Integer = 0 + Dim ZSzeilenr As Integer = 0 + Dim Belegart As Integer = 1 + Dim Splitart As Integer = 0 - '1. Belegssalden anlegen, falls nicht vorhanden! - erste Schleife (Schleifen1rec) - For Each konto As DataRow In dt_Verbuchungskonten.Rows - erstelleEBSalden(MANDANT, JAHR, konto.Item("Konto")) - Next + '1. Belegssalden anlegen, falls nicht vorhanden! - erste Schleife (Schleifen1rec) + For Each konto As DataRow In dt_Verbuchungskonten.Rows + erstelleEBSalden(MANDANT, JAHR, konto.Item("Konto")) + Next - Dim i_beleg_refid As String = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList("SELECT [FIBU2].dbo.fibu_nummern.i_nummer_refid + 1 From [FIBU2].dbo.fibu_nummern Where [FIBU2].dbo.fibu_nummern.i_firm_refid = " & MANDANT & " And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer' ", "FIBU",, "0") - Dim Buchungstyp = "g" - Dim i_op_refid = "" + Dim i_beleg_refid As String = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySqlVarList("SELECT [FIBU2].dbo.fibu_nummern.i_nummer_refid + 1 From [FIBU2].dbo.fibu_nummern Where [FIBU2].dbo.fibu_nummern.i_firm_refid = " & MANDANT & " And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer' ", "FIBU",, "0") + Dim Buchungstyp = "g" + Dim i_op_refid = "" - If i_beleg_refid <> "" AndAlso IsNumeric(i_beleg_refid) Then + If i_beleg_refid <> "" AndAlso IsNumeric(i_beleg_refid) Then - i_op_refid = i_beleg_refid + i_op_refid = i_beleg_refid - If BETRAG <> 0 AndAlso TYP = "EINZAHLUNG" Then + If BETRAG <> 0 AndAlso TYP = "EINZAHLUNG" Then - VERAG_SQL.doSQL("UPDATE [FIBU2].dbo.fibu_nummern SET [FIBU2].dbo.fibu_nummern.i_nummer_refid = " & i_beleg_refid & " WHERE [FIBU2].dbo.fibu_nummern.i_firm_refid = " & MANDANT & " And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer'", "FIBU") - - End If + VERAG_SQL.doSQL("UPDATE [FIBU2].dbo.fibu_nummern SET [FIBU2].dbo.fibu_nummern.i_nummer_refid = " & i_beleg_refid & " WHERE [FIBU2].dbo.fibu_nummern.i_firm_refid = " & MANDANT & " And [FIBU2].dbo.fibu_nummern.c_nummernart Like 'Buchungsnummer'", "FIBU") End If - insertBelegskopf(MANDANT, JAHR, 1, i_beleg_refid, beleg.BelegDat.ToShortDateString, beleg.BelegNr, Belegart, Buchungstext, BETRAG, "EUR", Now().ToShortTimeString, "AUTO", ProtokollID) + End If - Dim ckennsoll2 = "KO" ' erste Buchungszeile - Dim SollHabenKZ = "S" - Dim sollkonto2 As Integer = 0 - Dim Habenkonto2 As Integer = 0 - - Dim SollSumme As Double = 0 - - Dim dec_sollsumme As Double = 0 - Dim dec_habensumme As Double = 0 - - ZSzeilenr += 1 - - If TYP = "EINZAHLUNG" Then - - If BETRAG <> 0 Then - - sollkonto2 = Bestandskonto - Habenkonto2 = Kontonummer '/* gilt für den ersten Datensatz der ersten Buchungszeile pro Artikel */ + insertBelegskopf(MANDANT, JAHR, 1, i_beleg_refid, beleg.BelegDat.ToShortDateString, beleg.BelegNr, Belegart, Buchungstext, BETRAG, "EUR", Now().ToShortTimeString, "AUTO", ProtokollID) - Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") - If rows.Length > 0 Then - Dim row As DataRow = rows(0) - If Not IsDBNull(row("Soll")) Then - dec_sollsumme = Convert.ToDecimal(row("Soll")) - End If - row("Soll") = dec_sollsumme + BETRAG + Dim SollHabenKZ = "S" + Dim Sollkonto2 As Integer = 0 + Dim Habenkonto2 As Integer = 0 + + Dim SollSumme As Double = 0 + + Dim dec_sollsumme As Double = 0 + Dim dec_habensumme As Double = 0 + + ZSzeilenr += 1 + + If TYP = "EINZAHLUNG" Then + + If BETRAG <> 0 Then + + Sollkonto2 = Bestandskonto '/* bei Einzahlung und Bestandskonto im Soll */ + Habenkonto2 = Kontonummer '/* gilt für den ersten Datensatz der ersten Buchungszeile pro Artikel */ + ckennhab2 = "LE" + ckennsoll2 = "KO" + kkennunghab2 = 0 + kkennungsoll2 = 0 + + BUCHUNGSBETRAG = BETRAG + + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Soll")) Then + dec_sollsumme = Convert.ToDecimal(row("Soll")) End If - + row("Soll") = dec_sollsumme + BETRAG End If - - - ElseIf TYP = "AUSZAHLUNG" Then - - If BETRAG <> 0 Then - - sollkonto2 = Erlöskonto - Habenkonto2 = 0 - dec_sollsumme = 0 - - Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") - If rows.Length > 0 Then - Dim row As DataRow = rows(0) - If Not IsDBNull(row("Soll")) Then - dec_sollsumme = Convert.ToDecimal(row("Soll")) - End If - row("Soll") = dec_sollsumme + BETRAG * (-1) - End If - - - End If + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) End If + + + ElseIf TYP = "AUSZAHLUNG" Then + + If BETRAG <> 0 Then + '/* Umkehrung von Soll und Habenkonto und Betragsvorzeichenwechsel */ + Sollkonto2 = Erlöskonto + Habenkonto2 = 0 + dec_sollsumme = 0 + + BUCHUNGSBETRAG = BETRAG * (-1) + + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Soll")) Then + dec_sollsumme = Convert.ToDecimal(row("Soll")) + End If + row("Soll") = dec_sollsumme + BETRAG * (-1) + End If + + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) + + End If + + + End If + '1. Belegszeile - insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) If TYP = "AUSZAHLUNG" Then - If BETRAG <> 0 Then + If BETRAG <> 0 Then - 'BEGIN /* bei Auszahlung die zweite Datenzeile zur ersten Bestandskontobuchung */ + 'BEGIN /* bei Auszahlung die zweite Datenzeile zur ersten Bestandskontobuchung */ - ZSzeilenr += 1 + ZSzeilenr += 1 - sollkonto2 = Bestandskonto - Habenkonto2 = 0 - ckennsoll2 = "KO" - SollHabenKZ = "H" + sollkonto2 = Bestandskonto + Habenkonto2 = 0 + ckennsoll2 = "KO" + SollHabenKZ = "H" - Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") - If rows.Length > 0 Then - Dim row As DataRow = rows(0) - If Not IsDBNull(row("Haben")) Then - dec_habensumme = Convert.ToDecimal(row("Haben")) - End If - row("Haben") = dec_habensumme + BETRAG * (-1) + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Haben")) Then + dec_habensumme = Convert.ToDecimal(row("Haben")) End If - + row("Haben") = dec_habensumme + BETRAG * (-1) End If - - Else - - End If + End If + + '2. Belegszeile - insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BUCHUNGSBETRAG, "EUR", ZSzeilenr, ckennsoll2, Sollkonto2, Habenkonto2, SollHabenKZ) - 'End /* Direktverbuchung der zweiten Datenzeile */ - 'End /* bei Auszahlung die zweite Datenzeile zur Bestandskontobuchung */ - - - 'BEGIN /* Direktverbuchung der Sammelkundenbuchung */ - - 'SET @c_sprache = (SELECT [FIBU2].dbo.fibu_konto.c_sprache FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2 And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr) - - 'SET @c_ustidnr = (SELECT [FIBU2].dbo.fibu_konto.c_ustidnr FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2 And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr) - - 'SET @c_zahlziel = (SELECT [FIBU2].dbo.fibu_konto.c_zahlziel FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = @Sollkonto2 And [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr) - - 'SET @Skontotage = (SELECT [FIBU2].dbo.fibu_zahlziel.si_tage FROM [FIBU2].dbo.fibu_zahlziel WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel) - 'If @Skontotage Is NULL SET @Skontotage = 0 - - 'SET @Skonto = (SELECT [FIBU2].dbo.fibu_zahlziel.dec_skonto FROM [FIBU2].dbo.fibu_zahlziel WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel) - 'If @Skonto Is NULL SET @Skonto = 0 - - 'SET @Nettotage = (SELECT [FIBU2].dbo.fibu_zahlziel.si_ntage FROM [FIBU2].dbo.fibu_zahlziel WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_zahlziel.c_zahlziel Like @c_zahlziel) - 'If @Nettotage Is NULL SET @Nettotage = 0 - - 'SET @Skontodatum = DATEADD(DAY, @Skontotage, @gDatumKurz) - 'SET @Nettodatum = DATEADD(DAY, @Nettotage, @gDatumKurz) If TYP = "EINZAHLUNG" Then ZSzeilenr += 1 If BETRAG > 0 Then - 'BEGIN /* dritte Buchungszeile */ - sollkonto2 = Forderungskonto - Habenkonto2 = Bestandskonto - ckennsoll2 = "DB" - SollHabenKZ = "H" + 'BEGIN /* dritte Buchungszeile */ + sollkonto2 = Forderungskonto + Habenkonto2 = Bestandskonto + ckennsoll2 = "DB" + SollHabenKZ = "H" - sollkonto2 = Forderungskonto - Habenkonto2 = 0 - ckennsoll2 = "DB" - SollHabenKZ = "S" + sollkonto2 = Forderungskonto + Habenkonto2 = 0 + ckennsoll2 = "DB" + SollHabenKZ = "S" - Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") - If rows.Length > 0 Then - Dim row As DataRow = rows(0) - If Not IsDBNull(row("Soll")) Then - dec_habensumme = Convert.ToDecimal(row("Soll")) - End If - row("Soll") = dec_habensumme + BETRAG + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Soll")) Then + dec_habensumme = Convert.ToDecimal(row("Soll")) End If - '3. Buchungszeile - insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) - + row("Soll") = dec_habensumme + BETRAG + End If End If + '3. Buchungszeile - NUR BEI EINZAHLUNG + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BUCHUNGSBETRAG, "EUR", ZSzeilenr, ckennsoll2, Sollkonto2, Habenkonto2, SollHabenKZ) + + Else - Else ZSzeilenr += 1 If BETRAG > 0 Then - sollkonto2 = Forderungskonto - Habenkonto2 = 0 - ckennsoll2 = "DB" - SollHabenKZ = "S" + sollkonto2 = Forderungskonto + Habenkonto2 = 0 + ckennsoll2 = "DB" + SollHabenKZ = "S" - Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") - If rows.Length > 0 Then - Dim row As DataRow = rows(0) - If Not IsDBNull(row("Soll")) Then - dec_habensumme = Convert.ToDecimal(row("Soll")) - End If - row("Soll") = dec_habensumme + BETRAG * (-1) + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Soll")) Then + dec_habensumme = Convert.ToDecimal(row("Soll")) End If - + row("Soll") = dec_habensumme + BETRAG * (-1) End If + End If '4. Buchungszeile - insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BUCHUNGSBETRAG, "EUR", ZSzeilenr, ckennsoll2, Sollkonto2, Habenkonto2, SollHabenKZ) End If - ZSzeilenr += 1 + ZSzeilenr += 1 - If TYP = "AUSZAHLUNG" Then + If TYP = "AUSZAHLUNG" Then - If BETRAG > 0 Then + If BETRAG > 0 Then - 'BEGIN /* fünfte Buchungszeile bei Auszahlung und Direktverbuchung */ + 'BEGIN /* fünfte Buchungszeile bei Auszahlung und Direktverbuchung */ - sollkonto2 = Erlöskonto - Habenkonto2 = 0 - ckennsoll2 = "KO" - SollHabenKZ = "H" + sollkonto2 = Erlöskonto + Habenkonto2 = 0 + ckennsoll2 = "KO" + SollHabenKZ = "H" + + + Dim rows() As DataRow = dt_Verbuchungskonten.Select("Konto = '" & sollkonto2 & "'") + If rows.Length > 0 Then + Dim row As DataRow = rows(0) + If Not IsDBNull(row("Haben")) Then + dec_habensumme = Convert.ToDecimal(row("Haben")) + End If + row("Haben") = dec_habensumme + BETRAG * (-1) + End If - 'SET @dec_habensumme = (SELECT OWNFIELD_Haben FROM OWNTABLE_Verbuchungskonten WHERE OWNFIELD_Konto = @Sollkonto2) - 'UPDATE OWNTABLE_Verbuchungskonten SET OWNFIELD_Haben = (@dec_habensumme + @B_Bruttobetrag * (-1)) WHERE OWNFIELD_Konto = @Sollkonto2 '5. Buchungszeile - insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", ZSzeilenr, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) + insertBelegszeile(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BUCHUNGSBETRAG, "EUR", ZSzeilenr, ckennsoll2, Sollkonto2, Habenkonto2, SollHabenKZ) End If + + + End If + + + + Dim SkontoDatum = beleg.BelegDat + Dim Nettodatum = beleg.BelegDat + + Dim si_tage As Integer = 0 + Dim dec_skonto As Integer = 0 + Dim si_ntage As Integer = 0 + + Dim c_sprache As String = "" + Dim c_ustidnr As String = "" + Dim c_zahlziel As String = "" + + getDEBDaten(MANDANT, Sollkonto2, c_sprache, c_ustidnr, c_zahlziel, si_tage, dec_skonto, si_ntage, SkontoDatum, Nettodatum) + + '7/1 Schritt -> Salden-Fortschreibung! + Dim opvorgangsbetrag As Double = 0 + Saldenaktualisierung(TYP, BETRAG, beleg, dec_sollsumme, dec_habensumme, MANDANT, Sollkonto2, Forderungskonto, Bestandskonto, Sachkonto, Erlöskonto, opvorgangsbetrag) + + '7/2 Schritt -> Saldenperiodenbuchungen (Salden-Fortschreibung)! + + For Each konto As DataRow In dt_Verbuchungskonten.Rows 'Schleifen2rec + If Not IsDBNull(konto("Soll")) AndAlso konto("Soll") <> 0 Or Not IsDBNull(konto("Haben")) AndAlso konto("Haben") <> 0 Then + periodenBuchungen(PERIODE, konto("Konto"), MANDANT, JAHR, konto("Soll"), konto("Haben")) End If + Next - 'BEGIN /* Fortsetzung bei Direktverbuchung */ - - 'SET @updatekonto = @i_fordkto - - 'SET @dec_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.dec_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_sollsumme = (SELECT [FIBU2].dbo.fibu_konto.dec_sollsumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_habensumme = (SELECT [FIBU2].dbo.fibu_konto.dec_habensumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @eur_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'If @Einzahlungsbetrag <> 0 - 'BEGIN /* Einzahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme - 0) - 'SET @dec_habensumme = (@dec_habensumme + @B_Bruttobetrag) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag) - 'End /* Einzahlung */ - 'Else BEGIN /* Auszahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag) - 'SET @dec_habensumme = (@dec_habensumme + 0) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag) - 'End /* Auszahlung */ - - 'UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat = @gDatumKurz, dec_aktuellersaldo = @dec_aktuellersaldo, dec_sollsumme = @dec_sollsumme, dec_habensumme = @dec_habensumme, eur_aktuellersaldo = @eur_aktuellersaldo WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto - - 'SET @updatekonto = CAST(@Bestandskonto AS INTEGER) - 'SET @i_Sachkonto = @updatekonto - - 'SET @dec_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.dec_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_sollsumme = (SELECT [FIBU2].dbo.fibu_konto.dec_sollsumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_habensumme = (SELECT [FIBU2].dbo.fibu_konto.dec_habensumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @eur_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'If @Einzahlungsbetrag <> 0 - 'BEGIN /* Einzahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo + @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme + @B_Bruttobetrag) - 'SET @dec_habensumme = (@dec_habensumme + 0) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo + @B_Bruttobetrag) - 'End /* Einzahlung */ - 'Else BEGIN /* Auszahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo + @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme - 0) - 'SET @dec_habensumme = (@dec_habensumme - @B_Bruttobetrag) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo + @B_Bruttobetrag) - 'End /* Auszahlung */ - - 'UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat = @gDatumKurz, dec_aktuellersaldo = @dec_aktuellersaldo, dec_sollsumme = @dec_sollsumme, dec_habensumme = @dec_habensumme, eur_aktuellersaldo = @eur_aktuellersaldo WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto - - 'If @Auszahlungsbetrag <> 0 - 'BEGIN /* Erlöskonto bei Auszahlung */ - - 'SET @updatekonto = CAST(@Erlöskonto AS INTEGER) - 'SET @i_Sachkonto = @updatekonto - - 'SET @dec_sollsumme = (SELECT [FIBU2].dbo.fibu_konto.dec_sollsumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_habensumme = (SELECT [FIBU2].dbo.fibu_konto.dec_habensumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag) - 'SET @dec_habensumme = (@dec_habensumme - @B_Bruttobetrag) - - 'UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat = @gDatumKurz, dec_sollsumme = @dec_sollsumme, dec_habensumme = @dec_habensumme WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto - - 'End /* Erlöskonto bei Auszahlung */ - - 'SET @updatekonto = CAST(@Kontonummer AS INTEGER) - - 'SET @dec_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.dec_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_sollsumme = (SELECT [FIBU2].dbo.fibu_konto.dec_sollsumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @dec_habensumme = (SELECT [FIBU2].dbo.fibu_konto.dec_habensumme From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'SET @eur_aktuellersaldo = (SELECT [FIBU2].dbo.fibu_konto.eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto) - - 'If @Einzahlungsbetrag <> 0 - 'BEGIN /* Einzahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme + 0) - 'SET @dec_habensumme = (@dec_habensumme + @B_Bruttobetrag) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag) - 'SET @opvorgangsbetrag = @B_Bruttobetrag * (-1) - 'End /* Einzahlung */ - 'Else BEGIN /* Auszahlung */ - 'SET @dec_aktuellersaldo = (@dec_aktuellersaldo - @B_Bruttobetrag) - 'SET @dec_sollsumme = (@dec_sollsumme - @B_Bruttobetrag) - 'SET @dec_habensumme = (@dec_habensumme - 0) - 'SET @eur_aktuellersaldo = (@eur_aktuellersaldo - @B_Bruttobetrag) - 'SET @opvorgangsbetrag = @B_Bruttobetrag * (-1) / CAST(2 AS FLOAT) - 'End /* Auszahlung */ - - 'UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat = @gDatumKurz, dec_aktuellersaldo = @dec_aktuellersaldo, dec_sollsumme = @dec_sollsumme, dec_habensumme = @dec_habensumme, eur_aktuellersaldo = @eur_aktuellersaldo WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = @MandantNr And [FIBU2].dbo.fibu_konto.i_konto = @updatekonto - - 'Saldenperioden! - For Each konto As DataRow In dt_Verbuchungskonten.Rows 'Schleifen2rec - If Not IsDBNull(konto("Soll")) AndAlso konto("Soll") <> 0 Or Not IsDBNull(konto("Haben")) AndAlso konto("Haben") <> 0 Then - periodenBuchungen(PERIODE, konto("Konto"), MANDANT, JAHR, konto("Soll"), konto("Haben")) - End If - Next - - createOP(MANDANT, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat, beleg.BelegNr, beleg.Belegart, Buchungstext, BETRAG, "EUR", 1, ckennsoll2, sollkonto2, Habenkonto2, SollHabenKZ) + '8. Schritt -> Offene Posten anlegen + createOP(MANDANT, BETRAG, beleg.BelegNr, beleg.BelegDat.ToShortDateString, beleg.BelegNr, Buchungstext, BUCHUNGSBETRAG, "EUR", Personenkonto, Forderungskonto, i_op_refid, Buchungstyp, c_sprache, c_zahlziel, dec_skonto, SkontoDatum, Nettodatum, c_ustidnr) + createOPVorgang(MANDANT, TYP, BETRAG, JAHR, PERIODE, i_beleg_refid, beleg.BelegDat.ToShortDateString, Buchungstext, Personenkonto, opvorgangsbetrag, i_op_refid, dt_creation, Sachkonto, "AUTO") End If - End If + + End If + + @@ -2986,468 +2912,241 @@ Public Class cRKSV End If + End If + End Sub + + Private Shared Sub getDEBDaten(Mandant As String, DebKonto As Integer, c_sprache As String, c_ustidnr As String, c_zahlziel As String, si_tage As Integer, dec_skonto As Integer, si_ntage As Integer, SkontoDatum As Date, Nettodatum As Date) + + Dim dtKontoinfo As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("SELECT c_sprache,c_ustidnr,c_zahlziel FROM [FIBU2].dbo.fibu_konto WHERE [FIBU2].dbo.fibu_konto.i_konto = " & DebKonto & " And [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant, "FIBU") + + If dtKontoinfo.Rows.Count = 1 Then + c_sprache = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("si_tage")), "DE", dtKontoinfo.Rows(0).Item("si_tage")) + c_ustidnr = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("c_ustidnr")), "", dtKontoinfo.Rows(0).Item("c_ustidnr")) + c_zahlziel = IIf(IsDBNull(dtKontoinfo.Rows(0).Item("c_zahlziel")), "", dtKontoinfo.Rows(0).Item("c_zahlziel")) + End If + + Dim dt_skontoInfo As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("Select si_tage, dec_skonto, si_ntage FROM [FIBU2].dbo.fibu_zahlziel WHERE [FIBU2].dbo.fibu_zahlziel.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_zahlziel.c_zahlziel '" & c_zahlziel & "'", "FIBU") + + If dt_skontoInfo.Rows.Count = 1 Then + si_tage = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("si_tage")), 0, CInt(dt_skontoInfo.Rows(0).Item("si_tage"))) + dec_skonto = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("dec_skonto")), 0, CInt(dt_skontoInfo.Rows(0).Item("dec_skonto"))) + si_ntage = IIf(IsDBNull(dt_skontoInfo.Rows(0).Item("si_ntage")), 0, CInt(dt_skontoInfo.Rows(0).Item("si_ntage"))) + End If + + SkontoDatum = SkontoDatum.AddDays(dec_skonto) 'SET @Skontodatum = DATEADD(DAY, @Skontotage, @gDatumKurz) + Nettodatum = Nettodatum.AddDays(si_tage) 'SET @Nettodatum = DATEADD(DAY, @Nettotage, @gDatumKurz) + + End Sub + + + Private Shared Sub Saldenaktualisierung(TYP As String, Betrag As Double, Beleg As EABeleg, dec_sollsumme As Double, dec_habensumme As Double, Mandant As String, Sollkonto2 As Integer, Forderungskonto As Integer, Bestandskonto As Integer, Sachkonto As Integer, ErloeskontoBeiAuszahlung As Integer, opvorgangsbetrag As Double) + + Dim dec_aktuellersaldo As Double = 0 + Dim eur_aktuellersaldo As Double = 0 + + '----------FORDERUNGSKONTO------------------- + + Dim dt_SaldoInfo_Forderungskonto As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("(SELECT dec_aktuellersaldo,dec_sollsumme,dec_habensumme,eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Forderungskonto, "FIBU") + If dt_SaldoInfo_Forderungskonto.Rows.Count = 1 Then + dec_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_aktuellersaldo"))) + eur_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Forderungskonto.Rows(0).Item("eur_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Forderungskonto.Rows(0).Item("eur_aktuellersaldo"))) + dec_sollsumme = IIf(IsDBNull(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_sollsumme")), 0, CDbl(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_sollsumme"))) + dec_habensumme = IIf(IsDBNull(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_habensumme")), 0, CDbl(dt_SaldoInfo_Forderungskonto.Rows(0).Item("dec_habensumme"))) + End If + + If TYP = "EINZAHLUNG" Then + + If Betrag > 0 Then + + dec_aktuellersaldo = (dec_aktuellersaldo - Betrag) + dec_sollsumme = (dec_sollsumme - 0) + dec_habensumme = (dec_habensumme + Betrag) + eur_aktuellersaldo = (eur_aktuellersaldo - Betrag) + + + End If + + ElseIf TYP = "AUSZAHLUNG" Then + + If Betrag > 0 Then + + dec_aktuellersaldo = (dec_aktuellersaldo - Betrag) + dec_sollsumme = (dec_sollsumme - Betrag) + dec_habensumme = (dec_habensumme + 0) + eur_aktuellersaldo = (eur_aktuellersaldo - Betrag) + + End If End If - ' BEGIN /* 3 */ - - 'If @Periode = 1 - 'BEGIN - 'SET @periodensoll = - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_1 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - - - ' If @Periode = 2 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_2 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_2 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_2 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_2 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_2 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_2 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_2 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_2 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_2 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_2 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 3 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_3 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_3 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_3 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_3 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_3 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_3 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_3 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_3 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_3 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_3 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 4 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_4 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_4 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_4 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_4 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_4 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_4 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_4 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_4 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_4 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_4 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 5 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_5 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_5 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_5 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_5 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_5 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_5 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_5 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_5 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_5 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_5 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - ' If @Periode = 6 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_6 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_6 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_6 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_6 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_6 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_6 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_6 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_6 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_6 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_6 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 7 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_7 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_7 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_7 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_7 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_7 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_7 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_7 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_7 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_7 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_7 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 8 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_8 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_8 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_8 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_8 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_8 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_8 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_8 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_8 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_8 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_8 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 9 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_9 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_9 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_9 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_9 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_9 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_9 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_9 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_9 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_9 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_9 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 10 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_10 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_10 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_10 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_10 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_10 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_10 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_10 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_10 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_10 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_10 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 11 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_11 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_11 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_11 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_11 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_11 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_11 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_11 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_11 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_11 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_11 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End - - - ' If @Periode = 12 - 'BEGIN - 'SET @periodensoll = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_soll_12 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'SET @periodenhaben = (SELECT [FIBU2].dbo.fibu_periodensaldo.dec_haben_12 - 'From [FIBU2].dbo.fibu_periodensaldo - 'Where [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto) - - 'UPDATE [FIBU2].dbo.fibu_periodensaldo SET - '[FIBU2].dbo.fibu_periodensaldo.dec_soll_12 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.dec_haben_12 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_soll_12 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldo.eur_haben_12 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldo.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldo.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldo.i_konto = @Schleifenkonto - - 'If @Schleifenkonto = 2000 - 'BEGIN /* Debitorendurchbuchungskonto */ - 'UPDATE [FIBU2].dbo.fibu_periodensaldodk SET - '[FIBU2].dbo.fibu_periodensaldodk.dec_soll_12 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.dec_haben_12 = (@periodenhaben + @dec_habensumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_soll_12 = (@periodensoll + @dec_sollsumme), - '[FIBU2].dbo.fibu_periodensaldodk.eur_haben_12 = (@periodenhaben + @dec_habensumme) - 'WHERE [FIBU2].dbo.fibu_periodensaldodk.i_firm_refid = @MandantNr - 'And [FIBU2].dbo.fibu_periodensaldodk.si_jahr = @Jahr - 'And [FIBU2].dbo.fibu_periodensaldodk.i_konto = @Schleifenkonto - 'End /* Debitorendurchbuchungskonto */ - - 'End + SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_aktuellersaldo = " & dec_aktuellersaldo & ", dec_sollsumme = " & dec_sollsumme & ", dec_habensumme = " & dec_sollsumme & ", eur_aktuellersaldo = " & eur_aktuellersaldo & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Forderungskonto, "FIBU") + + + '----------BESTANDSKONTO------------------- + + Dim dt_SaldoInfo_Bestandskonto As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("(SELECT dec_aktuellersaldo,dec_sollsumme,dec_habensumme,eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Bestandskonto, "FIBU") + If dt_SaldoInfo_Bestandskonto.Rows.Count = 1 Then + dec_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_aktuellersaldo"))) + eur_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Bestandskonto.Rows(0).Item("eur_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Bestandskonto.Rows(0).Item("eur_aktuellersaldo"))) + dec_sollsumme = IIf(IsDBNull(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_sollsumme")), 0, CDbl(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_sollsumme"))) + dec_habensumme = IIf(IsDBNull(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_habensumme")), 0, CDbl(dt_SaldoInfo_Bestandskonto.Rows(0).Item("dec_habensumme"))) + End If + + If TYP = "EINZAHLUNG" Then + + If Betrag <> 0 Then + + dec_aktuellersaldo = (dec_aktuellersaldo + Betrag) + dec_sollsumme = (dec_sollsumme + Betrag) + dec_habensumme = (dec_habensumme + 0) + eur_aktuellersaldo = (eur_aktuellersaldo + Betrag) + + End If + + + + + + ElseIf TYP = "AUSZAHLUNG" Then + + If Betrag <> 0 Then + + dec_aktuellersaldo = (dec_aktuellersaldo + Betrag) + dec_sollsumme = (dec_sollsumme - 0) + dec_habensumme = (dec_habensumme - Betrag) + eur_aktuellersaldo = (eur_aktuellersaldo + Betrag) + + + End If + + End If + + SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_aktuellersaldo = " & dec_aktuellersaldo & ", dec_sollsumme = " & dec_sollsumme & ", dec_habensumme = " & dec_sollsumme & ", eur_aktuellersaldo = " & eur_aktuellersaldo & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Bestandskonto, "FIBU") + + + '----------BESTANDSKONTO------------------- + + Dim dt_SaldoInfo_Sachkonto As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("(SELECT dec_aktuellersaldo,dec_sollsumme,dec_habensumme,eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Sachkonto, "FIBU") + If dt_SaldoInfo_Sachkonto.Rows.Count = 1 Then + dec_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_aktuellersaldo"))) + eur_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Sachkonto.Rows(0).Item("eur_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Sachkonto.Rows(0).Item("eur_aktuellersaldo"))) + dec_sollsumme = IIf(IsDBNull(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_sollsumme")), 0, CDbl(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_sollsumme"))) + dec_habensumme = IIf(IsDBNull(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_habensumme")), 0, CDbl(dt_SaldoInfo_Sachkonto.Rows(0).Item("dec_habensumme"))) + End If + + + SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_aktuellersaldo = " & dec_aktuellersaldo & ", dec_sollsumme = " & dec_sollsumme & ", dec_habensumme = " & dec_sollsumme & ", eur_aktuellersaldo = " & eur_aktuellersaldo & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Sachkonto, "FIBU") + + + + If TYP = "AUSZAHLUNG" Then + + If Betrag <> 0 Then + + 'Erlöskonto bei Auszahlung + + Dim dt_SaldoInfo_ErloeskontoBeiAuszahlung As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("(SELECT dec_aktuellersaldo,dec_sollsumme,dec_habensumme,eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & ErloeskontoBeiAuszahlung, "FIBU") + If dt_SaldoInfo_ErloeskontoBeiAuszahlung.Rows.Count = 1 Then + dec_sollsumme = IIf(IsDBNull(dt_SaldoInfo_ErloeskontoBeiAuszahlung.Rows(0).Item("dec_sollsumme")), 0, CDbl(dt_SaldoInfo_ErloeskontoBeiAuszahlung.Rows(0).Item("dec_sollsumme"))) + dec_habensumme = IIf(IsDBNull(dt_SaldoInfo_ErloeskontoBeiAuszahlung.Rows(0).Item("dec_habensumme")), 0, CDbl(dt_SaldoInfo_ErloeskontoBeiAuszahlung.Rows(0).Item("dec_habensumme"))) + End If + + dec_sollsumme = (dec_sollsumme - Betrag) + dec_habensumme = (dec_habensumme - Betrag) + + SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_sollsumme = " & dec_sollsumme & ", dec_habensumme = " & dec_sollsumme & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & ErloeskontoBeiAuszahlung, "FIBU") + + End If + + End If + + + + 'SET @updatekonto = CAST(@Kontonummer AS INTEGER) + + Dim dt_SaldoInfo_Kontonummer As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("(SELECT dec_aktuellersaldo,dec_sollsumme,dec_habensumme,eur_aktuellersaldo From [FIBU2].dbo.fibu_konto Where [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Sachkonto, "FIBU") + If dt_SaldoInfo_Kontonummer.Rows.Count = 1 Then + dec_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_aktuellersaldo"))) + eur_aktuellersaldo = IIf(IsDBNull(dt_SaldoInfo_Kontonummer.Rows(0).Item("eur_aktuellersaldo")), 0, CDbl(dt_SaldoInfo_Kontonummer.Rows(0).Item("eur_aktuellersaldo"))) + dec_sollsumme = IIf(IsDBNull(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_sollsumme")), 0, CDbl(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_sollsumme"))) + dec_habensumme = IIf(IsDBNull(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_habensumme")), 0, CDbl(dt_SaldoInfo_Kontonummer.Rows(0).Item("dec_habensumme"))) + End If + + + + If TYP = "EINZAHLUNG" Then + + If Betrag <> 0 Then + + + dec_aktuellersaldo = (dec_aktuellersaldo - Betrag) + dec_sollsumme = (dec_sollsumme + 0) + dec_habensumme = (dec_habensumme + Betrag) + eur_aktuellersaldo = (eur_aktuellersaldo - Betrag) + opvorgangsbetrag = Betrag * (-1) + + + End If + + + + + + ElseIf TYP = "AUSZAHLUNG" Then + + If Betrag <> 0 Then + + dec_aktuellersaldo = (dec_aktuellersaldo - Betrag) + dec_sollsumme = (dec_sollsumme - Betrag) + dec_habensumme = (dec_habensumme - 0) + eur_aktuellersaldo = (eur_aktuellersaldo - Betrag) + opvorgangsbetrag = Betrag * (-1) / CDbl(2) + + End If + + End If + + SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET d_lebudat ='" & Beleg.BelegDat.ToShortDateString & "', dec_aktuellersaldo = " & dec_aktuellersaldo & ", dec_sollsumme = " & dec_sollsumme & ", dec_habensumme = " & dec_sollsumme & ", eur_aktuellersaldo = " & eur_aktuellersaldo & " WHERE [FIBU2].dbo.fibu_konto.i_firm_refid = " & Mandant & " And [FIBU2].dbo.fibu_konto.i_konto =" & Bestandskonto, "FIBU") End Sub - Private Shared Sub createOP(mandant As Integer, Jahr As Integer, periode As Integer, beleg_ref_id As Integer, datumKurz As String, BelegNr As String, BelegArt As String, Buchungstext As String, Buchungsbetrag As Double, Waehrung As String, ZeilenNr As Integer, ckennsoll2 As String, Sollkonto2 As Integer, Habenkonto2 As Integer, SollhabenKZ As String) + Private Shared Sub createOP(mandant As Integer, Betrag As Double, BelegNrText As String, datumKurz As String, BelegNr As String, Buchungstext As String, Buchungsbetrag As Double, Waehrung As String, Personenkonto As Integer, Forderungskonto As Integer, i_op_refid As String, c_op_Typ As Char, Sprache As String, Zahlungsziel As String, Skonto As String, Skontodatum As String, Nettodatum As String, c_ustidnr As String) 'OPs - Dim SQL_Insert_DEBITOR '= "INSERT INTO [FIBU2].dbo.op_debitor (i_firm_refid, i_op_refid, c_urbelegid, i_personenkonto, i_forderungskonto, c_rechnungid, d_rechnung, d_valuta, c_typ, c_sprache, c_waehrung, dec_eigenbrutto, dec_fremdbrutto, eur_bruttobetrag, dec_skf_eigen, dec_skf_fremd, eur_skontierfaehig, dec_eigenzahlung, dec_fremdzahlung, eur_zahlung, c_zahlziel, dec_skonto, d_skonto, dec_skonto2, d_netto, si_mahnstufe, i_mahnlauf_refid, si_exportiert, i_stapel_refid, i_stapel_lfdnr, dec_stpl_ew_betrag, dec_stpl_ew_skonto, dec_stpl_fw_betrag, dec_stpl_fw_skonto, eur_stpl_betrag, eur_stpl_skonto, i_clearing, i_eigene_bank, si_bankeinzug, c_bemerkung, lc_anmerkungen, i_zessionstext, i_buchungskreis, c_ustidnr) - 'VALUES (" & mandant & ", @i_op_refid, @belegnrtext, " & personenkonto & "," & forderungskonto & ", @belegnrtext, " & datumKurz & ", " & datumKurz & ", @c_op_Typ, @c_sprache, @Waehrung, @B_Bruttobetrag * (-1), @B_Bruttobetrag * (-1), @B_Bruttobetrag * (-1), @B_Bruttobetrag * (-1), @B_Bruttobetrag * (-1), @B_Bruttobetrag * (-1), 0, 0, 0, @c_zahlziel, @Skonto, @Skontodatum, 0, @Nettodatum, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '" & Buchungstext & "', @Buchungstext_orig, 0, 1, @c_ustidnr);" + Dim SQL_Insert_DEBITOR = "INSERT INTO [FIBU2].dbo.op_debitor (i_firm_refid, i_op_refid, c_urbelegid, i_personenkonto, i_forderungskonto, c_rechnungid, d_rechnung, d_valuta, c_typ, c_sprache, c_waehrung, dec_eigenbrutto, dec_fremdbrutto, eur_bruttobetrag, dec_skf_eigen, dec_skf_fremd, eur_skontierfaehig, dec_eigenzahlung, dec_fremdzahlung, eur_zahlung, c_zahlziel, dec_skonto, d_skonto, dec_skonto2, d_netto, si_mahnstufe, i_mahnlauf_refid, si_exportiert, i_stapel_refid, i_stapel_lfdnr, dec_stpl_ew_betrag, dec_stpl_ew_skonto, dec_stpl_fw_betrag, dec_stpl_fw_skonto, eur_stpl_betrag, eur_stpl_skonto, i_clearing, i_eigene_bank, si_bankeinzug, c_bemerkung, lc_anmerkungen, i_zessionstext, i_buchungskreis, c_ustidnr) + VALUES(" & mandant & "," & i_op_refid & ", " & BelegNrText & ", " & Personenkonto & ", " & Forderungskonto & ", " & BelegNrText & ", " & datumKurz & ", " & datumKurz & ", " & c_op_Typ & ", '" & Sprache & "', '" & Waehrung & "', " & Betrag & " * (-1), " & Betrag & " * (-1), " & Betrag & " * (-1), " & Betrag & " * (-1), " & Betrag & " * (-1), " & Betrag & " * (-1), 0, 0, 0, " & Zahlungsziel & ", '" & Skonto & "', '" & Skontodatum & "', 0,'" & Nettodatum & "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '" & Buchungstext & "', '" & Buchungstext & "', 0, 1, '" & c_ustidnr & "');" Dim insertedDEB As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Insert_DEBITOR, "FIBU") + + End Sub + + Private Shared Sub createOPVorgang(mandant As Integer, TYP As String, Betrag As Double, Jahr As Integer, periode As Integer, beleg_ref_id As Integer, datumKurz As String, Buchungstext As String, Personenkonto As Integer, opvorgangsbetrag As Double, i_op_refid As String, dt_creation As String, Sachkonto As Integer, Benutzer As String) + 'OP-Vorgänge Dim SQL_Insert_V_DEB = "INSERT INTO [FIBU2].dbo.op_vorgang_deb (i_firm_refid, i_personenkonto, i_op_refid, i_beleg_refid, c_vorgang, d_beleg, si_rel_periode, si_jahr, i_steuer_refid, dec_steuerproz, i_nne_az_konto, dec_nettobetrag, dec_steuerbetrag, eur_nettobetrag, eur_steuerbetrag, dec_fremdbetrag, si_skontierfaehig, si_zeilen_refid, c_bemerkung, dt_datum, c_benutzer, i_eg_konto, i_auftrag_refid, dec_naf_steuerbetr, eur_naf_steuerbetr) - VALUES (@MandantNr, @i_personenkonto, @i_op_refid, @i_beleg_refid, 'P', @gDatumKurz, @relPeriode, @Jahr, 0, 0, @i_Sachkonto, @opvorgangsbetrag, 0, @opvorgangsbetrag, 0, @opvorgangsbetrag, 1, 1, @Buchungstext, @dt_creation, @Benutzer, 0, 0, 0, 0);" + VALUES (" & mandant & ", " & Personenkonto & ", " & i_op_refid & ", " & beleg_ref_id & ", 'P', " & datumKurz & ", " & periode & ", " & Jahr & ", 0, 0, " & Sachkonto & ", " & opvorgangsbetrag & ", 0, " & opvorgangsbetrag & ", 0, " & opvorgangsbetrag & ", 1, 1, '" & Buchungstext & "', '" & dt_creation & "', '" & Benutzer & "', 0, 0, 0, 0);" Dim insertedV_DEB As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Insert_V_DEB, "FIBU") - 'if auszahlungsbetrag <> 0 THen - Dim SQL_Insert_V_DEB2 = "INSERT INTO [FIBU2].dbo.op_vorgang_deb (i_firm_refid, i_personenkonto, i_op_refid, i_beleg_refid, c_vorgang, d_beleg, si_rel_periode, si_jahr, i_steuer_refid, dec_steuerproz, i_nne_az_konto, dec_nettobetrag, dec_steuerbetrag, eur_nettobetrag, eur_steuerbetrag, dec_fremdbetrag, si_skontierfaehig, si_zeilen_refid, c_bemerkung, dt_datum, c_benutzer, i_eg_konto, i_auftrag_refid, dec_naf_steuerbetr, eur_naf_steuerbetr) - VALUES (@MandantNr, @i_personenkonto, @i_op_refid, @i_beleg_refid, 'P', @gDatumKurz, @relPeriode, @Jahr, 0, 0, @i_Sachkonto, @opvorgangsbetrag, 0, @opvorgangsbetrag, 0, @opvorgangsbetrag, 1, 5, @Buchungstext, @dt_creation, @Benutzer, 0, 0, 0, 0);" - Dim insertedV_DEB2 As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Insert_V_DEB2, "FIBU") + If TYP = "AUSZAHLUNG" Then - 'end if + If Betrag <> 0 Then + 'if auszahlungsbetrag <> 0 THen + Dim SQL_Insert_V_DEB2 = "INSERT INTO [FIBU2].dbo.op_vorgang_deb (i_firm_refid, i_personenkonto, i_op_refid, i_beleg_refid, c_vorgang, d_beleg, si_rel_periode, si_jahr, i_steuer_refid, dec_steuerproz, i_nne_az_konto, dec_nettobetrag, dec_steuerbetrag, eur_nettobetrag, eur_steuerbetrag, dec_fremdbetrag, si_skontierfaehig, si_zeilen_refid, c_bemerkung, dt_datum, c_benutzer, i_eg_konto, i_auftrag_refid, dec_naf_steuerbetr, eur_naf_steuerbetr) + VALUES (" & mandant & ", " & Personenkonto & ", " & i_op_refid & ", " & beleg_ref_id & ", 'P', " & datumKurz & ", " & periode & ", " & Jahr & ", 0, 0, " & Sachkonto & ", " & opvorgangsbetrag & ", 0, " & opvorgangsbetrag & ", 0, " & opvorgangsbetrag & ", 1, 5, '" & Buchungstext & "', '" & dt_creation & "', '" & Benutzer & "', 0, 0, 0, 0);" + + Dim insertedV_DEB2 As Boolean = (New VERAG_PROG_ALLGEMEIN.SQL).doSQL(SQL_Insert_V_DEB2, "FIBU") + + End If + End If End Sub diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 3d9abd3f..1ee5c388 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + +