Anbindung AZEZ-KI API, etc.

This commit is contained in:
2025-04-29 11:29:23 +02:00
parent 99d9549c95
commit aedf2c7375
8 changed files with 937 additions and 615 deletions

View File

@@ -1,4 +1,6 @@
Public Class usrcntlVAT_ATEZ Imports System.Web.UI.WebControls.Expressions
Public Class usrcntlVAT_ATEZ
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim user, pw As String Dim user, pw As String
Dim land As String Dim land As String
@@ -61,17 +63,19 @@
Sub initDataTable() Sub initDataTable()
dataTable.Columns.Add("count", GetType(Integer))
dataTable.Columns.Add("currency", GetType(String)) dataTable.Columns.Add("currency", GetType(String))
dataTable.Columns.Add("invoice_id", GetType(String)) dataTable.Columns.Add("invoice_id", GetType(String))
dataTable.Columns.Add("seller_VAT_id", GetType(String)) dataTable.Columns.Add("seller_VAT_id", GetType(String))
dataTable.Columns.Add("seller_address_city", GetType(String)) dataTable.Columns.Add("seller_address_city", GetType(String))
dataTable.Columns.Add("seller_address_country", GetType(String)) dataTable.Columns.Add("seller_address_country", GetType(String))
dataTable.Columns.Add("seller_address_postcode", GetType(String)) dataTable.Columns.Add("seller_address_postcode", GetType(String))
dataTable.Columns.Add("total_vat_amount", GetType(Double))
dataTable.Columns.Add("seller_address_street", GetType(String)) dataTable.Columns.Add("seller_address_street", GetType(String))
dataTable.Columns.Add("seller_name", GetType(String)) dataTable.Columns.Add("seller_name", GetType(String))
dataTable.Columns.Add("status", GetType(String)) dataTable.Columns.Add("status", GetType(String))
dataTable.Columns.Add("invoice_date", GetType(DateTime)) dataTable.Columns.Add("invoice_date", GetType(DateTime))
dataTable.Columns.Add("document_count", GetType(Integer))
End Sub End Sub
@@ -83,37 +87,64 @@
If dgvVAT.Columns.Count > 0 Then If dgvVAT.Columns.Count > 0 Then
With dgvVAT With dgvVAT
.RowHeadersWidth = 10 .RowHeadersWidth = 10
.Columns("count").HeaderText = "#"
.Columns("count").Width = 25
.Columns("currency").HeaderText = "Währung" .Columns("currency").HeaderText = "Währung"
.Columns("currency").Width = 50
.Columns("invoice_id").HeaderText = "Rechnungs-Nr" .Columns("invoice_id").HeaderText = "Rechnungs-Nr"
.Columns("seller_VAT_id").HeaderText = "UID-Nr" .Columns("seller_VAT_id").HeaderText = "UID-Nr"
.Columns("seller_VAT_id").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("seller_VAT_id").Width = 100
.Columns("seller_address_city").Width = 100 .Columns("seller_address_city").Width = 100
.Columns("seller_address_city").HeaderText = "Nr" .Columns("seller_address_city").HeaderText = "Stadt"
.Columns("seller_address_country").Visible = False .Columns("seller_address_country").Visible = False
.Columns("seller_address_country").HeaderText = "Land" .Columns("seller_address_country").HeaderText = "Land"
.Columns("seller_address_postcode").Width = 100 .Columns("total_vat_amount").HeaderText = "MWST"
.Columns("seller_address_postcode").Width = 75
.Columns("seller_address_postcode").HeaderText = "PLZ" .Columns("seller_address_postcode").HeaderText = "PLZ"
.Columns("seller_address_street").Width = 100 .Columns("seller_address_street").Width = 125
.Columns("seller_address_street").HeaderText = "Strasse" .Columns("seller_address_street").HeaderText = "Strasse"
.Columns("seller_name").Width = 100 .Columns("seller_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("seller_name").HeaderText = "Verkäufer" .Columns("seller_name").HeaderText = "Leistender"
.Columns("status").Width = 100 .Columns("status").Width = 75
.Columns("status").HeaderText = "Status" .Columns("status").HeaderText = "Status"
.Columns("invoice_date").Width = 100 .Columns("invoice_date").Width = 100
.Columns("invoice_date").HeaderText = "Rechnungsdatum" .Columns("invoice_date").HeaderText = "Rechnungsdatum"
.Columns("document_count").HeaderText = "Seite"
.Columns("document_count").Width = 50
End With End With
For Each row As DataGridViewRow In dgvVAT.Rows For Each row As DataGridViewRow In dgvVAT.Rows
If Not IsDBNull(row.Cells("status").Value) Then If Not IsDBNull(row.Cells("status").Value) Then
Dim akiv As String = (row.Cells("status").Value.ToString).ToLower Dim akiv As String = (row.Cells("status").Value.ToString).ToLower
If akiv = "active" Then If akiv = "success" Then
If Not IsDBNull(row.Cells("total_vat_amount").Value) Then
If IsNumeric(row.Cells("total_vat_amount").Value) AndAlso row.Cells("total_vat_amount").Value <> 0 Then
row.DefaultCellStyle.BackColor = Color.LightGreen row.DefaultCellStyle.BackColor = Color.LightGreen
Else
row.DefaultCellStyle.BackColor = Color.IndianRed
End If
Else
row.DefaultCellStyle.BackColor = Color.LightYellow
End If
ElseIf akiv = "nonactive" Then ElseIf akiv = "nonactive" Then
row.DefaultCellStyle.BackColor = Color.IndianRed row.DefaultCellStyle.BackColor = Color.IndianRed
Else Else
row.DefaultCellStyle.BackColor = Color.LightYellow row.DefaultCellStyle.BackColor = Color.LightYellow
End If End If
End If End If
Next Next
End If End If
@@ -127,7 +158,8 @@
' If Me.Parent.GetType() Is GetType(Form) Then o = Me.FindForm ' If Me.Parent.GetType() Is GetType(Form) Then o = Me.FindForm
For Each row As DataGridViewRow In dgvVAT.SelectedRows For Each row As DataGridViewRow In dgvVAT.SelectedRows
va = New VAT(IIf(IsDBNull(row.Cells("currency").Value), "", row.Cells("currency").Value), va = New VAT(IIf(IsDBNull(row.Cells("count").Value), "", row.Cells("count").Value),
IIf(IsDBNull(row.Cells("currency").Value), "", row.Cells("currency").Value),
IIf(IsDBNull(row.Cells("invoice_id").Value), "", row.Cells("invoice_id").Value), IIf(IsDBNull(row.Cells("invoice_id").Value), "", row.Cells("invoice_id").Value),
IIf(IsDBNull(row.Cells("seller_VAT_id").Value), "", row.Cells("seller_VAT_id").Value), IIf(IsDBNull(row.Cells("seller_VAT_id").Value), "", row.Cells("seller_VAT_id").Value),
IIf(IsDBNull(row.Cells("seller_address_city").Value), "", row.Cells("seller_address_city").Value), IIf(IsDBNull(row.Cells("seller_address_city").Value), "", row.Cells("seller_address_city").Value),
@@ -137,7 +169,8 @@
IIf(IsDBNull(row.Cells("seller_name").Value), "", row.Cells("seller_name").Value), IIf(IsDBNull(row.Cells("seller_name").Value), "", row.Cells("seller_name").Value),
IIf(IsDBNull(row.Cells("total_VAT_amount").Value), "", row.Cells("total_VAT_amount").Value), IIf(IsDBNull(row.Cells("total_VAT_amount").Value), "", row.Cells("total_VAT_amount").Value),
IIf(IsDBNull(row.Cells("invoice_date").Value) Or Not IsDate(row.Cells("invoice_date").Value), Nothing, CDate(row.Cells("invoice_date").Value)), IIf(IsDBNull(row.Cells("invoice_date").Value) Or Not IsDate(row.Cells("invoice_date").Value), Nothing, CDate(row.Cells("invoice_date").Value)),
IIf(IsDBNull(row.Cells("status").Value), "", row.Cells("status").Value)) IIf(IsDBNull(row.Cells("status").Value), "", row.Cells("status").Value),
IIf(IsDBNull(row.Cells("document_count").Value), "", row.Cells("document_count").Value))
Next Next
If va.status.ToLower <> "success" Then If va.status.ToLower <> "success" Then
@@ -161,6 +194,7 @@
Public Class VAT Public Class VAT
Public Property count As Integer
Public Property currency As String Public Property currency As String
Public Property invoice_id As String Public Property invoice_id As String
Public Property seller_VAT_id As String Public Property seller_VAT_id As String
@@ -172,9 +206,11 @@
Public Property invoice_date As Date Public Property invoice_date As Date
Public Property total_VAT_amount As String Public Property total_VAT_amount As String
Public Property status As String Public Property status As String
Public Property document_count As Integer
Public Sub New(_currency As String, _invoice_id As String, _seller_VAT_id As String, _seller_address_city As String, _seller_address_country As String, _seller_address_postcode As String, _seller_address_street As String, _seller_name As String, _total_VAT_amount As String, _invoice_date As DateTime, _status As String) Public Sub New(_count As Integer, _currency As String, _invoice_id As String, _seller_VAT_id As String, _seller_address_city As String, _seller_address_country As String, _seller_address_postcode As String, _seller_address_street As String, _seller_name As String, _total_VAT_amount As String, _invoice_date As DateTime, _status As String, _document_count As Integer)
count = _count
currency = _currency currency = _currency
invoice_id = _invoice_id invoice_id = _invoice_id
seller_VAT_id = _seller_VAT_id seller_VAT_id = _seller_VAT_id
@@ -186,6 +222,7 @@
total_VAT_amount = _total_VAT_amount total_VAT_amount = _total_VAT_amount
invoice_date = _invoice_date invoice_date = _invoice_date
status = _status status = _status
document_count = _document_count
End Sub End Sub

File diff suppressed because it is too large Load Diff

View File

@@ -123,6 +123,9 @@
<metadata name="ContextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ContextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>174, 17</value> <value>174, 17</value>
</metadata> </metadata>
<metadata name="cnS_KIUPLOAD.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>330, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@@ -1,9 +1,7 @@
Imports System.IO Imports System.IO
Imports System.Reflection Imports System.Reflection
Imports System.Windows.Documents Imports System.Windows.Documents
Imports com
Imports itextsharp.text.pdf Imports itextsharp.text.pdf
Imports itextsharp.text.pdf.parser
Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN
@@ -578,10 +576,7 @@ Public Class frmMDM_USTVAntrag
setinfofields() setinfofields()
If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then btnAbfertigungsNrVergeben.Visible = True If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then btnAbfertigungsNrVergeben.Visible = True
initScanUSTVA()
scanUSTVA.INIT(USTV_ANTRAG.UStVAn_KuNr, "MDM", "USTVA_KI_" & USTV_ANTRAG.UStVAn_ID)
btnPDFauslesen.Enabled = scanUSTVA.getDS().da_id > 0
End Sub End Sub
@@ -699,7 +694,7 @@ Public Class frmMDM_USTVAntrag
Return False Return False
End Function End Function
Shared Function loadUSTVFrom_PLOSE(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien, MWSTSummenAusBeleg) As Boolean Shared Function loadUSTVFrom_PLOSE(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean, MWSTSummenAusBeleg As Boolean) As Boolean
Try Try
Dim bytSchnittstellenNr = IIf(MWSTSummenAusBeleg, 11, 6) Dim bytSchnittstellenNr = IIf(MWSTSummenAusBeleg, 11, 6)
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID) Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
@@ -799,21 +794,21 @@ Public Class frmMDM_USTVAntrag
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung = "EUR" Then 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 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 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 End If
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then 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 End If
@@ -852,7 +847,7 @@ Public Class frmMDM_USTVAntrag
End Function End Function
Shared Function loadUSTVFrom_VERAG(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean Shared Function loadUSTVFrom_VERAG(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
Try Try
If Antrag_LandKz <> "AT" Then If Antrag_LandKz <> "AT" Then
@@ -937,7 +932,7 @@ Public Class frmMDM_USTVAntrag
Dim umrechKurs As Double = 1 Dim umrechKurs As Double = 1
Dim UST_EUR = CDbl(r.Item("SteuerbetragLokal")) 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_USteuerbetragEUR = UST_EUR
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
@@ -968,7 +963,7 @@ Public Class frmMDM_USTVAntrag
End Function End Function
Shared Function loadUSTVFrom_RMC(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean Shared Function loadUSTVFrom_RMC(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
Try Try
Dim bytSchnittstellenNr = 7 Dim bytSchnittstellenNr = 7
@@ -1023,12 +1018,12 @@ Public Class frmMDM_USTVAntrag
'umrechKurs = frmdw / eur 'umrechKurs = frmdw / 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 End If
If CDbl(r.Item("rmc_betragMWST")) <> 0 Then 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_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = r.Item("rmc_betragMWST") USTV_POS.UStVPo_USteuerbetrag = r.Item("rmc_betragMWST")
End If End If
@@ -1049,7 +1044,7 @@ Public Class frmMDM_USTVAntrag
End Try End Try
End Function End Function
Shared Function loadUSTVFrom_MSE(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean Shared Function loadUSTVFrom_MSE(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
Try Try
Dim bytSchnittstellenNr = 9 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden Dim bytSchnittstellenNr = 9 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID) Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
@@ -1100,7 +1095,7 @@ Public Class frmMDM_USTVAntrag
'umrechKurs = UST_org / UST_EUR '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 End If
@@ -1126,7 +1121,7 @@ Public Class frmMDM_USTVAntrag
End Try End Try
End Function End Function
Shared Function loadUSTVFrom_UTA(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean Shared Function loadUSTVFrom_UTA(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
Try Try
Dim bytSchnittstellenNr = 10 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden Dim bytSchnittstellenNr = 10 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID) Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
@@ -1181,7 +1176,7 @@ Public Class frmMDM_USTVAntrag
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then 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 End If
@@ -1208,7 +1203,7 @@ Public Class frmMDM_USTVAntrag
End Try End Try
End Function End Function
Shared Function loadUSTVFrom_IDS(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean Shared Function loadUSTVFrom_IDS(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
Try Try
'Dim bytSchnittstellenNr = 8 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden 'Dim bytSchnittstellenNr = 8 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim bytSchnittstellenNr = 12 Dim bytSchnittstellenNr = 12
@@ -1292,11 +1287,11 @@ Public Class frmMDM_USTVAntrag
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode) 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 End If
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then 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 End If
@@ -1323,7 +1318,7 @@ Public Class frmMDM_USTVAntrag
End Function End Function
Shared Function loadUSTVFrom_ATEZ_KI(UStVAn_ID As Integer, Antrag_LandKz As String, atez_api As cATEZ_NCTS_IN, daid As Integer) As Boolean Shared Function loadUSTVFrom_ATEZ_KI(UStVAn_ID As Integer, Antrag_LandKz As String, atez_api As cATEZ_NCTS_IN, daid As Integer, pageCount As Integer, documentType As String) As Boolean
Try Try
Dim bytSchnittstellenNr = -1 Dim bytSchnittstellenNr = -1
@@ -1335,6 +1330,7 @@ Public Class frmMDM_USTVAntrag
If dt IsNot Nothing And Not dt.Columns.Contains("currency") Then 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("currency", GetType(String))
dt.Columns.Add("seller_VAT_id", GetType(String)) dt.Columns.Add("seller_VAT_id", GetType(String))
dt.Columns.Add("seller_address_city", GetType(String)) dt.Columns.Add("seller_address_city", GetType(String))
@@ -1346,6 +1342,7 @@ Public Class frmMDM_USTVAntrag
dt.Columns.Add("invoice_id", GetType(String)) dt.Columns.Add("invoice_id", GetType(String))
dt.Columns.Add("invoice_date", GetType(String)) dt.Columns.Add("invoice_date", GetType(String))
dt.Columns.Add("status", GetType(String)) dt.Columns.Add("status", GetType(String))
dt.Columns.Add("document_count", GetType(Integer))
End If End If
Dim failreDesc As String Dim failreDesc As String
@@ -1357,8 +1354,8 @@ Public Class frmMDM_USTVAntrag
Else Else
'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then 'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then
'document_type = vat_invoice or receipt
If atez_api.setJsonVAT("vat_invoice", daid) Then If atez_api.setJsonVAT(documentType, daid) Then
resp = atez_api.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt) resp = atez_api.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt)
@@ -1371,27 +1368,87 @@ Public Class frmMDM_USTVAntrag
If f.ShowDialog = DialogResult.OK Then If f.ShowDialog = DialogResult.OK Then
Dim DS_ORIG_alreadyDeleted As Boolean = False
Dim DS_ORIG As New cDATENSERVER(daid)
Dim fi_orig As New FileInfo(DS_ORIG.GET_TOP1_PATH())
For Each r As DataGridViewRow In f.usrcntlVAT_ATEZ1.dgvVAT.SelectedRows For Each r As DataGridViewRow In f.usrcntlVAT_ATEZ1.dgvVAT.SelectedRows
Dim sql As New SQL Dim sql As New SQL
'Dim kdnr = r.Cells("Kundennummer").Value 'Dim kdnr = r.Cells("Kundennummer").Value
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
Dim reDat As Date = IIf(Not IsDBNull(r.Cells("invoice_date").Value) AndAlso IsDate(r.Cells("invoice_date").Value), r.Cells("invoice_date").Value, Nothing)
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID] USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
USTV_POS.UStVPo_ReDat = r.Cells("invoice_date").Value USTV_POS.UStVPo_ReDat = reDat.ToShortDateString
USTV_POS.UStVPo_ReNr = r.Cells("invoice_id").Value.ToString USTV_POS.UStVPo_ReNr = r.Cells("invoice_id").Value.ToString
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
USTV_POS.UStVPo_Leistender =
USTV_POS.UStVPo_Leistungsbezeichnung = "Maut/Diesel" USTV_POS.UStVPo_Leistungsbezeichnung = "Maut/Diesel"
USTV_POS.UStVPo_Schnittstelle = True USTV_POS.UStVPo_Schnittstelle = True
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
If pageCount = r.Cells("document_count").Value Then
USTV_POS.UStVPo_daId_loeschbar = True
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "ATEZ_KI", Now.Year, Now.ToString("yyyyMMdd"), fi_orig.Name, USTV_ANTRAG.UStVAn_KuNr, False)
If Not DS_NEW.uploadDataToDATENSERVER(fi_orig.FullName) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
If DS_NEW.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
USTV_POS.UStVPo_daId = DS_NEW.da_id
'gesamtePDF wird gespeichert, alte DS kann gelscht werden:
If DS_ORIG.DELETE_COMPLETE() Then DS_ORIG_alreadyDeleted = True
Else
USTV_POS.UStVPo_daId_loeschbar = True
'todo: Logik Aufsplittung des PDF in Teilpdfs
Dim pagestart = 0
For Each pages As DataRow In dt.Rows
pagestart += CInt(pages.Item("document_count"))
If pages.Item("count") = r.Cells("count").Value Then Exit For
Next
Dim TMP_Path_Old = fi_orig.FullName
Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi_orig.Name, fi_orig.Extension,, True, "USTVA_POS")
VERAG_PROG_ALLGEMEIN.cAllgemein.ExtractPdfPages(TMP_Path_Old, TMP_Path_New, pagestart, r.Cells("document_count").Value)
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "ATEZ_KI", Now.Year, Now.ToString("yyyyMMdd"), fi_orig.Name, USTV_ANTRAG.UStVAn_KuNr, False)
If Not DS_NEW.uploadDataToDATENSERVER(TMP_Path_New) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
If DS_NEW.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
USTV_POS.UStVPo_daId = DS_NEW.da_id
End If
Dim leistenderName As String = r.Cells("seller_name").Value Dim leistenderName As String = r.Cells("seller_name").Value
Dim leistenderUID As String = r.Cells("seller_VAT_id").Value
Dim leistender As New cUStVLeistender(leistenderUID, True)
If leistender.UStV_LeistenderId < 1 Then
leistender = New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz)
Dim leistender As New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz) End If
If leistender.UStV_LeistenderId < 1 Then If leistender.UStV_LeistenderId < 1 Then
leistender = New cUStVLeistender(leistenderName) leistender = New cUStVLeistender(leistenderName)
End If End If
@@ -1400,7 +1457,6 @@ Public Class frmMDM_USTVAntrag
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now() USTV_POS.UStVPo_Zeitstempel = Now()
'1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR) '1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR)
If r.Cells("currency").Value = USTV_ANTRAG.UStVAn_Währungscode Then If r.Cells("currency").Value = USTV_ANTRAG.UStVAn_Währungscode Then
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode) Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
@@ -1447,8 +1503,15 @@ Public Class frmMDM_USTVAntrag
USTV_POS.INSERT() USTV_POS.INSERT()
End If
Next Next
If Not DS_ORIG_alreadyDeleted Then
DS_ORIG.DELETE_COMPLETE()
End If
End If End If
@@ -1844,14 +1907,15 @@ Public Class frmMDM_USTVAntrag
End If End If
Dim Leistungsbezeichnung = ""
If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value = 3 Then Leistungsbezeichnung = UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_Leistungsbezeichnung
If setArchiv(UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_Leistungsbezeichnung) Then If setArchiv(UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr, Leistungsbezeichnung) Then
If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then
reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID) reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID)
End If End If
init() init()
End If End If
End If End If
UstCntlUSTV_AntragPosition1.Enabled = False UstCntlUSTV_AntragPosition1.Enabled = False
@@ -2770,8 +2834,10 @@ Public Class frmMDM_USTVAntrag
End If End If
Dim Leistungsbezeichnung = ""
If r.Cells("UStVPo_SchnittstellenNr").Value = 3 Then Leistungsbezeichnung = r.Cells("UStVPo_Leistungsbezeichnung").Value
If setArchiv(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, r.Cells("UStVPo_Leistungsbezeichnung").Value) Then If setArchiv(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Leistungsbezeichnung) Then
Dim sqlstr = " DELETE FROM tblUStVPositionen WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVPo_ID=" & r.Cells("UStVPo_ID").Value Dim sqlstr = " DELETE FROM tblUStVPositionen WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVPo_ID=" & r.Cells("UStVPo_ID").Value
If Not SQL.doSQL(sqlstr, "FMZOLL") Then If Not SQL.doSQL(sqlstr, "FMZOLL") Then
Exit Sub Exit Sub
@@ -2883,21 +2949,74 @@ Public Class frmMDM_USTVAntrag
btnPDFauslesen.Enabled = scanUSTVA.getDS.da_id > 0 btnPDFauslesen.Enabled = scanUSTVA.getDS.da_id > 0
End Sub End Sub
Private Sub btnPDFauslesen_Click(sender As Object, e As EventArgs) Handles btnPDFauslesen.Click Private Sub mnuItemKIUPLOAD_Clicked(sender As Object, e As EventArgs)
If scanUSTVA.getDS().da_id > 0 Then cnS_KIUPLOAD.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
Dim daid As Integer = scanUSTVA.getDS().da_id
If daid > 0 Then
Dim DS As New cDATENSERVER(daid)
If DS.GET_TOP1_PATH <> "" Then
Dim pdfR As New PdfReader(DS.GET_TOP1_PATH)
If atez_api IsNot Nothing Then If atez_api IsNot Nothing Then
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
loadUSTVFrom_ATEZ_KI(UStVAn_ID, Antrag_LandKz, atez_api, scanUSTVA.getDS().da_id)
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten der " & item.Text & " per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
'document_type = vat_invoice or receipt
loadUSTVFrom_ATEZ_KI(UStVAn_ID, Antrag_LandKz, atez_api, scanUSTVA.getDS().da_id, pdfR.NumberOfPages, item.Name)
initScanUSTVA()
End If End If
Else
DS.DELETE_COMPLETE()
initScanUSTVA()
End If End If
init()
End If End If
End If
End If
End Sub
Private Sub btnPDFauslesen_Click(sender As Object, e As EventArgs) Handles btnPDFauslesen.Click
'document_type = vat_invoice or receipt
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 End Sub
@@ -2920,4 +3039,14 @@ Public Class frmMDM_USTVAntrag
Private Sub initScanUSTVA()
scanUSTVA.INIT(USTV_ANTRAG.UStVAn_KuNr, "MDM", "USTVA_KI_" & USTV_ANTRAG.UStVAn_ID)
btnPDFauslesen.Enabled = scanUSTVA.getDS().da_id > 0
End Sub
End Class End Class

