ustva-Antrag, etc.

This commit is contained in:
2026-06-24 10:25:35 +02:00
parent e2cc06fc2f
commit a1aac2249d
2 changed files with 247 additions and 166 deletions

View File

@@ -123,6 +123,8 @@ Public Class GlobalVATRefundApplication_HR
xml.UpdateChildContent(path & "|goodsDescription|code", p.GoodsDescription.Code)
If p.GoodsDescription.Subcode <> "" Then xml.UpdateChildContent(path & "|goodsDescription|subcode", p.GoodsDescription.Subcode)
xml.UpdateChildContent(path & "|EUSupplier|nameFree", p.EUSupplier.NameFree)
xml.UpdateChildContent(path & "|EUSupplier|addressFree", p.EUSupplier.AddressFree)
xml.UpdateChildContent(path & "|EUSupplier|country|countryISOCode", p.EUSupplier.CountryISOCode)
@@ -252,6 +254,8 @@ Public Class GoodsDescription_
Public Property Code As String
Public Property Subcode As String
End Class
Public Class EUSupplier_

View File

@@ -2,6 +2,7 @@
Imports System.IO
Imports System.Reflection
Imports System.Windows.Documents
Imports com.sun.xml.internal.ws.api.pipe
Imports itextsharp.text.pdf
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -817,15 +818,15 @@ Public Class frmMDM_USTVAntrag
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung = "EUR" Then
NETTOBETRAG = Math.round(kurs.EXCHANGE_EURTOCUR(NETTOBETRAG_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
NETTOBETRAG = Math.Round(kurs.EXCHANGE_EURTOCUR(NETTOBETRAG_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
ElseIf USTV_ANTRAG.UStVAn_Währungscode = "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then
NETTOBETRAG_EUR = Math.round(kurs.EXCHANGE_CURTOEUR(NETTOBETRAG, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
NETTOBETRAG_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(NETTOBETRAG, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
ElseIf USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then
NETTOBETRAG_EUR = Math.round(kurs.EXCHANGE_CURTOEUR(NETTOBETRAG, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
NETTOBETRAG_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(NETTOBETRAG, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
End If
@@ -923,21 +924,21 @@ Public Class frmMDM_USTVAntrag
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung = "EUR" Then
UST_org = Math.round(kurs.EXCHANGE_EURTOCUR(UST_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
UST_org = Math.Round(kurs.EXCHANGE_EURTOCUR(UST_EUR, 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)
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)
UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, 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
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
End If
@@ -1079,7 +1080,7 @@ Public Class frmMDM_USTVAntrag
Dim umrechKurs As Double = 1
Dim UST_EUR = CDbl(r.Item("SteuerbetragLokal"))
UST_EUR = Math.round(UST_EUR, 2)
UST_EUR = Math.Round(UST_EUR, 2)
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
@@ -1212,17 +1213,17 @@ Public Class frmMDM_USTVAntrag
'umrechKurs = frmdw / eur
umrechKurs = Math.floor((Brutto_org / Brutto_EUR * 100 + 0.5)) / 100
umrechKurs = Math.Floor((Brutto_org / Brutto_EUR * 100 + 0.5)) / 100
End If
If CDbl(r.Item("rmc_betragMWST")) <> 0 Then
USTV_POS.UStVPo_USteuerbetragEUR = Math.round((r.Item("rmc_betragMWST") / umrechKurs), 2)
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round((r.Item("rmc_betragMWST") / umrechKurs), 2)
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = r.Item("rmc_betragMWST")
If USTV_POS.UStVPo_NettobetragEUR Is Nothing Then
USTV_POS.UStVPo_NettobetragEUR = Math.round((r.Item("rmc_betragNetto") / umrechKurs), 2)
USTV_POS.UStVPo_NettobetragEUR = Math.Round((r.Item("rmc_betragNetto") / umrechKurs), 2)
End If
End If
@@ -1315,7 +1316,7 @@ Public Class frmMDM_USTVAntrag
'umrechKurs = UST_org / UST_EUR
umrechKurs = Math.floor((UST_org / UST_EUR * 100 + 0.5)) / 100
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
End If
@@ -1325,7 +1326,7 @@ Public Class frmMDM_USTVAntrag
USTV_POS.UStVPo_USteuerbetrag = UST_org
If USTV_POS.UStVPo_NettobetragEUR Is Nothing Then
USTV_POS.UStVPo_NettobetragEUR = Math.round((r.Item("NETTO") / umrechKurs), 2)
USTV_POS.UStVPo_NettobetragEUR = Math.Round((r.Item("NETTO") / umrechKurs), 2)
End If
End If
@@ -1423,7 +1424,7 @@ Public Class frmMDM_USTVAntrag
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
umrechKurs = Math.floor((UST_org / UST_EUR * 100 + 0.5)) / 100
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
End If
@@ -1556,11 +1557,11 @@ Public Class frmMDM_USTVAntrag
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)
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
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
End If
@@ -1569,7 +1570,7 @@ Public Class frmMDM_USTVAntrag
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = UST_org
If USTV_POS.UStVPo_Nettobetrag Is Nothing Then USTV_POS.UStVPo_Nettobetrag = Math.round((r.Item("Nettobetrag") * umrechKurs), 2)
If USTV_POS.UStVPo_Nettobetrag Is Nothing Then USTV_POS.UStVPo_Nettobetrag = Math.Round((r.Item("Nettobetrag") * umrechKurs), 2)
If USTV_POS.INSERT() Then
@@ -1733,8 +1734,8 @@ Public Class frmMDM_USTVAntrag
Else
USTV_POS.UStVPo_USteuerbetrag = r.Cells("total_VAT_amount").Value
USTV_POS.UStVPo_USteuerbetragEUR = Math.round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
End If
Else
'2. Antragswährung <> Belegswährung (EUR zu FREMD und FREMD zu EUR)
@@ -1742,10 +1743,10 @@ Public Class frmMDM_USTVAntrag
Dim kurs As New cEZB_Waehrungskurse(r.Cells("total_VAT_currency").Value)
If r.Cells("total_VAT_currency").Value <> "EUR" Then
USTV_POS.UStVPo_USteuerbetrag = r.Cells("total_VAT_amount").Value
USTV_POS.UStVPo_USteuerbetragEUR = Math.round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
ElseIf r.Cells("total_VAT_currency").Value = "EUR" Then
USTV_POS.UStVPo_USteuerbetrag = Math.round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_USteuerbetragEUR = USTV_POS.UStVPo_USteuerbetrag
USTV_POS.UStVPo_Umrechnungskurs = 1
End If
@@ -1754,13 +1755,13 @@ Public Class frmMDM_USTVAntrag
If r.Cells("total_VAT_currency").Value = "EUR" Then
USTV_POS.UStVPo_USteuerbetragEUR = r.Cells("total_VAT_amount").Value
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
USTV_POS.UStVPo_USteuerbetrag = Math.round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
USTV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
Else
USTV_POS.UStVPo_USteuerbetrag = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, USTV_ANTRAG.UStVAn_Währungscode)
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
USTV_POS.UStVPo_USteuerbetragEUR = Math.round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
End If
@@ -1833,10 +1834,10 @@ Public Class frmMDM_USTVAntrag
averageUmrechnungskurs = averageUmrechnungskurs / dgvUSTVPositionen.Rows.Count
End If
Dim abw As Double = Math.abs(Math.round(GesamtUSteuer / averageUmrechnungskurs, 2) - Math.round(GesamtUSteuerEUR, 2))
Dim abw As Double = Math.Abs(Math.Round(GesamtUSteuer / averageUmrechnungskurs, 2) - Math.Round(GesamtUSteuerEUR, 2))
If abw >= 250 Then
MsgBox("Bitte Umrechnungskurs in den Antragspositionen kontrollieren!" & vbNewLine & "Der Steuerbetrag weicht um " & Math.round(abw, 2) & "€ vom FW-Steuerbetrag ab! ")
MsgBox("Bitte Umrechnungskurs in den Antragspositionen kontrollieren!" & vbNewLine & "Der Steuerbetrag weicht um " & Math.Round(abw, 2) & "€ vom FW-Steuerbetrag ab! ")
End If
If Not invoicedateOK Then
@@ -4160,7 +4161,8 @@ Public Class frmMDM_USTVAntrag
Case "RO", "R" : fileName = fileName & ".xml" : createXMLforRO(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
Case "DE", "D" : fileName = fileName & ".csv" : createCSVforDE(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath) 'ALTERNATIVE: ELMA5-Massendatenschnittstelle allerdings um einiges aufwendiger!
Case "HR" : fileName = fileName & ".xml" : createXMLforHR(ADR, KUNDE, KUNDE_ERW, FIRMA, BANK_OWNER, BANK_IBAN, BANK_BIC, fileName, filePath)
Case Else
MsgBox("Für das Land " & ADR.LandKz & " wurde kein Export definiert")
End Select
@@ -4291,11 +4293,7 @@ Public Class frmMDM_USTVAntrag
Dim UIDNrLeistender = ""
Dim LeistenderName As String = ""
Dim maut As Boolean = False
Dim diesel As Boolean = False
Dim parkplatz As Boolean = False
Dim zubeh As Boolean = False
Dim uebernachtung As Boolean = False
Dim Leistungstyp As String = ""
If Not IsDBNull(row.Cells("UstV_Leistender_UstNr").Value) AndAlso row.Cells("UstV_Leistender_UstNr").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_UstNr").Value <> "" IsNot Nothing Then
@@ -4311,53 +4309,20 @@ Public Class frmMDM_USTVAntrag
If Not IsDBNull(row.Cells("UStVPo_Leistungsbezeichnung").Value) AndAlso row.Cells("UStVPo_Leistungsbezeichnung").Value IsNot Nothing Then
Dim Bez As String = row.Cells("UStVPo_Leistungsbezeichnung").Value
Bez = Bez.ToLower
If row.Cells("UStVPo_SchnittstellenNr").Value = 10 Then
'UTA überspringen
ElseIf row.Cells("UStVPo_SchnittstellenNr").Value = 9 Then
maut = True 'MSE immer MAUT
Else
If Bez.Contains("maut") Or Bez.Contains("toll") Then maut = True
If Bez.Contains("diesel") Or Bez.Contains("fuel") Then diesel = True
If Bez.Contains("parkplatz") Then parkplatz = True
If Bez.Contains("zubeh") Then zubeh = True
If Bez.Contains("übern") Then uebernachtung = True
End If
Leistungstyp = getLeistungsTyp(row.Cells("UStVPo_Leistungsbezeichnung").Value, CInt(row.Cells("UStVPo_SchnittstellenNr").Value))
End If
Dim code As Integer = 0
Dim Subcode = ""
getCode(Antrag_LandKz, Leistungstyp, code, Subcode, True)
Dim goods As New GoodsDescription With {.GoodsItem = New List(Of GoodsItem)}
goods.GoodsItem.Add(New GoodsItem With {.Code = code, .SubCode = Subcode, .FreeText = ""})
If diesel Then
goods.GoodsItem.Add(New GoodsItem With {.Code = 1, .SubCode = "1.1.2", .FreeText = ""})
End If
If maut Then
goods.GoodsItem.Add(New GoodsItem With {.Code = 4, .SubCode = "4.1", .FreeText = ""})
End If
If zubeh Then
goods.GoodsItem.Add(New GoodsItem With {.Code = 3, .SubCode = "3.1.5", .FreeText = ""})
End If
If parkplatz Then
goods.GoodsItem.Add(New GoodsItem With {.Code = 3, .SubCode = "3.1.4", .FreeText = ""})
End If
If uebernachtung Then
goods.GoodsItem.Add(New GoodsItem With {.Code = 6, .SubCode = "6.5", .FreeText = ""})
End If
Select Case Antrag_LandKz
Case "DE", "CZ", "LU"
For Each good In goods.GoodsItem
good.SubCode = "" 'SUbcodes leeren
Next
End Select
app.PurchaseInformation.Invoices.Add(New Invoice With {
@@ -4376,30 +4341,13 @@ Public Class frmMDM_USTVAntrag
}
})
'[UStVAn_ID] , [UStVPo_ID], [UStVPo_ReDat], [UStVPo_ReNr], [UStVPo_Leistungsbezeichnung], [UStVPo_Leistender], leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID]
' =========================
' 3⃣ ImportInformation hinzufügen (wenn vorhanden - OPTIONAL)
' =========================
' app.ImportInformation._Imports.Add(New Invoice With {
' .SequenceNumber = 17,
' .ReferenceNumber = "",
' .IssuingDate = "",
' .GoodsDescription = New GoodsDescription With {.GoodsItem = New GoodsItem With {.FreeText = "", .Code = 0, .SubCode = ""}},
' .Deduction = New Deduction With {.DeductibleVATAmount = "0.00", .ProRataRate = ""}
'})
counter += 1
Next
' =========================
' 4⃣ Dokumente hinzufügen
' =========================
Dim list As New List(Of String)
Dim pdfPathfinished As String = ""
@@ -4514,7 +4462,7 @@ Public Class frmMDM_USTVAntrag
Try
Dim list As New List(Of String)
Dim fullFilePath As String = saveDialog.FileName
Dim directoryPath As String = Path.GetDirectoryName(fullFilePath)
@@ -4523,13 +4471,13 @@ Public Class frmMDM_USTVAntrag
Directory.CreateDirectory(directoryPath)
End If
Dim BankOwnerType = ""
Select Case Antrag_LandKz
Case "AT", "DE", "CZ", "BE", "SI"
BANK_OWNER = FIRMA.Firma_Bez
BANK_IBAN = FIRMA.Firma_IBAN1
BANK_BIC = FIRMA.Firma_BIC1
BankOwnerType = "applicant"
If BANK_BIC.ToString.Contains("BIC:") Then
BANK_BIC = BANK_BIC.ToString.Replace("BIC:", "")
BANK_BIC = BANK_BIC.Trim()
@@ -4553,7 +4501,7 @@ Public Class frmMDM_USTVAntrag
BANK_BIC = dtBank.Rows(0).Item("bnk_bic")
End If
'wenn nicht hinterlegt, dann leer lassen!
BankOwnerType = "representative"
End Select
Dim app As New GlobalVATRefundApplication_HR() With {
@@ -4581,7 +4529,7 @@ Public Class frmMDM_USTVAntrag
},
.BankAccount = New BankAccount_ With {
.CurrencyISO = USTV_ANTRAG.UStVAn_Währungscode,
.OwnerType = "representative",
.OwnerType = BankOwnerType,
.OwnerName = BANK_OWNER,
.IBAN = BANK_IBAN,
.BIC = BANK_BIC
@@ -4595,14 +4543,7 @@ Public Class frmMDM_USTVAntrag
Dim counter As Integer = 1
Dim nummerierung As Boolean = False
Dim PDFExport As Boolean = False
Select Case MsgBox("Sollen die PDF-Daten in die XML eingebettet werden (wenn der Import zu lange dauert oder ein Fehler auftritt, dann sollte ohne PDF export werden) ?", vbYesNoCancel)
Case vbYes : PDFExport = True
Case vbNo : PDFExport = False
Case Else : Return False
End Select
Dim PDFExportInXML As Boolean = False
Select Case MsgBox("Soll eine Nummerierung auf den PDF Dokumenten angegeben werden?", vbYesNoCancel)
Case vbYes : nummerierung = True
@@ -4612,12 +4553,9 @@ Public Class frmMDM_USTVAntrag
app.RefundRequest = New RefundRequest_ With {
.RefundMemberState = Antrag_LandKz,
.State = "N"
.State = "N" ' steht für New
}
@@ -4625,12 +4563,7 @@ Public Class frmMDM_USTVAntrag
Dim UIDNrLeistender = ""
Dim LeistenderName As String = ""
Dim maut As Boolean = False
Dim diesel As Boolean = False
Dim parkplatz As Boolean = False
Dim zubeh As Boolean = False
Dim uebernachtung As Boolean = False
Dim Leistungstyp As String = ""
If Not IsDBNull(row.Cells("UstV_Leistender_UstNr").Value) AndAlso row.Cells("UstV_Leistender_UstNr").Value IsNot Nothing AndAlso row.Cells("UstV_Leistender_UstNr").Value <> "" IsNot Nothing Then
@@ -4641,29 +4574,12 @@ Public Class frmMDM_USTVAntrag
LeistenderName = row.Cells("UStVPo_Leistender").Value
LeistenderName = LeistenderName.ToString.Replace(Antrag_LandKz, "")
Dim Nettobetrag As Double = 0
If Not IsDBNull(row.Cells("UStVPo_Nettobetrag").Value) AndAlso IsNumeric(row.Cells("UStVPo_Nettobetrag").Value) Then Nettobetrag = CDbl(row.Cells("UStVPo_Nettobetrag").Value)
If Not IsDBNull(row.Cells("UStVPo_Leistungsbezeichnung").Value) AndAlso row.Cells("UStVPo_Leistungsbezeichnung").Value IsNot Nothing Then
Dim Bez As String = row.Cells("UStVPo_Leistungsbezeichnung").Value
Bez = Bez.ToLower
If row.Cells("UStVPo_SchnittstellenNr").Value = 10 Then
'UTA überspringen
ElseIf row.Cells("UStVPo_SchnittstellenNr").Value = 9 Then
maut = True 'MSE immer MAUT
Else
Dim code As String = ""
If Bez.Contains("maut") Or Bez.Contains("toll") Then maut = True
If Bez.Contains("diesel") Or Bez.Contains("fuel") Then diesel = True
If Bez.Contains("parkplatz") Then parkplatz = True
If Bez.Contains("zubeh") Then zubeh = True
If Bez.Contains("übern") Then uebernachtung = True
End If
Leistungstyp = getLeistungsTyp(row.Cells("UStVPo_Leistungsbezeichnung").Value, CInt(row.Cells("UStVPo_SchnittstellenNr").Value))
End If
@@ -4691,32 +4607,11 @@ Public Class frmMDM_USTVAntrag
}
}
Dim code As Integer = 0
Dim Subcode = ""
getCode(Antrag_LandKz, Leistungstyp, code, Subcode)
If diesel Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "1.1.2"}
End If
If maut Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "4.1"}
End If
If zubeh Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "3.1.5"}
End If
If parkplatz Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "3.1.4"}
End If
If uebernachtung Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "6.5"}
End If
If Not (uebernachtung And parkplatz And zubeh And maut And diesel) Then
p.GoodsDescription = New GoodsDescription_ With {.Code = "1.1.2"}
End If
p.GoodsDescription = New GoodsDescription_ With {.Code = code, .Subcode = Subcode}
Dim UstV_Leistender_Strasse = ""
@@ -4739,20 +4634,16 @@ Public Class frmMDM_USTVAntrag
.VATId = UIDNrLeistender
}
app.RefundRequest.PurchaseInformation.Add(p)
Dim pdf As String = ""
If PDFExport Then
pdf = func.getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), True, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
End If
pdf = func.getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), True, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
If pdf <> "" Then list.Add(pdf)
If pdf <> "" Then
If pdf <> "" And PDFExportInXML Then
Dim dc As New DocumentCopy_
dc.Description = row.Cells("UStVPo_ReNr").Value
@@ -4784,12 +4675,198 @@ Public Class frmMDM_USTVAntrag
Console.WriteLine(xmlString)
System.IO.File.WriteAllText(filePath, xmlString)
Dim pdfFileName = fullFilePath.Replace(".xml", ".pdf")
If File.Exists(pdfFileName) Then
File.Delete(pdfFileName)
End If
If list.Count > 1 Then
If FormularManagerNEU.MergePdfFiles(list, pdfFileName) Then
Process.Start(pdfFileName)
End If
ElseIf list.Count = 1 Then
Dim PDFFile As String = list(0)
System.IO.File.Move(PDFFile, pdfFileName)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
Private Function getLeistungsTyp(LeistungsBez As String, SchnittstellenNr As Integer) As String
LeistungsBez = LeistungsBez.ToLower
If SchnittstellenNr = 10 Then
'UTA überspringen
ElseIf SchnittstellenNr = 9 Then
LeistungsBez = "maut" 'MSE immer MAUT
Else
If LeistungsBez.Contains("maut") Or LeistungsBez.Contains("toll") Then Return "maut"
If LeistungsBez.Contains("diesel") Or LeistungsBez.Contains("fuel") Then Return "diesel"
If LeistungsBez.Contains("parkplatz") Then Return "parkplatz"
If LeistungsBez.Contains("zubeh") Then Return "zubehör"
If LeistungsBez.Contains("übern") Then Return "übernachtung"
Return "rest"
End If
End Function
Private Sub getCode(ByRef AntragLand As String, ByRef typ As String, ByRef Code As Integer, ByRef SubCode As String, Optional isRO As Boolean = False)
If isRO Then
Select Case typ
Case "diesel"
Code = 1
SubCode = "1.1.2"
Case "maut"
Code = 4
SubCode = "4.1"
Case "zubehör"
Code = 3
SubCode = "3.1.5"
Case "parkplatz"
Code = 3
SubCode = "3.1.4"
Case "übernachtung"
Code = 6
SubCode = "6.5"
End Select
End If
Select Case AntragLand
Case "AT"
If typ = "diesel" Then
Code = 1
SubCode = "1.2.7"
End If
If typ = "maut" Then
Code = 4
SubCode = "4.1"
End If
If typ = "parken" Then
Code = 3
SubCode = "3.1"
End If
If typ = "zubehör" Then
Code = 3
SubCode = "1.3"
End If
Case "BE"
If typ = "diesel" Then
Code = 1
SubCode = "1.13"
End If
If typ = "maut" Then
Code = 4
SubCode = ""
End If
If typ = "rest" Then
Code = 3
SubCode = "3.13"
End If
Case "ES"
If typ = "diesel" Then
Code = 1
SubCode = "1.14"
End If
If typ = "maut" Then
Code = 4
SubCode = "4"
End If
Case "SI"
If typ = "diesel" Then
Code = 1
SubCode = "1.1"
End If
If typ = "maut" Then
Code = 4
SubCode = "4.1"
End If
Case "PL"
If typ = "diesel" Then
Code = 1
SubCode = "1.1.2"
End If
If typ = "maut" Then
Code = 4
SubCode = "4.2.2"
End If
Case "FR", "IT"
If typ = "diesel" Then
Code = 1
SubCode = "1.1.2"
End If
If typ = "maut" Then
Code = 4
SubCode = "4"
End If
Case "HU"
If typ = "diesel" Then
Code = 1
SubCode = "1.1.2"
End If
If typ = "maut" Then
Code = 4
SubCode = "4.1"
End If
Case "DK", "SE"
If typ = "diesel" Then
Code = 1
SubCode = "1.1"
End If
If typ = "maut" Then
Code = 4
SubCode = "4"
End If
Case "DE", "CZ", "LU"
If typ = "diesel" Then
Code = 1
SubCode = ""
End If
If typ = "maut" Then
Code = 4
SubCode = ""
End If
Case Else
If typ = "diesel" Then
Code = 1
SubCode = ""
End If
If typ = "maut" Then
Code = 4
SubCode = ""
End If
End Select
End Sub
Private Function createCSVforDE(ADR As cAdressen, KUNDE As cKunde, KUNDE_ERW As cKundenErweitert, FIRMA As cFirmen, BANK_OWNER As String, BANK_IBAN As String, BANK_BIC As String, filename As String, filePath As String)
@@ -4879,7 +4956,7 @@ Public Class frmMDM_USTVAntrag
Blatt.Range("D" & counter + 1).Value = Nettobetrag.ToString("0.00", CultureInfo.InvariantCulture)
Blatt.Range("E" & counter + 1).Value = Steuerbetrag.ToString("0.00", CultureInfo.InvariantCulture)
Blatt.Range("F" & counter + 1).Value = Steuerbetrag.ToString("0.00", CultureInfo.InvariantCulture)
Blatt.Range("H" & counter + 1).Value = "false"
Blatt.Range("H" & counter + 1).Value = "False"
Blatt.Range("I" & counter + 1).Value = LeistenderName
Blatt.Range("J" & counter + 1).Value = row.Cells("UstV_Leistender_Strasse").Value
Blatt.Range("M" & counter + 1).Value = row.Cells("UstV_Leistender_PLZ").Value