Files
SDL/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/Verwahrung/usrCntlATLAS_SummarischeAnmeldung.vb
2026-10-06 09:24:20 +02:00

611 lines
26 KiB
VB.net

Imports System.Text
Imports DAKOSY_Worker
Imports Newtonsoft.Json.Linq
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlATLAS_SummarischeAnmeldung
Property ALLG As usrCntlATLAS_SummarischeAnmeldung
Property AVISO As VERAG_PROG_ALLGEMEIN.cAviso
Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen
Dim sentToDakosy = False
Dim GesamtsicherheitREF As cAufschubKonten
Dim Standort As String = ""
Dim gsnr As Integer = -1
Dim WarenwertEUR As Double = 0
Dim TMPT1ProcessResult As T1ProcessResult = Nothing
Property FIRMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Sub New(AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen, FIRMA_DY As String, GesamtsicherheitREF As cAufschubKonten, Standort As String, gsnr As Integer, WarenwertEUR As Double)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.AVISO = AVISO
Me.SENDUNG = SENDUNG
Me.FIRMA_DY = FIRMA_DY
Me.GesamtsicherheitREF = GesamtsicherheitREF
Me.Standort = Standort
Me.gsnr = gsnr
Me.WarenwertEUR = WarenwertEUR
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub usrCntlATLAS_Load(sender As Object, e As EventArgs) Handles Me.Load
cboDakosyAction.Items.Clear()
cboDakosyAction.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Neuen Datensatz erstellen", DY_ObjektAktion.OBJ_CREATE))
cboDakosyAction.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vohr. DS ändern", DY_ObjektAktion.OBJ_CHANGE))
cboDakosyAction.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Vorh. DS stornieren", DY_ObjektAktion.OBJ_CANCEL))
cboDakosyAction.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Datensatz an ZOLL senden", DY_ObjektAktion.OBJ_SEND))
cboDakosyAction.changeItem(DY_ObjektAktion.OBJ_CREATE)
'Select Case FIRMA_DY
' Case "VERAG" : txtDyMandant.Text = "VERG"
' txtDyNiederlassung.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
' ' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
' 'Case "SUB" : txtDyNiederlassung.Text = "VERG"
' 'Case "SUW" : txtDyNiederlassung.Text = "ATIL"
' ''Case "SBG" : txtDyNiederlassung.Text = "IMEX"
' 'Case "NEU" : txtDyNiederlassung.Text = "IMEX"
' 'Case "NKD" : txtDyNiederlassung.Text = "IMEX"
' 'End Select
' Case "ATILLA" : txtDyMandant.Text = "ATIL" : txtDyNiederlassung.Text = "SUW"
' Case "UNISPED" : txtDyMandant.Text = "UNAT" : txtDyNiederlassung.Text = "ATSPED"
' Case "IMEX" : txtDyMandant.Text = "VERG" : txtDyNiederlassung.Text = "SUB" 'VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG 'txtDyMandant.Text = "IMEX" : txtDyNiederlassung.Text = "IME"
' Case "AMBAR" : txtDyMandant.Text = "ATIL" : txtDyNiederlassung.Text = "AMBWO"
'End Select
txtDyMandant.Text = cDakosyFunftions.getIOPartner(FIRMA_DY, "AA")
txtDyNiederlassung.Text = cDakosyFunftions.getDivision(FIRMA_DY, "AA")
Dim BezugsNr As String = ""
If SENDUNG IsNot Nothing Then
BezugsNr = (SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr & "_" & "SUMA" & AVISO.AvisoID & "_" & If(AVISO.Auftraggeber.Length > 8, AVISO.Auftraggeber.ToString.Substring(0, 5), AVISO.Auftraggeber)).Trim
lblBezugsnummer.Text = BezugsNr
txtMRN.Text = If(SENDUNG.tblSnd_ATB_T1, "")
End If
cboStammreferenz.fillWithSQL("SELECT [dySr_Stammreferenz],[dySr_Bezeichnung] FROM [tblDakosy_Stammreferenzen] WHERE dySr_Land='DE' AND dySr_Verfahren='SUMA' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung IN ('','" & txtDyNiederlassung.Text & "') and dySr_visible=1", False, "FMZOLL", True)
cboStammreferenz.changeItem("")
If cboStammreferenz.Items.Count = 2 Then
cboStammreferenz.SelectedIndex = 1
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If cboStammreferenz._value = "" Then MsgBox("Stammreferenz auswählen!") : Exit Sub
If txtMRN._value = "" Then MsgBox("MRN auswählen!") : Exit Sub
If txtMRN._value.Length > 18 Then MsgBox("MRN zu lang!") : Exit Sub
If TMPT1ProcessResult IsNot Nothing Then MsgBox("Keine T1 Daten!") : Exit Sub
Me.Refresh()
Me.Cursor = Cursors.WaitCursor
If sentToDakosy OrElse vbYes = MsgBox("Soll die Ankunftsanzeige abgeschickt werden?", vbYesNoCancel) Then
' Dim cDyAnm As New cDakosy_Zollanmeldungen(cDy_ART, BezugsNr, AVISO.AvisoID, SENDUNG.tblSnd_SendungID)
'loadDYZollanmeldungen()
Dim dy_Id = -1
Dim saveFile = ""
Dim BezugsNrBez As String = ""
If lblBezugsnummer.Text.Length > 23 Then
BezugsNrBez = lblBezugsnummer.Text.Substring(0, 23) 'Z. Zt. begrenzt auf 22 Stellen, weil Aufnahme in ATLAS beschränkt!
Else
BezugsNrBez = lblBezugsnummer.Text
End If
'-------------------------------------------------------
If generateSummarischeAnmeldung_001(AVISO, SENDUNG, BezugsNrBez, lblBezugsnummer.Text, saveFile, cboDakosyAction._value, txtDyMandant.Text, txtDyNiederlassung.Text, cboStammreferenz._value, TMPT1ProcessResult) Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNrBez, dy_Id, FIRMA_DY) Then
If SENDUNG IsNot Nothing Then SENDUNG.SET_VGMA() ' MA Vorgeschrieben in Sendung setzen.
MsgBox("Gesendet!")
Else
'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
MsgBox("Sendefehler!")
End If
' DY_ANM.UPDATE_DATA()
'Beim Senden soll die Sendung überhnommen + tblSnd_VG_MA gesetzt werden --> damit gleich gesehen wird, dass der Akt in Bearbeitung ist.
' DY_ANM.UPDATE_AVISO_SND(DY_ANM.dy_SendungsId)
Me.FindForm.Close()
End If
End If
Me.Cursor = Cursors.Default
End Sub
Shared Function generateSummarischeAnmeldung_001(AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SND As VERAG_PROG_ALLGEMEIN.cSendungen, ByVal Bezugsnummer As String, ByVal BezugsnummerALIAS As String, ByRef saveFile As String, DY_ACTION As String, IOPartner As String, IODivision3 As String, BezugsnummerVorblendung As String, T1 As T1ProcessResult) As Boolean
Dim Interface_VERSION = "001"
Dim ObjectAktion = DY_ACTION
Dim XML As New DAKOSY_Worker.SummarischeAnmeldung_001.SummarischeAnmeldungVVTyp
'Transaktion:
XML.Transaktion = New DAKOSY_Worker.SummarischeAnmeldung_001.TransaktionSumAInTyp
XML.Transaktion.IOPartner = IOPartner
XML.Transaktion.IODatumZeit = Now
XML.Transaktion.IOReferenz = SND.FilialenNr & "-" & SND.AbfertigungsNr & "_" & Now.ToString("ddMMyyHHmmSS")
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then XML.Transaktion.IODivision3 = IODivision3
XML.Transaktion.Version = Interface_VERSION
XML.EinzelSummarischeAnmeldung = New DAKOSY_Worker.SummarischeAnmeldung_001.EinzelSummarischeAnmledungTyp
'ObjektIdentifizierung:
XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung = New DAKOSY_Worker.SummarischeAnmeldung_001.ObjektIdentifizierungVVTyp
XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung.ObjektName = Bezugsnummer
If BezugsnummerALIAS IsNot Nothing Then XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung.ObjektAliasname = BezugsnummerALIAS
Dim ObjektAktion As New List(Of String)
ObjektAktion.Add(ObjectAktion)
XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung.ObjektAktion = ObjektAktion
If If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DAKOSY_SB, "") <> "" Then
XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung.Bearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DAKOSY_SB
End If
If BezugsnummerVorblendung IsNot Nothing AndAlso BezugsnummerVorblendung <> "" Then
XML.EinzelSummarischeAnmeldung.ObjektIdentifizierung.BezugsnummerVorblendung = BezugsnummerVorblendung
End If
'============================================================
' T1-Daten
'============================================================
Dim T1Data As JToken = Nothing
If T1.AdditionalData IsNot Nothing AndAlso T1.AdditionalData.ContainsKey("response") Then
T1Data = T1.AdditionalData("response")?("data")
End If
Dim TransitID As String = T1.TransitId
Dim DispatchCountry As String = T1.DispatchCountry
Dim DestinationCountry As String = T1.DestinationCountry
Dim DestinationCustomsAuthority As String = T1.DestinationCustomsAuthority
Dim ModeOfTransport As String = T1.ModeOfTransport
Dim TruckID As String = T1.TruckIdTransit
'Fallback, da aktuelle API-Daten unter response.data liegen
If T1Data IsNot Nothing Then
If String.IsNullOrWhiteSpace(TransitID) Then TransitID = getT1Value(T1Data, "transit_id")
If String.IsNullOrWhiteSpace(DispatchCountry) Then DispatchCountry = getT1Value(T1Data, "dispatch_country")
If String.IsNullOrWhiteSpace(DestinationCountry) Then DestinationCountry = getT1Value(T1Data, "destination_country")
If String.IsNullOrWhiteSpace(DestinationCustomsAuthority) Then DestinationCustomsAuthority = getT1Value(T1Data, "destination_customs_authority")
If String.IsNullOrWhiteSpace(ModeOfTransport) Then ModeOfTransport = getT1Value(T1Data, "mode_of_transport")
If String.IsNullOrWhiteSpace(TruckID) Then TruckID = getT1Value(T1Data, "truck_id_transit")
If String.IsNullOrWhiteSpace(TruckID) Then TruckID = getT1Value(T1Data, "truck_id_border")
End If
'============================================================
' Kopfdaten
'============================================================
XML.EinzelSummarischeAnmeldung.KopfDaten = New DAKOSY_Worker.SummarischeAnmeldung_001.KopfDatenSummarischeAnmeldungTyp
'Dienststelle aus z.B.
'"DE007701 - Suben-Autobahn (österr. Gebiet)"
If Not String.IsNullOrWhiteSpace(DestinationCustomsAuthority) Then
XML.EinzelSummarischeAnmeldung.KopfDaten.Dienststelle = DestinationCustomsAuthority.Split(" "c)(0)
End If
'Endgültige SumA
XML.EinzelSummarischeAnmeldung.KopfDaten.VorzeitigKz = "N"
'Kein Seeverkehr
XML.EinzelSummarischeAnmeldung.KopfDaten.SeeverkehrKz = "N"
'NCTS-Versand
XML.EinzelSummarischeAnmeldung.KopfDaten.NCTSVersandKz = "N"
'Gestellung
XML.EinzelSummarischeAnmeldung.KopfDaten.Gestellungsdatum = Now.Date
'============================================================
' Beförderungsmittel
'============================================================
XML.EinzelSummarischeAnmeldung.KopfDaten.Befoerderungsmittel = New DAKOSY_Worker.SummarischeAnmeldung_001.BefoerderungsmittelVVTyp
'T1 Mode 30 = Straße
If ModeOfTransport = "30" Then
XML.EinzelSummarischeAnmeldung.KopfDaten.Befoerderungsmittel.ArtCode = "03"
End If
If Not String.IsNullOrWhiteSpace(TruckID) Then
XML.EinzelSummarischeAnmeldung.KopfDaten.Befoerderungsmittel.Kennzeichen = TruckID
End If
'============================================================
' Vorpapier
'============================================================
If Not String.IsNullOrWhiteSpace(TransitID) Then
XML.EinzelSummarischeAnmeldung.KopfDaten.Vorpapiernummer = TransitID
End If
'============================================================
' Positionen
'============================================================
XML.EinzelSummarischeAnmeldung.Position = New List(Of DAKOSY_Worker.SummarischeAnmeldung_001.PositionSummarischeAnmeldungTyp)
Dim Items As JArray = Nothing
If T1Data IsNot Nothing AndAlso TypeOf T1Data("items") Is JArray Then Items = DirectCast(T1Data("items"), JArray)
If Items IsNot Nothing Then
For Each T1Item As JObject In Items.OfType(Of JObject)()
Dim POS As New DAKOSY_Worker.SummarischeAnmeldung_001.PositionSummarischeAnmeldungTyp
Dim ItemIndex As Integer = getT1Int(T1Item, "item_index")
Dim TotalPackage As Integer = getT1Int(T1Item, "total_package")
Dim Description As String = getT1Value(T1Item, "item_description")
POS.Positionsnummer = ItemIndex
If Not String.IsNullOrWhiteSpace(DispatchCountry) Then POS.Versendungsland = DispatchCountry
If Not String.IsNullOrWhiteSpace(Description) Then
If Description.Length > 280 Then Description = Description.Substring(0, 280)
POS.Warenbeschreibung = Description
End If
If TotalPackage > 0 Then POS.Stueckzahl = TotalPackage
XML.EinzelSummarischeAnmeldung.Position.Add(POS)
Next
End If
'============================================================
' Datei speichern
'============================================================
Dim saveDir = Application.StartupPath & "\Dakosy_SEND\"
If Not System.IO.Directory.Exists(saveDir) Then
System.IO.Directory.CreateDirectory(saveDir)
End If
saveFile = saveDir & "DY_VV_" & Now.ToString("yyMMdd_HHmmss") & ".xml"
XML.SaveToFile(saveFile)
DAKOSY_Worker.cDakosyFunftions.replaceNullDateXML(saveFile)
Return True
End Function
Private Shared Function getT1Value(Data As JToken, Name As String) As String
If Data Is Nothing OrElse Data(Name) Is Nothing OrElse Data(Name).Type = JTokenType.Null Then Return ""
Return Data(Name).ToString.Trim
End Function
Private Shared Function getT1Int(Data As JToken, Name As String) As Integer
Dim Value As Integer = 0
If Data IsNot Nothing AndAlso Data(Name) IsNot Nothing AndAlso Data(Name).Type <> JTokenType.Null Then Integer.TryParse(Data(Name).ToString, Value)
Return Value
End Function
Private Shared Function getTelefon() As String
Dim defaultDW = "200"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA" : Return "0043 7711 28450"
Case "AMBAR" : Return "0049 8651 9962492"
Case "UNISPED" : defaultDW = "800"
Case "IMEX" : defaultDW = "602"
Case "VERAG" : defaultDW = "200"
End Select
Dim dw = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_durchwahl
Return "0049 8503 7973999 " &
If(String.IsNullOrEmpty(dw) OrElse dw.Length >= 5, defaultDW, dw)
End Function
Private Shared Function getDefaultMail_FIRMA() As String
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG
Case "KLIPP" : Return "klipphausen@verag.ag"
Case "DTB" : Return "dettelbach@verag.ag"
Case "NKN" : Return "neunkirchen@verag.ag"
Case "SBG" : Return "de@verag.ag"
Case "NEU" : Return "neuhaus@verag.ag"
Case Else : Return "quickstop@verag.ag"
End Select
Case "IMEX" : Return "steuerbescheide@imex-group.at"
Case "UNISPED" : Return "office@unisped.at"
Case "AMBAR" : Return "office@ambarlog.com"
End Select
Return "quickstop@verag.ag"
End Function
Private Function createGesamtsicherheitDummy(GesSichRef As cAufschubKonten, Standort As String, Warenort As String, gsnr As Integer, WarenwertEUR As Double)
Try
Dim SQL As New SQL
Dim OPEN_DUMMY As New cSicherheiten()
Dim attachPosNrToExistingATB = False
Dim firmaId As Integer = -1
Dim LKW_ID As String = ""
'Select Case Standort
' Case "Verag GmbH"
' firmaId = 2
' Case "Verag AG"
' firmaId = 1
' Case "Unisped GmbH"
' firmaId = 21
' Case "AMBAR GmbH"
' firmaId = 24
' Case "Verag CS"
' firmaId = 11
' Case "IMEX"
' firmaId = 20
'End Select
Select Case Standort
Case Sicherheiten_Standort.VERAG_GMBH : firmaId = 2
Case Sicherheiten_Standort.AMBAR : firmaId = 24
Case Sicherheiten_Standort.ATILLA : firmaId = 7
Case Sicherheiten_Standort.VERAG_AG : firmaId = 1
Case Sicherheiten_Standort.IMEX : firmaId = 20
Case Sicherheiten_Standort.VERAG_CS : firmaId = 11
Case Sicherheiten_Standort.UNISPED : firmaId = 21
Case Sicherheiten_Standort.ZOLLERN : firmaId = 90
Case Else
End Select
With OPEN_DUMMY
.gs_ATBNr = txtMRN._value
'mit 0 angeben, da ansonten durch DAKOSY überschrieben
.gs_MRNNr = ""
.gs_posSubNr = Nothing
.gs_datum = Today()
.gs_warenwert = WarenwertEUR
.gs_sicherheitsbetrag = Math.Round(WarenwertEUR * (GesSichRef.brgakto_gs_zollsatz / 100), 2)
.gs_standort = Me.Standort
.gs_art = "OPEN"
.gs_datum = DateTime.Now
.gs_erstellungsdatum = DateTime.Now
.gs_freitext = "DAKOSY-DUMMY"
.gs_saldo = GesSichRef.brgakto_gs_aktSaldo
.gs_atr = "0"
.gs_zollsatz = GesSichRef.brgakto_gs_zollsatz
.gs_avisoId = AVISO.AvisoID
.gs_filialenNr = SENDUNG.FilialenNr
.gs_abfertigungsnr = SENDUNG.AbfertigungsNr
.gs_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
.gs_warenort = Warenort
.gs_LKWKZ = AVISO.LKW_Nr
.gs_dakoyimport = True
If gsnr > 0 Then
.gs_gsNr = gsnr
.gs_posNr = getLatestPosNr(gsnr, txtMRN._value)
attachPosNrToExistingATB = True
Else
.gs_gsNr = SQL.getValueTxtBySql("Select MAX([gs_gsNr]) + 1 As MaxGesSich from tblGesamtsicherheit", "AVISO")
.gs_posNr = 0
End If
End With
Dim indexGsId = OPEN_DUMMY.SAVEOBJECT()
Dim CLOSED_DUMMY As cGesamtsicherheitsPositionen
If attachPosNrToExistingATB Then
CLOSED_DUMMY = New cGesamtsicherheitsPositionen(indexGsId, OPEN_DUMMY.gs_posNr)
Else
CLOSED_DUMMY = New cGesamtsicherheitsPositionen(indexGsId, 1)
End If
With CLOSED_DUMMY
.gsp_gsNr = OPEN_DUMMY.gs_gsNr
.gsp_warenwert = 0 ' = 0 wichtig
.gsp_sicherheitsbetrag = 0 ' = 0 wichtig
.gsp_filialenNr = OPEN_DUMMY.gs_filialenNr
.gsp_art = "CLOSE"
.gsp_abfertigungsNr = OPEN_DUMMY.gs_abfertigungsnr
.gsp_erstellungsdatum = DateTime.Now
.gsp_datum = DateTime.Now
.gsp_ust = ""
.gsp_freitext = OPEN_DUMMY.gs_freitext
.gsp_avisoId = OPEN_DUMMY.gs_avisoId
.gsp_gsNr = OPEN_DUMMY.gs_gsNr
.gsp_gspPosId = OPEN_DUMMY.gs_posNr
.gsp_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
End With
CLOSED_DUMMY.SAVE()
GesSichRef.CalcSaldo_new()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
Private Function getLatestPosNr(gs_gsnr As Integer, gs_ATBNr As String) As Integer
Dim posNr As Integer = 0
Dim sqlq As String = "Select MAX([gs_posNr]) As MaxPosNr from [tblGesamtsicherheit] where gs_gsnr = " & gs_gsnr & " And gs_ATBNR = '" & gs_ATBNr & "'"
Dim dt As New DataTable
dt = (New SQL).loadDgvBySql(sqlq, "AVISO", 100, True)
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
posNr = dt.Rows(0).Item(0)
End If
Return posNr
End Function
Private Sub MyCheckbox1_CheckedChanged(sender As Object, e As EventArgs) Handles MyCheckbox1.CheckedChanged
Button1.Enabled = Not MyCheckbox1.Checked
End Sub
Private Sub cboStammreferenz_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboStammreferenz.SelectedIndexChanged
Dim valueREF As String = cboStammreferenz._value
If valueREF <> "" Then
Dim DAKOSY_REF As New cDakosy_Stammreferenzen(valueREF)
If DAKOSY_REF IsNot Nothing AndAlso DAKOSY_REF.dySr_WarenortID IsNot Nothing AndAlso IsNumeric(DAKOSY_REF.dySr_WarenortID) Then
txtWO_ID.Text = DAKOSY_REF.dySr_WarenortID.ToString
If DAKOSY_REF.dySr_WarenortID > 0 Then
txtWarenort.Text = (New SQL).getValueTxtBySql("SELECT [wo_warenort] from [tblWarenorte] where [wo_id] = " & DAKOSY_REF.dySr_WarenortID, "AVISO")
End If
End If
Else
txtWarenort.Text = ""
txtWO_ID.Text = ""
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
loadT1DataFromPDF()
End Sub
Function loadT1DataFromPDF() As Boolean
Try
Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG)
f.ShowDialog(Me)
If f.DialogResult <> DialogResult.OK Then Return False
If f.LIST_FILES Is Nothing OrElse f.LIST_FILES.Count = 0 Then Return False
Dim pdfPath = f.LIST_FILES(0)
TMPT1ProcessResult = Nothing
Cursor.Current = Cursors.WaitCursor
Dim cATEZ_Read_T1 As New cATEZ_Read_T1
Dim result As T1ProcessResult = cATEZ_Read_T1.ProcessPdf(pdfPath)
If result Is Nothing Then
MessageBox.Show("Keine Daten von der API erhalten.", "Declaranthub", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
End If
TMPT1ProcessResult = result
'txtMRN.Text = result.mrn '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MyDatagridview1.DataSource = Nothing
MyDatagridview1.Rows.Clear()
MyDatagridview1.Columns.Clear()
MyDatagridview1.AllowUserToAddRows = False
MyDatagridview1.AllowUserToDeleteRows = False
MyDatagridview1.ReadOnly = True
MyDatagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
MyDatagridview1.MultiSelect = False
MyDatagridview1.Columns.Add("Position", "Pos.")
MyDatagridview1.Columns.Add("ExportId", "Export-ID")
MyDatagridview1.Columns.Add("InvoiceNo", "Rechnung")
MyDatagridview1.Columns.Add("Sender", "Versender")
MyDatagridview1.Columns.Add("Packages", "Packstücke")
MyDatagridview1.Columns.Add("Weight", "Gewicht")
If result.Items IsNot Nothing Then
For Each item As T1ProcessItem In result.Items
MyDatagridview1.Rows.Add(
item.ItemIndex,
item.ExportId,
item.InvoiceNo,
item.Sender,
item.TotalPackage,
item.TotalWeight
)
Next
End If
MyDatagridview1.Columns("Position").Width = 55
MyDatagridview1.Columns("ExportId").Width = 130
MyDatagridview1.Columns("InvoiceNo").Width = 130
MyDatagridview1.Columns("Sender").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
MyDatagridview1.Columns("Packages").Width = 90
MyDatagridview1.Columns("Weight").Width = 100
MyDatagridview1.Columns("Packages").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
MyDatagridview1.Columns("Weight").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
MyDatagridview1.Columns("Weight").DefaultCellStyle.Format = "N2"
Catch apiEx As T1ApiException
Dim sbErr As New StringBuilder()
sbErr.AppendLine("DECLARANTHUB API FEHLER")
sbErr.AppendLine()
If CInt(apiEx.StatusCode) > 0 Then
sbErr.AppendLine("HTTP-Status: " & CInt(apiEx.StatusCode).ToString())
Else
sbErr.AppendLine("HTTP-Status: keine HTTP-Antwort")
End If
If Not String.IsNullOrWhiteSpace(apiEx.ErrorKey) Then
sbErr.AppendLine("Error Key: " & apiEx.ErrorKey)
End If
sbErr.AppendLine()
sbErr.AppendLine("Nachricht:")
sbErr.AppendLine(apiEx.Message)
If Not String.IsNullOrWhiteSpace(apiEx.RawResponse) Then
sbErr.AppendLine()
sbErr.AppendLine("=== RAW RESPONSE ===")
sbErr.AppendLine(apiEx.RawResponse)
End If
MessageBox.Show(sbErr.ToString(), "Declaranthub API Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return True
Catch ex As Exception
MessageBox.Show(ex.ToString(), "Allgemeiner Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
Finally
Cursor.Current = Cursors.Default
End Try
Return False
End Function
End Class