diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 745c3991..401e21a8 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -799,8 +799,8 @@ Public Class frmFaktEmail Dim USTV_ANTRAG As New cUSTVAntrag(RECHNUNG.ErfassungsNr) Dim GUBetrag_ohneBearbeitung As Double = 0 Dim hatNichtAbgerechneteVZ As Boolean = False + Dim durchREWurdeVZAbgerechnet As Boolean = False - 'todo_Prüfung ist zu spät -> früher (vor dem eintragen in die DB)!!!! For Each pos In USTV_ANTRAG.POSITIONEN If pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) OrElse pos.UStVPo_VZ_RKID Is Nothing) Then 'VZ die noch nicht abgerechnet wurde! hatNichtAbgerechneteVZ = True @@ -808,6 +808,13 @@ Public Class frmFaktEmail End If Next + For Each pos In USTV_ANTRAG.POSITIONEN + If pos.UStVPo_VZ AndAlso pos.UStVPo_VZ_RKID = RECHNUNG.RK_ID Then 'VZ wurde durch diese RE abgerechnet + durchREWurdeVZAbgerechnet = True + Exit For + End If + Next + For Each r As cRechnungsausgangPositionen In RECHNUNG.POSITIONEN If r.BerechnungsartNr = 8 AndAlso (r.LeistungsBez.ToLower.Contains("mwst") Or r.LeistungsBez.ToLower.Contains("moest") Or r.LeistungsBez.ToLower.Contains("vat") Or r.LeistungsBez.ToLower.Contains("excise duty") Or r.LeistungsBez.ToLower.Contains("tva")) Then GUBetrag_ohneBearbeitung += r.Preis @@ -817,6 +824,7 @@ Public Class frmFaktEmail If Not hatNichtAbgerechneteVZ Then Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, RECHNUNG.RechnungsNr, CDate(RECHNUNG.RechnungsDatum)) If Not ANTR_ERSTATTUNG.hasEntry Then + ANTR_ERSTATTUNG.UStVEr_ID = ANTR_ERSTATTUNG.getMaxPosNr() ANTR_ERSTATTUNG.GutschriftsDatum = RECHNUNG.RechnungsDatum ANTR_ERSTATTUNG.GutschriftsNr = RECHNUNG.RechnungsNr ANTR_ERSTATTUNG.UStVEr_Umrechnungskurs = 1 @@ -826,23 +834,26 @@ Public Class frmFaktEmail ANTR_ERSTATTUNG.SAVE() End If - USTV_ANTRAG.UStVAn_VZDatum = RECHNUNG.RechnungsDatum + If durchREWurdeVZAbgerechnet Then - If IsDBNull(USTV_ANTRAG.UStVAn_VZBetrag) OrElse USTV_ANTRAG.UStVAn_VZBetrag Is Nothing Then + USTV_ANTRAG.UStVAn_VZDatum = RECHNUNG.RechnungsDatum - USTV_ANTRAG.UStVAn_VZBetrag = GUBetrag_ohneBearbeitung + If IsDBNull(USTV_ANTRAG.UStVAn_VZBetrag) OrElse USTV_ANTRAG.UStVAn_VZBetrag Is Nothing Then - ElseIf IsNumeric(USTV_ANTRAG.UStVAn_VZBetrag) Then + USTV_ANTRAG.UStVAn_VZBetrag = GUBetrag_ohneBearbeitung - USTV_ANTRAG.UStVAn_VZBetrag += GUBetrag_ohneBearbeitung + ElseIf IsNumeric(USTV_ANTRAG.UStVAn_VZBetrag) Then + USTV_ANTRAG.UStVAn_VZBetrag += GUBetrag_ohneBearbeitung + + End If + + USTV_ANTRAG.SAVE() End If - USTV_ANTRAG.SAVE() - End If - If hatNichtAbgerechneteVZ Then + If hatNichtAbgerechneteVZ Then Dim SQL As New SQL For Each pos As cUStVPositionen In USTV_ANTRAG.POSITIONEN