Files
SDL/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/Verwahrung/usrCntlATLAS_AnkunftsAnzeige.vb

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