611 lines
26 KiB
VB.net
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
|
|
|