From 3e9ab472489b9a04f80570907f90bef1708ba695 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 28 May 2025 11:34:48 +0200 Subject: [PATCH] fakt, maske, etc. --- SDL/Fakturierung/cFakturierung.vb | 33 +++++++++-- .../frmAbrechnungsMaskeEinzeln.vb | 9 +-- SDL/Fakturierung/frmFaktEmail.vb | 21 ++++--- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 56 ++++++++++++++++++- SDL/My Project/AssemblyInfo.vb | 4 +- SDL/USTV/frmMDM_USTVAntrag.vb | 14 ++++- 6 files changed, 116 insertions(+), 21 deletions(-) diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 259f9bd3..dcc03264 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -1383,7 +1383,7 @@ Public Class cFakturierung rpt.lblSteuersatz.Visible = False rpt.lblSteuerbetrag.Visible = False - rpt.lblSteuerfrei.Visible = False + 'rpt.lblSteuerfrei.Visible = False rpt.lblSteuerfreiGes.Visible = False rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False @@ -1522,6 +1522,31 @@ Public Class cFakturierung If isReverseCharge Then rpt.txtLeistung.Text &= IIf(Not rpt.txtLeistung.Text.Contains("*"), "*", "") End If + + If rpt.txtLeistung.Text.Contains("00/23") Or rpt.txtLeistung.Text.Contains("DL/23") Then + If RECHNUNG.FilialenNr = 4817 AndAlso RECHNUNG.AbfertigungsNr > 0 AndAlso (RECHNUNG.OffertenNr = 14 Or RECHNUNG.OffertenNr = 15 Or RECHNUNG.OffertenNr = 31) Then + Dim antragsID As Integer = CInt(SQL.getValueTxtBySql("SELECT UStVAn_ID FROM tblUStVAntrag WHERE FilialenNr = " & RECHNUNG.FilialenNr & " AND AbfertigungsNr = " & RECHNUNG.AbfertigungsNr, "FMZOLL",,, "-1")) + + If antragsID > 0 Then + Dim MWSTAntrag As New cUSTVAntrag(antragsID) + + Dim MonthStart As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatVon).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatVon).Month + Dim MonthEnd As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatBis).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatBis).Month + + If rpt.txtLeistung.Text.Contains("-00") Then + rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("-00", MonthStart & MonthEnd) + ElseIf rpt.txtLeistung.Text.Contains("00") Then + rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00", MonthStart & MonthEnd) + End If + + rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("23", CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) + End If + + + End If + + + End If End If @@ -4227,10 +4252,10 @@ Public Class cFakturierung - 'rpt.txtSendungsdetails.Text = rpt.txtSendungsdetails.Text.Trim - 'rpt.txtKdAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") + 'rpt.txtSendungsdetails.Text = rpt.txtSendungsdetails.Text.Trim + 'rpt.txtKdAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") - Dim stPfl As Double = 0 + Dim stPfl As Double = 0 Dim stFrei As Double = 0 Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1) 'Bei Rechnung als Klasse ist der Betrag immer positiv! diff --git a/SDL/Fakturierung/frmAbrechnungsMaskeEinzeln.vb b/SDL/Fakturierung/frmAbrechnungsMaskeEinzeln.vb index 6bf40f59..2c2a4ad3 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaskeEinzeln.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaskeEinzeln.vb @@ -19,11 +19,12 @@ End Sub - Sub New(RK_ID) + Sub New(RK_ID, Optional VZ = False) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() If RK_ID IsNot Nothing AndAlso IsNumeric(RK_ID) Then Me.RK_ID = RK_ID + Me.isVZ = VZ ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub @@ -61,12 +62,12 @@ 'Dim dt As DataTable = SQL.loadDgvBySql("select top(1) FilialenNr, AbfertigungsNr from Rechnungsausgang where RK_ID = " & RK_ID, "FMZOLL") 'If dt.Rows.Count > 0 Then - + UsrCntlFaktAbrechnung1.isVZ = isVZ UsrCntlFaktAbrechnung1.initRECHNUNG(RK_ID) - 'End If + 'End If - End If + End If End Sub diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index fb247892..0ce6e6c6 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -653,15 +653,18 @@ Public Class frmFaktEmail If SPEDBUCH.hasEntry AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115) Then Dim USTV_ANTRAG As New cUSTVAntrag(RECHNUNG.ErfassungsNr) - Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, RECHNUNG.UnterNr) - If Not ANTR_ERSTATTUNG.hasEntry Then - ANTR_ERSTATTUNG.GutschriftsDatum = RECHNUNG.RechnungsDatum - ANTR_ERSTATTUNG.GutschriftsNr = RECHNUNG.RechnungsNr - ANTR_ERSTATTUNG.UStVEr_Umrechnungskurs = 1 - ANTR_ERSTATTUNG.UStVEr_USteuerbetrag = RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag - ANTR_ERSTATTUNG.UStVEr_USteuerbetragEUR = RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag - ANTR_ERSTATTUNG.SAVE() - End If + + 'aktuell noch deaktivieren, muss erst getestet werden und soll aktiviert werden, wenn alles passt. + + 'Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, RECHNUNG.UnterNr) + 'If Not ANTR_ERSTATTUNG.hasEntry Then + ' ANTR_ERSTATTUNG.GutschriftsDatum = RECHNUNG.RechnungsDatum + ' ANTR_ERSTATTUNG.GutschriftsNr = RECHNUNG.RechnungsNr + ' ANTR_ERSTATTUNG.UStVEr_Umrechnungskurs = 1 + ' ANTR_ERSTATTUNG.UStVEr_USteuerbetrag = RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + ' ANTR_ERSTATTUNG.UStVEr_USteuerbetragEUR = RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + ' ANTR_ERSTATTUNG.SAVE() + 'End If Dim hasVZ As Boolean = False diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 21e4540a..adb009eb 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -1,6 +1,7 @@  Imports System.IO Imports System.Web.UI.WebControls.Expressions +Imports com.sun.org.apache.bcel.internal.generic Imports DAKOSY_Worker.DETPDD Imports GrapeCity.DataVisualization.Chart Imports VERAG_PROG_ALLGEMEIN @@ -3248,6 +3249,14 @@ Public Class usrCntlFaktAbrechnung addVermittlerToSpedbuch() End If + If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 AndAlso (RECHNUNG.OffertenNr = 14 Or RECHNUNG.OffertenNr = 15 Or RECHNUNG.OffertenNr = 31) Then + Dim antrag As cUSTVAntrag = Nothing + Dim landNr = "" + CheckLandNr_getLandBezFromAntrag(landNr, antrag) + If antrag IsNot Nothing Then setUSTVPOSfakturiert(antrag) + End If + + initLblAnzahl() SAVED = True setLblGespeichert() @@ -3762,7 +3771,16 @@ Nächste_Textzeile_lesen: Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If vbYes = MsgBox("Möchten Sie diese ungedruckte Rechnung wirklich löschen?", vbYesNoCancel) Then If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Status = 0 Then - RECHNUNG.DELETE() + If RECHNUNG.DELETE() Then + If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 Then + Dim UST_ID As Integer = -1 + UST_ID = CInt(SQL.getValueTxtBySql("SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL")) + If UST_ID > 0 Then + SQL.doSQL("UPDATE [tblUStVPositionen] SET UStVPo_VZ_RKID = NULL WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL") + SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & UST_ID & " )", "FMZOLL") + End If + End If + End If RaiseEvent EVENT_DELETED() End If End If @@ -4825,4 +4843,40 @@ mwst: End Sub + + Private Function setUSTVPOSfakturiert(USTV_ANTRAG As cUSTVAntrag) As Boolean + + + Dim hasVZ As Boolean = False + For Each pos In USTV_ANTRAG.POSITIONEN + If pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) Or pos.UStVPo_VZ_RKID Is Nothing) Then 'VZ die noch nicht abgerechnet wurde! + hasVZ = True + Exit For + End If + Next + + If hasVZ Then + Dim SQL As New SQL + + For Each pos As cUStVPositionen In USTV_ANTRAG.POSITIONEN + + If Not IsDBNull(pos.UStVPo_VZ) AndAlso pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) Or pos.UStVPo_VZ_RKID Is Nothing) Then + pos.UStVPo_VZ_RKID = RECHNUNG.RK_ID + pos.SAVE() + End If + + Next + + Dim count_nichtAbgerVZ As Integer = -1 + count_nichtAbgerVZ = CInt(SQL.getValueTxtBySql("SELECT COUNT(*) FROM [tblUStVPositionen] WHERE [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " and [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) = 0", "FMZOLL")) + If count_nichtAbgerVZ = 0 Then + Return SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " )", "FMZOLL") + End If + End If + + Return False + + + End Function + End Class \ No newline at end of file diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 524dda24..65040646 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: ' - - + + diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 4e40a1ca..da16dea3 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -1,6 +1,7 @@ Imports System.IO Imports System.Reflection Imports System.Windows.Documents +Imports DocumentFormat.OpenXml.Drawing.Diagrams Imports itextsharp.text.pdf Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN @@ -2875,9 +2876,13 @@ Public Class frmMDM_USTVAntrag End If + Else + initErstsattungsPosition(.RowCount) + End If + End If End With @@ -3323,8 +3328,15 @@ Public Class frmMDM_USTVAntrag If item.Name <> "" Then If IsNumeric(item.Name) Then + Dim hasVZ As Boolean = False + For Each pos In USTV_ANTRAG.POSITIONEN + If pos.UStVPo_VZ AndAlso Not IsDBNull(pos.UStVPo_VZ_RKID) AndAlso pos.UStVPo_VZ_RKID = item.Name Then 'VZ die noch nicht abgerechnet wurde! + hasVZ = True + Exit For + End If + Next - Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name) + Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name, hasVZ) f.Show(Me) Else