ustva, abrechungen für MÖST inkl übersetzungen

This commit is contained in:
2025-06-23 11:58:58 +02:00
parent 4502470ef7
commit ab52a76284
5 changed files with 73 additions and 38 deletions

View File

@@ -2485,7 +2485,7 @@ Public Class usrCntlFaktAbrechnung
If RECHNUNG.RechnungSprache = "DE" Or FindPOS.LeistungsBez Is Nothing Then FindPOS.LeistungsBez = "Vorlageprovision"
'RECHNUNG.POSITIONEN.Add(FindPOS)
FindPOS.Anzahl = 1
FindPOS.Preis = Math.Round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) 'Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
FindPOS.Preis = Math.round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) 'Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
'...und der Wert gesetzt.
initSteuerbetraege(RECHNUNG, FindPOS)
@@ -2530,7 +2530,7 @@ Public Class usrCntlFaktAbrechnung
If RECHNUNG.RechnungSprache = "DE" Or FindPOS.LeistungsBez Is Nothing Then FindPOS.LeistungsBez = "Kapitalbereitstellung"
'RECHNUNG.POSITIONEN.Add(FindPOS)
FindPOS.Anzahl = 1
FindPOS.Preis = Math.Round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) ' Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
FindPOS.Preis = Math.round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) ' Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
'...und der Wert gesetzt.
initSteuerbetraege(RECHNUNG, FindPOS)
@@ -2568,7 +2568,7 @@ Public Class usrCntlFaktAbrechnung
For Each POS In RECHNUNG.POSITIONEN
' Dim BGebErrBetrag As Double = Int(If(If(POS.BGebBgl, 0), If(POS.Preis, 0) * If(POS.Anzahl, 0)) * If(POS.BGebProzent, 0) * 10 + 0.5) / 10
Dim BGebErrBetrag As Double = Math.Round(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent), 2) 'Int(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent) * 10 + 0.5) / 10
Dim BGebErrBetrag As Double = Math.round(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent), 2) 'Int(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent) * 10 + 0.5) / 10
curBGebBetrag = 0
@@ -2656,7 +2656,7 @@ Public Class usrCntlFaktAbrechnung
Dim curBGebMinBetrag = BGebMinBetrag
Dim curBGebErrBetrag As Double = Math.Round(BGebBgl * BGebProzent, 1)
Dim curBGebErrBetrag As Double = Math.round(BGebBgl * BGebProzent, 1)
Dim curBGebBetrag As Double = 0
curBGebBetrag = curBGebErrBetrag
@@ -2740,7 +2740,7 @@ Public Class usrCntlFaktAbrechnung
ElseIf curBearbPreis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> curBearbPreis AndAlso (minBetragRMCUsed OrElse isRMC OrElse isFREMD) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
If summeRMCBearb <> row.Cells("Preis").Value Then
If Math.Abs(row.Cells("Preis").Value - summeRMCBearb) > 0.5 Then 'Rundungsdifferenzen ignorieren (weil sonst Deadloop)
If Math.abs(row.Cells("Preis").Value - summeRMCBearb) > 0.5 Then 'Rundungsdifferenzen ignorieren (weil sonst Deadloop)
row.Cells("Preis").Value = summeRMCBearb
End If
End If
@@ -2751,7 +2751,7 @@ Public Class usrCntlFaktAbrechnung
Else
If minBetragRMCUsed Then
If minBetragRMCUsed Then
If curBearbPreis > curBGebBetrag AndAlso summeRMCBearb > 0 Then
If curBearbPreis <> summeRMCBearb Then row.Cells("Preis").Value = summeRMCBearb
@@ -2950,8 +2950,8 @@ Public Class usrCntlFaktAbrechnung
Next
' mind??KD
If BS415_Berechnungbetrag <> 0 Then
If BS415_Berechnungbetrag <0 Then BS415_Berechnungbetrag *= -1
BS415= Int(BS415_Berechnungbetrag * KD.Bankspesen + 0.5)
If BS415_Berechnungbetrag < 0 Then BS415_Berechnungbetrag *= -1
BS415 = Int(BS415_Berechnungbetrag * KD.Bankspesen + 0.5)
End If
End If
@@ -3054,19 +3054,19 @@ Public Class usrCntlFaktAbrechnung
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double)
Dim FixeTaxe_Berechnungbetrag As Double = 0
If Not leistungExistsInPos(RECHNUNG, 441, 9) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
If Not leistungExistsInPos(RECHNUNG, 441, 1) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
If (RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag) >= minBetrag Then Exit Sub
If fixeTaxe <= 0 Then Exit Sub
'Sucht, ob Fixetaxe schon vorhanden ist,...
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441 And x.BerechnungsartNr = 9)
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441 And x.BerechnungsartNr = 1)
'... sonst wird eine neue Pos eingefügt...
If FixeTaxePOS IsNot Nothing Then
'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!!
FixeTaxePOS.LeistungsBez = "Fixe Taxe"
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
FixeTaxePOS.BerechnungsartNr = 9
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
'...und der Wert gesetzt.
@@ -3111,7 +3111,7 @@ Public Class usrCntlFaktAbrechnung
If Kreditaufwendungen_Berechnungbetrag <> 0 Then
' MsgBox("1: " & Kreditaufwendungen_Berechnungbetrag)
If Kreditaufwendungen_Berechnungbetrag < 0 Then Kreditaufwendungen_Berechnungbetrag *= -1
Kreditaufwendungen = Math.Round(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen, 2) '(Int(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen) * 10 + 0.5) / 10
Kreditaufwendungen = Math.round(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen, 2) '(Int(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen) * 10 + 0.5) / 10
End If
End If
@@ -4819,7 +4819,7 @@ Nächste_Textzeile_lesen:
Dim isMWST As Boolean = False
Dim kdNr = IIf(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, kdFirmaRechnungAn.KdNr)
Dim isRMCKunde = IIf(kdNr = 150000 AndAlso antrag.UStVAn_AntragArt = "MWST", True, False)
Dim isRMCKunde = IIf(kdNr = 150000 AndAlso (antrag.UStVAn_AntragArt = "MWST" Or antrag.UStVAn_AntragArt = "MOEST"), True, False)
Dim sumRMC As Double = 0
Dim sumFremdBeleg As Double = 0
@@ -4827,7 +4827,7 @@ Nächste_Textzeile_lesen:
If antrag IsNot Nothing AndAlso LandBez <> "" AndAlso antrag.UStVAn_AntragArt <> "" Then
If antrag.UStVAn_AntragArt <> "MWST" Then isRMCKunde = False
If (antrag.UStVAn_AntragArt <> "MWST" Or antrag.UStVAn_AntragArt <> "MOEST") Then isRMCKunde = False
Dim LandISO2 = ""
@@ -4839,8 +4839,18 @@ Nächste_Textzeile_lesen:
LandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(LandBez)
End If
'wegen Übersetzungslogik in RE-POS
Dim USTV_EN = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("mwst", "vat")
Dim MÖST_EN = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("moest", "excise")
Dim MÖST_DE = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("oe", "ö")
Dim USTV_RO = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("mwst", "rambursare tva")
Dim MÖST_RO = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("moest", "rambursare acciza")
If OFFERT_LAND = LandISO2 AndAlso OFFERT_LeistungsBez.ToString.ToLower.StartsWith(antrag.UStVAn_AntragArt.ToString.ToLower) Then
If OFFERT_LAND = "HR" Then
'MsgBox("Test1")
End If
If OFFERT_LAND = LandISO2 AndAlso (OFFERT_LeistungsBez.ToString.ToLower.StartsWith(antrag.UStVAn_AntragArt.ToString.ToLower) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(USTV_EN) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_EN) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_DE) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(USTV_RO) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_RO)) Then
'wenn RMC, dann ebenfalls unterscheiden!