Imports DAKOSY_Worker Imports Tamir Imports Tamir.SharpSsh Public Class usrCntlATLAS_EZA Property ALLG As usrCntlATLAS_EZA_Allg Property ADRESSEN As usrCntlATLAS_EZA_Adressen Property POSITIONEN As usrCntlATLAS_EZA_Positionen Property DV1 As usrCntlATLAS_EZA_DV1 Property Jahr2Stellig As Integer Property zusatz As String Property BezugsNr As String = "" Dim sentToDakosy = False Property AVISO As VERAG_PROG_ALLGEMEIN.cAviso Property SENDUNG As VERAG_PROG_ALLGEMEIN.cSendungen Dim cDy_ART As String = "EZA" Dim EZA As cDakosyEZA = Nothing Dim DY_ANM As cDakosy_Zollanmeldungen = Nothing Property isSTAMMREF As Boolean = False Property STAMMREF As String = "" 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.cDy_ART = If(ART = "NCTS", "T2", ART) 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.EZA = DAKOSY_Worker.cDakosyEZA.LOADByAnmIDFull(DY_ANM.dy_Id, True) End If ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(EZA As cDakosyEZA, Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "") InitializeComponent() Me.EZA = EZA DY_ANM = New cDakosy_Zollanmeldungen(EZA.eza_dyaAnmID) Me.isSTAMMREF = isSTAMMREF Me.STAMMREF = STAMMREF 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(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 <> "", ART, "EX") 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.isSTAMMREF = isSTAMMREF Me.STAMMREF = STAMMREF Me.Jahr2Stellig = Jahr2Stellig 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 = "") ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Me.cDy_ART = If(ART <> "", ART, "EX") Me.AVISO = Aviso Me.SENDUNG = SENDUNG Me.Jahr2Stellig = Jahr2Stellig Me.zusatz = zusatz Me.isSTAMMREF = isSTAMMREF Me.STAMMREF = STAMMREF ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Function getBezugsnr(ByRef BezugsNr) BezugsNr = SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr '& If(zusatz <> "", "/" & zusatz, "") 'zusatz ' & "/" & Jahr2Stellig zusatz = "A" 'Soloagne bis die Bezugsnummer noch nicht existiert While DAKOSY_Worker.cDakosy_Zollanmeldungen.ExistsBezugsNr(BezugsNr) 'IsNot Nothing BezugsNr = SENDUNG.FilialenNr & "/" & SENDUNG.AbfertigungsNr & "/" & 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 lblBezugsnummer.Text = BezugsNr Return BezugsNr End Function Function getKdnr(ByRef art) As Integer Try If ADRESSEN IsNot Nothing Then Select Case art Case "EMPF" : Return ADRESSEN.usrCntl_Empfaenger.kdFirma.KdNr_value Case "ABS" : Return ADRESSEN.usrCntl_Versender.kdFirma.KdNr_value Case "ANM" : Return ADRESSEN.usrCntl_Anmelder.kdFirma.KdNr_value Case "VERTR" : Return ADRESSEN.usrCntl_Vertretener.kdFirma.KdNr_value Case "VERTRANM" : Return ADRESSEN.usrCntl_VertreterAnmelder.kdFirma.KdNr_value End Select End If Catch ex As Exception Return -1 End Try End Function 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) ADRESSEN = New usrCntlATLAS_EZA_Adressen(EZA) ALLG = New usrCntlATLAS_EZA_Allg(EZA) POSITIONEN = New usrCntlATLAS_EZA_Positionen(EZA, Me) DV1 = New usrCntlATLAS_EZA_DV1(EZA) Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA 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 "IMEX" : txtDyMandant.Text = "IMEX" : txtDyNiederlassung.Text = "IME" End Select cboStammreferenz.fillWithSQL("SELECT [dySr_Stammreferenz],[dySr_Bezeichnung] FROM [tblDakosy_Stammreferenzen] WHERE dySr_Land='DE' AND dySr_Verfahren='EZA' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung='" & txtDyNiederlassung.Text & "' and dySr_visible=1", False, "FMZOLL", True) cboStammreferenz.changeItem("") If isSTAMMREF Then Me.BezugsNr = "STAMMREFERENZ" If EZA Is Nothing Then EZA = New cDakosyEZA EZA.eza_ObjectName = BezugsNr Button1.Enabled = False cboDakosyAction.Enabled = False Else If EZA Is Nothing Then ' NEUE ZOLLANMELDUNG Dim kdnr As Object = Nothing If SENDUNG IsNot Nothing AndAlso SENDUNG.tblSnd_EmpfaengerKdNr > 0 Then kdnr = SENDUNG.tblSnd_EmpfaengerKdNr End If Dim f As New frmDakosyStammreferenz("DE", "EZA", False, kdnr) Dim Stammreferenz = Nothing If f.ShowDialog(Me) Then Stammreferenz = f.STAMMREF sentToDakosy = f.sentToDakosy End If Try BezugsNr = getBezugsnr(BezugsNr) Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try EZA = cDakosyEZA.LOADByBezugsNr(BezugsNr, True) If EZA Is Nothing Then 'Falls zur BezugsNr schon ein Eintrag in der DB vorhanden ist EZA = cDakosyEZA.LOADByAnmIDFull(f.STAMMREF_DYID, True) ' DyID --> Falls bei der Stammreferenz eine Vorlage hinterlegt ist! If EZA IsNot Nothing Then 'Stmmreferenz - Werte zurücksetzen, damit nicht falsch übergeben EZA.eza_dyaAnmID = -1 EZA.eza_Id = -1 Else EZA = New cDakosyEZA End If 'Wenn bei der Stammref eine andere NL ausgewählt wurde, wird dies hier korrigiert (zb. IMEX / GLOBAL!): If f.nl <> txtDyNiederlassung.Text Then txtDyNiederlassung.Text = f.nl cboStammreferenz.fillWithSQL("SELECT [dySr_Stammreferenz],[dySr_Bezeichnung] FROM [tblDakosy_Stammreferenzen] WHERE dySr_Land='DE' AND dySr_Verfahren='EZA' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung='" & txtDyNiederlassung.Text & "' and dySr_visible=1", False, "FMZOLL", True) End If loaddataFromAVISO(EZA) cboStammreferenz.changeItem(Stammreferenz) End If 'eza_OUT Else ' eza_OUT is ot nothing Me.BezugsNr = EZA.eza_ObjectName 'MsgBox(eza_OUT.eza_Hauptverpflichteter_Name) End If End If ' If EZA.ncts_ArtAnmeldung Is Nothing Or EZA.ncts_ArtAnmeldung = "" Then 'EZA.ncts_ArtAnmeldung = "T2" 'End If 'hinzufügen, damit alle Controls richtig geladen und initialisiert werden:s Me.SplitContainer.Panel2.Controls.Add(ALLG) Me.SplitContainer.Panel2.Controls.Add(POSITIONEN) Me.SplitContainer.Panel2.Controls.Add(ADRESSEN) Me.SplitContainer.Panel2.Controls.Add(DV1) AddHandler ALLG.DV1_changed, Sub(dv1) btnDV1.Visible = dv1 End Sub ' MsgBox(EZA.ncts_Hauptverpflichteter_Name) 'Werte setzen: ADRESSEN.setValues(EZA) ALLG.setValues(EZA) POSITIONEN.setValues(EZA) DV1.setValues(EZA) 'Controls wieder entfernen: Me.SplitContainer.Panel2.Controls.Clear() 'If ALLG.txtRechnungspreis.Text = "" Then ALLG.txtRechnungspreis.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 SplitContainer.Panel2.Controls.Add(ALLG) lblBezugsnummer.Text = BezugsNr ALLG.Dock = DockStyle.Fill ADRESSEN.Dock = DockStyle.Fill POSITIONEN.Dock = DockStyle.Fill DV1.Dock = DockStyle.Fill AddHandler POSITIONEN.RohmasseChanged, Sub(rohmasse) Label5.Text = rohmasse.ToString("N2") & " kg" End Sub AddHandler POSITIONEN.PosAnzChanged, Sub(anz) Label3.Text = anz End Sub If sentToDakosy Then Me.Button1.PerformClick() Me.FindForm.Close() End If If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_DakosyZA_AVISO_Edit", "AVISO") Then Me.FindForm.Close() End If 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 btnPositionen Then SplitContainer.Panel2.Controls.Add(POSITIONEN) ElseIf btn Is btnDV1 Then SplitContainer.Panel2.Controls.Add(DV1) End If End Sub Sub loaddataFromAVISO(ByRef cdy As cDakosyEZA) Try '==> VORBLENDUNG: ' Dim cdy As New cDakosyEZA cdy.EZA_ObjectName = BezugsNr ' cdy.EZA_AbgangsDienststellennummer = "DE004102" ' cdy.EZA_VersendungsLandCode = "DE" cdy.EZA_dyaArt = cDy_ART If AVISO IsNot Nothing Then ' cdy.EZA_Befoerderungsmittel_KennzeichenAbgang = AVISO.LKW_Nr ' cdy.EZA_Befoerderungsmittel_KennzeichenGrenzueberschreitend = "X" End If ' Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(712255) ' VERAG Neuhaus ' Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(712255) ' VERAG Neuhaus If False Then 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 Else ' cdy.EZA_SumA_Befoerderer_Name = If(AVISO.Frächter, "") End If If SENDUNG IsNot Nothing Then Dim p As New DAKOSY_Worker.cDakosy_EZA_Warenposition p.ezaWP_Warenbezeichnung = SENDUNG.tblSnd_Warenbezeichnung If SENDUNG.tblSnd_Colli IsNot Nothing AndAlso IsNumeric(SENDUNG.tblSnd_Colli) Then ' Dim pk As New DAKOSY_Worker.cDakosy_EZA_WarenpositionPackstuecke ' pk.EZAWpPk_PackstueckeAnzahl = SENDUNG.tblSnd_Colli ' pk.EZAWpPk_Verpackungsart = "PK" ' p.EZAWP_PACKSTUECKE.Add(pk) End If p.ezaWP_Rohmasse = SENDUNG.tblSnd_Gewicht p.ezaWP_Warenbezeichnung = SENDUNG.tblSnd_Warenbezeichnung cdy.eza_WARENPOS.Add(p) End If End If If SENDUNG IsNot Nothing Then EZA.eza_GesamtRohmasse = SENDUNG.tblSnd_Gewicht If SENDUNG.tblSnd_Abfertigungsart_ID = 1 Then If SENDUNG.tblSnd_EmpfaengerKdNr > 0 Then Dim AD As New DAKOSY_Worker.cDakosy_EZA_Adressen AD.ezaAd_AdressCode = SENDUNG.tblSnd_EmpfaengerKdNr AD.ezaAd_AdressTyp = "CN" Dim ADFmzoll As New VERAG_PROG_ALLGEMEIN.cAdressen(SENDUNG.tblSnd_EmpfaengerKdNr) Dim KDFmzoll As New VERAG_PROG_ALLGEMEIN.cKunde(SENDUNG.tblSnd_EmpfaengerKdNr) AD.ezaAd_NameFirma1 = ADFmzoll.Name_1 AD.ezaAd_NameFirma2 = ADFmzoll.Name_2 AD.ezaAd_StrasseHausNr1 = ADFmzoll.Straße AD.ezaAd_PLZ = ADFmzoll.PLZ AD.ezaAd_Ort = ADFmzoll.Ort AD.ezaAd_LandCode = cProgramFunctions.getISO2Land(ADFmzoll.LandKz) AD.ezaAd_TeilnehmerEORI = KDFmzoll.EORITIN AD.ezaAd_TeilnehmerNLNR = KDFmzoll.EORITIN_NL cdy.eza_ADRESSEN.Add(AD) End If If SENDUNG.tblSnd_AbsenderKdNr > 0 Then Dim AD As New DAKOSY_Worker.cDakosy_EZA_Adressen AD.ezaAd_AdressCode = SENDUNG.tblSnd_AbsenderKdNr AD.ezaAd_AdressTyp = "CZ" Dim ADFmzoll As New VERAG_PROG_ALLGEMEIN.cAdressen(SENDUNG.tblSnd_AbsenderKdNr) Dim KDFmzoll As New VERAG_PROG_ALLGEMEIN.cKunde(SENDUNG.tblSnd_AbsenderKdNr) AD.ezaAd_NameFirma1 = ADFmzoll.Name_1 AD.ezaAd_NameFirma2 = ADFmzoll.Name_2 AD.ezaAd_StrasseHausNr1 = ADFmzoll.Straße AD.ezaAd_PLZ = ADFmzoll.PLZ AD.ezaAd_Ort = ADFmzoll.Ort AD.ezaAd_LandCode = cProgramFunctions.getISO2Land(ADFmzoll.LandKz) AD.ezaAd_TeilnehmerEORI = KDFmzoll.EORITIN AD.ezaAd_TeilnehmerNLNR = KDFmzoll.EORITIN_NL cdy.eza_ADRESSEN.Add(AD) End If End If End If cdy.eza_KennzeichenNameBefoerderungsmittelAnkunft = AVISO.LKW_Nr cdy.eza_BeförderungsmittelGrenzeStaatszugehörigkeitCode = AVISO.LKW_Nationalitaet 'cdy.EZA_BefoerderungsmittelGrenzeKennzeichen = AVISO.LKW_Nr 'cdy.EZA_Ausfuhrland = "DE" ' cdy.EZA_VerkehrszweigGrenze = "3" ' cdy.EZA_VerkehrszweigInland = "3" ' cdy.eza_BeförderungsmittelGrenzeArt = "33" ' cdy.EZA_Rechnungwaehrung = "EUR" ' NCTS= cdy Catch ex As Exception MsgBox(ex.StackTrace) End Try End Sub Sub setValue(EZA) BezugsNr = EZA.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(EZA.EZA_dyaAnmID) End If DY_ANM.dy_ART = ALLG.EZA_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() cboDakosyAction.Focus() 'nur, damit alle _value aktualisuiert sind... 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 EZA IsNot Nothing Then 'Dim cDY As New cDakosyEZA(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB) EZA.eza_dyaAnmID = DY_ANM.dy_Id EZA.eza_Erstellung_SB = DY_ANM.dy_Erstellung_SB EZA.eza_LetzteBearbeitung = Now EZA.eza_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB DAKOSY_Interface_SEND.loadInClass_VersandanmeldungEZA(EZA, Me, DY_ANM) If Not EZA.SAVE_ALL() Then Exit Sub Dim saveFile = "" If DAKOSY_Interface_SEND.generateVersandanmeldungEZA(EZA, saveFile, cboDakosyAction._value) Then If saveFile <> "" Then If Not cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id) Then MsgBox("Sendefehler!") End If End If End If End If DY_ANM.UPDATE_DATA() Me.FindForm.Close() End If End Sub Private Sub SpeichernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichernToolStripMenuItem.Click Me.Refresh() cboDakosyAction.Focus() 'nur, damit alle _value aktualisuiert sind... ' 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 EZA IsNot Nothing Then 'Dim cDY As New cDakosyEZA(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB) EZA.EZA_dyaAnmID = DY_ANM.dy_Id EZA.EZA_Erstellung_SB = DY_ANM.dy_Erstellung_SB EZA.EZA_LetzteBearbeitung = Now EZA.EZA_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB DAKOSY_Interface_SEND.loadInClass_VersandanmeldungEZA(EZA, Me, DY_ANM) If Not EZA.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(BezugsNr) End Sub Private Sub EZAIDToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EZAIDToolStripMenuItem.Click If EZA IsNot Nothing Then MsgBox(EZA.eza_Id) End If End Sub End Class