Files
SDL/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/AES/usrCntlATLAS_AES.vb

488 lines
18 KiB
VB.net

Imports DAKOSY_Worker
Imports Tamir
Imports Tamir.SharpSsh
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlATLAS_AES
Property ALLG As usrCntlATLAS_AES_Allg
Property ADRESSEN As usrCntlATLAS_AES_Adressen
Property POSITIONEN As usrCntlATLAS_AES_Positionen
Property PASS_VEREDELUNG As usrCntlATLAS_AES_PassiveVeredelung
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 = "EX"
Dim AES As cDakosyAES = Nothing
Dim DY_ANM As cDakosy_Zollanmeldungen = Nothing
Dim FIRMA_DY = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
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 = "", Optional FIRMA_DY 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.AES = DAKOSY_Worker.cDakosyAES.LOADByAnmIDFull(DY_ANM.dy_Id, True)
End If
If FIRMA_DY <> "" Then Me.FIRMA_DY = FIRMA_DY
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(AES As cDakosyAES, Optional isSTAMMREF As Boolean = False, Optional STAMMREF As String = "")
InitializeComponent()
Me.AES = AES
DY_ANM = New cDakosy_Zollanmeldungen(AES.aes_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 = "", Optional FIRMA_DY 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.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
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
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_AES_Adressen(AES) ')
ALLG = New usrCntlATLAS_AES_Allg(AES)
POSITIONEN = New usrCntlATLAS_AES_Positionen(AES)
PASS_VEREDELUNG = New usrCntlATLAS_AES_PassiveVeredelung(AES)
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 "AMBAR" : txtDyMandant.Text = "ATIL" : txtDyNiederlassung.Text = "AMBWO"
Case "ATILLA" : txtDyMandant.Text = "ATIL" : txtDyNiederlassung.Text = "SUW"
Case "UNISPED" : txtDyMandant.Text = "UNAT" : txtDyNiederlassung.Text = "ATSPED"
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='AES' 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 AES Is Nothing Then AES = New cDakosyAES
AES.aes_ObjectName = BezugsNr
Button1.Enabled = False
cboDakosyAction.Enabled = False
Else
If AES 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", "AES", False, kdnr,, FIRMA_DY)
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.StackTrace)
End Try
'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='AES' and dySr_dy_Mandant='" & txtDyMandant.Text & "' and dySr_dy_Niederlassung='" & txtDyNiederlassung.Text & "' and dySr_visible=1", False, "FMZOLL", True)
End If
AES = cDakosyAES.LOADByBezugsNr(BezugsNr, True)
If AES Is Nothing Then
'Falls zur BezugsNr schon ein Eintrag in der DB vorhanden ist
AES = New cDakosyAES()
loaddataFromAVISO(AES)
End If
cboStammreferenz.changeItem(Stammreferenz)
Else
' AES is ot nothing
Me.BezugsNr = AES.aes_ObjectName
'MsgBox(AES.ncts_Hauptverpflichteter_Name)
End If
End If
If If(AES.aes_firma, "") = "" Then If FIRMA_DY <> "" Then AES.aes_firma = FIRMA_DY
' If AES.ncts_ArtAnmeldung Is Nothing Or AES.ncts_ArtAnmeldung = "" Then
'AES.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)
' MsgBox(AES.ncts_Hauptverpflichteter_Name)
'Werte setzen:
ADRESSEN.setValues(AES)
ALLG.setValues(AES)
POSITIONEN.setValues(AES)
PASS_VEREDELUNG.setValues(AES)
'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
PASS_VEREDELUNG.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
Try
Me.Button1.PerformClick()
Me.FindForm.Close()
Catch
End Try
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 btnAktiveVeredelung Then
SplitContainer.Panel2.Controls.Add(PASS_VEREDELUNG)
End If
End Sub
Sub loaddataFromAVISO(ByRef cdy As cDakosyAES)
Try
'==> VORBLENDUNG:
' Dim cdy As New cDakosyAES
cdy.aes_ObjectName = BezugsNr
' cdy.aes_AbgangsDienststellennummer = "DE004102"
' cdy.aes_VersendungsLandCode = "DE"
cdy.aes_dyaArt = cDy_ART
If AVISO IsNot Nothing Then
' cdy.aes_Befoerderungsmittel_KennzeichenAbgang = AVISO.LKW_Nr
' cdy.aes_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 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.aes_SumA_Befoerderer_Name = If(AVISO.Frächter, "")
End If
If False Then
If SENDUNG IsNot Nothing Then
Dim p As New DAKOSY_Worker.cDakosy_AES_Warenposition
p.aesWP_Warenbezeichnung = SENDUNG.tblSnd_Warenbezeichnung
If SENDUNG.tblSnd_Colli IsNot Nothing AndAlso IsNumeric(SENDUNG.tblSnd_Colli) Then
Dim pk As New DAKOSY_Worker.cDakosy_AES_WarenpositionPackstuecke
pk.aesWpPk_PackstueckeAnzahl = SENDUNG.tblSnd_Colli
pk.aesWpPk_Verpackungsart = "PK"
p.aesWP_PACKSTUECKE.Add(pk)
End If
p.aesWP_Rohmasse = SENDUNG.tblSnd_Gewicht
p.aesWP_Warenbezeichnung = SENDUNG.tblSnd_Warenbezeichnung
cdy.aes_WARENPOS.Add(p)
End If
End If
cdy.aes_BefoerderungsmittelAbgangKennzeichen = AVISO.LKW_Nr
cdy.aes_BefoerderungsmittelAbgangStaatCode = AVISO.LKW_Nationalitaet
cdy.aes_Ausfuhrland = "DE"
cdy.aes_VerkehrszweigGrenze = "3"
cdy.aes_VerkehrszweigInland = "3"
cdy.aes_BefoerderungsmittelAbgangArtCode = "33"
cdy.aes_BefoerderungsmittelGrenzeArtCode = "33"
cdy.aes_BefoerderungsmittelGrenzeKennzeichen = AVISO.LKW_Nr
cdy.aes_BefoerderungsmittelGrenzeStaatCode = AVISO.LKW_Nationalitaet
cdy.aes_Rechnungwaehrung = "EUR"
' NCTS= cdy
Catch ex As Exception
MsgBox(ex.StackTrace)
End Try
End Sub
Sub setValue(AES)
BezugsNr = AES.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(AES.aes_dyaAnmID)
End If
DY_ANM.dy_ART = ALLG.AES_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()
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 AES IsNot Nothing Then
'Dim cDY As New cDakosyAES(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB)
AES.aes_dyaAnmID = DY_ANM.dy_Id
AES.aes_Erstellung_SB = DY_ANM.dy_Erstellung_SB
AES.aes_LetzteBearbeitung = Now
AES.aes_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB
DAKOSY_Interface_SEND.loadInClass_VersandanmeldungAES(AES, Me, DY_ANM)
Select Case FIRMA_DY
Case "AMBAR"
AES.aes_BezugsnummerVorblendung = "AA_EXPORT_AMBAR_"
End Select
If Not AES.SAVE_ALL() Then Exit Sub
Dim saveFile = ""
If DAKOSY_Interface_SEND.generateVersandanmeldungAES(AES, saveFile, cboDakosyAction._value) Then
If saveFile <> "" Then
If Not cDakosyFunftions.send_Data_To_Dakosy_FTP(saveFile, BezugsNr, DY_ANM.dy_Id, FIRMA_DY) Then
MsgBox("Sendefehler!")
Else
If SENDUNG IsNot Nothing Then SENDUNG.SET_VGMA() ' MA Vorgeschrieben in Sendung setzen.
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
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 AES IsNot Nothing Then
'Dim cDY As New cDakosyAES(cDyAnm.dy_Id, cDyAnm.dy_Erstellung_SB)
AES.aes_dyaAnmID = DY_ANM.dy_Id
AES.aes_Erstellung_SB = DY_ANM.dy_Erstellung_SB
AES.aes_LetzteBearbeitung = Now
AES.aes_LetzteBearbeitung_SB = DY_ANM.dy_LetzteBearbeitung_SB
DAKOSY_Interface_SEND.loadInClass_VersandanmeldungAES(AES, Me, DY_ANM)
If Not AES.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
End Class