zustv
This commit is contained in:
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.4.6.0")>
|
||||
<Assembly: AssemblyFileVersion("1.4.6.0")>
|
||||
<Assembly: AssemblyVersion("1.4.6.2")>
|
||||
<Assembly: AssemblyFileVersion("1.4.6.2")>
|
||||
|
||||
@@ -1322,66 +1322,70 @@ Public Class frmMDM_USTVAntrag
|
||||
|
||||
Dim leistenderName As String = ""
|
||||
|
||||
Dim useNewAdress As Boolean = False
|
||||
If CDate(USTV_POS.UStVPo_ReDat) >= New Date("2025", "09", "30") Then useNewAdress = True
|
||||
|
||||
|
||||
Select Case Antrag_LandKz
|
||||
Case "RO"
|
||||
leistenderName = "Kuwait Petroleum Romania S.R.L"
|
||||
Case "SE"
|
||||
leistenderName = "OK-Q8 AB"
|
||||
Case "DK"
|
||||
leistenderName = "Q8 Danmark A/S"
|
||||
Case "PL"
|
||||
leistenderName = "Kuwait Petroleum Sp. Z.o.o"
|
||||
Case "DE"
|
||||
leistenderName = "Kuwait Petroleum Gmbh"
|
||||
Case "IT"
|
||||
leistenderName = "Kuwait Petroleum Italie Spa"
|
||||
Case "ES"
|
||||
leistenderName = "Fuel Iberia S.L.U"
|
||||
Case Else
|
||||
leistenderName = "IDS EUROPE B.V."
|
||||
Case "RO"
|
||||
leistenderName = "Kuwait Petroleum Romania S.R.L"
|
||||
Case "SE"
|
||||
leistenderName = "OK-Q8 AB"
|
||||
Case "DK"
|
||||
leistenderName = "Q8 Danmark A/S"
|
||||
Case "PL"
|
||||
leistenderName = "Kuwait Petroleum Sp. Z.o.o"
|
||||
Case "DE"
|
||||
leistenderName = "Kuwait Petroleum Gmbh"
|
||||
Case "IT"
|
||||
leistenderName = "Kuwait Petroleum Italie Spa"
|
||||
Case "ES"
|
||||
leistenderName = "Fuel Iberia S.L.U"
|
||||
Case Else
|
||||
leistenderName = IIf(Not useNewAdress, "IDS EUROPE B.V.", "Q8Truck International B.V.")
|
||||
End Select
|
||||
|
||||
|
||||
Dim leistender As New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz)
|
||||
If leistender.UStV_LeistenderId < 1 Then
|
||||
leistender = New cUStVLeistender(leistenderName)
|
||||
If leistender.UStV_LeistenderId < 1 Then
|
||||
leistender = New cUStVLeistender(leistenderName)
|
||||
End If
|
||||
|
||||
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
||||
|
||||
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
||||
USTV_POS.UStVPo_Zeitstempel = Now()
|
||||
|
||||
|
||||
Dim umrechKurs As Double = 1
|
||||
|
||||
'TODO: IDS liefert Beträge immer in EUR, wir müssen allerdings die Beträge in FREMDW umrechnen, ev. bei IDS nachfragen, ob wir den Fremdwährungsbetrag bekommen können (würde uns einige manuelle Arbeit ersparen oder zumindest den Umrechnungskurs, das IDS einen Mischsatz verwendet und nicht den Umrechnungskurs vom Rechnungsdatum)!!
|
||||
|
||||
Dim UST_EUR = CDbl(r.Item("Steuerbetrag")) 'ist immer EUR
|
||||
Dim UST_org = CDbl(r.Item("Steuerbetrag"))
|
||||
|
||||
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then
|
||||
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
||||
UST_org = Math.Round(kurs.EXCHANGE_EURTOCUR(UST_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
||||
End If
|
||||
|
||||
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
||||
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
||||
End If
|
||||
|
||||
|
||||
If UST_org <> 0 Then
|
||||
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
||||
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
||||
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
||||
End If
|
||||
|
||||
If USTV_POS.INSERT() Then
|
||||
cIDS.UPDATE_ARCHIV(USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr, kdnr, Antrag_LandKz, USTV_POS.UStVAn_ID)
|
||||
End If
|
||||
'tblUStVPositionen
|
||||
End If
|
||||
|
||||
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
||||
|
||||
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
||||
USTV_POS.UStVPo_Zeitstempel = Now()
|
||||
|
||||
|
||||
Dim umrechKurs As Double = 1
|
||||
|
||||
'TODO: IDS liefert Beträge immer in EUR, wir müssen allerdings die Beträge in FREMDW umrechnen, ev. bei IDS nachfragen, ob wir den Fremdwährungsbetrag bekommen können (würde uns einige manuelle Arbeit ersparen oder zumindest den Umrechnungskurs, das IDS einen Mischsatz verwendet und nicht den Umrechnungskurs vom Rechnungsdatum)!!
|
||||
|
||||
Dim UST_EUR = CDbl(r.Item("Steuerbetrag")) 'ist immer EUR
|
||||
Dim UST_org = CDbl(r.Item("Steuerbetrag"))
|
||||
|
||||
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then
|
||||
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
||||
UST_org = Math.Round(kurs.EXCHANGE_EURTOCUR(UST_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
||||
End If
|
||||
|
||||
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
||||
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
||||
End If
|
||||
|
||||
|
||||
If UST_org <> 0 Then
|
||||
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
||||
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
||||
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
||||
End If
|
||||
|
||||
If USTV_POS.INSERT() Then
|
||||
cIDS.UPDATE_ARCHIV(USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr, kdnr, Antrag_LandKz, USTV_POS.UStVAn_ID)
|
||||
End If
|
||||
'tblUStVPositionen
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
End If
|
||||
|
||||
@@ -619,14 +619,50 @@ Public Class frmUSTVoffeneAntraege
|
||||
|
||||
'bei Einstellung "ALLE KUNDEN"
|
||||
|
||||
If dtKundeMWST.Rows.Count > 0 Then sqlwhereLand &= " AND ( NOT ("
|
||||
If dtKundeMWST.Rows.Count > 0 Then sqlwhereLand &= " AND NOT EXISTS (SELECT 1 FROM (VALUES "
|
||||
|
||||
For Each row As DataRow In dtKundeMWST.Rows
|
||||
landBez = row.Item("abc").ToString.Replace(";", "'")
|
||||
counter = counter + 1
|
||||
sqlwhereLand &= " (isnull(AdressenNr,0) = " & row.Item("KdNr") & " AND Einreichland in (" & landBez.ToString.Substring(0, landBez.ToString.Length - 1) & ")) " & IIf(dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count, "OR ", "))")
|
||||
' landBez = row.Item("abc").ToString.Replace(";", "'")
|
||||
' counter = counter + 1
|
||||
' sqlwhereLand &= " (" & row.Item("KdNr") & "," & landBez.ToString.Substring(0, landBez.ToString.Length - 1) & ") " & IIf(dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count, ", ", ") AS Excluded(AdressenNr, Einreichland) WHERE Excluded.AdressenNr = temp.KdNr AND Excluded.Einreichland = temp.Einreichland)")
|
||||
'Next
|
||||
|
||||
Dim kdNr_ As String = row("KdNr").ToString()
|
||||
Dim landBez_ As String = row("abc").ToString()
|
||||
|
||||
' Entferne führende/mehrfache Semikolons
|
||||
landBez_ = landBez_.Replace(";;", ";").Trim(";"c, " "c)
|
||||
|
||||
' Teile die Länder anhand von „;,;“
|
||||
Dim laender() As String = landBez_.Split(New String() {",,"}, StringSplitOptions.None)
|
||||
|
||||
' Fallback: wenn nur einfache Trennung mit „;,“
|
||||
If laender.Length = 1 Then
|
||||
laender = landBez_.Split(New String() {",;"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
End If
|
||||
|
||||
' Jede gültige Länderkombination hinzufügen
|
||||
For Each land In landBez_.Split(New String() {",;"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
land = land.Replace(";", "").Trim()
|
||||
If land <> "" Then
|
||||
Dim landTemp As String = land.Replace(",", "")
|
||||
counter += 1
|
||||
sqlwhereLand &= "(" & kdNr_ & ", '" & landTemp & "'), "
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
If sqlwhereLand.EndsWith(", ") Then
|
||||
sqlwhereLand = sqlwhereLand.Substring(0, sqlwhereLand.Length - 2)
|
||||
End If
|
||||
|
||||
' Abschluss der NOT EXISTS-Klausel
|
||||
sqlwhereLand &= ") AS Excluded(AdressenNr, Einreichland) " &
|
||||
"WHERE Excluded.AdressenNr = temp.KdNr " &
|
||||
"AND Excluded.Einreichland = temp.Einreichland)"
|
||||
|
||||
|
||||
|
||||
Else
|
||||
|
||||
'bei Einstellung "SPEZIFISCHER KUNDE"
|
||||
@@ -640,10 +676,13 @@ Public Class frmUSTVoffeneAntraege
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
If year >= 2025 Then
|
||||
|
||||
SQLPLOSEUMSTELLUNG = "
|
||||
|
||||
Reference in New Issue
Block a user