358 lines
15 KiB
VB.net
358 lines
15 KiB
VB.net
Imports DAKOSY_Worker
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class usrCntlATLAS_AnkunftsAnzeige
|
|
|
|
Property ALLG As usrCntlATLAS_AnkunftsAnzeige
|
|
Property AVISO As VERAG_PROG_ALLGEMEIN.cAviso
|
|
Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen
|
|
Dim sentToDakosy = False
|
|
|
|
Dim GesamtsicherheitREF As cGesamtsicherheitsReferenz
|
|
Dim Standort As String = ""
|
|
Dim gsnr As Integer = -1
|
|
|
|
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 cGesamtsicherheitsReferenz, Standort As String, gsnr As Integer)
|
|
' 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
|
|
|
|
|
|
|
|
' 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 & "_" & "ID" & 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='AA' 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
|
|
|
|
|
|
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
|
|
If True Then
|
|
''Dim cDY As New cDakosyNCTSOut(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB)
|
|
'ncts_OUT.ncts_dyaAnmID = DY_ANM.dy_Id
|
|
'ncts_OUT.ncts_Erstellung_SB = DY_ANM.dy_Erstellung_SB
|
|
'ncts_OUT.ncts_LetzteBearbeitung = Now
|
|
'ncts_OUT.ncts_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB
|
|
'ncts_OUT.ncts_firma = Me.FIRMA_DY
|
|
' DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_003(ncts_OUT, Me, DY_ANM, Me.FIRMA_DY)
|
|
|
|
' dim FilialenNr
|
|
|
|
Dim FIRMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
FIRMA_DY = DAKOSY_Worker.cDakosyFunftions.getFirma_DY(SENDUNG.FilialenNr, Me.FindForm)
|
|
|
|
If txtDyMandant.Text = "VERG" And FIRMA_DY = "IMEX" Then 'IMEX verwendet VERAG-Gestellungskonto!!!
|
|
FIRMA_DY = "VERAG"
|
|
End If
|
|
|
|
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 generateEingangsanzeigeNCTSDE_003(AVISO, SENDUNG, BezugsNrBez, lblBezugsnummer.Text, saveFile, cboDakosyAction._value, FIRMA_DY, cboStammreferenz._value) Then
|
|
If saveFile <> "" 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!")
|
|
createGesamtsicherheitDummy(GesamtsicherheitREF, Standort, txtWarenort.Text, gsnr)
|
|
Else
|
|
'DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
|
|
MsgBox("Sendefehler!")
|
|
End If
|
|
End If
|
|
End If
|
|
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
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Shared Function generateEingangsanzeigeNCTSDE_003(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, FIRMA_DY As String, Optional BezugsnummerVorblendung As String = "") As Boolean
|
|
Dim Interface_VERSION = "003"
|
|
Dim ObjectAktion = DY_ACTION
|
|
' Dim BezugsnummerVorblendung = "AA_NCTS_DE_ZE_WO_MITTICH"
|
|
|
|
Dim XML As New DAKOSY_Worker.EingangsanzeigeNCTSDE_003.EingangsanzeigeEATyp
|
|
|
|
|
|
'Transaktion:
|
|
XML.Transaktion = New DAKOSY_Worker.EingangsanzeigeNCTSDE_003.TransaktionNCTSTyp
|
|
XML.Transaktion.IOPartner = SDL.DAKOSY_Interface_SEND.getIOPartner(FIRMA_DY) 'If(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "VERA", "VERG")
|
|
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 = SDL.DAKOSY_Interface_SEND.getDivision(FIRMA_DY) '"SUW"
|
|
XML.Transaktion.Version = Interface_VERSION
|
|
' XML.Transaktion.IODivision3 = "DUR"
|
|
XML.EinzelEingangsanzeige = New EingangsanzeigeNCTSDE_003.EinzelEingangsanzeigeTyp
|
|
|
|
'ObjektIdentifizierung:
|
|
XML.EinzelEingangsanzeige.ObjektIdentifizierung.NameAbsendendesSystem = "VERAG_ZOLL"
|
|
XML.EinzelEingangsanzeige.ObjektIdentifizierung = New EingangsanzeigeNCTSDE_003.ObjektIdentifizierungEATyp
|
|
XML.EinzelEingangsanzeige.ObjektIdentifizierung.ObjektName = Bezugsnummer
|
|
|
|
If BezugsnummerALIAS IsNot Nothing Then XML.EinzelEingangsanzeige.ObjektIdentifizierung.ObjektAliasname = BezugsnummerALIAS
|
|
Dim ObjektAktion As New List(Of String) : ObjektAktion.Add(ObjectAktion)
|
|
XML.EinzelEingangsanzeige.ObjektIdentifizierung.ObjektAktion = ObjektAktion
|
|
If If(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DAKOSY_SB, "") <> "" Then XML.EinzelEingangsanzeige.ObjektIdentifizierung.Bearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DAKOSY_SB
|
|
|
|
If BezugsnummerVorblendung IsNot Nothing AndAlso BezugsnummerVorblendung <> "" Then XML.EinzelEingangsanzeige.ObjektIdentifizierung.BezugsnummerVorblendung = BezugsnummerVorblendung
|
|
|
|
'TransitOperation:
|
|
XML.EinzelEingangsanzeige.TransitOperation = New EingangsanzeigeNCTSDE_003.TransitOperationEAType
|
|
'If cDY.ncts_CountryOfDispatch IsNot Nothing Then XML.EinzelEingangsanzeige.TransitOperation.CustomsOfficeOfDestinationActual = cDY.ncts_CountryOfDispatch
|
|
If SND.tblSnd_ATB_T1 IsNot Nothing Then XML.EinzelEingangsanzeige.TransitOperation.MRN = SND.tblSnd_ATB_T1
|
|
XML.EinzelEingangsanzeige.TransitOperation.ArrivalNotificationDateAndTime = Now
|
|
|
|
XML.EinzelEingangsanzeige.TransitOperation.IncidentFlag = "N"
|
|
|
|
|
|
|
|
Dim saveDir = Application.StartupPath & "\Dakosy_SEND\"
|
|
If Not System.IO.Directory.Exists(saveDir) Then
|
|
System.IO.Directory.CreateDirectory(saveDir)
|
|
End If
|
|
|
|
saveFile = saveDir & "DY_AA_" & Now.ToString("yyMMdd_HHmmss") & ".xml"
|
|
|
|
XML.SaveToFile(saveFile)
|
|
|
|
DAKOSY_Worker.cDakosyFunftions.replaceNullDateXML(saveFile)
|
|
|
|
Return True
|
|
End Function
|
|
|
|
Private Function createGesamtsicherheitDummy(GesSichRef, Standort, Warenort, gsnr)
|
|
|
|
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
|
|
|
|
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 = SENDUNG.tblSnd_Warenwert
|
|
.gs_sicherheitsbetrag = Math.Round(SENDUNG.tblSnd_Warenwert * (GesSichRef.gsr_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.gsr_Saldo
|
|
.gs_atr = "0"
|
|
.gs_zollsatz = GesSichRef.gsr_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()
|
|
|
|
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 Then
|
|
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 = ""
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
End Class
|
|
|