Frachtkostenberechnung und ATEZ-API

This commit is contained in:
2023-08-21 16:12:01 +02:00
parent a784a66b57
commit 0fc4063b19
12 changed files with 2706 additions and 1281 deletions

View File

@@ -1,4 +1,6 @@
Imports SDL
Imports GrapeCity.ActiveReports.Design.DdrDesigner.Designers
Imports Newtonsoft.Json.Linq
Imports SDL
Imports VERAG_PROG_ALLGEMEIN
@@ -20,6 +22,8 @@ Public Class frmATEZ_NCTS
Dim cDy_ART As String = If(FIRMA_DY = "ATILLA", "T2", "T1")
Dim VermerkeDAL As New cVermerkeDAL
Dim NCTS As DAKOSY_Worker.cDakosyNCTSOut = Nothing
Dim openExisting As Boolean = False
Dim id As Integer = -1
Property BezugsNr As String = ""
Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen
@@ -42,93 +46,121 @@ Public Class frmATEZ_NCTS
End Sub
Sub New(_id As Integer)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
openExisting = True
id = _id
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
lblInfo.Text = ""
Dim failreDesc As String
Dim selectedDocuments As Boolean = False
If id > 0 Then
For Each Row In dgvAnhaenge.Rows
selectedDocuments = IIf(DBNull.Value Is Row.Cells("anh_selekt").Value, False, Row.Cells("anh_selekt").Value)
If selectedDocuments Then Exit For
Next
If Not selectedDocuments Then
lblInfo.Text = "kein Anhang selektiert"
Cursor = Cursors.Default
Exit Sub
End If
Dim atezData As New cATEZ_NCTS_DATA
Dim atez As New cATEZ_NCTS_IN
With atezData
.AvisoId = AVISO.AvisoID
.SendungsId = SENDUNG.tblSnd_SendungID
.VERAG_LRN = lblBezugsnummer.Text
.LicensePlateContainerNo = txtLKWId.Text
.DAKOSY_TemplateCode = cboStammreferenz._value
.DAKOSY_IOPartner = txtDyMandant.Text
.DAKOSY_Division3 = txtDyNiederlassung.Text
.DepartureCustomsOffice = sbAbgangZollstelle._value
.DestinationCustomsOffice = sbBestimmungsZollstelle._value
.DatDeterminationLimit = txtDat.Text
.CoolingTemperature = IIf(cbxTemperatur.Checked, txtTransporttemp.Text, "")
.Carrier_Name = usrCntl_Carrier.kdFirma.Text
.Carrier_Adress_City = usrCntl_Carrier.txtOrt.Text
.Carrier_Adress_Country = usrCntl_Carrier.sbLand._value
.Carrier_Adress_Postcode = usrCntl_Carrier.txtPlz.Text
.Carrier_Adress_Street = usrCntl_Carrier.txtStrasse.Text
.Carrier_EORI = usrCntl_Carrier.txtEORI.Text
.Guarantee_GRN = "" 'leer
.SAVE()
End With
If sbDurchgangszollstelle1._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle1._value)
If sbDurchgangszollstelle2._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle2._value)
If sbDurchgangszollstelle3._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle3._value)
If sbDurchgangszollstelle4._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle4._value)
If sbDurchgangszollstelle5._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle5._value)
If sbDurchgangszollstelle6._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle6._value)
If sbRoute1._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute1._value)
If sbRoute2._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute2._value)
If sbRoute3._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute3._value)
If sbRoute4._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute4._value)
If sbRoute5._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute5._value)
If sbRoute6._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute6._value)
If sbRoute7._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute7._value)
If sbRoute8._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute8._value)
If sbRoute9._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute9._value)
Dim authResp = atez.authenticate()
If authResp <> "200" Then
failreDesc = "Authentifizierung fehlgeschlagen - " & authResp & vbNewLine & "Vorgang abgebrochen!"
lblInfo.Text = failreDesc
Exit Sub
End If
If Not atez.setJson(atezData, dgvAnhaenge) Then MsgBox("Fehler beim Erstellen der Daten")
Dim azetId = atez.SendRequestWithAuthHeader("application/json", failreDesc)
If failreDesc <> "" Then
atezData.status = failreDesc
atezData.SAVE()
lblInfo.Text = failreDesc
Dim atez_data = New cATEZ_NCTS_DATA(id)
If atez_data.json <> "" Then MsgBox(atez_data.json) 'InputBox(atez_data.json, "JSON-Text", , 100, 100)
Else
atezData.status = "Sent"
atezData.atezId = IIf(azetId IsNot Nothing, azetId, "")
atezData.SAVE()
Me.Close()
lblInfo.Text = ""
Dim failreDesc As String
Dim selectedDocuments As Boolean = False
For Each Row In dgvAnhaenge.Rows
selectedDocuments = IIf(DBNull.Value Is Row.Cells("anh_selekt").Value, False, Row.Cells("anh_selekt").Value)
If selectedDocuments Then Exit For
Next
If Not selectedDocuments Then
lblInfo.Text = "kein Anhang selektiert"
Cursor = Cursors.Default
Exit Sub
End If
Dim atezData As New cATEZ_NCTS_DATA
Dim atez As New cATEZ_NCTS_IN
With atezData
.AvisoId = AVISO.AvisoID
.SendungsId = SENDUNG.tblSnd_SendungID
.VERAG_LRN = lblBezugsnummer.Text
.LicensePlateContainerNo = txtLKWId.Text
.DAKOSY_TemplateCode = cboStammreferenz._value
.DAKOSY_IOPartner = txtDyMandant.Text
.DAKOSY_Division3 = txtDyNiederlassung.Text
.DepartureCustomsOffice = sbAbgangZollstelle._value
.DestinationCustomsOffice = sbBestimmungsZollstelle._value
.DatDeterminationLimit = txtDat.Text
.CoolingTemperature = IIf(cbxTemperatur.Checked, txtTransporttemp.Text, "")
.Carrier_Name = usrCntl_Carrier.kdFirma.Text
.Carrier_Adress_City = usrCntl_Carrier.txtOrt.Text
.Carrier_Adress_Country = usrCntl_Carrier.sbLand._value
.Carrier_Adress_Postcode = usrCntl_Carrier.txtPlz.Text
.Carrier_Adress_Street = usrCntl_Carrier.txtStrasse.Text
.Carrier_EORI = usrCntl_Carrier.txtEORI.Text
.Guarantee_GRN = "" 'leer
.SAVE()
End With
If sbDurchgangszollstelle1._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle1._value)
If sbDurchgangszollstelle2._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle2._value)
If sbDurchgangszollstelle3._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle3._value)
If sbDurchgangszollstelle4._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle4._value)
If sbDurchgangszollstelle5._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle5._value)
If sbDurchgangszollstelle6._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle6._value)
If sbDurchgangszollstelle7._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle7._value)
If sbDurchgangszollstelle8._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle8._value)
If sbDurchgangszollstelle9._value <> "" Then Dim TCO As New cATEZ_NCTS_TransitCustomsOffice(atezData.Id, sbDurchgangszollstelle9._value)
If sbRoute1._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute1._value)
If sbRoute2._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute2._value)
If sbRoute3._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute3._value)
If sbRoute4._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute4._value)
If sbRoute5._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute5._value)
If sbRoute6._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute6._value)
If sbRoute7._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute7._value)
If sbRoute8._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute8._value)
If sbRoute9._value <> "" Then Dim route As New cATEZ_NCTS_Routen(atezData.Id, sbRoute9._value)
Dim authResp = atez.authenticate()
If authResp <> "200" Then
failreDesc = "Authentifizierung fehlgeschlagen - " & authResp & vbNewLine & "Vorgang abgebrochen!"
lblInfo.Text = failreDesc
Exit Sub
End If
If Not atez.setJson(atezData, dgvAnhaenge) Then MsgBox("Fehler beim Erstellen der Daten")
Dim azetId = atez.SendRequestWithAuthHeader("application/json", failreDesc)
If failreDesc <> "" Then
atezData.status = failreDesc
atezData.SAVE()
lblInfo.Text = "Fehler in der API"
Else
atezData.status = "Sent"
atezData.atezId = IIf(azetId IsNot Nothing, azetId, "")
atezData.SAVE()
Me.Close()
End If
End If
End Sub
Function getBezugsnr(ByRef BezugsNr)
@@ -152,6 +184,7 @@ Public Class frmATEZ_NCTS
Return BezugsNr
End Function
Private Sub frmATEZNCTS_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Select Case FIRMA_DY
@@ -166,38 +199,115 @@ Public Class frmATEZ_NCTS
initSeachboxes()
initAttachment()
cboStammreferenz.fillWithSQL("SELECT [dySr_Stammreferenz],[dySr_Bezeichnung] FROM [tblDakosy_Stammreferenzen] WHERE dySr_Land='DE' AND dySr_Verfahren='NCTS' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung IN ('','" & txtDyNiederlassung.Text & "') and dySr_visible=1", False, "FMZOLL", True)
cboStammreferenz.changeItem("")
If openExisting Then
Button1.Text = "JSON"
getBezugsnr(BezugsNr)
txtLKWId.Text = AVISO.LKW_Nr
If id > 0 Then
Dim atez_data = New cATEZ_NCTS_DATA(id)
cbxTemperatur.Checked = IIf(AVISO.TransportTemperatur <> "", True, False)
txtTransporttemp.Text = AVISO.TransportTemperatur
lblInfo.Text = "Atez-ID " & atez_data.atezId
If AVISO.Frächter_KdNr IsNot Nothing AndAlso IsNumeric(AVISO.Frächter_KdNr) AndAlso AVISO.Frächter_KdNr > 0 Then
usrCntl_Carrier.kdFirma.initKdBox(Me)
usrCntl_Carrier.kdFirma.KdNr = AVISO.Frächter_KdNr
End If
lblBezugsnummer.Text = atez_data.VERAG_LRN
cboStammreferenz._value = atez_data.SendungsId
txtLKWId.Text = atez_data.LicensePlateContainerNo
sbBestimmungsZollstelle.SET_VALUE(atez_data.DestinationCustomsOffice)
sbAbgangZollstelle.SET_VALUE(atez_data.DepartureCustomsOffice)
cbxTemperatur.Checked = IIf(atez_data.CoolingTemperature <> "", True, False)
txtTransporttemp.Text = atez_data.CoolingTemperature
txtDat.Text = IIf(atez_data.DatDeterminationLimit IsNot DBNull.Value, atez_data.DatDeterminationLimit, "")
usrCntl_Carrier.kdFirma.Text = atez_data.Carrier_Name
usrCntl_Carrier.txtStrasse.Text = atez_data.Carrier_Adress_Street
usrCntl_Carrier.txtPlz.Text = atez_data.Carrier_Adress_Postcode
usrCntl_Carrier.txtOrt.Text = atez_data.Carrier_Adress_City
usrCntl_Carrier.sbLand._value = atez_data.Carrier_Adress_Country
usrCntl_Carrier.txtEORI.Text = atez_data.Carrier_EORI
Dim TCO_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_TransitCustomsOffice)
VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_TransitCustomsOffice.LOAD_LIST_ByNCTS(TCO_LIST, id)
Dim i As Integer = 0
For Each tco In TCO_LIST
If i = 0 Then sbDurchgangszollstelle1.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 1 Then sbDurchgangszollstelle2.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 2 Then sbDurchgangszollstelle3.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 3 Then sbDurchgangszollstelle4.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 4 Then sbDurchgangszollstelle5.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 5 Then sbDurchgangszollstelle6.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 6 Then sbDurchgangszollstelle7.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 7 Then sbDurchgangszollstelle8.SET_VALUE(If(tco.TransitCustomsOffice, ""))
If i = 8 Then sbDurchgangszollstelle9.SET_VALUE(If(tco.TransitCustomsOffice, ""))
i = i + 1
Next
Dim Route_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_Routen)
VERAG_PROG_ALLGEMEIN.cATEZ_NCTS_Routen.LOAD_LIST_ByNCTS(Route_LIST, id)
i = 0
For Each route In Route_LIST
If i = 0 Then sbRoute1.SET_VALUE(route.Route_Country)
If i = 1 Then sbRoute2.SET_VALUE(route.Route_Country)
If i = 2 Then sbRoute3.SET_VALUE(route.Route_Country)
If i = 3 Then sbRoute4.SET_VALUE(route.Route_Country)
If i = 4 Then sbRoute5.SET_VALUE(route.Route_Country)
If i = 5 Then sbRoute6.SET_VALUE(route.Route_Country)
If i = 6 Then sbRoute7.SET_VALUE(route.Route_Country)
If i = 7 Then sbRoute8.SET_VALUE(route.Route_Country)
If i = 8 Then sbRoute9.SET_VALUE(route.Route_Country)
i = i + 1
Next
pnlHead.Enabled = False
Button1.Enabled = True
Else
Button1.Enabled = False
End If
If AVISO.Grenzstelle.Replace("???", "") = "" Then
sbAbgangZollstelle.SET_VALUE(AVISO.Zollstelle)
Else
Dim GRZ As New VERAG_PROG_ALLGEMEIN.cGrenzstelle(AVISO.Grenzstelle)
If GRZ IsNot Nothing AndAlso GRZ.hasEntry Then
If GRZ.grz_ZollamtDST IsNot Nothing Then
sbAbgangZollstelle.SET_VALUE(GRZ.grz_ZollamtDST)
Button1.Text = "An ATEZ senden -->"
pnlHead.Enabled = True
cboStammreferenz.fillWithSQL("SELECT [dySr_Stammreferenz],[dySr_Bezeichnung] FROM [tblDakosy_Stammreferenzen] WHERE dySr_Land='DE' AND dySr_Verfahren='NCTS' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung IN ('','" & txtDyNiederlassung.Text & "') and dySr_visible=1", False, "FMZOLL", True)
cboStammreferenz.changeItem("")
getBezugsnr(BezugsNr)
txtLKWId.Text = AVISO.LKW_Nr
cbxTemperatur.Checked = IIf(AVISO.TransportTemperatur <> "", True, False)
txtTransporttemp.Text = AVISO.TransportTemperatur
If AVISO.Frächter_KdNr IsNot Nothing AndAlso IsNumeric(AVISO.Frächter_KdNr) AndAlso AVISO.Frächter_KdNr > 0 Then
usrCntl_Carrier.kdFirma.initKdBox(Me)
usrCntl_Carrier.kdFirma.KdNr = AVISO.Frächter_KdNr
End If
If AVISO.Grenzstelle.Replace("???", "") = "" Then
sbAbgangZollstelle.SET_VALUE(AVISO.Zollstelle)
Else
Dim GRZ As New VERAG_PROG_ALLGEMEIN.cGrenzstelle(AVISO.Grenzstelle)
If GRZ IsNot Nothing AndAlso GRZ.hasEntry Then
If GRZ.grz_ZollamtDST IsNot Nothing Then
sbAbgangZollstelle.SET_VALUE(GRZ.grz_ZollamtDST)
End If
End If
End If
sbDurchgangszollstelle1.SET_VALUE(If(AVISO.Durchgangszollstelle1, ""))
sbDurchgangszollstelle2.SET_VALUE(If(AVISO.Durchgangszollstelle2, ""))
sbDurchgangszollstelle3.SET_VALUE(If(AVISO.Durchgangszollstelle3, ""))
sbDurchgangszollstelle4.SET_VALUE(If(AVISO.Durchgangszollstelle4, ""))
sbDurchgangszollstelle5.SET_VALUE(If(AVISO.Durchgangszollstelle5, ""))
sbDurchgangszollstelle6.SET_VALUE(If(AVISO.Durchgangszollstelle6, ""))
End If
sbDurchgangszollstelle1.SET_VALUE(If(AVISO.Durchgangszollstelle1, ""))
sbDurchgangszollstelle2.SET_VALUE(If(AVISO.Durchgangszollstelle2, ""))
sbDurchgangszollstelle3.SET_VALUE(If(AVISO.Durchgangszollstelle3, ""))
sbDurchgangszollstelle4.SET_VALUE(If(AVISO.Durchgangszollstelle4, ""))
sbDurchgangszollstelle5.SET_VALUE(If(AVISO.Durchgangszollstelle5, ""))
sbDurchgangszollstelle6.SET_VALUE(If(AVISO.Durchgangszollstelle6, ""))
End Sub
@@ -325,7 +435,8 @@ CASE WHEN [anh_Art] = 'ATR-EUR1' then 'EUR'
End If
End Sub
Private Sub dtpDat_ValueChanged(sender As Object, e As EventArgs) Handles dtpDat.ValueChanged
Private Sub dtpDat_ValueChanged(sender As Object, e As EventArgs)
txtDat._value = CDate(sender.value).ToShortDateString
End Sub
End Class