Files
SDL/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/NCTS004/usrCntlATLAS_NCTS004.vb
2026-03-19 13:10:51 +01:00

809 lines
36 KiB
VB.net

Imports System.IO.Pipes
Imports DAKOSY_Worker
Imports javax.management
Imports Tamir
Imports Tamir.SharpSsh
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlATLAS_NCTS004
Property ALLG As usrCntlATLAS_NCTS004_Allg
Property ADRESSEN As usrCntlATLAS_NCTS004_Adressen
Property SICHERHEIT As usrCntlATLAS_NCTS004_Sicherheit
Property POSITIONEN As usrCntlATLAS_NCTS004_Positionen
'Property VERSCHLUESSE As usrCntlATLAS_NCTS_Verschluesse
'Property FilialeNr As Integer
' Property AbfertigungsNr As Integer
Property Jahr2Stellig As Integer
Property zusatz As String
Property BezugsNr As String = ""
' Property AvisoId As Integer
'Property SENDUNGS_ID As Integer
Property AVISO As VERAG_PROG_ALLGEMEIN.cAviso
Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen
Dim sentToDakosy = False
Property isSTAMMREF As Boolean = False ' Wenn das Formular als Stammreferenz bearbeitet wird
Property STAMMREF As String = "" ' Wenn eine Stammrefereenz als Grundlage dient
Dim FIRMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Dim cDy_ART As String = If(FIRMA_DY = "ATILLA", "T2", "T1")
Dim ncts_OUT As cDakosyNCTSOut004 = Nothing
Dim DY_ANM As cDakosy_Zollanmeldungen = Nothing
Sub New(ncts_OUT As cDakosyNCTSOut004, Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "")
InitializeComponent()
Me.isSTAMMREF = isSTAMMREF
Me.STAMMREF = STAMMREF
Me.ncts_OUT = ncts_OUT
DY_ANM = New cDakosy_Zollanmeldungen(ncts_OUT.ncts_dyaAnmID)
If DY_ANM.dy_AvisoId > 0 Then
Dim AV As New VERAG_PROG_ALLGEMEIN.cAvisoDAL
AVISO = AV.LesenAviso(DY_ANM.dy_AvisoId, "")
End If
If DY_ANM.dy_SendungsId > 0 Then
SENDUNG = New VERAG_PROG_ALLGEMEIN.cSendungen(DY_ANM.dy_SendungsId)
End If
End Sub
Sub New(DY_ANM As cDakosy_Zollanmeldungen, AVISO As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen, Jahr2Stellig As Integer, Optional zusatz As String = "", Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "")
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.Jahr2Stellig = Jahr2Stellig
Me.zusatz = zusatz
Me.AVISO = AVISO
Me.SENDUNG = SENDUNG
Me.DY_ANM = DY_ANM
Me.isSTAMMREF = isSTAMMREF
Me.STAMMREF = STAMMREF
If DY_ANM IsNot Nothing Then
Me.ncts_OUT = DAKOSY_Worker.cDakosyNCTSOut004.LOADByAnmIDFull(DY_ANM.dy_Id, True)
Me.cDy_ART = If(DY_ANM.dy_ART, "")
If Me.cDy_ART = "" And Me.ncts_OUT IsNot Nothing Then Me.cDy_ART = If(Me.ncts_OUT.ncts_Declarationtype, "")
If Me.cDy_ART = "" Then Me.cDy_ART = "T1"
If ncts_OUT IsNot Nothing Then
Me.FIRMA_DY = If(Me.ncts_OUT.ncts_firma, "")
End If
End If
'DY_ANM = New cDakosy_Zollanmeldungen(ncts_OUT.ncts_dyaAnmID)
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(ART As String, AvisoId As Integer, SENDUNGS_ID As Integer, Jahr2Stellig As Integer, Optional zusatz As String = "", Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "")
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.cDy_ART = If(ART = "NCTS", "T1", ART)
If AvisoId > 0 Then
Dim AV As New VERAG_PROG_ALLGEMEIN.cAvisoDAL
AVISO = AV.LesenAviso(AvisoId, "")
End If
If SENDUNGS_ID > 0 Then
SENDUNG = New VERAG_PROG_ALLGEMEIN.cSendungen(SENDUNGS_ID)
End If
Me.Jahr2Stellig = Jahr2Stellig
Me.isSTAMMREF = isSTAMMREF
Me.STAMMREF = STAMMREF
Me.zusatz = zusatz
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(ART As String, Aviso As VERAG_PROG_ALLGEMEIN.cAviso, SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen, Jahr2Stellig As Integer, Optional zusatz As String = "", Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "", Optional FIRMA_DY As String = "")
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.cDy_ART = If(ART = "NCTS", "T1", ART)
Me.AVISO = Aviso
Me.SENDUNG = SENDUNG
Me.isSTAMMREF = isSTAMMREF
Me.STAMMREF = STAMMREF
Me.Jahr2Stellig = Jahr2Stellig
Me.zusatz = zusatz
If FIRMA_DY <> "" Then Me.FIRMA_DY = FIRMA_DY
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Shared Function getBezugsnr(FIRMA_DY As String, SENDUNG As cSendungen, ByRef BezugsNr As String, ByRef zusatz As String)
Dim BezugsNrTmp = ""
Select Case FIRMA_DY
Case "UNISPED"
If If(SENDUNG.tblSnd_DakosyRef, "") <> "" Then
BezugsNrTmp = SENDUNG.tblSnd_DakosyRef
Else
BezugsNrTmp = SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr
End If
Case Else
BezugsNrTmp = SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr '& If(zusatz <> "", "/" & zusatz, "") 'zusatz ' & "/" & Jahr2Stellig
End Select
BezugsNr = BezugsNrTmp
zusatz = "A"
'Soloagne bis die Bezugsnummer noch nicht existiert
While DAKOSY_Worker.cDakosy_Zollanmeldungen.ExistsBezugsNr(BezugsNr) 'IsNot Nothing
BezugsNr = BezugsNrTmp & "/" & zusatz
If zusatz.Length = 1 Then
zusatz = Chr(Asc(zusatz.ToString) + 1)
Else
zusatz = zusatz.Substring(0, 1) & Chr(Asc(zusatz.Substring(0, 2).ToString) + 1)
End If
If zusatz = "Z" Then zusatz = "AA"
End While
Return BezugsNr
End Function
Private Sub usrCntlATLAS_Load(sender As Object, e As EventArgs) Handles Me.Load
'MsgBox("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)
AusGestllungToolStripMenuItem.Visible = True
'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 = "IMEX" : txtDyNiederlassung.Text = "IME"
' Case "AMBAR" : txtDyMandant.Text = "ATIL" : txtDyNiederlassung.Text = "AMBWO"
'End Select
' FIRMA_DY = cDakosyFunftions.getFirma_DY(FilialenNr.ToString, Me)?
txtDyMandant.Text = cDakosyFunftions.getIOPartner(FIRMA_DY)
txtDyNiederlassung.Text = cDakosyFunftions.getDivision(FIRMA_DY, "NCTS")
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.Replace("DTB", "SUB") & "') and dySr_visible=1", False, "FMZOLL", True)
cboStammreferenz.changeItem("")
SICHERHEIT = New usrCntlATLAS_NCTS004_Sicherheit(ncts_OUT, FIRMA_DY)
'VERSCHLUESSE = New usrCntlATLAS_NCTS_Verschluesse() 'ncts_OUT)
ADRESSEN = New usrCntlATLAS_NCTS004_Adressen(ncts_OUT, FIRMA_DY) ')
ALLG = New usrCntlATLAS_NCTS004_Allg(ncts_OUT)
POSITIONEN = New usrCntlATLAS_NCTS004_Positionen(ncts_OUT)
If isSTAMMREF Then
Me.BezugsNr = "STAMMREFERENZ"
If ncts_OUT Is Nothing Then ncts_OUT = New cDakosyNCTSOut004
ncts_OUT.ncts_ObjectName = BezugsNr
Else
If ncts_OUT Is Nothing Then ' NEUE ZOLLANMELDUNG
Dim f As New frmDakosyStammreferenz("DE", "NCTS", False,,, FIRMA_DY)
Dim Stammreferenz = Nothing
If f.ShowDialog(Me) Then
Stammreferenz = f.STAMMREF
sentToDakosy = f.sentToDakosy
End If
Try
BezugsNr = getBezugsnr(FIRMA_DY, SENDUNG, BezugsNr, zusatz)
lblBezugsnummer.Text = BezugsNr
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
ncts_OUT = cDakosyNCTSOut004.LOADByBezugsNr(BezugsNr, True)
If ncts_OUT Is Nothing Then
'Falls zur BezugsNr schon ein Eintrag in der DB vorhanden ist
ncts_OUT = cDakosyNCTSOut004.LOADByAnmIDFull(f.STAMMREF_DYID, True) ' DyID --> Falls bei der Stammreferenz eine Vorlage hinterlegt ist!
If ncts_OUT IsNot Nothing Then
'Stmmreferenz - Werte zurücksetzen, damit nicht falsch übergeben
ncts_OUT.ncts_dyaAnmID = -1
ncts_OUT.ncts_Id = -1
Else
ncts_OUT = New cDakosyNCTSOut004
End If
loaddataFromAVISO(AVISO, SENDUNG, cDy_ART, BezugsNr, ncts_OUT, FIRMA_DY)
cboStammreferenz.changeItem(Stammreferenz)
End If
'ncts_OUT
Else
' ncts_OUT is ot nothing
Me.BezugsNr = ncts_OUT.ncts_ObjectName
'MsgBox(ncts_OUT.ncts_Hauptverpflichteter_Name)
End If
End If
If If(ncts_OUT.ncts_firma, "") = "" Then If FIRMA_DY <> "" Then ncts_OUT.ncts_firma = FIRMA_DY
If If(Me.cDy_ART, "") <> "" Then
'Muss noch überschrieben werdne, da sonst Art von Stammref hergenommen wird...
ncts_OUT.ncts_Declarationtype = Me.cDy_ART
Else
'Wenn keine Art --> T1
If ncts_OUT.ncts_Declarationtype Is Nothing Or ncts_OUT.ncts_Declarationtype = "" Then
ncts_OUT.ncts_Declarationtype = "T1"
End If
End If
'hinzufügen, damit alle Controls richtig geladen und initialisiert werden:s
Me.SplitContainer.Panel2.Controls.Add(SICHERHEIT)
'Me.SplitContainer.Panel2.Controls.Add(VERSCHLUESSE)
Me.SplitContainer.Panel2.Controls.Add(ALLG)
Me.SplitContainer.Panel2.Controls.Add(POSITIONEN)
Me.SplitContainer.Panel2.Controls.Add(ADRESSEN)
' MsgBox(ncts_OUT.ncts_Hauptverpflichteter_Name)
'Werte setzen:
SICHERHEIT.setValues(ncts_OUT.ncts_GUARANTEE)
' VERSCHLUESSE.setValues(ncts_OUT)
ADRESSEN.setValues(ncts_OUT)
ALLG.setValues(ncts_OUT)
POSITIONEN.setValues(ncts_OUT)
If If(ncts_OUT.ncts_Stammreferenz, "") <> "" Then cboStammreferenz.changeItem(ncts_OUT.ncts_Stammreferenz)
'Controls wieder entfernen:
Me.SplitContainer.Panel2.Controls.Clear()
' If ALLG.txtKennnummer.Text = "" Then ALLG.txtKennnummer.Text = BezugsNr
' ADRESSEN.CreateControl()
For Each c In MyFlowLayoutPanel1.Controls
If c.GetType.ToString = GetType(System.Windows.Forms.Button).ToString Then
AddHandler DirectCast(c, System.Windows.Forms.Button).Click, AddressOf buttonClick
End If
Next
AddHandler ADRESSEN.Button1.Click, Sub()
Dim origin = ""
Dim destination = ""
'Dim usrCntlVers = ADRESSEN.usrCntlVersender
'origin &= usrCntlVers.txtStrasse.Text & " "
'origin &= usrCntlVers.sbLand._value & " "
'origin &= usrCntlVers.txtPlz.Text & " "
'origin &= usrCntlVers.txtOrt.Text & " "
If ALLG.sbAbgangZollstelle._value <> "" Then
origin = ALLG.sbAbgangZollstelle._value.Substring(0, 2) & " " & ALLG.sbAbgangZollstelle.Text
End If
Dim usrCntlEmpf = ADRESSEN.usrCntlEmpfaenger
destination &= usrCntlEmpf.txtStrasse.Text & " "
destination &= usrCntlEmpf.sbLand._value & " "
destination &= usrCntlEmpf.txtPlz.Text & " "
destination &= usrCntlEmpf.txtOrt.Text & " "
Dim duration = ""
Dim distance = ""
VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, destination, duration, "", distance)
ADRESSEN.lblWegstreckeVonNach.Text = "von: " & origin & vbNewLine
ADRESSEN.lblWegstreckeVonNach.Text &= "nach: " & destination
ADRESSEN.lblWegstrecke.Text = distance
ADRESSEN.lblWegZeit.Text = duration
End Sub
SplitContainer.Panel2.Controls.Add(ALLG)
lblBezugsnummer.Text = BezugsNr
ALLG.Dock = DockStyle.Fill
ADRESSEN.Dock = DockStyle.Fill
POSITIONEN.Dock = DockStyle.Fill
SICHERHEIT.Dock = DockStyle.Fill
'VERSCHLUESSE.Dock = DockStyle.Fill
'
'
AddHandler POSITIONEN.RohmasseChanged, Sub(rohmasse, packstuecke)
Label5.Text = packstuecke.ToString("N0") & " Pk"
Label7.Text = rohmasse.ToString("N2") & " kg"
End Sub
AddHandler POSITIONEN.PosAnzChanged, Sub(anz)
Label3.Text = anz
End Sub
If isSTAMMREF Then
Button1.Visible = False
cboDakosyAction.Visible = False
lblBezugsnummer.Text = "STAMMREFERENZ"
lblBezugsnummer.ForeColor = Color.Red
End If
If sentToDakosy Then
Try
Me.Button1.PerformClick()
Me.FindForm.Close()
Catch
End Try
End If
Try
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_DakosyZA_AVISO_Edit", "AVISO") Then
Me.FindForm.Close()
End If
Catch
End Try
End Sub
Sub buttonClick(sender As Object, e As EventArgs) 'HANDLED
Dim btn As System.Windows.Forms.Button = DirectCast(sender, System.Windows.Forms.Button)
For Each c In MyFlowLayoutPanel1.Controls
If c.GetType.ToString = GetType(System.Windows.Forms.Button).ToString Then
DirectCast(c, System.Windows.Forms.Button).BackColor = Drawing.Color.White
DirectCast(c, System.Windows.Forms.Button).ForeColor = Drawing.Color.Black
End If
Next
btn.BackColor = Drawing.Color.SteelBlue 'Drawing.Color.FromArgb(0, 54, 128)
btn.ForeColor = Drawing.Color.White
SplitContainer.Panel2.Controls.Clear()
If btn Is btnAllgemein Then
SplitContainer.Panel2.Controls.Add(ALLG)
ElseIf btn Is btnAdressen Then
SplitContainer.Panel2.Controls.Add(ADRESSEN)
ElseIf btn Is btnSicherheit Then
SplitContainer.Panel2.Controls.Add(SICHERHEIT)
'ElseIf btn Is btnVerschlüsse Then
' SplitContainer.Panel2.Controls.Add(VERSCHLUESSE)
ElseIf btn Is btnPositionen Then
SplitContainer.Panel2.Controls.Add(POSITIONEN)
End If
End Sub
Shared Sub loaddataFromAVISO(AVISO As cAviso, SENDUNG As cSendungen, cDy_ART As String, BezugsNr As String, ByRef cdy As cDakosyNCTSOut004, FIRMA_DY As String)
Try
'==> VORBLENDUNG:
' Dim cdy As New cDakosyNCTSOut
cdy.ncts_ObjectName = BezugsNr
cdy.ncts_CustomsOfficeOfDeparture = "" '"DE007701" ' Neuhaus (öSTERR:)
frmZollanmeldung.setZollstelle(cdy.ncts_CustomsOfficeOfDeparture, AVISO)
cdy.ncts_dyaArt = cDy_ART
If AVISO IsNot Nothing Then
cdy.ncts_DepartureTransportMeans_1_IdentificationNumber = AVISO.LKW_Nr
Select Case AVISO.Transportmittelart
Case "LKW", "SPRINTER"
cdy.ncts_DepartureTransportMeans_1_TypeOfIdentification = 30
If FIRMA_DY <> "AMBAR" Then
cdy.ncts_InlandModeOfTransport = "3"
cdy.ncts_ModeOfTransportAtTheBorder = "3"
End If
End Select
cdy.ncts_DepartureTransportMeans_1_Nationality = AVISO.LKW_Nationalitaet
If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "ATILLA" Then
'cdy.transportm = "X"
Else
'cdy.ncts_Befoerderungsmittel_KennzeichenGrenzueberschreitend = AVISO.LKW_Nr
' cdy.ncts_Befoerderungsmittel_StaatszugehoerigkeitGrenzueberschreitendCode = AVISO.LKW_Nationalitaet
End If
End If
'cdy.ncts_Befoerderungsmittel_ArtGrenzueberschreitung = "35"
If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "ATILLA" Or (VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" And AVISO.ImEx = "EXPORT") Then
cdy.ncts_Security = True
cdy.ncts_SpecificCircomstanceIndicator = "C"
cdy.ncts_TransportCharges = "D"
cdy.ncts_PlaceOfLoading_Country = "DE"
'cdy.ncts_SumA_KennnummerSendung = "OHNE"
If AVISO.Frächter_KdNr IsNot Nothing AndAlso IsNumeric(AVISO.Frächter_KdNr) AndAlso AVISO.Frächter_KdNr > 0 Then
Dim AD_Befoerderer As New VERAG_PROG_ALLGEMEIN.cAdressen(AVISO.Frächter_KdNr) ' Befoerderer
Dim KD_Befoerderer As New VERAG_PROG_ALLGEMEIN.cKunde(AVISO.Frächter_KdNr) ' Befoerderer
cdy.ncts_Carrier_IdentificationNumber = KD_Befoerderer.EORITIN
If KD_Befoerderer.EORITIN IsNot Nothing Then cdy.ncts_Carrier_SubsidiaryNumber = KD_Befoerderer.EORITIN_NL
'cdy.ncts_Carrier_name = (If(AD_Befoerderer.Name_1, "") & " " & If(AD_Befoerderer.Name_2, "")).trim
'cdy.ncts_Carrier_st = AD_Befoerderer.Straße
'cdy.ncts_SumA_Befoerderer_PLZ = AD_Befoerderer.PLZ
'cdy.ncts_SumA_Befoerderer_Ort = AD_Befoerderer.Ordnungsbegriff
'cdy.ncts_SumA_Befoerderer_Land = cProgramFunctions.getISO2Land(AD_Befoerderer.LandKz)
Else
'cdy.ncts_SumA_Befoerderer_Name = If(AVISO.Frächter, "")
End If
End If
If SENDUNG IsNot Nothing Then
Dim HC As DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment = Nothing
If cdy.ncts_HOUSE_CONSIGNMENT.Count > 0 Then
HC = cdy.ncts_HOUSE_CONSIGNMENT(0)
Else
HC = New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment
cdy.ncts_HOUSE_CONSIGNMENT.Add(HC) ' schon wieder...'nciht mehr anfügen
End If
Dim p As DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem = Nothing
If HC.nctsWP_CONSIGNMENT_ITEM.Count > 0 Then
p = HC.nctsWP_CONSIGNMENT_ITEM(0)
Else
p = New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem
HC.nctsWP_CONSIGNMENT_ITEM.Add(p) ' schon wieder...'nciht mehr anfügen
End If
p.nctsHCCI_DescriptionOfGoods = SENDUNG.tblSnd_Warenbezeichnung
If SENDUNG.tblSnd_Colli IsNot Nothing AndAlso IsNumeric(SENDUNG.tblSnd_Colli) Then
Dim pk As New DAKOSY_Worker.cDakosy_NCTSOut004_HouseConsignment_ConsignmentItem_Packaging
pk.nctsHCCIPK_NumberOfPackages = SENDUNG.tblSnd_Colli
pk.nctsHCCIPK_TypeOfPackages = "PK"
'pk.nctsHCCIPK_GoodsItemNumber = "OHNE" -->BEIPACK Verweis auf andere Pos-
p.nctsHCCI_PACKAGING.Add(pk)
End If
p.nctsHCCI_GrossMass = SENDUNG.tblSnd_Gewicht
p.nctsHCCI_GoodsValue = SENDUNG.tblSnd_Warenwert
p.nctsHCCI_CurrencyOfGoodsValue = SENDUNG.tblSnd_WarenwertWaehrung
' p.nctsWP_Warenbezeichnung = SENDUNG.tblSnd_Warenbezeichnung
'If If(p.nctsWP_VorpapierTyp, "") = "" Then p.nctsWP_VorpapierTyp = "OHNE"
If VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = "ATILLA" Then
' p.nctsWP_BesondereVermeke_Export = True
End If
'cdy.ncts_WARENPOS.Add(p)
Select Case cdy.ncts_CustomsOfficeOfDeparture
Case "DE007458" 'Bad Reichenhall --> Empfänger muss tat. Empf. sein; Gest.Adresse nicht akzeptiert!!
If SENDUNG.tblSnd_EmpfaengerKdNr > 0 Then
Dim adEMPF As New VERAG_PROG_ALLGEMEIN.cAdressen(SENDUNG.tblSnd_EmpfaengerKdNr)
Dim kdEMPF As New VERAG_PROG_ALLGEMEIN.cKunde(SENDUNG.tblSnd_EmpfaengerKdNr)
cdy.ncts_Consignee_IdentificationNumber = kdEMPF.EORITIN
cdy.ncts_Consignee_SubsidiaryNumber = kdEMPF.EORITIN_NL
cdy.ncts_Consignee_Name = If(adEMPF.Name_1, "") & If(adEMPF.Name_2, "")
cdy.ncts_Consignee_StreetNumber = adEMPF.Straße
cdy.ncts_Consignee_Postcode = adEMPF.PLZ
cdy.ncts_Consignee_City = adEMPF.Ort
If adEMPF.LandKz IsNot Nothing Then cdy.ncts_Consignee_Country = cProgramFunctions.getISO2Land(adEMPF.LandKz)
cdy.ncts_CustomsOfficeOfDestinationDeclared = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Bestimmungszollstelle)
End If
Case Else
cdy.ncts_Consignee_IdentificationNumber = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_EORI)
cdy.ncts_Consignee_SubsidiaryNumber = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_EORI_NL)
cdy.ncts_Consignee_Name = cProgramFunctions.isLeerNothing(SENDUNG.tblSnd_NCTSVerzollungsadresse)
cdy.ncts_Consignee_StreetNumber = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_Strasse)
cdy.ncts_Consignee_Postcode = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_PLZ)
cdy.ncts_Consignee_City = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_Ort)
cdy.ncts_Consignee_Country = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Verzollungsadresse_Land)
cdy.ncts_CustomsOfficeOfDestinationDeclared = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Bestimmungszollstelle)
End Select
If SENDUNG.tblSnd_AbsenderKdNr > 0 Then
Dim adVERSENDER As New VERAG_PROG_ALLGEMEIN.cAdressen(SENDUNG.tblSnd_AbsenderKdNr)
Dim kdVERSENDER As New VERAG_PROG_ALLGEMEIN.cKunde(SENDUNG.tblSnd_AbsenderKdNr)
cdy.ncts_Consignor_IdentificationNumber = kdVERSENDER.EORITIN
cdy.ncts_Consignor_SubsidiaryNumber = kdVERSENDER.EORITIN_NL
cdy.ncts_Consignor_Name = If(adVERSENDER.Name_1, "") & If(adVERSENDER.Name_2, "")
cdy.ncts_Consignor_StreetNumber = adVERSENDER.Straße
cdy.ncts_Consignor_Postcode = adVERSENDER.PLZ
cdy.ncts_Consignor_City = adVERSENDER.Ort
If adVERSENDER.LandKz IsNot Nothing Then cdy.ncts_Consignor_Country = cProgramFunctions.getISO2Land(adVERSENDER.LandKz)
' cdy.ncts_BestimmungsstelleDienststellennummer = cProgramFunctions.isLeerNothing(SENDUNG.NCTS_Bestimmungszollstelle)
End If
End If
' NCTS= cdy
Catch ex As Exception
MsgBox(ex.StackTrace)
End Try
End Sub
Sub setValue(ncts_OUT)
BezugsNr = ncts_OUT.ncts_ObjectName
End Sub
Private Sub pnl_Paint(sender As Object, e As PaintEventArgs)
End Sub
Sub loadDYZollanmeldungen(Optional Status As String = "") ' + Speichern
If DY_ANM Is Nothing Then
DY_ANM = New cDakosy_Zollanmeldungen(ncts_OUT.ncts_dyaAnmID)
End If
DY_ANM.dy_ART = ALLG.NCTS_ART 'cDy_ART
DY_ANM.dy_BezugsNr = BezugsNr
DY_ANM.dy_AvisoId = If(AVISO Is Nothing, Nothing, AVISO.AvisoID)
DY_ANM.dy_SendungsId = If(SENDUNG Is Nothing, Nothing, SENDUNG.tblSnd_SendungID)
'Status?
DY_ANM.SAVE() 'Speichern, ID wird erzeugt
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Refresh()
Me.Cursor = Cursors.WaitCursor
If sentToDakosy OrElse vbYes = MsgBox("Sollen die Daten abgeschickt werden?" & vbNewLine & "Eine Änderung ist nur noch in der Dakosy Software möglich.", vbYesNoCancel) Then
' Dim cDyAnm As New cDakosy_Zollanmeldungen(cDy_ART, BezugsNr, AVISO.AvisoID, SENDUNG.tblSnd_SendungID)
loadDYZollanmeldungen()
If ncts_OUT IsNot Nothing 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_004(ncts_OUT, Me, DY_ANM, Me.FIRMA_DY)
If Not ncts_OUT.SAVE_ALL() Then Exit Sub
Dim saveFile = ""
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(ncts_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
If saveFile <> "" Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
If SENDUNG IsNot Nothing Then SENDUNG.SET_VGMA() ' MA Vorgeschrieben in Sendung setzen.
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
Private Sub SpeichernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichernToolStripMenuItem.Click
Me.Refresh()
' Dim cDyAnm As New cDakosy_Zollanmeldungen(cDy_ART, BezugsNr, If(AVISO Is Nothing, Nothing, AVISO.AvisoID), If(SENDUNG Is Nothing, Nothing, SENDUNG.tblSnd_SendungID))
loadDYZollanmeldungen()
If ncts_OUT IsNot Nothing 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
DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_004(ncts_OUT, Me, DY_ANM, FIRMA_DY)
If Not ncts_OUT.SAVE_ALL() Then
'gespeichert
End If
End If
DY_ANM.UPDATE_DATA()
End Sub
Private Sub NeueBezugsnummerVergebenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueBezugsnummerVergebenToolStripMenuItem.Click
BezugsNr = getBezugsnr(FIRMA_DY, SENDUNG, BezugsNr, zusatz)
lblBezugsnummer.Text = BezugsNr
End Sub
Private Sub AusGestllungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AusGestllungToolStripMenuItem.Click
Dim EXG_LRN = InputBox("Geben Sie die Gestellungs-LRN ein (ohne aufsteigende Zahlen):")
If EXG_LRN.Length < 13 Then MsgBox("LRN zu kurz!") : Exit Sub
Dim dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql("SELECT TOP (500) [exg_Id] FROM [tblDakosy_EXG] where exg_ObjectName LIKE '" & EXG_LRN & "%' order by exg_ObjectName desc", "FMZOLL")
If dt IsNot Nothing Then
Dim BezugsNr = ""
Dim NCTS_OUT = usrCntlATLAS_NCTS004.genNCTSfromStammref(Me, FIRMA_DY, AVISO, SENDUNG, BezugsNr)
NCTS_OUT.ncts_HOUSE_CONSIGNMENT.Clear()
NCTS_OUT.DELETE_HouseConsignment()
For Each row In dt.Rows
Dim EXG As New cDakosyEXG(row("exg_Id"))
If EXG IsNot Nothing Then
DAKOSY_Worker.cDakosyNCTSOut004.fillNCTS_WithEXG(NCTS_OUT, EXG)
End If
Next
If NCTS_OUT.SAVE_ALL() Then
'--------------------------------------------------------------------------------
'----SENDEN----------------------------------------------------------------------
'--------------------------------------------------------------------------------
Dim EXG_TMP As New cDakosyEXG(dt(0)("exg_Id"))
Dim DY_ANM = New cDakosy_Zollanmeldungen(NCTS_OUT.ncts_dyaAnmID)
If NCTS_OUT IsNot Nothing 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 = EXG_TMP.exg_firma
NCTS_OUT.ncts_niederlassung = EXG_TMP.exg_niederlassung
' DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_004(NCTS_OUT, Me, DY_ANM, Me.FIRMA_DY)
DAKOSY_Interface_SEND.loadInClass_VersandanmeldungNCTSDE_004(NCTS_OUT, Me, DY_ANM, Me.FIRMA_DY)
'VON HIER löschnen ohne test
If NCTS_OUT.SAVE_ALL() Then
If vbYes = MsgBox("Erfolgreich erstellt! Soll(en) die Ausfuhr-Gestellung(en) abgeschickt werden?", vbYesNoCancel) Then
Dim saveFile = ""
If cDakosyNCTSOut004.generateVersandanmeldungNCTSDE_004(NCTS_OUT, saveFile, cboDakosyAction._value, Application.StartupPath) Then
If saveFile <> "" Then
If cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, Me.FIRMA_DY) Then
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_03)
If SENDUNG IsNot Nothing Then SENDUNG.SET_VGMA() ' MA Vorgeschrieben in Sendung setzen.
Else
DAKOSY_Worker.cDakosy_Statusmeldungen.InsertStatusMeldung(DY_ANM, DAKOSY_Worker.cDY_Statusliste.S_09)
MsgBox("Sendefehler!")
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)
End If
End If
End If
'--------------------------------------------------------------------------------
'--------------------------------------------------------------------------------
End If
End If
'ncts_OUT.DELETE_HouseConsignment()
'Dim cDakosyEXG As List(Of cDakosyEXG)
'For Each POS In cDakosyEXG
'Next
'ncts_OUT.ncts_HOUSE_CONSIGNMENT.Add()
End Sub
Shared Function genNCTSfromStammref(CONTROL As Control, FIRMA_DY As String, AVISO As cAviso, SENDUNG As cSendungen, ByRef BezugsNr As String) As DAKOSY_Worker.cDakosyNCTSOut004
Dim NCTS_OUT As New DAKOSY_Worker.cDakosyNCTSOut004
Dim f As New frmDakosyStammreferenz("DE", "NCTS", False,,, FIRMA_DY)
Dim Stammreferenz = Nothing
f.selectForEXG = True
If f.ShowDialog(CONTROL.FindForm) Then
Stammreferenz = f.STAMMREF
' sentToDakosy = f.sentToDakosy
End If
Try
If BezugsNr = "" Then BezugsNr = usrCntlATLAS_NCTS004.getBezugsnr(FIRMA_DY, SENDUNG, BezugsNr, "")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
NCTS_OUT = cDakosyNCTSOut004.LOADByBezugsNr(BezugsNr, True)
If True Then 'NCTS_OUT Is Nothing Then
Dim cDy_ART = "T2"
Select Case (SENDUNG.tblSnd_Abfertigungsart_ID)
Case 5 : cDy_ART = "T1"
Case Else : cDy_ART = "T2"
End Select
Dim DY_ANM As New cDakosy_Zollanmeldungen
'If DY_ANM Is Nothing Then
' DY_ANM = New cDakosy_Zollanmeldungen(NCTS_OUT.ncts_dyaAnmID)
'End If
DY_ANM.dy_ART = cDy_ART 'cDy_ART
DY_ANM.dy_BezugsNr = BezugsNr
DY_ANM.dy_AvisoId = If(AVISO Is Nothing, Nothing, AVISO.AvisoID)
DY_ANM.dy_SendungsId = If(SENDUNG Is Nothing, Nothing, SENDUNG.tblSnd_SendungID)
'Status?
If DY_ANM.SAVE() Then 'Speichern, ID wird erzeugt
'Falls zur BezugsNr schon ein Eintrag in der DB vorhanden ist
NCTS_OUT = cDakosyNCTSOut004.LOADByAnmIDFull(f.STAMMREF_DYID, True) ' DyID --> Falls bei der Stammreferenz eine Vorlage hinterlegt ist!
If NCTS_OUT Is Nothing Then
NCTS_OUT = New cDakosyNCTSOut004
End If
NCTS_OUT.ncts_Id = -1
NCTS_OUT.ncts_dyaAnmID = DY_ANM.dy_Id
usrCntlATLAS_NCTS004.loaddataFromAVISO(AVISO, SENDUNG, cDy_ART, BezugsNr, NCTS_OUT, FIRMA_DY)
'cboStammreferenz.changeItem(Stammreferenz)
If NCTS_OUT.SAVE() Then
Return NCTS_OUT
End If
End If
End If
Return Nothing
End Function
End Class