diff --git a/SDL/USTV/VATRefund_HR.vb b/SDL/USTV/VATRefund_HR.vb index 726b4ae2..35983ac7 100644 --- a/SDL/USTV/VATRefund_HR.vb +++ b/SDL/USTV/VATRefund_HR.vb @@ -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_ diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index fe8339dc..9ab48aa2 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -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