SDL, FaktAbrechnung, Kundenblatt, etc.

This commit is contained in:
2026-02-13 09:53:34 +01:00
parent e4c594ec29
commit e5be7f0016
5 changed files with 114 additions and 92 deletions

View File

@@ -1,8 +1,5 @@
 
Imports System.Data.SqlClient Imports System.Data.SqlClient
Imports System.Reflection
Public Class cSDLLeistung Public Class cSDLLeistung

View File

@@ -1,4 +1,5 @@
Imports System.Web.UI.WebControls.Expressions Imports System.IO
Imports System.Web.UI.WebControls.Expressions
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung Public Class usrCntlFaktAbrechnung
@@ -1906,130 +1907,147 @@ Public Class usrCntlFaktAbrechnung
Dim Antrag_LandKz = "" Dim Antrag_LandKz = ""
If USTV.UStVAn_ID > 0 Then Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV.UStVAn_LandNr & "'", "FMZOLL") If USTV.UStVAn_ID > 0 Then Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV.UStVAn_LandNr & "'", "FMZOLL")
'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025 'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025
Dim dtPOSList As New DataTable Dim dtPOSList As New DataTable
Dim prt As String = func.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1)) Dim prt As String = func.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1))
If prt <> "" Then If prt <> "" Then
Try Try
Dim rpt As New rptMWSTListe Dim rpt As New rptMWSTListe
rpt.DataSource = dtPOSList rpt.DataSource = dtPOSList
rpt.GroupHeader1.DataField = "Firma_ID" 'Gruppierung rpt.GroupHeader1.DataField = "Firma_ID" 'Gruppierung
If rpt.DataSource.rows.count > 0 Then If rpt.DataSource.rows.count > 0 Then
Dim AD As New cAdressen(USTV.UStVAn_KuNr) Dim AD As New cAdressen(USTV.UStVAn_KuNr)
Dim sum As Double = 0 Dim sum As Double = 0
rpt.lblVatNo.Text = USTV.UStVAn_Steuernummer rpt.lblVatNo.Text = USTV.UStVAn_Steuernummer
rpt.lblCompanyname.Text = AD.Name_1 & " " & AD.Name_2 rpt.lblCompanyname.Text = AD.Name_1 & " " & AD.Name_2
rpt.lblDat.Text = Now.ToShortDateString rpt.lblDat.Text = Now.ToShortDateString
AddHandler rpt.Detail.Format, Sub() AddHandler rpt.Detail.Format, Sub()
rpt.lblNumber.Text = rpt.Fields.Item("Number").Value() rpt.lblNumber.Text = rpt.Fields.Item("Number").Value()
rpt.lblGoods.Text = rpt.Fields.Item("Name of service").Value() rpt.lblGoods.Text = rpt.Fields.Item("Name of service").Value()
rpt.lblName.Text = rpt.Fields.Item("Name of supplier").Value() rpt.lblName.Text = rpt.Fields.Item("Name of supplier").Value()
rpt.lblTax.Text = CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2") rpt.lblTax.Text = CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
rpt.lblDate.Text = CDate((rpt.Fields.Item("Date of Invoice").Value())).ToShortDateString rpt.lblDate.Text = CDate((rpt.Fields.Item("Date of Invoice").Value())).ToShortDateString
rpt.lblInvoiceNo.Text = rpt.Fields.Item("Number of invoice").Value() rpt.lblInvoiceNo.Text = rpt.Fields.Item("Number of invoice").Value()
sum += CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2") sum += CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
End Sub End Sub
AddHandler rpt.GroupFooter1.Format, Sub() AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblSumme.Text = sum.ToString("N2") rpt.lblSumme.Text = sum.ToString("N2")
rpt.lblWahrung.Text = USTV.UStVAn_Währungscode rpt.lblWahrung.Text = USTV.UStVAn_Währungscode
End Sub End Sub
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(SPEDBUCH.AbfertigungsNr, ".pdf", , False) Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(SPEDBUCH.AbfertigungsNr, ".pdf", , False)
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
rpt.Run(False) rpt.Run(False)
p.NeverEmbedFonts = "" p.NeverEmbedFonts = ""
p.Export(rpt.Document, tmpPath) p.Export(rpt.Document, tmpPath)
rpt.Dispose() rpt.Dispose()
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False)
DS.uploadDataToDATENSERVER(tmpPath,,, False,,, True) 'If Not DS.hasITEMS Then 'immer neu generieren, falls der Antrag geändert wurde, muss der die neue POS-Liste geladen werden!!!!
DS.uploadDataToDATENSERVER(tmpPath,,, False,, True, True)
'End If
If .Rows.Count > 0 Then If .Rows.Count > 0 Then
For Each r As DataGridViewRow In .Rows For Each r As DataGridViewRow In .Rows
If .Columns.Contains("clmnBezeichnung") AndAlso r.Cells("clmnBezeichnung").Value = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then If .Columns.Contains("clmnBezeichnung") AndAlso r.Cells("clmnBezeichnung").Value = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
.Rows.Remove(r) .Rows.Remove(r)
For Each ATT As cRechnungsausgangAnhaenge In RECHNUNG.ANHAENGE For Each ATT As cRechnungsausgangAnhaenge In RECHNUNG.ANHAENGE
If ATT.Bezeichnung = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then If ATT.Bezeichnung = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
Dim ANH_DEL As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge() Dim ANH_DEL As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge()
ANH_DEL.DELETE(ATT.RK_ID, ATT.dsId) ANH_DEL.DELETE(ATT.RK_ID, ATT.dsId)
End If End If
Next Next
End If
Next
End If
If RECHNUNG.ANHAENGE.Count > 0 Then
If RECHNUNG.DruckDatumZeit IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.Bezeichnung = DS.da_name) Or RECHNUNG.DruckDatumZeit Is Nothing Then
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If End If
Else
Next
End If
If RECHNUNG.ANHAENGE.Count > 0 Then
If RECHNUNG.DruckDatumZeit IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.Bezeichnung = DS.da_name) Or RECHNUNG.DruckDatumZeit Is Nothing Then
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1) .Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If End If
Else
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
End If End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End If Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
If dt IsNot Nothing Then End If
For Each r In dt.Rows
'WARUM NOCHMAL not null??? -> weil laut lydia erst ab 2025 (und ab diesem Datum wird die daid in der USTVA_POS befüllt) die Dokumente digital mitgeschickt werden, vorher noch alles per POST!!!!!!!!!!!!!!!!!! If dt IsNot Nothing Then
If Not IsDBNull(r("UStVPo_daId")) Then For Each r In dt.Rows
If RECHNUNG.ANHAENGE IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.dsId = r("UStVPo_daId")) Then 'wenn der Anhang schon existiert! 'WARUM NOCHMAL not null??? -> weil laut lydia erst ab 2025 (und ab diesem Datum wird die daid in der USTVA_POS befüllt) die Dokumente digital mitgeschickt werden, vorher noch alles per POST!!!!!!!!!!!!!!!!!!
If Not IsDBNull(r("UStVPo_daId")) Then
Dim DAID As String = "" If RECHNUNG.ANHAENGE IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.dsId = r("UStVPo_daId")) Then 'wenn der Anhang schon existiert!
DAID = func.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, Antrag_LandKz, USTV, New cFakturierung, True)
Dim nameLief As String = "" Dim DAID As String = ""
DAID = func.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, Antrag_LandKz, USTV, New cFakturierung, True)
Select Case r("UStVPo_SchnittstellenNr") Dim nameLief As String = ""
Case 1 : nameLief = "VERAG-" 'Verag360
Case 2, 8, 12 : nameLief = "IDS-" Select Case r("UStVPo_SchnittstellenNr")
Case 3 : nameLief = "IT-" Case 1 : nameLief = "VERAG-" 'Verag360
Case 4, 9 : nameLief = "MSE-" Case 2, 8, 12 : nameLief = "IDS-"
Case 5, 10 : nameLief = "UTA-" Case 3 : nameLief = "IT-"
Case 6, 11 : nameLief = "PLOSE-" Case 4, 9 : nameLief = "MSE-"
Case 7 : nameLief = "RMC-" Case 5, 10 : nameLief = "UTA-"
End Select Case 6, 11 : nameLief = "PLOSE-"
Case 7 : nameLief = "RMC-"
End Select
nameLief &= "RE"
If DAID <> "" AndAlso IsNumeric(DAID) AndAlso r("UStVPo_SchnittstellenNr") <> 1 Then
Dim daidno As Integer = CInt(DAID)
Dim ds As New cDATENSERVER(daidno)
.Rows.Add(-1, nameLief, ds.da_name, ds.da_id, -1)
ElseIf DAID <> "" AndAlso r("UStVPo_SchnittstellenNr") = 1 Then
Dim DS_Eigenrechnungen As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "VERAG-RECHNUNGEN", "", "", USTV.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf", USTV.UStVAn_KuNr, False)
If Not DS_Eigenrechnungen.hasITEMS Then 'falls bereits vorhanden, nicht nochmals erstellen!
DS_Eigenrechnungen.uploadDataToDATENSERVER(DAID, USTV.UStVAn_KuNr & "_" & r("UStVPo_ReNr") & ".pdf",, False,, True, True)
End If
.Rows.Add(-1, nameLief, DS_Eigenrechnungen.da_name, DS_Eigenrechnungen.da_id, -1)
nameLief &= "RE"
If DAID <> "" AndAlso IsNumeric(DAID) Then
Dim daidno As Integer = CInt(DAID)
Dim ds As New cDATENSERVER(daidno)
.Rows.Add(-1, nameLief, ds.da_name, ds.da_id, -1)
End If End If
End If
End If End If
End If
Next Next
End If
End If End If
End If End If
End If
End If End If

