Imports VERAG_PROG_ALLGEMEIN Public Class cWorker_Verwahrung Public Shared Dateiname = "" Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL Public Class DAKOSY_STATUS Public Const HEADER As String = "DAKOSY-DUMMY" Public Const SEND As String = "DAKOSY-WAITING" Public Const IMPORTED As String = "DAKOSY-IMPORTED" Public Const USER As String = "DAKOSY-AUTO" End Class 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 AndAlso ART <> "NCTS" Then 'bei NCTS wird der Ausgang über ein UeberlassungsmeldungNCTSDE aufgelöst!!!!!! saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, zp, 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_DK_laufnr, 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_DK_laufnr,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 zubehandelndeGSPOS As Boolean = existingEntries.AsEnumerable(). Any(Function(r) If r.IsNull("gs_DK_laufnr") OrElse r.Field(Of Integer)("gs_DK_laufnr") <> 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 zubehandelndeGSPOS Then Return True 'bereits behandelt -> End If Dim DUMMYSicherheit As cSicherheiten Dim rows = existingEntries.Select("gs_dakoyimport = true AND [gs_ATBNr] = '" & Vorpapiernummer & "' AND gs_freitext = '" & DAKOSY_STATUS.HEADER & "'") If rows.Length > 0 Then Dim row = rows(0) DUMMYSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr")) Else Return False 'kein Dummy-Eintrag End If Dim newSicherheit As New cSicherheiten() If Not DUMMYSicherheit.hasEntry Then Return False End If Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(DUMMYSicherheit.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_STATUS.USER newSicherheit.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY newSicherheit.gs_MRNNr = RegistriernummerATLAS 'wichtig für Zuweisung DAKOSY newSicherheit.gs_gsNr = DUMMYSicherheit.gs_gsNr newSicherheit.gs_ATBNr = DUMMYSicherheit.gs_ATBNr Dim FreitextInfo As String = "" If posGestellung.Rows.Count > 0 Then If IsNumeric(posGestellung.Rows(0).Item("AnzPackst")) Then newSicherheit.gs_EH_Anzahl = CInt(posGestellung.Rows(0).Item("AnzPackst")) End If If IsNumeric(posGestellung.Rows(0).Item("Rohmasse")) Then newSicherheit.gs_gewicht = CDbl(posGestellung.Rows(0).Item("Rohmasse")) End If FreitextInfo = posGestellung.Rows(0).Item("PackstArt") Else FreitextInfo = DAKOSY_STATUS.SEND End If newSicherheit.gs_standort = DUMMYSicherheit.gs_standort newSicherheit.gs_datum = DUMMYSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang newSicherheit.gs_erstellungsdatum = Now() newSicherheit.gs_posNr = newSicherheit.getLatestPosNr(DUMMYSicherheit.gs_gsNr, DUMMYSicherheit.gs_ATBNr) + 1 newSicherheit.gs_DK_laufnr = laufnummer newSicherheit.gs_freitext = FreitextInfo newSicherheit.gs_abfertigungsnr = abfertigungsnummer newSicherheit.gs_filialenNr = filiale newSicherheit.gs_posSubNr = 1 newSicherheit.gs_LKWKZ = DUMMYSicherheit.gs_LKWKZ newSicherheit.gs_zollsatz = DUMMYSicherheit.gs_zollsatz If laufnummer = 1 Then newSicherheit.gs_warenwert = DUMMYSicherheit.gs_warenwert newSicherheit.gs_sicherheitsbetrag = DUMMYSicherheit.gs_sicherheitsbetrag Else newSicherheit.gs_warenwert = 0 newSicherheit.gs_sicherheitsbetrag = 0 End If newSicherheit.gs_art = "OPEN" newSicherheit.gs_saldo = saldo newSicherheit.gs_avisoId = DUMMYSicherheit.gs_avisoId newSicherheit.gs_warenort = DUMMYSicherheit.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 DUMMYSicherheit.gs_warenwert = 0 DUMMYSicherheit.gs_sicherheitsbetrag = 0 DUMMYSicherheit.SAVE() End If Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, newSicherheit.gs_posNr) With CLOSED_DUMMY .gsp_gsNr = newSicherheit.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_STATUS.SEND .gsp_avisoId = DUMMYSicherheit.gs_avisoId .gsp_systemuser = DAKOSY_STATUS.USER 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_STATUS.USER .gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY .gs_gsNr = DUMMYSicherheit.gs_gsNr .gs_ATBNr = DUMMYSicherheit.gs_ATBNr If IsNumeric(posGestellung.Rows(i - 1).Item("AnzPackst")) Then .gs_EH_Anzahl = posGestellung.Rows(i - 1).Item("AnzPackst") End If If IsNumeric(posGestellung.Rows(i - 1).Item("Rohmasse")) Then .gs_gewicht = posGestellung.Rows(i - 1).Item("Rohmasse") End If .gs_freitext = posGestellung.Rows(i - 1).Item("PackstArt") .gs_MRNNr = RegistriernummerATLAS .gs_standort = DUMMYSicherheit.gs_standort .gs_datum = DUMMYSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang .gs_erstellungsdatum = Now() .gs_abfertigungsnr = abfertigungsnummer .gs_filialenNr = filiale .gs_LKWKZ = DUMMYSicherheit.gs_LKWKZ .gs_zollsatz = DUMMYSicherheit.gs_zollsatz .gs_warenwert = 0 .gs_sicherheitsbetrag = 0 .gs_art = "OPEN" .gs_saldo = saldo .gs_avisoId = DUMMYSicherheit.gs_avisoId .gs_warenort = DUMMYSicherheit.gs_warenort .gs_posNr = newSicherheit.gs_posNr + i - 1 .gs_posSubNr = i .gs_dakoyimport = True .gs_DK_laufnr = laufnummer 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 = DUMMYSicherheit.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_STATUS.SEND .gsp_avisoId = DUMMYSicherheit.gs_avisoId .gsp_gsNr = DUMMYSicherheit.gs_gsNr .gsp_systemuser = DAKOSY_STATUS.USER End With CLOSED_DUMMY_SUBPOS.SAVE() Next End If End If newSicherheit.rearangePosNrByDakosyLaufNr(newSicherheit.gs_gsNr, newSicherheit.gs_ATBNr) 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, nachrichtenDatum As Date, sendInfoMail As Boolean, testlauf As Boolean, Optional isNCTS As Boolean = False, Optional sicherheitsbetragInput As Double = 0) 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 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 sqlString = "" If isNCTS Then sqlString = "Select * From [tblGesamtsicherheit] as gs left join tblGesamtsicherheitsPositionen as pos on pos.gsp_gsId = gs.gs_gsId where [gs_MRNNr] = '" & MRNNR & "' and [gs_dakoyimport] = 1 order by gsp_gspPosId" Else sqlString = "Select * From [tblGesamtsicherheit] as gs left join tblGesamtsicherheitsPositionen as pos on pos.gsp_gsId = gs.gs_gsId where ([gs_VeralteteWeitereRegistriernummer] = '" & MRNNR & "' or [gs_MRNNr] = '" & regNR & "') and [gs_dakoyimport] = 1 order by gsp_gspPosId, gsp_MRNNr" End If Dim dtGesamtsicherheit = SQL.loadDgvBySql(sqlString, "AVISO") If dtGesamtsicherheit.Rows.Count > 0 Then Dim gs_row As Array = Nothing '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 If isNCTS Then 'gs_row = dtGesamtsicherheit.Select("gs_posSubNr = " & POSNr & "") gs_row = dtGesamtsicherheit.Select("gs_posSubNr = " & POSNr & " AND isnull(gsp_MRNNr,'') = ''") Else gs_row = dtGesamtsicherheit.Select("gs_posSubNr = " & POSNr & " AND isnull(gsp_MRNNr,'') = ''") End If If gs_row.Length = 0 Then Continue For End If Dim gsrightRow As DataRow = gs_row(0) 'es gibt dann immer nur 1 Eintrag! Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(gsrightRow("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,replace(tblSnd_Vorpapier_Pos,'+',',') as tblSnd_Vorpapier_Pos,replace(tblSnd_Vorpapier2_Pos,'+',',') as tblSnd_Vorpapier2_Pos, replace(tblSnd_Vorpapier3_Pos,'+',',') as tblSnd_Vorpapier3_Pos from tblSendungen where tblSnd_Vorpapier = '" & gsrightRow("gs_ATBNr") & "' Or tblSnd_Vorpapier2 = '" & gsrightRow("gs_ATBNr") & "' OR tblSnd_Vorpapier3 = '" & gsrightRow("gs_ATBNr") & "'", "AVISO") VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf Dim posNr_temp As String = gsrightRow.Item("gs_posNr") If dtVorpapiere.Rows.Count > 0 Then Dim rowsVorp = dtVorpapiere.AsEnumerable().Where(Function(r) Not IsDBNull(r("tblSnd_Warenwert")) AndAlso (( r("tblSnd_Vorpapier_Pos").ToString() & "," & r("tblSnd_Vorpapier2_Pos").ToString() & "," & r("tblSnd_Vorpapier3_Pos").ToString()).Split(","c).Select(Function(x) x.Trim()).Where(Function(x) x <> "").Select(Function(x) CInt(x)).DefaultIfEmpty(Integer.MaxValue).Min() = CInt(posNr_temp))).ToArray() If rowsVorp.Length > 0 Then Dim row = rowsVorp(0) Warenwert = CDbl(row("tblSnd_Warenwert")) Sicherheitsbetrag = Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) End If End If Dim anzahlPackstuecke As Integer = -1 Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte"))) Dim StornierungKz As String = "" If Not isNCTS Then StornierungKz = IIf(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz")) End If If Not IsDBNull(gsrightRow.Item("gs_EH_Anzahl")) AndAlso IsNumeric(gsrightRow.Item("gs_EH_Anzahl")) Then Try anzahlPackstuecke = CInt(gsrightRow.Item("gs_EH_Anzahl")) Catch ex As Exception anzahlPackstuecke = -1 End Try 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)) If Not isNCTS Then dt.Columns.Add("StornierungKZ", GetType(String)) dt.Columns.Add("AnzahlStückErledigt", GetType(Integer)) End If Dim ro As DataRow = dt.NewRow ro("MRN") = gsrightRow.Item("gs_MRNNr") ro("LKW_ID") = gsrightRow.Item("gs_avisoId") ro("anzahlPackstuecke") = anzahlPackstuecke ro("AnzahlStückErledigt") = AnzahlStückErledigt If Not isNCTS Then 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 = gsrightRow("gs_gsId") '.gsp_gspPosId = CInt(POSNr) .gsp_gspPosId = gsrightRow.Item("gs_posNr") .gsp_warenwert = Warenwert .gsp_sicherheitsbetrag = Sicherheitsbetrag .gsp_freitext = DAKOSY_STATUS.IMPORTED .gsp_filialenNr = gsrightRow("gs_filialenNr") .gsp_art = "CLOSE" .gsp_gsNr = gsrightRow("gs_gsnr") .gsp_abfertigungsNr = gsrightRow("gs_abfertigungsnr") .gsp_datum = nachrichtenDatum .gsp_erstellungsdatum = DateTime.Now .gsp_ust = gsrightRow("gs_ust") If Not isNCTS Then .gsp_ATCNr = IIf(veralteteregNR = "", MRNNR, veralteteregNR) .gsp_MRNNr = IIf(regNR = "", MRNNR, regNR) Else .gsp_ATCNr = "" .gsp_MRNNr = IIf(regNR = "", MRNNR.Trim(), regNR.Trim()) End If .gsp_avisoId = gsrightRow("gs_avisoID") .gsp_systemuser = "DAKOSY-AUTO" .gsp_EH_Anzahl = AnzahlStückErledigt End With SicherheitsPos.SAVE() GesSichRef.CalcSaldo() If sendInfoMail Then Dim InfoText2 As String = createInfoMail(gsrightRow.Item("gs_MRNNr"), Nothing, "VW-AUSGANG",, SicherheitsPos, isNCTS) VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Verwahrungsausgang aus DAKOSY " & IIf(isNCTS, "T1 ", "") & " - " & Now().ToShortDateString, InfoText2,,,,, "d.breimaier@verag.ag") End If 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, Optional isNCTS As Boolean = False) 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 &= "" For Each r As DataRow In dt.Rows TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" Next TextHTMLtable &= "
CodeTextNichtzustellbarKzPackstueckAnzahlPackstueckArt
" & r.Item("MassnahmeCode") & "" & r.Item("MassnahmeText") & "" & r.Item("MassnahmeNichtzustellbarKz") & "" & r.Item("PackstueckAnzahl") & "" & r.Item("PackstueckArt") & "
" TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*" Return TextHTMLtable Case "VW-EINGANG" TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine TextHTMLtable &= "" TextHTMLtable &= "" If GS IsNot Nothing Then TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" End If TextHTMLtable &= "
PosNrVorpapierMRNLKWID
" & GS.gs_posNr & "" & GS.gs_ATBNr & "" & GS.gs_MRNNr & "" & GS.gs_avisoId & "
" TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*" Return TextHTMLtable Case "VW-AUSGANG" TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine TextHTMLtable &= "" TextHTMLtable &= "" If GSPOS IsNot Nothing Then TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" End If TextHTMLtable &= "
PosNrMRNATCAVISOID
" & GSPOS.gsp_gspPosId & "" & GSPOS.gsp_MRNNr & "" & GSPOS.gsp_ATCNr & "" & GSPOS.gsp_avisoId & "
" 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 &= "" For Each r As DataRow In dt.Rows TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" TextHTMLtable &= "" If Not isNCTS Then TextHTMLtable &= "" TextHTMLtable &= "" Next TextHTMLtable &= "
MRN-NrLKW-IDPackstücke gesamtPackstücke erledigtStornierung KZ
" & r.Item("MRN") & "" & r.Item("LKW_ID") & "" & r.Item("anzahlPackstuecke") & "" & r.Item("AnzahlStückErledigt") & "" & r.Item("StornierungKZ") & "
" TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*" Return TextHTMLtable End Select End Function End Class