Plose, etc.

This commit is contained in:
2025-04-11 16:12:44 +02:00
parent a5ee8cfc29
commit 8f18b27aa7
5 changed files with 1037 additions and 935 deletions

View File

@@ -2,6 +2,7 @@
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Text.RegularExpressions
Imports VERAG_PROG_ALLGEMEIN
Public Class cPLOSE_Inv_Data
Property plInv_Id As Integer
@@ -259,14 +260,14 @@ Public Class cPLOSE_Inv_Data
filename4 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero)
End If
End If
End If
Dim daId As Integer = 0
End If
Dim daId As Integer = 0
If filename3 = "" Then
daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0))
Else
@@ -300,6 +301,62 @@ Public Class cPLOSE_Inv_Data
End Function
Public Shared Function setWahrunginIvoiceFromTransactions(jahr As Integer, Optional message As Boolean = False, Optional kdNr As Integer = -1) As Boolean
If jahr > Now.Year Then Return False
If jahr < 2020 Then Return False
Dim REohneWaehrung As String = "SELECT [plInv_SupplierRechnungsDatum],[plInv_SupplierRechnungsNr],[plInv_SupplierCountry],[plInv_Lieferant]
FROM [VERAG].[dbo].[tblPLOSE_Inv_Data]
where YEAR( [plInv_SupplierRechnungsDatum]) = " & jahr & " and plInv_Currency is null " & IIf(kdNr > 0, " and plInv_PLOSEKundennummer = " & kdNr, "") & "
Group by [plInv_SupplierCountry],[plInv_Lieferant],[plInv_SupplierRechnungsDatum],[plInv_SupplierRechnungsNr]"
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dtREohneWahrung As DataTable = SQL.loadDgvBySql(REohneWaehrung, "FMZOLL")
If dtREohneWahrung.Rows.Count > 0 Then
If vbYes = MsgBox("Details der fehlenden Währungen anzeigen?", vbYesNo) Then
cProgramFunctions.genExcelFromDT_NEW(dtREohneWahrung,,, "Fehlende Währung in Rechnungen: " & jahr)
End If
If IIf(message, vbYes = MsgBox("Bei " & dtREohneWahrung.Rows.Count & " PLOSE-Rechnungen fehlt die Währungsbezeichnung in den Rechnungen." & vbNewLine & "Währung setzen?", vbYesNoCancel), True) Then
For Each r As DataRow In dtREohneWahrung.Rows
Dim Waehrungtabelle As DataTable = SQL.loadDgvBySql("Select plose_WaehrungAbbuchung, plose_WaehrungLandDiesntleistung, plp_Land from tblPLOSE_Details INNER JOIN tblPLOSE_Produktbeschreibung ON [plp_ProductCode]=[plose_ProduktCode] WHERE plose_RechnungsNr = '" & r.Item("plInv_SupplierRechnungsNr") & "' And plose_RechnungsDatum = '" & r.Item("plInv_SupplierRechnungsDatum") & "' group by plose_WaehrungAbbuchung, plose_WaehrungLandDiesntleistung, plp_Land", "FMZOLL")
If Waehrungtabelle.Rows.Count = 1 Then
If Waehrungtabelle.Rows(0).Item("plose_WaehrungAbbuchung") = Waehrungtabelle.Rows(0).Item("plose_WaehrungLandDiesntleistung") And Waehrungtabelle.Rows(0).Item("plp_Land").ToString.Trim = r.Item("plInv_SupplierCountry").ToString.Trim Then
Dim Waehrung As String = IIf(IsDBNull(Waehrungtabelle.Rows(0).Item("plose_WaehrungAbbuchung")), "", Waehrungtabelle.Rows(0).Item("plose_WaehrungAbbuchung"))
If Waehrung <> "" Then
SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_Currency = '" & Waehrung & "' WHERE plInv_Currency is null and [plInv_SupplierRechnungsDatum] = '" & r.Item("plInv_SupplierRechnungsDatum") & "' AND [plInv_SupplierRechnungsNr] = '" & r.Item("plInv_SupplierRechnungsNr") & "' and [plInv_SupplierCountry] ='" & r.Item("plInv_SupplierCountry") & "'", "FMZOLL")
End If
End If
End If
Next
If message Then MsgBox("alle Währungen gesetzt!")
Return True
End If
Else
If message Then MsgBox("keine fehlenden Währungen vorhanden!")
Return False
End If
End Function