View File

@@ -96,6 +96,10 @@ Public Class ustCntlUSTV_AntragPosition
Else Else
'--------------------------------------------------------------------------------------------
'Bei SchnittstelleNr 1 wird die interne RK_ID der Rechnung im Feld DA_ID gespeichert, wenn es dann "aus Zufall" eine echte DA_ID mit dieser RK_ID-Nr gibt, wird dieser Name angezeigt (aber geladen wird die korrekte Rechnung)!!!!!!!!!!!!!!
'--------------------------------------------------------------------------------------------
Select Case If(UStV_POS.UStVPo_SchnittstellenNr, -1) Select Case If(UStV_POS.UStVPo_SchnittstellenNr, -1)
Case 6, 0, 11 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & UStV_POS.UStVPo_ReDat & "' and plInv_SupplierRechnungsNr='" & UStV_POS.UStVPo_ReNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1) Case 6, 0, 11 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & UStV_POS.UStVPo_ReDat & "' and plInv_SupplierRechnungsNr='" & UStV_POS.UStVPo_ReNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
Case 7 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & UStV_POS.UStVPo_ReDat & "' and rmc_reNr='" & UStV_POS.UStVPo_ReNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1) Case 7 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & UStV_POS.UStVPo_ReDat & "' and rmc_reNr='" & UStV_POS.UStVPo_ReNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)

View File

@@ -2819,7 +2819,7 @@ Public Class frmKundenblatt
Dim Kunde As New cKundenSDL(row("gb_adressNr"), 200) Dim Kunde As New cKundenSDL(row("gb_adressNr"), 200)
Kunde.Erfassungsdatum = Now Kunde.Erfassungsdatum = Now
Kunde.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME Kunde.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
Kunde.SAVE Kunde.SAVE()
End If End If

View File

@@ -849,19 +849,22 @@ Public Class cMDMFunctionsAllgemein
End If End If
If dsID < 0 Then If Not schnittstellenNr = 1 Then
Return "" If dsID < 0 Then
ElseIf returnDSID Then Return ""
If schnittstellenNr = 8 Then 'Nr enthätl alle IDS-Rechnungen, die nicht mitgeben! ElseIf returnDSID Then
Return -1 If schnittstellenNr = 8 Then 'Nr enthätl alle IDS-Rechnungen, die nicht mitgeben!
Else Return -1
Return dsID Else
End If Return dsID
End If
End If
End If End If
'Anschrift Nummerierung: 'Anschrift Nummerierung:
Dim x = 100 Dim x = 100
Dim y = 10 Dim y = 10