MDM, ustva

This commit is contained in:
2025-01-31 15:59:08 +01:00
parent 2fffe4cdd5
commit bb44e65d18
3 changed files with 97 additions and 37 deletions

View File

@@ -622,7 +622,7 @@ Public Class frmMDM_USTVAntrag
'TODO - hier Umrechnungslogik von FRMDW und EUR und EUR/FRMDWR für Belegsebene
Dim umrechKurs As Double = 1
If USTV_ANTRAG.UStVAn_Währungscode = ANTRAG.plose_WaehrungAbbuchung Then
If USTV_ANTRAG.UStVAn_Währungscode = ANTRAG.plose_WaehrungAbbuchung And USTV_ANTRAG.UStVAn_Währungscode = "EUR" Then
USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung
USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung
USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag
@@ -640,6 +640,10 @@ Public Class frmMDM_USTVAntrag
UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
ElseIf USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then
UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
End If
@@ -659,7 +663,12 @@ Public Class frmMDM_USTVAntrag
End If
If USTV_POS.INSERT() Then
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
If CDate(USTV_ANTRAG.UStVAn_ReDatVon).Year >= 2025 Then
MDM_Worker.cPLOSE.UPDATE_ARCHIV_NEULOGIK(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
Else
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
End If
End If
End If
@@ -1311,12 +1320,25 @@ Public Class frmMDM_USTVAntrag
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
Case 6 'PLOSE
sqlText = "Update [tblPLOSE_Details]
If CDate(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat).Year >= 2025 Then
sqlText = "Update [tblPLOSE_Inv_Data]
set plInv_Archiv=0, [plInv_ArchiviertDatum]=NULL, plInv_UStVAn_ID = NULL
From [tblPLOSE_Inv_Data] INNER Join Adressen On PLOSEKundenNr=plInv_PLOSEKundennummer
WHERE cast(plInv_SupplierRechnungsDatum As Date) = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND [plInv_SupplierRechnungsNr] = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr & "'"
Else
sqlText = "Update [tblPLOSE_Details]
set plose_Archiv=0, [plose_ArchiviertDatum]=NULL, UStVAn_ID = NULL
From [tblPLOSE_Details] INNER Join Adressen On PLOSEKundenNr=plose_POLSEKundennummer
INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
WHERE cast(plose_RechnungsDatum As Date) = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND plose_RechnungsNr = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr & "'
And plose_LieferantCode IN (0,1,7,9) "
End If
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")

View File

@@ -1,4 +1,5 @@
Imports System.Windows.Documents
Imports com.sun.org.apache.xpath.internal.objects
Imports DocumentFormat.OpenXml.Drawing.Spreadsheet
Imports VERAG_PROG_ALLGEMEIN
@@ -90,13 +91,29 @@ Public Class frmUSTVoffeneAntraege
sqlwhere &= " and Adressen.AdressenNr = " & kdnr
End If
.SET_SQL("select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plose_Lieferant],[plose_RechnungsDatum],[plose_RechnungsNr],plp_Land, sum([plose_MWSTBetrag])[plose_MWSTBetrag], [plInv_daId] as daId FROM [tblPLOSE_Details]
INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer
INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
INNER JOIN [tblPLOSE_Inv_Data]on plInv_SupplierRechnungsDatum=plose_RechnungsDatum and plInv_SupplierRechnungsNr=plose_RechnungsNr and [plInv_PLOSEKundennummer] = PLOSEKundenNr
WHERE UStVAn_ID is null /*plose_Archiv <> 1 AND plose_LieferantCode IN (0,1,7) */ AND cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwhere &
Dim sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plose_Lieferant],[plose_RechnungsDatum],[plose_RechnungsNr],plp_Land, sum([plose_MWSTBetrag])[plose_MWSTBetrag], [plInv_daId] As daId FROM [tblPLOSE_Details]
INNER Join Adressen on PLOSEKundenNr=plose_POLSEKundennummer
INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
INNER Join [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id
WHERE UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwhere &
"group by Adressen.AdressenNr, Adressen.[Name 1] ,[plose_RechnungsDatum],[plose_RechnungsNr],[plose_Lieferant], plp_Land, [plInv_daId]
having sum(plose_MWSTBetrag) <>0", "FMZOLL")
having sum(plose_MWSTBetrag) <>0"
Dim year = CDate(dat_Sum_Von.Value).Year
If year >= 2025 Then
sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_Lieferant] as plose_Lieferant,[plInv_SupplierRechnungsDatum] as plose_RechnungsDatum,[plInv_SupplierRechnungsNr] as plose_RechnungsNr,[plInv_SupplierCountry] as plp_Land, sum([plInv_MWSTBetrag]) as plose_MWSTBetrag , [plInv_daId] As daId FROM [tblPLOSE_Inv_Data]
INNER JOIN Adressen on PLOSEKundenNr=[plInv_PLOSEKundennummer]
WHERE plInv_UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast([plInv_SupplierRechnungsDatum] as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and [plInv_SupplierRechnungsNr] is not null " & sqlwhere &
"group by Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_SupplierRechnungsDatum],[plInv_SupplierRechnungsNr],[plInv_Lieferant], [plInv_SupplierCountry], [plInv_daId]
having sum([plInv_MWSTBetrag]) <>0"
End If
.SET_SQL(sqlString, "FMZOLL")
.LOAD()
If .Columns.Count > 0 Then
@@ -492,6 +509,8 @@ Public Class frmUSTVoffeneAntraege
Dim sqlwhereLand = ""
Dim sqlwhereSteuerNr = ""
Dim SQLPLOSEUMSTELLUNG = ""
If kdnr > 0 Then
sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr
sqlwhereIDS &= " and AdressenNr = " & kdnr 'sqlwhereIDS &= " and tblIDSTransactionsNew.KdNrVERAG = " & kdnr
@@ -517,36 +536,55 @@ Public Class frmUSTVoffeneAntraege
sqlwhereLand &= " and isnull(UStVAn_ID,0) = 0 "
End If
Dim year = CDate(dat_Sum_Von.Value).Year
If year >= 2025 Then
SQLPLOSEUMSTELLUNG = "
select " & top & "
'PLOSE' as Lieferant,
Adressen.AdressenNr as KdNr,
Adressen.[Name 1] as Kundenname,
Adressen.LandKz as Kundenland,
[plInv_SupplierCountry] as Einreichland,
[plInv_SupplierRechnungsDatum] AS Rechnungsdatum,
sum([plInv_MWSTBetrag]) as MWST
FROM [tblPLOSE_Inv_Data]
INNER JOIN Adressen on PLOSEKundenNr=plInv_PLOSEKundennummer
WHERE plInv_Archiv <> 1 AND cast(plInv_SupplierRechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plInv_SupplierRechnungsNr is not null " & sqlwherePLOSE & "
group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plInv_SupplierRechnungsDatum],[plInv_SupplierCountry]
having sum(plInv_MWSTBetrag)<>0"
Else
SQLPLOSEUMSTELLUNG = "select " & top & "
'PLOSE' as Lieferant,
Adressen.AdressenNr as KdNr,
Adressen.[Name 1] as Kundenname,
Adressen.LandKz as Kundenland,
[plp_Land] as Einreichland,
[plose_RechnungsDatum] AS Rechnungsdatum,
sum([plose_MWSTBetrag]) as MWST
FROM [tblPLOSE_Details]
INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer
INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
INNER JOIN [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id
WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND
cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwherePLOSE & "
group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],[plp_Land]
having sum(plose_MWSTBetrag)<>0"
End If
With MyDatagridview1
.Columns.Clear()
'Exit Sub
'MsgBox(.sql)
'PLOSE ALT
' FROM [tblPLOSE_Details]
' INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer
' INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
' WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND
'cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwherePLOSE & "
'group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],plp_Land
' having sum(plose_MWSTBetrag)<>0
Dim sqlstring = "select isnull(UStVAn_ID,0) as antragExisitiert,tblSteuernummern.UStV as SteuerNr,Lieferant , KdNr, Kundenname, Kundenland, Einreichland from ( select " & top & "
'PLOSE' as Lieferant,
Adressen.AdressenNr as KdNr,
Adressen.[Name 1] as Kundenname,
Adressen.LandKz as Kundenland,
[plInv_SupplierCountry] as Einreichland,
[plose_RechnungsDatum] AS Rechnungsdatum,
sum([plose_MWSTBetrag]) as MWST
FROM [tblPLOSE_Details]
INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer
INNER JOIN [tblPLOSE_Inv_Data]on plInv_SupplierRechnungsDatum=plose_RechnungsDatum and plInv_SupplierRechnungsNr=plose_RechnungsNr and [plInv_PLOSEKundennummer] = PLOSEKundenNr
WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND
cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwherePLOSE & "
group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],[plInv_SupplierCountry]
having sum(plose_MWSTBetrag)<>0
Dim sqlstring = "select isnull(UStVAn_ID,0) as antragExisitiert,tblSteuernummern.UStV as SteuerNr,Lieferant , KdNr, Kundenname, Kundenland, Einreichland from (" & SQLPLOSEUMSTELLUNG & "
UNION ALL
@@ -827,7 +865,7 @@ Public Class frmUSTVoffeneAntraege
Else
Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("KdNr").Value, MyDatagridview1.SelectedRows(0).Cells("Land").Value, dat_Sum_Von.Value, dat_Sum_Bis.Value)
Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("KdNr").Value, MyDatagridview1.SelectedRows(0).Cells("Einreichland").Value, dat_Sum_Von.Value, dat_Sum_Bis.Value)
frm.ShowDialog()
End If
@@ -883,7 +921,7 @@ Public Class frmUSTVoffeneAntraege
fehlendePDFs = CInt((New SQL).getValueTxtBySql(SQLQuery, "FMZOLL"))
MsgBox("Anzahl fehlende PDFs: " & fehlendePDFs)
Else
MsgBox("Funktion nicht implementiert!")
MsgBox("Funktion nur pro Lieferant möglich!")
End If

View File

@@ -734,17 +734,17 @@ Public Class usrCntlUSTV
Exit Sub
End If
If del_antrag.UStVAn_3470 IsNot Nothing Then
If del_antrag.UStVAn_3470 IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_3470) > 0 Then
MsgBox("Dieser Antrag enthält einen 3470-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_VZBetrag IsNot Nothing Then
If del_antrag.UStVAn_VZBetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_VZBetrag) > 0 Then
MsgBox("Dieser Antrag enthält einen VZ-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing Then
If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_Erstattungsbetrag) > 0 Then
MsgBox("Dieser Antrag enthält einen Erstattungsbetrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If