Bugfix ATEZ und Digicust

This commit is contained in:
2023-09-12 12:19:29 +02:00
parent b48531626d
commit 629be8e387
5 changed files with 281 additions and 206 deletions

View File

@@ -1,4 +1,5 @@
Imports DocumentFormat.OpenXml.Vml.Presentation
Imports DAKOSY_Worker.DEERRE
Imports DocumentFormat.OpenXml.Vml.Presentation
Imports GrapeCity.ActiveReports.Design.DdrDesigner.Designers
Imports GrapeCity.ActiveReports.ReportsCore.Tools
Imports Newtonsoft.Json.Linq
@@ -10,7 +11,7 @@ Public Class frmDigicust
Dim api As cDigicustAPI
Dim dig_sendung As New cDigicustSendungen
Dim ART As String = ""
Dim FilialenNr As Integer
@@ -21,18 +22,15 @@ Public Class frmDigicust
Public CopyFromZA_Id As Integer = -1
Dim FIRMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Dim ZOLL_SYSTEM = "DAKOSY"
Dim DY As DAKOSY_Worker.cDakosy_Zollanmeldungen = Nothing
Public ATT As List(Of String)
Dim AVISO As New cAviso
Dim zusatz As String
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
Dim dgv As DataGridView = Nothing
Dim atez_data As cATEZ_NCTS_DATA
Dim atez = New cATEZ_NCTS_IN
Property BezugsNr As String = ""
Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen
@@ -81,9 +79,9 @@ Public Class frmDigicust
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
If atez_data.status = "Sent" Then
'If atez_data.status = "Sent" Then
End If
'End If
If Not checkAttachment() Then
@@ -98,40 +96,42 @@ Public Class frmDigicust
Me.Cursor = Cursors.WaitCursor
Dim settings = New cDigicustSettings(cboStammreferenz._value)
lblInfo.Text = ""
With dig_sendung
'With atez_data
.avisoId = AVISO.AvisoID
' .SendungsId = SENDUNG.tblSnd_SendungID
.reference = lblBezugsnummer.Text
' ' .LicensePlateContainerNo = txtLKWId.Text
' ' .DAKOSY_TemplateCode = cboStammreferenz._value
' ' .DAKOSY_IOPartner = txtDyMandant.Text
' ' .DAKOSY_Division3 = txtDyNiederlassung.Text
' ' .DestinationCustomsOffice = sbBestimmungsZollstelle._value
' ' .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
' .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
' .DestinationCustomsOffice = sbBestimmungsZollstelle._value
' .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
' 'For Each doc As DataGridViewRow In dgvAnhaenge.Rows
' ' Dim isSelected = IIf(DBNull.Value Is doc.Cells("anh_selekt").Value, False, doc.Cells("anh_selekt").Value)
' ' If isSelected Then
' ' .selectedDocuments &= doc.Cells("anh_docId").Value & ", "
' ' End If
' 'Next
' For Each doc As DataGridViewRow In dgvAnhaenge.Rows
' Dim isSelected = IIf(DBNull.Value Is doc.Cells("anh_selekt").Value, False, doc.Cells("anh_selekt").Value)
' If isSelected Then
' .selectedDocuments &= doc.Cells("anh_docId").Value & ", "
' End If
' Next
'.SAVE()
' .SAVE()
'End With
End With
'sendAtezData(atez_data, atez)
sendDigicustData(dig_sendung, api, settings)
Me.Cursor = Cursors.Default
@@ -142,48 +142,53 @@ Public Class frmDigicust
End Sub
Private Sub sendAtezData(atezData As cATEZ_NCTS_DATA, atez As cATEZ_NCTS_IN)
Private Sub sendDigicustData(dig As cDigicustSendungen, api As cDigicustAPI, settings As cDigicustSettings)
Dim failreDesc As String
Dim authResp = atez.authenticate()
Dim authResp = api.authenticate(rtfToken.Text)
If authResp <> "200" Then
failreDesc = "Authentifizierung fehlgeschlagen - " & authResp & vbNewLine & "Vorgang abgebrochen!"
lblInfo.Text = failreDesc
Exit Sub
End If
Dim token = rtfToken.Text
If Not atez.setJson(atezData) Then MsgBox("Fehler beim Erstellen der Daten" & vbNewLine & "Vorgang abgebrochen!")
If Not atez.setJsonPDF(atezData, dgvAnhaenge) Then MsgBox("Fehler beim Erstellen der PDF-Daten, kein Anhang ausgewählt!" & vbNewLine & "Vorgang abgebrochen!")
Dim azetId = atez.SendRequestWithAuthHeader("application/json", failreDesc)
If failreDesc <> "" Then
If atezData.status = "Draft" Then
MsgBox("Fehler beim Senden" & vbNewLine & failreDesc)
atezData.fehlerbeschreibung = failreDesc
atezData.SAVE()
Exit Sub
End If
Dim result As MsgBoxResult = MsgBox("Fehler beim Senden" & vbNewLine & failreDesc & vbNewLine & "Soll NCTS als Entwurf gespeichert werden?", vbYesNoCancel)
If result = vbYes Then
atezData.status = "Draft"
atezData.fehlerbeschreibung = failreDesc
atezData.SAVE()
End If
lblInfo.Text = "Fehler in der API "
Else
atezData.status = "Sent"
atezData.atezId = IIf(azetId IsNot Nothing, azetId, "")
atezData.SAVE()
Me.Close()
If api.uploadingCase(dig, settings, dgvAnhaenge) Then
dig.SAVE()
End If
'If Not atez.setJson(atezData) Then MsgBox("Fehler beim Erstellen der Daten" & vbNewLine & "Vorgang abgebrochen!")
'If Not atez.setJsonPDF(atezData, dgvAnhaenge) Then MsgBox("Fehler beim Erstellen der PDF-Daten, kein Anhang ausgewählt!" & vbNewLine & "Vorgang abgebrochen!")
'Dim azetId = atez.SendRequestWithAuthHeader("application/json", failreDesc)
'If failreDesc <> "" Then
' If atezData.status = "Draft" Then
' MsgBox("Fehler beim Senden" & vbNewLine & failreDesc)
' atezData.fehlerbeschreibung = failreDesc
' atezData.SAVE()
' Exit Sub
' End If
' Dim result As MsgBoxResult = MsgBox("Fehler beim Senden" & vbNewLine & failreDesc & vbNewLine & "Soll NCTS als Entwurf gespeichert werden?", vbYesNoCancel)
' If result = vbYes Then
' atezData.status = "Draft"
' atezData.fehlerbeschreibung = failreDesc
' atezData.SAVE()
' End If
' lblInfo.Text = "Fehler in der API "
'Else
' atezData.status = "Sent"
' atezData.atezId = IIf(azetId IsNot Nothing, azetId, "")
' atezData.SAVE()
' Me.Close()
'End If
End Sub
Function getBezugsnr(ByRef BezugsNr)
@@ -195,7 +200,7 @@ Public Class frmDigicust
If dgv IsNot Nothing AndAlso dgv.Rows.Count > 0 Then
BezugsNr = BezugsNrTmp & "/" & zusatz
For Each r As DataGridViewRow In dgv.Rows
If r.Cells("BezugsNr").Value = BezugsNr Then
If r.Cells("reference").Value = BezugsNr Then
If zusatz.Length = 1 Then
zusatz = Chr(Asc(zusatz.ToString) + 1)
@@ -240,91 +245,93 @@ Public Class frmDigicust
initAttachment()
'If openExisting Then
cboStammreferenz.fillWithSQL("SELECT [id],[description] FROM [tblDigicust_Settings] WHERE companyId = " & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID & " and valid =1", False, "FMZOLL", True)
cboStammreferenz.changeItem("")
' If id > 0 Then
' atez_data = New cATEZ_NCTS_DATA(id)
If openExisting Then
' If atez_data.atezId <> "" Then
' lblInfo.Text = "Atez-ID " & atez_data.atezId
' Else
' lblInfo.Text = "Status: " & atez_data.status
' End If
' If id > 0 Then
' atez_data = New cATEZ_NCTS_DATA(id)
' If atez_data.atezId <> "" Then
' lblInfo.Text = "Atez-ID " & atez_data.atezId
' Else
' lblInfo.Text = "Status: " & atez_data.status
' End If
' lblBezugsnummer.Text = atez_data.VERAG_LRN
' lblBezugsnummer.Text = atez_data.VERAG_LRN
' 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(atez_data.DAKOSY_TemplateCode)
' 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(atez_data.DAKOSY_TemplateCode)
' txtLKWId.Text = atez_data.LicensePlateContainerNo
' txtLKWId.Text = atez_data.LicensePlateContainerNo
' sbBestimmungsZollstelle.SET_VALUE(atez_data.DestinationCustomsOffice)
' sbAbgangZollstelle.SET_VALUE(atez_data.DepartureCustomsOffice)
' 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
' 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, "")
' 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
' 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
' setRoute()
' setRoute()
' If atez_data.status = "Draft" Then
' Button1.Text = "An ATEZ senden -->"
' pnlHead.Enabled = True
' Button1.Enabled = True
' initAttachment()
' If atez_data.status = "Draft" Then
' Button1.Text = "An ATEZ senden -->"
' pnlHead.Enabled = True
' Button1.Enabled = True
' initAttachment()
' Else
' Button1.Text = "JSON"
' pnlHead.Enabled = False
' Button1.Enabled = True
' End If
' Else
' Button1.Text = "JSON"
' pnlHead.Enabled = False
' Button1.Enabled = True
' End If
' Else
' Button1.Enabled = False
' End If
' Else
' Button1.Enabled = False
' End If
'Else
' atez_data = New cATEZ_NCTS_DATA()
' Button1.Text = "An ATEZ senden -->"
' pnlHead.Enabled = True
Else
' atez_data = New cATEZ_NCTS_DATA()
' 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
getBezugsnr(BezugsNr)
txtLKWId.Text = AVISO.LKW_Nr
' 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
' cbxTemperatur.Checked = IIf(AVISO.TransportTemperatur <> "", True, False)
' txtTransporttemp.Text = AVISO.TransportTemperatur
' If AVISO.Grenzstelle.Replace("???", "") = "" Then
' sbAbgangZollstelle.SET_VALUE(AVISO.Zollstelle)
' Else
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
' 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
'If AVISO.Grenzstelle.Replace("???", "") = "" Then
' sbAbgangZollstelle.SET_VALUE(AVISO.Zollstelle)
'Else
'End If
' 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
End If
End Sub
@@ -332,26 +339,26 @@ Public Class frmDigicust
Sub initAttachment()
Dim hSQL As String = " SELECT [anh_id],anh_Datum,[anh_Name],[anh_docId],
CASE WHEN [anh_Art] = 'ATR-EUR1' then 'EUR'
when [anh_Art] = 'Rechnung' then 'INVOICE'
when [anh_Art] = 'eFatura' then 'INVOICE'
when [anh_Art] = 'CMR' then 'CMR'
when [anh_Art] = 'Ausfuhr' then 'OTHER'
when [anh_Art] = 'Vorpapier' then 'OTHER'
when [anh_Art] = 'Packliste' then 'PACK'
when [anh_Art] = 'Auftrag' then 'OTHER'
when [anh_Art] = 'Auftrag' then 'OTHER'
when [anh_Art] = 'Dispoliste' then 'OTHER'
when [anh_Art] = 'Vorkasse' then 'OTHER'
when [anh_Art] = 'Überweisungsbeleg' then 'OTHER'
when [anh_Art] = 'Vollmacht' then 'OTHER'
when [anh_Art] = 'ATB' then 'OTHER'
when [anh_Art] = 'ATA' then 'CarnetATA'
when [anh_Art] = 'Sonstiges' then 'OTHER'
when [anh_Art] ='' then 'OTHER' End
CASE WHEN [anh_Art] = 'ATR-EUR1' then 'EUR1'
when [anh_Art] = 'Rechnung' then 'invoice'
when [anh_Art] = 'eFatura' then 'invoice'
when [anh_Art] = 'CMR' then 'waybill'
when [anh_Art] = 'Ausfuhr' then 'exportDeclaration'
when [anh_Art] = 'Vorpapier' then 'transitDeclaration'
when [anh_Art] = 'Packliste' then 'packingList'
when [anh_Art] = 'Auftrag' then 'UserInput'
when [anh_Art] = 'Dispoliste' then 'UserInput'
when [anh_Art] = 'Vorkasse' then 'UserInput'
when [anh_Art] = 'Überweisungsbeleg' then 'UserInput'
when [anh_Art] = 'Vollmacht' then 'UserInput'
when [anh_Art] = 'ATB' then 'UserInput'
when [anh_Art] = 'ATA' then 'UserInput'
when [anh_Art] = 'Sonstiges' then 'UserInput'
when [anh_Art] ='' then 'UserInput' End
[anh_Art],[anh_Typ] FROM [tblAvisoAnhaenge]
WHERE [anh_AvisoId]='" & AVISO.AvisoID & "' AND isnull(anh_SendungsId,0) <= 0 And anh_Typ = 'PDF'
WHERE [anh_AvisoId]='" & AVISO.AvisoID & "' AND (anh_SendungsId is null OR anh_SendungsId <=0 OR anh_SendungsId=" & SENDUNG.tblSnd_SendungID & ")
Order BY [anh_Reihenfolge], anh_Datum desc, [anh_id]"
'AND isnull(anh_SendungsId,0) <= 0
Dim dt = VermerkeDAL.Anzeigen_Vermerke(hSQL)
@@ -421,6 +428,13 @@ Public Class frmDigicust
Public Function checkMandatoryField() As Boolean
lblInfo.Text = ""
If cboStammreferenz._value = "" Then
lblInfo.Text = "Stammref. auswählen!"
Return False
End If
'TODO
Return True
@@ -438,9 +452,9 @@ Public Class frmDigicust
Private Sub btnCreateToken_Click(sender As Object, e As EventArgs) Handles btnCreateToken.Click
Label2.Text = "Status: " & api.authenticate(rtfToken.Text)
If rtfToken.Text <> "" Then
Label1.Text = "Token (valid 24hrs) until: " & Now().AddHours(24)
Label1.Text = "Token (valid 1h) until: " & Now().AddHours(1)
Else
Label1.Text = "Token (valid 24hrs)"
Label1.Text = "Token (valid 1h)"
End If
End Sub