From c7dc4e2ba27b9330d7d33940401a833a36877725 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 30 Apr 2025 09:39:58 +0200 Subject: [PATCH] ustva_antrag --- .../ustCntlUSTV_AntragPosition.Designer.vb | 31 ++- SDL/USTV/ustCntlUSTV_AntragPosition.resx | 3 + SDL/USTV/ustCntlUSTV_AntragPosition.vb | 229 ++++++++++-------- 3 files changed, 155 insertions(+), 108 deletions(-) diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb b/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb index 8383fa27..592b2352 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.Designer.vb @@ -49,6 +49,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.lblAenderungsdatum = New System.Windows.Forms.Label() Me.lblSachbearbeiter = New System.Windows.Forms.Label() Me.pnl = New System.Windows.Forms.Panel() + Me.btnDel = New System.Windows.Forms.Button() Me.cbxAntragsfilter = New VERAG_PROG_ALLGEMEIN.MyCheckBoxValue(Me.components) Me.lblWarning = New System.Windows.Forms.Label() Me.btnLeistenderSave = New System.Windows.Forms.Button() @@ -81,7 +82,7 @@ Partial Class ustCntlUSTV_AntragPosition Me.TabPage1 = New System.Windows.Forms.TabPage() Me.UsrcntlPDFScanList1 = New VERAG_PROG_ALLGEMEIN.usrcntlPDFScanList() Me.scanLieferschein = New VERAG_PROG_ALLGEMEIN.usrcntlPDFScan() - Me.btnDel = New System.Windows.Forms.Button() + Me.cnS_KIUPLOAD = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.tabDok.SuspendLayout() Me.tbcntr.SuspendLayout() Me.tabVollmachten.SuspendLayout() @@ -428,6 +429,19 @@ Partial Class ustCntlUSTV_AntragPosition Me.pnl.Size = New System.Drawing.Size(1300, 239) Me.pnl.TabIndex = 1 ' + 'btnDel + ' + Me.btnDel.BackgroundImage = Global.SDL.My.Resources.Resources.del + Me.btnDel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnDel.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnDel.Location = New System.Drawing.Point(834, 162) + Me.btnDel.Name = "btnDel" + Me.btnDel.Size = New System.Drawing.Size(36, 24) + Me.btnDel.TabIndex = 25 + Me.btnDel.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnDel.UseVisualStyleBackColor = True + Me.btnDel.Visible = False + ' 'cbxAntragsfilter ' Me.cbxAntragsfilter._date = Nothing @@ -981,18 +995,10 @@ Partial Class ustCntlUSTV_AntragPosition Me.scanLieferschein.TabIndex = 2 Me.scanLieferschein.Visible = False ' - 'btnDel + 'cnS_KIUPLOAD ' - Me.btnDel.BackgroundImage = Global.SDL.My.Resources.Resources.del - Me.btnDel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.btnDel.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnDel.Location = New System.Drawing.Point(834, 162) - Me.btnDel.Name = "btnDel" - Me.btnDel.Size = New System.Drawing.Size(36, 24) - Me.btnDel.TabIndex = 25 - Me.btnDel.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnDel.UseVisualStyleBackColor = True - Me.btnDel.Visible = False + Me.cnS_KIUPLOAD.Name = "ContextMenuStrip1" + Me.cnS_KIUPLOAD.Size = New System.Drawing.Size(61, 4) ' 'ustCntlUSTV_AntragPosition ' @@ -1081,4 +1087,5 @@ Partial Class ustCntlUSTV_AntragPosition Friend WithEvents cbxAntragsfilter As VERAG_PROG_ALLGEMEIN.MyCheckBoxValue Friend WithEvents btnAPIUbload As Button Friend WithEvents btnDel As Button + Friend WithEvents cnS_KIUPLOAD As ContextMenuStrip End Class diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.resx b/SDL/USTV/ustCntlUSTV_AntragPosition.resx index 1af7de15..40bf4eff 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.resx +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.vb b/SDL/USTV/ustCntlUSTV_AntragPosition.vb index 250397f4..df49d222 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.vb +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.vb @@ -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