View File

@@ -616,6 +616,7 @@ Public Class ustCntlUSTV_AntragPosition
dt.Columns.Add("invoice_id", GetType(String)) dt.Columns.Add("invoice_id", GetType(String))
dt.Columns.Add("invoice_date", GetType(String)) dt.Columns.Add("invoice_date", GetType(String))
dt.Columns.Add("status", GetType(String)) dt.Columns.Add("status", GetType(String))
dt.Columns.Add("document_count", GetType(Integer))
End If End If
Dim failreDesc As String Dim failreDesc As String

View File

@@ -17,9 +17,17 @@ Public Class cUStVLeistender
Dim SQL As New SQL Dim SQL As New SQL
Sub New(UStV_Leistender As String) Sub New(UStV_Leistender As String, Optional searchbyUID As Boolean = False)
If Not searchbyUID Then
Me.UStV_Leistender = UStV_Leistender Me.UStV_Leistender = UStV_Leistender
LOAD() LOAD()
Else
Me.UstV_Leistender_UstNr = UStV_Leistender
LOADBYUID()
End If
End Sub End Sub
Sub New(Id As Integer) Sub New(Id As Integer)
@@ -147,6 +155,35 @@ Public Class cUStVLeistender
End Try End Try
End Sub End Sub
Public Sub LOADByUID()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblUStVLeistender WHERE UstV_Leistender_UstNr=@UstV_Leistender_UstNr ", conn)
cmd.Parameters.AddWithValue("@UstV_Leistender_UstNr", UstV_Leistender_UstNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOADByLand(Land As String) Public Sub LOADByLand(Land As String)
Try Try
hasEntry = False hasEntry = False

View File

@@ -854,27 +854,19 @@ Public Class cATEZ_NCTS_IN
success = jsonResult.LoadSb(sbResponseBody) success = jsonResult.LoadSb(sbResponseBody)
jsonResult.Emit() jsonResult.Emit()
'--------------------------------
Dim num As Integer = jsonResult.Size
Dim data
Dim sizeArray = jsonResult.SizeOfArray("data")
If dt IsNot Nothing Then If dt IsNot Nothing Then
Dim data If sizeArray > 0 Then
Dim num As Integer = 1
If True Then num = sizeArray
data = New Chilkat.JsonObject
data = jsonResult
If (data.LastMethodSuccess = False) Then
Debug.WriteLine("data member not found.")
End If
If num = -1 Then
Return "FEHLER Array Data ist leer"
End If
Else
num = jsonResult.SizeOfArray("data")
data = jsonResult.ArrayOf("data") data = jsonResult.ArrayOf("data")
If (jsonResult.LastMethodSuccess = False) Then If (jsonResult.LastMethodSuccess = False) Then
@@ -882,15 +874,82 @@ Public Class cATEZ_NCTS_IN
End If End If
Else
data = New Chilkat.JsonObject
data = jsonResult
num = 1 'nur ein Object
If (data.LastMethodSuccess = False) Then
Debug.WriteLine("data member not found.")
End If End If
Dim j As Integer = 0
End If
'Dim i As Integer'
'For i = 0 To num - 1
' Dim name As String = jsonResult.NameAt(i)
' Dim value As String = jsonResult.StringAt(i)
' Debug.WriteLine(name & ": " & value)
' Dim iValue As Integer = jsonResult.IntAt(i)
' Debug.WriteLine(name & " as integer: " & iValue)
'Next
'--------------------------------
'num = jsonResult.SizeOfArray("data")
'If num = -1 Then
' If dt IsNot Nothing Then
' Dim data
' 'TODO: Check if array, else jsonObject
' If True Then
' data = New Chilkat.JsonObject
' data = jsonResult
' If (data.LastMethodSuccess = False) Then
' Debug.WriteLine("data member not found.")
' End If
' If num = -1 Then
' Return "FEHLER Array Data ist leer"
' End If
' Else
' data = jsonResult.ArrayOf("data")
' If (jsonResult.LastMethodSuccess = False) Then
' Return "data not found."
' End If
'End If
'--------------------------------
Dim j As Integer = 0
While j < num While j < num
Dim invoice As Chilkat.JsonObject = data.ObjectAt(j) Dim invoice As Chilkat.JsonObject = jsonResult.ObjectAt(j)
Dim R As DataRow = dt.NewRow Dim R As DataRow = dt.NewRow
R("count") = j + 1
R("currency") = checkNullStr(invoice.StringOf("currency")) R("currency") = checkNullStr(invoice.StringOf("currency"))
Dim totalAmonut As String = invoice.StringOf("total_VAT_amount").Replace(".", ",") Dim totalAmonut As String = invoice.StringOf("total_VAT_amount").Replace(".", ",")
R("total_VAT_amount") = CDbl(checkNulDbl(totalAmonut)) R("total_VAT_amount") = CDbl(checkNulDbl(totalAmonut))
@@ -903,6 +962,7 @@ Public Class cATEZ_NCTS_IN
R("seller_address_postcode") = checkNullStr(invoice.StringOf("seller_address_postcode")) R("seller_address_postcode") = checkNullStr(invoice.StringOf("seller_address_postcode"))
R("seller_address_street") = checkNullStr(invoice.StringOf("seller_address_street")) R("seller_address_street") = checkNullStr(invoice.StringOf("seller_address_street"))
R("status") = checkNullStr(jsonResult.StringOf("status")) R("status") = checkNullStr(jsonResult.StringOf("status"))
R("document_count") = checkNulInt(jsonResult.IntOf("document_count"))
dt.Rows.Add(R) dt.Rows.Add(R)
@@ -942,6 +1002,17 @@ Public Class cATEZ_NCTS_IN
Return 0 Return 0
End If End If
End Function End Function
Public Shared Function checkNulInt(ByVal o As Object) As Double
If o IsNot Nothing And o IsNot DBNull.Value Then
If IsNumeric(o) Then
Return CInt(o)
Else
Return 0
End If
Else
Return 0
End If
End Function
Shared Function setJsonNCTS(ncts As cATEZ_NCTS_DATA) Shared Function setJsonNCTS(ncts As cATEZ_NCTS_DATA)

View File

@@ -2,6 +2,7 @@
Imports GrapeCity.ActiveReports.Document Imports GrapeCity.ActiveReports.Document
Imports System.ComponentModel Imports System.ComponentModel
Imports System.Data.SqlClient Imports System.Data.SqlClient
Imports System.IO
Public Class cAllgemein Public Class cAllgemein
Public Shared FIRMA As String Public Shared FIRMA As String
@@ -597,6 +598,40 @@ Public Class cAllgemein
End If End If
Return "" Return ""
End Function End Function
Public Shared Function ExtractPdfPages(ByVal SourceFile As String, ByVal TargetFile As String, pageStart As Integer, pagesEnd As Integer) As Boolean 'ITEXTSHARP
Try
Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
If SourceFile.Contains(" ") Then SourceFile = SourceFile
Dim Reader As New iTextSharp.text.pdf.PdfReader(SourceFile)
If Not TargetFile.ToLower.EndsWith(".pdf") Then TargetFile = TargetFile & ".pdf"
Dim srcDoc As New iTextSharp.text.Document() 'Reader.GetPageSizeWithRotation(0))
Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New FileStream(TargetFile, System.IO.FileMode.Create))
PdfCopyProvider.SetFullCompression()
srcDoc.Open()
For p As Integer = pageStart To pagesEnd
If p > Reader.NumberOfPages Then
MsgBox("Seitenanzahl überschritten!")
srcDoc.Close() : Reader.Close()
Return False
End If
impPage = PdfCopyProvider.GetImportedPage(Reader, p)
' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
PdfCopyProvider.SetPageSize(New iTextSharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, Reader.GetPageRotation(p)))
' ----- PDF Seite in das neue Dokument einfügen
PdfCopyProvider.AddPage(impPage)
Next
' ----- neues PDF Dokument und den Reader schließen
srcDoc.Close()
Reader.Close()
Return True
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return False
End Function
End Class End Class
Public Class cNCTS_GUARANTEES Public Class cNCTS_GUARANTEES
@@ -635,4 +670,6 @@ Public Class cNCTS_GUARANTEES
End Function End Function
End Class End Class