From 9f6e03b975914a38862080c3b2b476bfc7fd6121 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 30 May 2025 09:31:08 +0200 Subject: [PATCH] fakt. --- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 109 +++++----------------- 1 file changed, 25 insertions(+), 84 deletions(-) diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 804f8215..9f1d3ad5 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -2616,62 +2616,6 @@ Public Class usrCntlFaktAbrechnung End Function - - Private Sub prBearbGeb(POS_ As cRechnungsausgangPositionen, OFFERTE As cOfferte, RE As cRechnungsausgang, BGebLeistungsNr As Integer, BGebProzent As Double, BGebBgl As Integer) - - If POS_.Anzahl <> 0 Then - - If (BGebLeistungsNr > 0 AndAlso BGebProzent > 0 AndAlso BGebBgl <> 0) Then - - Dim Betrag As Double = Math.Round(BGebBgl * BGebProzent, 1) - For Each o In OFFERTE.POSITIONEN - If o.LeistungsNr = BGebLeistungsNr Then - - 'Falls schon vorhanden... - Dim POS = RE.POSITIONEN.Find(Function(x) x.LeistungsNr = BGebLeistungsNr And x.BerechnungsartNr = 9) - If POS Is Nothing Then - POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen() - POS.Preis = 0 - POS.SteuerpflichtigerBetrag = 0 - POS.SteuerfreierBetrag = 0 - Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr) - POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig - - POS.LeistungsNr = o.LeistungsNr - POS.LeistungsBez = o.LeistungsBez - - POS.BerechnungsartNr = o.BerechnungsartNr - POS.Anzahl = 1 - ' POS.BGebLeistungsNr = BGebLeistungsNr - - RE.POSITIONEN.Add(POS) - - End If - - POS.Preis += Betrag - - 'End If - - If POS.Steuerpflichtig Then - POS.SteuerpflichtigerBetrag += Betrag - Else - POS.SteuerfreierBetrag += Betrag - End If - - End If - Next - 'Catch ex As Exception - ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) - 'End Try - ' Return False - 'End Function - - End If - End If - - - End Sub - Private Sub prBearbGeb_NEW(POS_ As cRechnungsausgangPositionen, OFFERTE As cOfferte, RE As cRechnungsausgang, BGebLeistungsNr As Integer, BGebProzent As Double, BGebMinBetrag As Double, BGebBgl As Integer, ByRef summeRMCBearb As Double, isRMC As Boolean) @@ -2715,10 +2659,10 @@ Public Class usrCntlFaktAbrechnung For Each o In OFFERTE.POSITIONEN - If o.LeistungsNr = BGebLeistungsNr And o.BerechnungsartNr = 9 Then + If o.LeistungsNr = BGebLeistungsNr And o.BerechnungsartNr = 9 Then 'Falls schon vorhanden... - Dim POS = RE.POSITIONEN.Find(Function(x) x.LeistungsNr = BGebLeistungsNr And x.BerechnungsartNr = 9) + Dim POS = RE.POSITIONEN.Find(Function(x) x.LeistungsNr = BGebLeistungsNr And x.LeistungsBez = o.LeistungsBez And x.BerechnungsartNr = 9) If POS Is Nothing Then POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen() POS.Preis = 0 @@ -2726,50 +2670,47 @@ Public Class usrCntlFaktAbrechnung POS.SteuerfreierBetrag = 0 Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr) POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig - POS.LeistungsNr = o.LeistungsNr POS.LeistungsBez = o.LeistungsBez - POS.BerechnungsartNr = o.BerechnungsartNr POS.Anzahl = 1 - ' POS.BGebLeistungsNr = BGebLeistungsNr - RE.POSITIONEN.Add(POS) - End If POS.Preis += curBGebBetrag + If POS.Anzahl = 0 Then POS.Anzahl = 1 + If POS.Preis = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen - POS.Preis = POS.Preis / 2 - ElseIf POS.Preis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.Preis AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! - POS.Preis = summeRMCBearb - End If + POS.Preis = POS.Preis / 2 + ElseIf POS.Preis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.Preis AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! + POS.Preis = summeRMCBearb + End If - If POS.Steuerpflichtig Then - POS.SteuerpflichtigerBetrag += curBGebBetrag + If POS.Steuerpflichtig Then + POS.SteuerpflichtigerBetrag += curBGebBetrag - If POS.SteuerpflichtigerBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen - POS.SteuerpflichtigerBetrag = POS.SteuerpflichtigerBetrag / 2 - ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! - POS.SteuerpflichtigerBetrag = summeRMCBearb + If POS.SteuerpflichtigerBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen + POS.SteuerpflichtigerBetrag = POS.SteuerpflichtigerBetrag / 2 + ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! + POS.SteuerpflichtigerBetrag = summeRMCBearb + + End If + + Else + POS.SteuerfreierBetrag += curBGebBetrag + + If POS.SteuerfreierBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen + POS.SteuerfreierBetrag = POS.SteuerfreierBetrag / 2 + ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! + POS.SteuerpflichtigerBetrag = summeRMCBearb + End If End If - Else - POS.SteuerfreierBetrag += curBGebBetrag - - If POS.SteuerfreierBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen - POS.SteuerfreierBetrag = POS.SteuerfreierBetrag / 2 - ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet! - POS.SteuerpflichtigerBetrag = summeRMCBearb - End If - End If - - End If Next 'Catch ex As Exception ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)