Imports VERAG_PROG_ALLGEMEIN
Public Class cWorker_Verwahrung
Public Shared Dateiname = ""
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
Shared Function readVW_SumAVerwahrungsinfo(FORM As frmDYNachrichtenVerarbeitung, d As String, saveVerwahrung As Boolean, sendMail As Boolean, testlauf As Boolean) As String
Try
Dim VWI As DAKOSY_Worker.SumAVerwahrungsinfo_009.SumAVerwahrungsinfoSVTyp = DAKOSY_Worker.SumAVerwahrungsinfo_009.SumAVerwahrungsinfoSVTyp.LoadFromFile(d)
Dim VorpapiernummerInput = ""
Dim RegistriernummerATLAS = ""
Dim VeralteteWeitereRegistriernummer = ""
Dim ankungsdatum As Object = Nothing
Dim gestellungsdatum As Object = Nothing
Dim posGestellung As New DataTable
readVW_SumAVerwahrungsinfo = ""
If VWI IsNot Nothing Then
If VWI.EinzelSumAVerwahrungsinfo IsNot Nothing Then
If VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung IsNot Nothing Then
If VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ObjektName IsNot Nothing Then
readVW_SumAVerwahrungsinfo = VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ObjektName 'Nur ObjektAntragsart VV (SumA Vorgang) /NE (NCTS-Vorgang )
End If
End If
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten IsNot Nothing Then
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten.Vorpapiernummer IsNot Nothing Then
VorpapiernummerInput = VWI.EinzelSumAVerwahrungsinfo.KopfDaten.Vorpapiernummer
End If
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten.RegistriernummerATLAS IsNot Nothing Then
RegistriernummerATLAS = VWI.EinzelSumAVerwahrungsinfo.KopfDaten.RegistriernummerATLAS
End If
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten.VeralteteWeitereRegistriernummer IsNot Nothing Then
VeralteteWeitereRegistriernummer = VWI.EinzelSumAVerwahrungsinfo.KopfDaten.VeralteteWeitereRegistriernummer
End If
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten.GestellungDatum > "01.01.2000" Then
gestellungsdatum = VWI.EinzelSumAVerwahrungsinfo.KopfDaten.GestellungDatum
End If
If VWI.EinzelSumAVerwahrungsinfo.KopfDaten.Ankunftsdatum > "01.01.2000" Then
ankungsdatum = VWI.EinzelSumAVerwahrungsinfo.KopfDaten.Ankunftsdatum
End If
If VWI.EinzelSumAVerwahrungsinfo.Position IsNot Nothing Then
For Each POS In VWI.EinzelSumAVerwahrungsinfo.Position
If POS.Positionsnummer IsNot Nothing AndAlso posGestellung IsNot Nothing Then
If Not posGestellung.Columns.Contains("AnzPackst") Then
posGestellung.Columns.Add("PosNr", GetType(Integer))
posGestellung.Columns.Add("AnzPackst", GetType(Integer))
posGestellung.Columns.Add("PackstArt", GetType(String))
posGestellung.Columns.Add("Rohmasse", GetType(Double))
posGestellung.Columns.Add("Warenbeschreibung", GetType(String))
posGestellung.Columns.Add("VerwahrerFirma", GetType(String))
posGestellung.Columns.Add("VerwahrerOrt", GetType(String))
posGestellung.Columns.Add("VerwahrerEORI", GetType(String))
posGestellung.Columns.Add("SpezifischerOrdnungsbegriffDaten", GetType(String))
End If
Dim ro As DataRow = posGestellung.NewRow
ro("PosNr") = POS.Positionsnummer
ro("AnzPackst") = POS.PackstueckAnzahl
ro("PackstArt") = POS.PackstueckArt
ro("Rohmasse") = POS.Rohmasse
ro("Warenbeschreibung") = POS.Warenbeschreibung
ro("VerwahrerFirma") = POS.Verwahrer.NameFirma
ro("VerwahrerOrt") = POS.Verwahrer.Ortsteil
ro("VerwahrerEORI") = POS.Verwahrer.TeilnehmerEORI
ro("SpezifischerOrdnungsbegriffDaten") = POS.SpezifischerOrdnungsbegriffDaten
posGestellung.Rows.Add(ro)
End If
Next
End If
End If
End If
End If
If readVW_SumAVerwahrungsinfo <> "" And VorpapiernummerInput <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(VWI.Transaktion.IOReferenz, VWI.Transaktion.IODatumZeit)
STATUS.dySt_BezugsNr = readVW_SumAVerwahrungsinfo
STATUS.dySt_artMitteilung = "VW_INFO"
STATUS.dySt_dyArt = "VW"
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.V_50
STATUS.dySt_ergCode = "GSTDATUM"
STATUS.dySt_ergMitteilung = ""
If gestellungsdatum IsNot Nothing Then STATUS.dySt_ergZeitpunkt = gestellungsdatum
STATUS.SAVE()
'LINKE SEITE BEI GESAMTSICHERHEITEN!!!!!!!!!!!!!
If saveVerwahrung Then saveVerwahrungseingang(readVW_SumAVerwahrungsinfo, VWI, RegistriernummerATLAS, posGestellung, VorpapiernummerInput, VeralteteWeitereRegistriernummer, sendMail, testlauf)
Anzeige:
FORM.addDGVEinarbeitung("VW: Eingang", STATUS.dySt_BezugsNr)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
readVW_SumAVerwahrungsinfo = ""
End Try
End Function
Shared Function readEZA_SumAErledigungsinformationVorpapier_005(FORM As frmDYNachrichtenVerarbeitung, d As String, saveAbschreibung As Boolean, sendMail As Boolean, testlauf As Boolean) As String
Try
Dim EZA As DAKOSY_Worker.SumAErledigungsinformationVorpapier_005.SumAErledigungsinformationVorpapierSIVRPTyp = DAKOSY_Worker.SumAErledigungsinformationVorpapier_005.SumAErledigungsinformationVorpapierSIVRPTyp.LoadFromFile(d)
Dim ART = ""
Dim RegistriernummerATLAS = ""
Dim posErledigung As New DataTable
' Dim details = ""
Dim zp As Object = Nothing
Dim regNR = ""
Dim division = ""
Dim veralteteregNR = ""
readEZA_SumAErledigungsinformationVorpapier_005 = ""
If EZA IsNot Nothing Then
If EZA.Transaktion IsNot Nothing Then
If EZA.Transaktion.IODivision3 IsNot Nothing Then
division = EZA.Transaktion.IODivision3
ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
division = EZA.Transaktion.IODivision1
End If
End If
If EZA.EinzelSumAErledigungsinformation IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName IsNot Nothing Then
readEZA_SumAErledigungsinformationVorpapier_005 = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ObjektName
End If
zp = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ZeitpunktNachrichteneingang
End If
If EZA.EinzelSumAErledigungsinformation.KopfDaten IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung IsNot Nothing Then
ART = EZA.EinzelSumAErledigungsinformation.KopfDaten.ArtErledigung
End If
If EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise IsNot Nothing Then
regNR = EZA.EinzelSumAErledigungsinformation.KopfDaten.RegNrATLASWeitereNachweise
End If
If EZA.EinzelSumAErledigungsinformation.KopfDaten.VeralteteWeitereNachweise IsNot Nothing Then
veralteteregNR = EZA.EinzelSumAErledigungsinformation.KopfDaten.VeralteteWeitereNachweise
End If
End If
If EZA.EinzelSumAErledigungsinformation.Position IsNot Nothing Then
For Each POS In EZA.EinzelSumAErledigungsinformation.Position
If POS.LaufendeNummer IsNot Nothing AndAlso posErledigung IsNot Nothing Then
If Not posErledigung.Columns.Contains("LaufendeNummer") Then
posErledigung.Columns.Add("LaufendeNummer", GetType(String))
posErledigung.Columns.Add("IDRegNrSumA", GetType(String))
posErledigung.Columns.Add("IDRegNrSumAPos", GetType(String))
posErledigung.Columns.Add("StornierungKz", GetType(String))
posErledigung.Columns.Add("StueckzahlErledigte", GetType(String))
End If
Dim ro As DataRow = posErledigung.NewRow
ro("LaufendeNummer") = POS.LaufendeNummer
ro("IDRegNrSumA") = POS.IDRegNrSumA
ro("IDRegNrSumAPos") = POS.IDRegNrSumAPos
ro("StornierungKz") = POS.StornierungKz
ro("StueckzahlErledigte") = POS.StueckzahlErledigte
posErledigung.Rows.Add(ro)
End If
Next
End If
End If
End If
If readEZA_SumAErledigungsinformationVorpapier_005 <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
STATUS.dySt_BezugsNr = readEZA_SumAErledigungsinformationVorpapier_005
STATUS.dySt_artMitteilung = "VW_EVP"
STATUS.dySt_dyArt = "VW" '"EZA" 'T1/T2
STATUS.dySt_status = DAKOSY_Worker.cDY_Statusliste.V_60
STATUS.dySt_ergZeitpunkt = zp
Dim DY_TMP As DAKOSY_Worker.cDakosy_Zollanmeldungen = FORM.saveDY_ZA(STATUS, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
STATUS.SAVE()
'----------------------------------------------------------------
'Verwahrung ABSCHREIBUNG - rechte Seite bei Gesamtsicherheiten
If saveAbschreibung Then
saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, EZA, sendMail, testlauf)
Anzeige:
FORM.addDGVEinarbeitung("VW: Ausgang", STATUS.dySt_BezugsNr)
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
readEZA_SumAErledigungsinformationVorpapier_005 = ""
End Try
End Function
Shared Function readEZA_SumAErledigungsinformationCDXWare007(FORM As frmDYNachrichtenVerarbeitung, d As String, saveAbschreibung As Boolean) As String
Try
Dim EZA As DAKOSY_Worker.SumAErledigungsinformationCDXWare_007.SumAErledigungsinformationCDXWareSCTyp = DAKOSY_Worker.SumAErledigungsinformationCDXWare_007.SumAErledigungsinformationCDXWareSCTyp.LoadFromFile(d)
Dim ART = ""
' Dim details = ""
Dim zp As Object = Nothing
Dim regNR = ""
Dim division = ""
readEZA_SumAErledigungsinformationCDXWare007 = ""
If EZA IsNot Nothing Then
If EZA.Transaktion IsNot Nothing Then
If EZA.Transaktion.IODivision3 IsNot Nothing Then
division = EZA.Transaktion.IODivision3
ElseIf EZA.Transaktion.IODivision1 IsNot Nothing Then
division = EZA.Transaktion.IODivision1
End If
End If
If EZA.EinzelSumAErledigungsinformationCDXWare IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ObjektName IsNot Nothing Then
readEZA_SumAErledigungsinformationCDXWare007 = EZA.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ObjektName
End If
zp = EZA.EinzelSumAErledigungsinformationCDXWare.ObjektIdentifizierung.ZeitpunktNachrichteneingang
End If
If EZA.EinzelSumAErledigungsinformationCDXWare.KopfDaten IsNot Nothing Then
If EZA.EinzelSumAErledigungsinformationCDXWare.KopfDaten.RegNrATLAS IsNot Nothing Then
regNR = EZA.EinzelSumAErledigungsinformationCDXWare.KopfDaten.RegNrATLAS
End If
End If
End If
End If
' EZA.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
If readEZA_SumAErledigungsinformationCDXWare007 <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(EZA.Transaktion.IOReferenz, EZA.Transaktion.IODatumZeit)
STATUS.dySt_BezugsNr = readEZA_SumAErledigungsinformationCDXWare007
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, EZA.Transaktion.IOReferenz, If(zp, EZA.Transaktion.IODatumZeit), "EZA")
If DY_TMP IsNot Nothing Then STATUS.dySt_dyId = DY_TMP.dy_Id
STATUS.SAVE()
'----------------------------------------------------------------
If saveAbschreibung Then
Try
Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
End Try
End If
'----------------------------------------------------------------
FORM.addDGVEinarbeitung("VW: Erledigungsinformation-Vorpapier CDX", STATUS.dySt_BezugsNr)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
readEZA_SumAErledigungsinformationCDXWare007 = ""
End Try
End Function
Shared Function readNCTS_SumAMassnahmenbekanntgabe(FORM As frmDYNachrichtenVerarbeitung, d As String, saveAbschreibung As Boolean) As String
Try
Dim NCTS As DAKOSY_Worker.SumABekanntgabeMassnahme_005.SumABekanntgabeMassnahmeSBTyp = DAKOSY_Worker.SumABekanntgabeMassnahme_005.SumABekanntgabeMassnahmeSBTyp.LoadFromFile(d)
Dim zp As Object = Nothing
Dim regNR = ""
Dim division = ""
Dim posMassnahmen As New DataTable
readNCTS_SumAMassnahmenbekanntgabe = ""
If NCTS IsNot Nothing Then
If NCTS.Transaktion IsNot Nothing Then
If NCTS.Transaktion.IODivision3 IsNot Nothing Then
division = NCTS.Transaktion.IODivision3
ElseIf NCTS.Transaktion.IODivision1 IsNot Nothing Then
division = NCTS.Transaktion.IODivision1
End If
End If
If NCTS.EinzelSumABekanntgabeMassnahme IsNot Nothing Then
If NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung IsNot Nothing Then
If NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ObjektName IsNot Nothing Then
readNCTS_SumAMassnahmenbekanntgabe = NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ObjektName
End If
zp = NCTS.EinzelSumABekanntgabeMassnahme.ObjektIdentifizierung.ZeitpunktNachrichteneingang
End If
If NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten IsNot Nothing Then
If NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten.RegistriernummerATLAS IsNot Nothing Then
regNR = NCTS.EinzelSumABekanntgabeMassnahme.KopfDaten.RegistriernummerATLAS
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
If readNCTS_SumAMassnahmenbekanntgabe <> "" Then 'BEZUGSNR vorhanden
Dim STATUS As DAKOSY_Worker.cDakosy_Statusmeldungen = FORM.getStatusCheckTransID(NCTS.Transaktion.IOReferenz, NCTS.Transaktion.IODatumZeit)
'-----------------------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
'----------------------------------------------------------------
FORM.addDGVEinarbeitung("VW: Bekanntgabe Massnahme", regNR)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
readNCTS_SumAMassnahmenbekanntgabe = ""
End Try
End Function
Shared Function saveVerwahrungseingang(readVW_SumAVerwahrungsinfo As String, VWI As DAKOSY_Worker.SumAVerwahrungsinfo_009.SumAVerwahrungsinfoSVTyp, RegistriernummerATLAS As String, posGestellung As DataTable, VorpapiernummerInput As String, VeralteteWeitereRegistriernummer As String, sendInfoMail As Boolean, testlauf As Boolean)
Dim BezugsNr = readVW_SumAVerwahrungsinfo
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
Try
If VeralteteWeitereRegistriernummer = "" Then Return False
Dim filiale As String = ""
Dim abfertigungsnummer = ""
Dim Standort As String = ""
Dim Vorpapiernummer = ""
Dim laufnummer As Integer = -1
Dim parts() As String = VorpapiernummerInput.Split("-"c)
If parts.Length = 2 Then
Vorpapiernummer = parts(0)
Integer.TryParse(parts(1), laufnummer)
End If
If BezugsNr.Length > 4 AndAlso IsNumeric(BezugsNr.Substring(0, 4)) Then
If BezugsNr.Length > 4 Then
filiale = BezugsNr.Substring(0, 4)
End If
If BezugsNr.Length >= 14 Then
abfertigungsnummer = BezugsNr.Substring(5, 8)
End If
End If
If Vorpapiernummer <> "" Then
If Vorpapiernummer.Length > 18 Then
Vorpapiernummer = Vorpapiernummer.ToString.Substring(0, 18)
End If
Dim dtSendungsInfo As New DataTable
dtSendungsInfo = SQL.loadDgvBySql("SELECT [FilialenNr],[AbfertigungsNr],[UnterNr] FROM [dbo].[tblSendungen] where tblSnd_ATB_T1 = '" & Vorpapiernummer & "'", "AVISO")
If dtSendungsInfo.Rows.Count > 0 Then
filiale = dtSendungsInfo.Rows(0).Item("FilialenNr")
abfertigungsnummer = dtSendungsInfo.Rows(0).Item("AbfertigungsNr")
End If
Select Case filiale
Case "4803", "4809"
Standort = "VERAG AG"
Case "4810", "5103", "5901"
Standort = "VERAG GmbH"
Case "5501"
Standort = "IMEX"
Case Else
Return False
End Select
Dim dy_SendungsId = VWI.Transaktion.IOReferenz
If filiale <> "" AndAlso abfertigungsnummer <> "" AndAlso IsNumeric(filiale) AndAlso IsNumeric(abfertigungsnummer) Then
Dim SND = VERAG_PROG_ALLGEMEIN.cSendungen.LOADByFilialenNrAbfertigungsNr(filiale, abfertigungsnummer)
If SND IsNot Nothing AndAlso SND.tblSnd_Abfertigungsart_ID = 44 Then
Dim existingEntries As DataTable
existingEntries = (New SQL).loadDgvBySql("Select gs_gsnr, gs_gsId, gs_posNr, gs_freitext,gs_systemuser,gs_VeralteteWeitereRegistriernummer,gs_MRNNr, gs_ATBNr, gs_dakoyimport from [tblGesamtsicherheit] where [gs_ATBNr] = '" & Vorpapiernummer & "' order by gs_datum desc", "AVISO")
If existingEntries.Rows.Count = 0 Then
'existingEntries = (New SQL).loadDgvBySql("Select gs_gsnr, gs_gsId, gs_posNr,gs_freitext,gs_systemuser,gs_VeralteteWeitereRegistriernummer from [tblGesamtsicherheit] where ([gs_filialenNr] = '" & SND.FilialenNr & "' and [gs_abfertigungsNr] = " & SND.AbfertigungsNr & " ) or (gs_avisoId = " & SND.tblSnd_AvisoID & ") order by gs_datum desc", "AVISO")
existingEntries = (New SQL).loadDgvBySql("Select gs_gsnr, gs_gsId, gs_posNr,gs_freitext,gs_systemuser,gs_VeralteteWeitereRegistriernummer,gs_MRNNr, gs_ATBNr, gs_dakoyimport from [tblGesamtsicherheit] where ([gs_filialenNr] = '" & SND.FilialenNr & "' and [gs_abfertigungsNr] = " & SND.AbfertigungsNr & " ) order by gs_datum desc", "AVISO")
End If
If existingEntries.Rows.Count > 0 Then
Dim zubehandelndeGS As Boolean = existingEntries.AsEnumerable().
Any(Function(r)
If r.IsNull("gs_posNr") OrElse r.Field(Of Integer)("gs_posNr") <> laufnummer Then
Return False
End If
Dim alt = If(r.IsNull("gs_VeralteteWeitereRegistriernummer"), "", r.Field(Of String)("gs_VeralteteWeitereRegistriernummer"))
Dim mrn = If(r.IsNull("gs_MRNNr"), "", r.Field(Of String)("gs_MRNNr"))
Return alt = VeralteteWeitereRegistriernummer OrElse mrn = RegistriernummerATLAS
End Function)
If zubehandelndeGS Then
Return True 'bereits behandelt ->
End If
Dim urspringsSicherheit As cSicherheiten
Dim rows = existingEntries.Select("gs_dakoyimport = true AND [gs_ATBNr] = '" & Vorpapiernummer & "' AND gs_freitext = 'DAKOSY DUMMY'")
If rows.Length > 0 Then
Dim row = rows(0)
'urspringsSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr"))
urspringsSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr"))
Else
Return False 'kein Dummy-Eintrag
End If
Dim newSicherheit As New cSicherheiten()
If Not urspringsSicherheit.hasEntry Then
Return False
End If
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(urspringsSicherheit.gs_standort)
Dim saldo = GesSichRef.CalcSaldo()
If SND.FilialenNr > 0 Then filiale = SND.FilialenNr
If SND.AbfertigungsNr > 0 Then abfertigungsnummer = SND.AbfertigungsNr
'Verwahrung ANSCHREIBUNG
newSicherheit.gs_systemuser = "DAKOSY-AUTO"
newSicherheit.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY
newSicherheit.gs_MRNNr = RegistriernummerATLAS 'wichtig für Zuweisung DAKOSY
newSicherheit.gs_gsNr = urspringsSicherheit.gs_gsNr
newSicherheit.gs_ATBNr = urspringsSicherheit.gs_ATBNr
Dim FreitextInfo As String = ""
If posGestellung.Rows.Count > 0 Then
FreitextInfo = posGestellung.Rows(0).Item("AnzPackst") & " " & posGestellung.Rows(0).Item("PackstArt")
Else
FreitextInfo = "DAKOSY-IMPORT"
End If
newSicherheit.gs_standort = urspringsSicherheit.gs_standort
newSicherheit.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang
newSicherheit.gs_erstellungsdatum = Now()
newSicherheit.gs_posNr = laufnummer
newSicherheit.gs_freitext = FreitextInfo
newSicherheit.gs_abfertigungsnr = abfertigungsnummer
newSicherheit.gs_filialenNr = filiale
newSicherheit.gs_posSubNr = 1
newSicherheit.gs_LKWKZ = urspringsSicherheit.gs_LKWKZ
newSicherheit.gs_zollsatz = urspringsSicherheit.gs_zollsatz
If laufnummer = 1 Then
newSicherheit.gs_warenwert = urspringsSicherheit.gs_warenwert
newSicherheit.gs_sicherheitsbetrag = urspringsSicherheit.gs_sicherheitsbetrag
Else
newSicherheit.gs_warenwert = 0
newSicherheit.gs_sicherheitsbetrag = 0
End If
newSicherheit.gs_art = "OPEN"
newSicherheit.gs_saldo = saldo
newSicherheit.gs_avisoId = urspringsSicherheit.gs_avisoId
newSicherheit.gs_warenort = urspringsSicherheit.gs_warenort
newSicherheit.gs_dakoyimport = True
Dim gsid = newSicherheit.SAVEOBJECT()
If gsid > 0 AndAlso laufnummer = 1 Then
'wechsel des Sicherheitsbetrags und Warenwert von Dummypos auf erste Produkivposition
urspringsSicherheit.gs_warenwert = 0
urspringsSicherheit.gs_sicherheitsbetrag = 0
urspringsSicherheit.SAVE()
End If
Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, laufnummer)
With CLOSED_DUMMY
.gsp_gsNr = urspringsSicherheit.gs_gsNr
.gsp_warenwert = 0 ' = 0 wichtig
.gsp_sicherheitsbetrag = 0 ' = 0 wichtig
.gsp_filialenNr = filiale
.gsp_art = "CLOSE"
.gsp_abfertigungsNr = abfertigungsnummer
.gsp_erstellungsdatum = DateTime.Now
.gsp_ust = ""
.gsp_freitext = "DAKOSY-IMP-DY"
.gsp_avisoId = urspringsSicherheit.gs_avisoId
.gsp_gsNr = urspringsSicherheit.gs_gsNr
.gsp_systemuser = "DAKOSY-AUTO"
End With
CLOSED_DUMMY.SAVE()
If posGestellung.Rows.Count > 1 Then
If True Then
For i As Integer = 2 To posGestellung.Rows.Count
Dim OPEN_DUMMY_SUBPOS As New cSicherheiten()
With OPEN_DUMMY_SUBPOS
.gs_systemuser = "DAKOSY-AUTO"
.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY
.gs_gsNr = urspringsSicherheit.gs_gsNr
.gs_ATBNr = urspringsSicherheit.gs_ATBNr
.gs_freitext = posGestellung.Rows(i - 1).Item("AnzPackst") & " " & posGestellung.Rows(i - 1).Item("PackstArt")
.gs_MRNNr = RegistriernummerATLAS
.gs_standort = urspringsSicherheit.gs_standort
.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang
.gs_erstellungsdatum = Now()
.gs_abfertigungsnr = abfertigungsnummer
.gs_filialenNr = filiale
.gs_LKWKZ = urspringsSicherheit.gs_LKWKZ
.gs_zollsatz = urspringsSicherheit.gs_zollsatz
.gs_warenwert = 0
.gs_sicherheitsbetrag = 0
.gs_art = "OPEN"
.gs_saldo = saldo
.gs_avisoId = urspringsSicherheit.gs_avisoId
.gs_warenort = urspringsSicherheit.gs_warenort
.gs_posNr = laufnummer + i - 1
.gs_posSubNr = i
End With
Dim gsid_SupPos = OPEN_DUMMY_SUBPOS.SAVEOBJECT()
Dim CLOSED_DUMMY_SUBPOS = New cGesamtsicherheitsPositionen()
With CLOSED_DUMMY_SUBPOS
.gsp_gspPosId = OPEN_DUMMY_SUBPOS.gs_posNr
.gsp_gsId = gsid_SupPos
.gsp_gsNr = urspringsSicherheit.gs_gsNr
.gsp_warenwert = 0 ' = 0 wichtig
.gsp_sicherheitsbetrag = 0 ' = 0 wichtig
.gsp_filialenNr = filiale
.gsp_art = "CLOSE"
.gsp_abfertigungsNr = abfertigungsnummer
.gsp_erstellungsdatum = DateTime.Now
.gsp_ust = ""
.gsp_freitext = "DAKOSY-IMP-DY"
.gsp_avisoId = urspringsSicherheit.gs_avisoId
.gsp_gsNr = urspringsSicherheit.gs_gsNr
.gsp_systemuser = "DAKOSY-AUTO"
End With
CLOSED_DUMMY_SUBPOS.SAVE()
Next
End If
End If
If sendInfoMail Then
Dim InfoText As String = createInfoMail(RegistriernummerATLAS, posGestellung, "VW-EINGANG", newSicherheit)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Verwahrungseingang aus DAKOSY - " & Now().ToShortDateString, InfoText,,,,, "d.breimaier@verag.ag")
End If
Return True
End If
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Finally
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
End Try
End Function
Shared Sub saveVerwahrungsAusgang(regNR As String, posErledigung As DataTable, veralteteregNR As String, EZA As DAKOSY_Worker.SumAErledigungsinformationVorpapier_005.SumAErledigungsinformationVorpapierSIVRPTyp, sendInfoMail As Boolean, testlauf As Boolean)
Dim originalTestSetting As Boolean = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
Try
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
If posErledigung IsNot Nothing AndAlso posErledigung.Rows.Count > 0 Then
'If regNR <> "" AndAlso veralteteregNR <> "" Then
For Each POS As DataRow In posErledigung.Rows
Dim MRNNR As String = ""
Dim existingEntryID As Integer = 0
If Not IsDBNull(POS("IDRegNrSumA")) AndAlso POS("IDRegNrSumA").ToString <> "" Then
Dim POSNr As Integer = If(IsDBNull(POS("IDRegNrSumAPos")), 0, CInt(POS("IDRegNrSumAPos")))
If MRNNR <> POS.Item("IDRegNrSumA") Then
MRNNR = POS.Item("IDRegNrSumA")
'Dim firmaID = -1
Dim dtGesamtsicherheit = SQL.loadDgvBySql("Select * From [tblGesamtsicherheit] as gs left join tblGesamtsicherheitsPositionen as pos on pos.gsp_gsnr = gs.gs_gsnr where [gs_VeralteteWeitereRegistriernummer] = '" & MRNNR & "' or [gs_MRNNr] = '" & regNR & "' order by gsp_gspPosId", "AVISO")
If dtGesamtsicherheit.Rows.Count > 0 Then
Dim gs_row As DataRow = dtGesamtsicherheit.Rows(0)
Dim rows = dtGesamtsicherheit.Select("gsp_gspPosId = " & gs_row("gs_posNr") & " AND gsp_MRNNr IS NOT NULL")
If rows.Length > 0 Then
Exit Sub 'bereits vorhanden -> keine INFO
End If
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(gs_row("gs_standort"))
Dim saldo As Double = GesSichRef.CalcSaldo()
Dim Warenwert As Double = 0
Dim Sicherheitsbetrag As Double = 0
'Berechnung Warenwert und Sicherheitsbetrag aus Sendung -> immer aus den Produktivdaten!
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
Dim dtVorpapiere As DataTable = SQL.loadDgvBySql("SELECT tblSnd_Warenwert,tblSnd_WarenwertWaehrung,tblSnd_Vorpapier_Pos,tblSnd_Vorpapier2_Pos, tblSnd_Vorpapier3_Pos from tblSendungen where tblSnd_Vorpapier = '" & gs_row("gs_ATBNr") & "' Or tblSnd_Vorpapier2 = '" & gs_row("gs_ATBNr") & "' OR tblSnd_Vorpapier3 = '" & gs_row("gs_ATBNr") & "'", "AVISO")
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
If dtVorpapiere.Rows.Count > 0 Then
Dim rowsVorp = dtVorpapiere.Select("tblSnd_Warenwert is not null AND (tblSnd_Vorpapier_Pos = '" & gs_row.Item("gs_posNr") & "' or tblSnd_Vorpapier2_Pos = '" & gs_row.Item("gs_posNr") & "' or tblSnd_Vorpapier3_Pos = '" & gs_row.Item("gs_posNr") & "')")
Dim row = rowsVorp(0)
Warenwert = CDbl(row("tblSnd_Warenwert"))
Sicherheitsbetrag = Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100))
End If
'Dim dtSendungen = SQL.loadDgvBySql("SELECT")
Dim anzahlPackstuecke As Integer = -1
Dim AnzahlStückErledigt 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
anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value)
End If
If anzahlPackstuecke > 0 AndAlso anzahlPackstuecke <> AnzahlStückErledigt Then 'Hinweismeldung, wenn nicht alle erledigt wurden!
Dim dt As New DataTable
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
Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
With SicherheitsPos
.gsp_gsId = gs_row("gs_gsId")
'.gsp_gspPosId = CInt(POSNr)
.gsp_gspPosId = gs_row.Item("gs_posNr")
.gsp_warenwert = Warenwert
.gsp_sicherheitsbetrag = Sicherheitsbetrag
.gsp_freitext = "DASKOY-IMPORT"
.gsp_filialenNr = gs_row("gs_filialenNr")
.gsp_art = "CLOSE"
.gsp_gsNr = gs_row("gs_gsnr")
.gsp_abfertigungsNr = gs_row("gs_abfertigungsnr")
.gsp_datum = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ZeitpunktNachrichteneingang
.gsp_erstellungsdatum = DateTime.Now
.gsp_ust = gs_row("gs_ust")
.gsp_ATCNr = IIf(veralteteregNR = "", MRNNR, veralteteregNR)
.gsp_MRNNr = IIf(regNR = "", MRNNR, regNR)
.gsp_avisoId = gs_row("gs_avisoID")
.gsp_systemuser = "DAKOSY-AUTO"
End With
SicherheitsPos.SAVE()
GesSichRef.CalcSaldo()
If sendInfoMail Then
Dim InfoText2 As String = createInfoMail(gs_row.Item("gs_MRNNr"), Nothing, "VW-AUSGANG",, SicherheitsPos)
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Verwahrungsausgang aus DAKOSY - " & Now().ToShortDateString, InfoText2,,,,, "d.breimaier@verag.ag")
End If
End If
End If
End If
Next
End If
'End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Finally
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
End Try
End Sub
Public Shared Function AddNewGesamtSichNr() As Integer
Dim sqlq As String = "select MAX([gs_gsNr]) as MaxGesSich from tblGesamtsicherheit"
Dim dt As New DataTable
dt = SQL.loadDgvBySql(sqlq, "AVISO", 100, True)
Dim LetzteGesSichNum As Integer = -1
If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then
LetzteGesSichNum = dt.Rows(0).Item(0)
Return LetzteGesSichNum + 1
End If
Return 0
End Function
Public Shared Function createInfoMail(regNR As String, dt As DataTable, typ As String, Optional GS As cSicherheiten = Nothing, Optional GSPOS As cGesamtsicherheitsPositionen = Nothing) As String
Dim TextHTMLtable As String
Select Case typ
Case "MASSNAHME-DAKOSY"
TextHTMLtable &= "Bei " & regNR & " wurden eine Zoll-Maßnahme ausgelöst." & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "
"
TextHTMLtable &= "| Code | Text | NichtzustellbarKz | PackstueckAnzahl | PackstueckArt |
"
For Each r As DataRow In dt.Rows
TextHTMLtable &= ""
TextHTMLtable &= "| " & r.Item("MassnahmeCode") & " | "
TextHTMLtable &= "" & r.Item("MassnahmeText") & " | "
TextHTMLtable &= "" & r.Item("MassnahmeNichtzustellbarKz") & " | "
TextHTMLtable &= "" & r.Item("PackstueckAnzahl") & " | "
TextHTMLtable &= "" & r.Item("PackstueckArt") & " | "
TextHTMLtable &= "
"
Next
TextHTMLtable &= "
"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case "VW-EINGANG"
TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= ""
TextHTMLtable &= "| PosNr | Vorpapier | MRN | LKWID |
"
If GS IsNot Nothing Then
TextHTMLtable &= ""
TextHTMLtable &= "| " & GS.gs_posNr & " | "
TextHTMLtable &= "" & GS.gs_ATBNr & " | "
TextHTMLtable &= "" & GS.gs_MRNNr & " | "
TextHTMLtable &= "" & GS.gs_avisoId & " | "
TextHTMLtable &= "
"
End If
TextHTMLtable &= "
"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case "VW-AUSGANG"
TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= ""
TextHTMLtable &= "| PosNr | MRN | ATC | AVISOID |
"
If GSPOS IsNot Nothing Then
TextHTMLtable &= ""
TextHTMLtable &= "| " & GSPOS.gsp_gspPosId & " | "
TextHTMLtable &= "" & GSPOS.gsp_MRNNr & " | "
TextHTMLtable &= "" & GSPOS.gsp_ATCNr & " | "
TextHTMLtable &= "" & GSPOS.gsp_avisoId & " | "
TextHTMLtable &= "
"
End If
TextHTMLtable &= "
"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case Else
TextHTMLtable &= regNR & " wurde nicht vollständig aufgelöst." & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= ""
TextHTMLtable &= "| MRN-Nr | LKW-ID | Packstücke gesamt | Packstücke erledigt | Stornierung KZ |
"
For Each r As DataRow In dt.Rows
TextHTMLtable &= ""
TextHTMLtable &= "| " & r.Item("MRN") & " | "
TextHTMLtable &= "" & r.Item("LKW_ID") & " | "
TextHTMLtable &= "" & r.Item("anzahlPackstuecke") & " | "
TextHTMLtable &= "" & r.Item("AnzahlStückErledigt") & " | "
TextHTMLtable &= "" & r.Item("StornierungKZ") & " | "
TextHTMLtable &= "
"
Next
TextHTMLtable &= "
"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
End Select
End Function
End Class