Verwahrung

This commit is contained in:
2026-03-09 14:54:13 +01:00
parent 3c2fb57abf
commit db9cbf2191

View File

@@ -1,6 +1,4 @@
Imports com.sun.xml.internal.bind.v2.model.core Imports VERAG_PROG_ALLGEMEIN
Imports Microsoft.Office.Core
Imports VERAG_PROG_ALLGEMEIN
Public Class cWorker_Verwahrung Public Class cWorker_Verwahrung
Public Shared Dateiname = "" Public Shared Dateiname = ""
@@ -190,8 +188,6 @@ Anzeige:
posErledigung.Rows.Add(ro) posErledigung.Rows.Add(ro)
End If End If
Next Next
@@ -199,9 +195,6 @@ Anzeige:
End If End If
End If End If
' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
If readEZA_SumAErledigungsinformationVorpapier_005 <> "" Then 'BEZUGSNR vorhanden If readEZA_SumAErledigungsinformationVorpapier_005 <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit) Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
@@ -212,24 +205,7 @@ Anzeige:
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.V_60 STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.V_60
STATUS.dySt_ergZeitpunkt = zp STATUS.dySt_ergZeitpunkt = zp
' STATUS.dySt_ergDetails = details
'EINTRAG IN tblDakosy_Zollanmeldungen
Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA") Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
'Dim EZA_TMP As DAKOSY_Worker.cDakosyEZA
''???????? REGNR
'If regNR <> "" Then
' STATUS.dySt_ergCode = "REGNr"
' STATUS.dySt_ergMitteilung = regNR
' EZA_TMP = FORM.saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), regNR)
'Else
' STATUS.dySt_ergCode = "ART"
' If ART <> "" Then STATUS.dySt_ergMitteilung = ART
' EZA_TMP = FORM.saveDY_EZA(STATUS, DY_TMP, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit))
'End If
'FORM.SaveEZA_FirmaNL(EZA_TMP, DY_TMP, division)
If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
STATUS.SAVE() STATUS.SAVE()
@@ -311,13 +287,9 @@ Anzeige:
If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
STATUS.SAVE() STATUS.SAVE()
'---------------------------------------------------------------- '----------------------------------------------------------------
'Verwahrung ABSCHREIBUNG
If saveAbschreibung Then If saveAbschreibung Then
Try Try
@@ -330,11 +302,6 @@ Anzeige:
End Try End Try
End If End If
@@ -352,14 +319,14 @@ Anzeige:
Shared Function readNCTS_SumAMassnahmenbekanntgabe(FORM As frmDYNachrichtenVerarbeitung, d As String, saveAbschreibung As Boolean) As String Shared Function readNCTS_SumAMassnahmenbekanntgabe(FORM As frmDYNachrichtenVerarbeitung, d As String, saveAbschreibung As Boolean) As String
Try Try
Dim NCTS As DAKOSY_Worker.SumAErledigungsinformationCDXWare_007.SumAErledigungsinformationCDXWareSCTyp = DAKOSY_Worker.SumAErledigungsinformationCDXWare_007.SumAErledigungsinformationCDXWareSCTyp.LoadFromFile(d) Dim NCTS As DAKOSY_Worker.SumABekanntgabeMassnahme_005.SumABekanntgabeMassnahmeSBTyp = DAKOSY_Worker.SumABekanntgabeMassnahme_005.SumABekanntgabeMassnahmeSBTyp.LoadFromFile(d)
Dim ART = ""
' Dim details = ""
Dim zp As Object = Nothing Dim zp As Object = Nothing
Dim regNR = "" Dim regNR = ""
Dim division = "" Dim division = ""
Dim posMassnahmen As New DataTable
readNCTS_SumAMassnahmenbekanntgabe = "" readNCTS_SumAMassnahmenbekanntgabe = ""
If NCTS IsNot Nothing Then If NCTS IsNot Nothing Then
@@ -371,69 +338,71 @@ Anzeige:
End If End If
End If End If
If NCTS.EinzelSumAErledigungsinformationCDXWare IsNot Nothing Then If NCTS.EinzelSumABekanntgabeMassnahme IsNot Nothing Then
If NCTS.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung IsNot Nothing Then If NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung IsNot Nothing Then
If NCTS.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ObjektName IsNot Nothing Then If NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ObjektName IsNot Nothing Then
readNCTS_SumAMassnahmenbekanntgabe = NCTS.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ObjektName readNCTS_SumAMassnahmenbekanntgabe = NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ObjektName
End If End If
zp = NCTS.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ZeitpunktNachrichteneingang zp = NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ZeitpunktNachrichteneingang
End If End If
If NCTS.EinzelSumAErledigungsinformationCDXWare.KopfDaten IsNot Nothing Then If NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten IsNot Nothing Then
If NCTS.EinzelSumAErledigungsinformationCDXWare.KopfDaten.RegNrATLAS IsNot Nothing Then If NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten.RegistriernummerATLAS IsNot Nothing Then
regNR = NCTS.EinzelSumAErledigungsinformationCDXWare.KopfDaten.RegNrATLAS regNR = NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten.RegistriernummerATLAS
End If End If
End If End If
End If End If
If NCTS.EinzelSumABekanntgabeMassnahme.Position IsNot Nothing Then
For Each POS In NCTS.EinzelSumABekanntgabeMassnahme.Position
If POS.MassnahmeCode IsNot Nothing AndAlso posMassnahmen IsNot Nothing Then
If Not posMassnahmen.Columns.Contains("MassnahmeText") Then
posMassnahmen.Columns.Add("MassnahmeCode", GetType(Integer))
posMassnahmen.Columns.Add("MassnahmeText", GetType(String))
posMassnahmen.Columns.Add("MassnahmeNichtzustellbarKz", GetType(String))
posMassnahmen.Columns.Add("PackstueckArt", GetType(String))
posMassnahmen.Columns.Add("PackstueckAnzahl", GetType(Integer))
End If
Dim ro As DataRow = posMassnahmen.NewRow
ro("MassnahmeText") = POS.MassnahmeText
ro("MassnahmeCode") = POS.MassnahmeCode
ro("MassnahmeNichtzustellbarKz") = POS.MassnahmeNichtzustellbarKz
ro("PackstueckAnzahl") = POS.PackstueckAnzahl
ro("PackstueckArt") = POS.PackstueckArt
posMassnahmen.Rows.Add(ro)
End If
Next
End If
End If End If
' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
If readNCTS_SumAMassnahmenbekanntgabe <> "" Then 'BEZUGSNR vorhanden If readNCTS_SumAMassnahmenbekanntgabe <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit) Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
STATUS.dySt_BezugsNr = readNCTS_SumAMassnahmenbekanntgabe
STATUS.dySt_artMitteilung = "VW_EVP_CDX"
STATUS.dySt_dyArt = "VW" '"EZA" 'T1/T2
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.V_60 '???
STATUS.dySt_ergZeitpunkt = zp
' STATUS.dySt_ergDetails = details
'EINTRAG IN tblDakosy_Zollanmeldungen
Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, NCTS.Transaktion.IOReferenz, If(zp, NCTS.Transaktion.IODatumZeit), "NCTS")
If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
STATUS.SAVE()
'----------------------------------------------------------------
'Verwahrung ABSCHREIBUNG
If saveAbschreibung Then
Try
Catch ex As Exception
End Try
'-----------------------EMAIL-NOTIFYCATION----------------------------------------
If posMassnahmen.Rows.Count > 0 Then
Dim Mailext = createInfoMail(regNR, posMassnahmen, "MASSNAHME-DAKOSY")
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Massnahme DAKOSY - " & Now().ToShortDateString, Mailext,,,,, "d.breimaier@verag.ag")
End If End If
'---------------------------------------------------------------- '----------------------------------------------------------------
FORM.addDGVEinarbeitung("VW: Erledigungsinformation-Vorpapier CDX", STATUS.dySt_BezugsNr) FORM.addDGVEinarbeitung("VW: Bekanntgabe Massnahme", regNR)
End If End If
Catch ex As Exception Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
@@ -756,14 +725,34 @@ Anzeige:
'Dim dtSendungen = SQL.loadDgvBySql("SELECT") 'Dim dtSendungen = SQL.loadDgvBySql("SELECT")
Dim anzahlPackstuecke As Integer = -1 Dim anzahlPackstuecke As Integer = -1
Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte"))) Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte")))
Dim AnzahlStückStorniert As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte"))) Dim StornierungKz As String = If(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz"))
If gs_row.Item("gs_freitext") <> "" Then If gs_row.Item("gs_freitext") <> "" Then
anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value) anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value)
End If End If
If anzahlPackstuecke > 0 AndAlso anzahlPackstuecke <> AnzahlStückErledigt Then 'Hinweismeldung, wenn nicht alle erledigt wurden! If anzahlPackstuecke > 0 AndAlso anzahlPackstuecke <> AnzahlStückErledigt Then 'Hinweismeldung, wenn nicht alle erledigt wurden!
'verwahrung@verag.ag Dim dt As New DataTable
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Erledigungsmeldung-DAKOSY fehlende Positionen - " & Now().ToShortDateString, "Bei " & MRNNR & "/" & regNR & " wurden nur " & AnzahlStückErledigt & " von " & gs_row.Item("gs_freitext") & " erledigt" & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag")
If Not dt.Columns.Contains("anzahlPackstuecke") Then
dt.Columns.Add("MRN", GetType(String))
dt.Columns.Add("LKW_ID", GetType(String))
dt.Columns.Add("anzahlPackstuecke", GetType(Integer))
dt.Columns.Add("StornierungKZ", GetType(String))
dt.Columns.Add("AnzahlStückErledigt", GetType(Integer))
End If
Dim ro As DataRow = dt.NewRow
ro("MRN") = gs_row.Item("gs_MRNNr")
ro("LKW_ID") = gs_row.Item("gs_avisoId")
ro("anzahlPackstuecke") = anzahlPackstuecke
ro("AnzahlStückErledigt") = AnzahlStückErledigt
ro("StornierungKZ") = StornierungKz
dt.Rows.Add(ro)
Dim InfoText As String = createInfoMail(MRNNR, dt, "")
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Erledigungsmeldung-DAKOSY fehlende Positionen - " & Now().ToShortDateString, InfoText,,,,, "d.breimaier@verag.ag")
End If End If
Dim SicherheitsPos As New cGesamtsicherheitsPositionen() Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
@@ -831,4 +820,63 @@ Anzeige:
Return 0 Return 0
End Function End Function
Public Shared Function createInfoMail(regNR As String, dt As DataTable, typ As String) As String
Dim TextHTMLtable As String
If typ = "MASSNAHME-DAKOSY" Then
TextHTMLtable &= "Bei " & regNR & " wurden eine Zoll-Maßnahme ausgelöst." & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>Code</td><td>Text</td><td>NichtzustellbarKz</td><td>PackstueckAnzahl</td><td>PackstueckArt</td></tr>"
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeCode") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeText") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeNichtzustellbarKz") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("PackstueckAnzahl") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("PackstueckArt") & "</b></td>"
TextHTMLtable &= "</tr>"
Next
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Else
TextHTMLtable &= "Bei " & regNR & " wurde nicht vollständig aufgelöst." & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>MRN-Nr</td><td>LKW-ID</td><td>Packstücke gesamt</td><td>Packstücke erledigt</td><td>Stornierung KZ</td></tr>"
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & r.Item("MRN") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("LKW_ID") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("anzahlPackstuecke") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("AnzahlStückErledigt") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("StornierungKZ") & "</b></td>"
TextHTMLtable &= "</tr>"
Next
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
End If
End Function
End Class End Class