ustva_antrag

This commit is contained in:
2025-04-30 09:39:58 +02:00
parent 5965000967
commit c7dc4e2ba2
3 changed files with 155 additions and 108 deletions

View File

@@ -1,4 +1,5 @@

Imports itextsharp.text.pdf
Imports VERAG_PROG_ALLGEMEIN
Public Class ustCntlUSTV_AntragPosition
@@ -611,133 +612,169 @@ Public Class ustCntlUSTV_AntragPosition
End If
End Sub
Private Sub btnAPIUbload_Click(sender As Object, e As EventArgs) Handles btnAPIUbload.Click
If API IsNot Nothing Then
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
Private Sub mnuItemKIUPLOAD_Clicked(sender As Object, e As EventArgs)
cnS_KIUPLOAD.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If UStV_POS.UStVPo_daId < 1 Then Exit Sub
If item IsNot Nothing Then
Dim dt As New DataTable
If dt IsNot Nothing And Not dt.Columns.Contains("currency") Then
dt.Columns.Add("currency", GetType(String))
dt.Columns.Add("seller_VAT_id", GetType(String))
dt.Columns.Add("seller_address_city", GetType(String))
dt.Columns.Add("seller_address_country", GetType(String))
dt.Columns.Add("seller_address_postcode", GetType(String))
dt.Columns.Add("seller_address_street", GetType(String))
dt.Columns.Add("seller_name", GetType(String))
dt.Columns.Add("total_VAT_amount", GetType(Double))
dt.Columns.Add("invoice_id", GetType(String))
dt.Columns.Add("invoice_date", GetType(String))
dt.Columns.Add("status", GetType(String))
dt.Columns.Add("document_count", GetType(Integer))
End If
Dim failreDesc As String
Dim authResp = API.authenticate("VAT", "client1", "password")
Dim resp
If authResp <> "200" Then
MsgBox("Authentifizierung fehlgeschlagen" & vbNewLine & authResp)
Exit Sub
Else
'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then
'document_type = vat_invoice or receipt
If API.setJsonVAT("vat_invoice", UStV_POS.UStVPo_daId) Then
resp = API.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt)
If API IsNot Nothing Then
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
If dt.Rows.Count > 0 Then
Dim dt As New DataTable
If dt IsNot Nothing And Not dt.Columns.Contains("currency") Then
dt.Columns.Add("count", GetType(Integer))
dt.Columns.Add("currency", GetType(String))
dt.Columns.Add("seller_VAT_id", GetType(String))
dt.Columns.Add("seller_address_city", GetType(String))
dt.Columns.Add("seller_address_country", GetType(String))
dt.Columns.Add("seller_address_postcode", GetType(String))
dt.Columns.Add("seller_address_street", GetType(String))
dt.Columns.Add("seller_name", GetType(String))
dt.Columns.Add("total_VAT_amount", GetType(Double))
dt.Columns.Add("invoice_id", GetType(String))
dt.Columns.Add("invoice_date", GetType(String))
dt.Columns.Add("status", GetType(String))
dt.Columns.Add("document_count", GetType(Integer))
End If
Dim failreDesc As String
Dim authResp = API.authenticate("VAT", "client1", "password")
Dim resp
If authResp <> "200" Then
MsgBox("Authentifizierung fehlgeschlagen" & vbNewLine & authResp)
Exit Sub
Else
'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then
'document_type = vat_invoice or receipt
If API.setJsonVAT(item.Name, UStV_POS.UStVPo_daId) Then
resp = API.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt)
Dim f As New frmVAT_ATEZ()
f.usrcntlVAT_ATEZ1.initDGV(dt)
If f.ShowDialog = DialogResult.OK Then
txtRgDatum.Text = f.usrcntlVAT_ATEZ1.va.invoice_date
txtRgNr.Text = f.usrcntlVAT_ATEZ1.va.invoice_id
txtStrasse.Text = f.usrcntlVAT_ATEZ1.va.seller_address_street
txtOrt.Text = f.usrcntlVAT_ATEZ1.va.seller_address_city
txtLand.Text = f.usrcntlVAT_ATEZ1.va.seller_address_country
txtPLZ.Text = f.usrcntlVAT_ATEZ1.va.seller_address_postcode
sbLeistender._value = f.usrcntlVAT_ATEZ1.va.seller_name
If IsNumeric(f.usrcntlVAT_ATEZ1.va.total_VAT_amount) AndAlso f.usrcntlVAT_ATEZ1.va.total_VAT_amount <> 0 AndAlso f.usrcntlVAT_ATEZ1.va.currency <> "" Then
Dim antr As New cUSTVAntrag(UStV_POS.UStVAn_ID)
If dt.Rows.Count > 0 Then
'1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR)
If f.usrcntlVAT_ATEZ1.va.currency = antr.UStVAn_Währungscode Then
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
If antr.UStVAn_Währungscode = "EUR" Then
txtUSTBetragEUR.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
If antr.UStVAn_Währungscode <> "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
Else
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUmrechnungskurs.Text = 1
End If
Else
Dim f As New frmVAT_ATEZ()
f.usrcntlVAT_ATEZ1.initDGV(dt)
If f.ShowDialog = DialogResult.OK Then
txtRgDatum.Text = f.usrcntlVAT_ATEZ1.va.invoice_date
txtRgNr.Text = f.usrcntlVAT_ATEZ1.va.invoice_id
txtStrasse.Text = f.usrcntlVAT_ATEZ1.va.seller_address_street
txtOrt.Text = f.usrcntlVAT_ATEZ1.va.seller_address_city
txtLand.Text = f.usrcntlVAT_ATEZ1.va.seller_address_country
txtPLZ.Text = f.usrcntlVAT_ATEZ1.va.seller_address_postcode
sbLeistender._value = f.usrcntlVAT_ATEZ1.va.seller_name
If IsNumeric(f.usrcntlVAT_ATEZ1.va.total_VAT_amount) AndAlso f.usrcntlVAT_ATEZ1.va.total_VAT_amount <> 0 AndAlso f.usrcntlVAT_ATEZ1.va.currency <> "" Then
Dim antr As New cUSTVAntrag(UStV_POS.UStVAn_ID)
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
End If
Else
'2. Antragswährung <> Belegswährung (EUR zu FREMD und FREMD zu EUR)
If antr.UStVAn_Währungscode = "EUR" Then
Dim kurs As New cEZB_Waehrungskurse(f.usrcntlVAT_ATEZ1.va.currency)
If f.usrcntlVAT_ATEZ1.va.currency <> "EUR" Then
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
ElseIf f.usrcntlVAT_ATEZ1.va.currency = "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUSTBetragEUR.Text = txtUSTBetrag.Text
txtUmrechnungskurs.Text = 1
End If
Else
'2.1 Antragswährung <> Belegswährung (FREMD zu FREMD)
txtUSTBetrag.Text = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, antr.UStVAn_Währungscode)
'1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR)
If f.usrcntlVAT_ATEZ1.va.currency = antr.UStVAn_Währungscode Then
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
If antr.UStVAn_Währungscode = "EUR" Then
txtUSTBetragEUR.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
If antr.UStVAn_Währungscode <> "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
Else
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUmrechnungskurs.Text = 1
End If
End If
Else
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
End If
Else
'2. Antragswährung <> Belegswährung (EUR zu FREMD und FREMD zu EUR)
If antr.UStVAn_Währungscode = "EUR" Then
Dim kurs As New cEZB_Waehrungskurse(f.usrcntlVAT_ATEZ1.va.currency)
If f.usrcntlVAT_ATEZ1.va.currency <> "EUR" Then
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
ElseIf f.usrcntlVAT_ATEZ1.va.currency = "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUSTBetragEUR.Text = txtUSTBetrag.Text
txtUmrechnungskurs.Text = 1
End If
Else
'2.1 Antragswährung <> Belegswährung (FREMD zu FREMD)
txtUSTBetrag.Text = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, antr.UStVAn_Währungscode)
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
End If
End If
End If
End If
End If
Else
Else
MsgBox(resp)
MsgBox(resp)
End If
End If
'Else
' MsgBox("Service is not running!")
'End If
End If
'Else
' MsgBox("Service is not running!")
'End If
End If
End If
End If
End Sub
Private Sub btnAPIUbload_Click(sender As Object, e As EventArgs) Handles btnAPIUbload.Click
If Not cnS_KIUPLOAD.Items.ContainsKey("vat_invoice") Then
Dim vat = New ToolStripMenuItem() With {.Text = "MWST-Rechnung(en)", .Name = "vat_invoice", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cnS_KIUPLOAD.Items.Add(vat)
AddHandler vat.Click, AddressOf mnuItemKIUPLOAD_Clicked
End If
If Not cnS_KIUPLOAD.Items.ContainsKey("receipt") Then
Dim receipt = New ToolStripMenuItem() With {.Text = "Quittung(en)", .Name = "receipt", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
cnS_KIUPLOAD.Items.Add(receipt)
AddHandler receipt.Click, AddressOf mnuItemKIUPLOAD_Clicked
End If
cnS_KIUPLOAD.Show(Cursor.Position)
End Sub
Private Sub txtStrasse_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtStrasse.PreviewKeyDown, txtPLZ.PreviewKeyDown, txtOrt.PreviewKeyDown, txtLand.PreviewKeyDown, txtStrassenNr.PreviewKeyDown, txtUIDNr.PreviewKeyDown