From 2cdc1d73ba4b5e4b179dc4e1b1ad1eb37229e954 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 18 Mar 2026 14:33:50 +0100 Subject: [PATCH] Gesamtsicherheiten --- DAKOSY_Worker/cZOLL_IMPORT.vb | 2 + initATLASAufschubkonten/cWorker_NCTS.vb | 281 +---------- initATLASAufschubkonten/cWorker_Verwahrung.vb | 453 +++++++++++++----- initATLASAufschubkonten/frmStartOptions.vb | 23 +- 4 files changed, 367 insertions(+), 392 deletions(-) diff --git a/DAKOSY_Worker/cZOLL_IMPORT.vb b/DAKOSY_Worker/cZOLL_IMPORT.vb index d4e4741..64bff29 100644 --- a/DAKOSY_Worker/cZOLL_IMPORT.vb +++ b/DAKOSY_Worker/cZOLL_IMPORT.vb @@ -523,6 +523,8 @@ Public Class cZOLL_IMPORT Case "5103" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803 Case "5303" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803 Case "7001" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803 + Case Else : Return bezugsNr.ToString.Substring(0, 4) + ' Case "5601" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803 'Case "4801", "4803", "4805", "4807", "4811", "5003", "5103", "5303" : Return bezugsNr.ToString.Substring(0, 4) ...... derzeit nur 4803 'filialeBez SUB, NKD, WAI,.-.. diff --git a/initATLASAufschubkonten/cWorker_NCTS.vb b/initATLASAufschubkonten/cWorker_NCTS.vb index 9f7b4f0..eb84e99 100644 --- a/initATLASAufschubkonten/cWorker_NCTS.vb +++ b/initATLASAufschubkonten/cWorker_NCTS.vb @@ -4103,7 +4103,8 @@ Public Class cWorker_NCTS ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist. If saveVerwahrung Then - saveVerwahrungsAusgang(MRN, posErledigung, NCTS, sendMail, testlauf) + 'saveVerwahrungsAusgang(MRN, posErledigung, NCTS, sendMail, testlauf) + cWorker_Verwahrung.saveVerwahrungsAusgang(MRN, posErledigung, "", zp, sendMail, testlauf, True) End If @@ -4649,282 +4650,4 @@ Public Class cWorker_NCTS End Function - Shared Sub saveVerwahrungsAusgang(regNR As String, posErledigung As DataTable, NCTS As DAKOSY_Worker.UeberlassungsmeldungNCTSDE_009.UeberlassungsmeldungMRTyp, 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 - - - 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_gsId = gs.gs_gsId where [gs_MRNNr] = '" & MRNNR & "' and [gs_dakoyimport] = 1 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") - Dim rows = dtGesamtsicherheit.Select("gsp_gspPosId = " & gs_row("gs_posNr") & " AND isnull(gsp_MRNNr,'') <> ''") - - 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,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 = '" & 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 posNr_temp As String = gs_row.Item("gs_posNr").ToString() - - Dim rowsVorp = dtVorpapiere.AsEnumerable(). - Where(Function(r) Not IsDBNull(r("tblSnd_Warenwert")) AndAlso ( - r("tblSnd_Vorpapier_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse - r("tblSnd_Vorpapier2_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse - r("tblSnd_Vorpapier3_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) - ) - ).ToArray() - - If rowsVorp.Length > 0 Then - - Dim row = rowsVorp(0) - If POSNr = posNr_temp Then - Warenwert = CDbl(row("tblSnd_Warenwert")) - Sicherheitsbetrag = System.Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) - End If - End If - - 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 - - Try - anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value) - Catch ex As Exception - anzahlPackstuecke = -1 - End Try - - 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 = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang - .gsp_erstellungsdatum = DateTime.Now - .gsp_ust = gs_row("gs_ust") - .gsp_ATCNr = "" - .gsp_MRNNr = IIf(regNR = "", MRNNR.Trim(), regNR.Trim()) - .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 T1 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 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 &= "" - - 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 &= "" - 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 diff --git a/initATLASAufschubkonten/cWorker_Verwahrung.vb b/initATLASAufschubkonten/cWorker_Verwahrung.vb index 314ad50..95f1a92 100644 --- a/initATLASAufschubkonten/cWorker_Verwahrung.vb +++ b/initATLASAufschubkonten/cWorker_Verwahrung.vb @@ -1,4 +1,5 @@ -Imports VERAG_PROG_ALLGEMEIN +Imports com.sun.xml.internal.rngom.digested +Imports VERAG_PROG_ALLGEMEIN Public Class cWorker_Verwahrung Public Shared Dateiname = "" @@ -215,7 +216,7 @@ Anzeige: 'Verwahrung ABSCHREIBUNG - rechte Seite bei Gesamtsicherheiten If saveAbschreibung Then - saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, EZA, sendMail, testlauf) + saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, zp, sendMail, testlauf) Anzeige: @@ -479,17 +480,17 @@ Anzeige: 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") + 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_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") + 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 zubehandelndeGS As Boolean = existingEntries.AsEnumerable(). + Dim zubehandelndeGSPOS As Boolean = existingEntries.AsEnumerable(). Any(Function(r) - If r.IsNull("gs_posNr") OrElse r.Field(Of Integer)("gs_posNr") <> laufnummer Then + If r.IsNull("gs_DK_laufnr") OrElse r.Field(Of Integer)("gs_DK_laufnr") <> laufnummer Then Return False End If @@ -499,7 +500,7 @@ Anzeige: Return alt = VeralteteWeitereRegistriernummer OrElse mrn = RegistriernummerATLAS End Function) - If zubehandelndeGS Then + If zubehandelndeGSPOS Then Return True 'bereits behandelt -> End If @@ -539,7 +540,15 @@ Anzeige: Dim FreitextInfo As String = "" If posGestellung.Rows.Count > 0 Then - FreitextInfo = posGestellung.Rows(0).Item("AnzPackst") & " " & posGestellung.Rows(0).Item("PackstArt") + 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-IMPORT" End If @@ -547,7 +556,8 @@ Anzeige: 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_posNr = getLatestPosNr(urspringsSicherheit.gs_gsNr, urspringsSicherheit.gs_ATBNr) + 1 + newSicherheit.gs_DK_laufnr = laufnummer newSicherheit.gs_freitext = FreitextInfo newSicherheit.gs_abfertigungsnr = abfertigungsnummer newSicherheit.gs_filialenNr = filiale @@ -580,11 +590,11 @@ Anzeige: urspringsSicherheit.SAVE() End If - Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, laufnummer) + Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, newSicherheit.gs_posNr) With CLOSED_DUMMY - .gsp_gsNr = urspringsSicherheit.gs_gsNr + .gsp_gsNr = newSicherheit.gs_gsNr .gsp_warenwert = 0 ' = 0 wichtig .gsp_sicherheitsbetrag = 0 ' = 0 wichtig .gsp_filialenNr = filiale @@ -594,7 +604,6 @@ Anzeige: .gsp_ust = "" .gsp_freitext = "DAKOSY-IMP-DY" .gsp_avisoId = urspringsSicherheit.gs_avisoId - .gsp_gsNr = urspringsSicherheit.gs_gsNr .gsp_systemuser = "DAKOSY-AUTO" End With @@ -609,7 +618,14 @@ Anzeige: .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") + 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 = urspringsSicherheit.gs_standort .gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang @@ -624,8 +640,10 @@ Anzeige: .gs_saldo = saldo .gs_avisoId = urspringsSicherheit.gs_avisoId .gs_warenort = urspringsSicherheit.gs_warenort - .gs_posNr = laufnummer + i - 1 + .gs_posNr = newSicherheit.gs_posNr + i - 1 .gs_posSubNr = i + .gs_dakoyimport = True + .gs_DK_laufnr = laufnummer End With @@ -684,7 +702,7 @@ Anzeige: 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) + 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) Dim originalTestSetting As Boolean = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM @@ -692,61 +710,74 @@ Anzeige: 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 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 firmaID = -1 - - Dim dtGesamtsicherheit = SQL.loadDgvBySql("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", "AVISO") + 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 gs_row As DataRow = dtGesamtsicherheit.Rows(0) - Dim rows = dtGesamtsicherheit.Select("gsp_gspPosId = " & gs_row("gs_posNr") & " AND gsp_MRNNr IS NOT NULL") + '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 + 'If rows.Length > 0 Then + ' Exit Sub 'bereits vorhanden -> keine INFO + 'End If + + If isNCTS Then + 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 - Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(gs_row("gs_standort")) + 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 + 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 = '" & gs_row("gs_ATBNr") & "' Or tblSnd_Vorpapier2 = '" & gs_row("gs_ATBNr") & "' OR tblSnd_Vorpapier3 = '" & gs_row("gs_ATBNr") & "'", "AVISO") + '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 + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf - If dtVorpapiere.Rows.Count > 0 Then + 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 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 posNr_temp As String = gs_row.Item("gs_posNr").ToString() + Dim posNr_temp As String = gsrightRow.Item("gs_posNr") - Dim rowsVorp = dtVorpapiere.AsEnumerable(). + Dim rowsVorp = dtVorpapiere.AsEnumerable(). Where(Function(r) Not IsDBNull(r("tblSnd_Warenwert")) AndAlso ( r("tblSnd_Vorpapier_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse r("tblSnd_Vorpapier2_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse @@ -754,92 +785,106 @@ Anzeige: ) ).ToArray() - If rowsVorp.Length > 0 Then + If rowsVorp.Length > 0 Then - Dim row = rowsVorp(0) - If POSNr = posNr_temp Then - Warenwert = CDbl(row("tblSnd_Warenwert")) - Sicherheitsbetrag = Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) + Dim row = rowsVorp(0) + If POSNr = posNr_temp Then + Warenwert = CDbl(row("tblSnd_Warenwert")) + Sicherheitsbetrag = Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) + End If + + 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 - End If - 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 = "DASKOY-IMPORT" + .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() - '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 - Try - anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value) - Catch ex As Exception - anzahlPackstuecke = -1 - End Try + 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 - 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 @@ -855,6 +900,175 @@ Anzeige: End Try End Sub + 'Shared Sub saveVerwahrungsAusgang2(regNR As String, posErledigung As DataTable, veralteteregNR As String, nachrichtenDatum As CDate, 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 + + + ' 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_gsId = gs.gs_gsId where [gs_MRNNr] = '" & MRNNR & "' and [gs_dakoyimport] = 1 order by gsp_gspPosId", "AVISO") + + ' If dtGesamtsicherheit.Rows.Count > 0 Then + + ' Dim gs_row = dtGesamtsicherheit.Select("gs_posSubNr = " & POSNr & " AND isnull(gsp_MRNNr,'') = ''") + + ' If gs_row.Length = 0 Then + ' Continue For 'kein Eintag -> next + ' End If + + ' Dim gsrightRow As DataRow = gs_row(0) + + ' 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 + + + ' 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 posNr_temp As String = gsrightRow("gs_posNr").ToString() + + ' Dim rowsVorp = dtVorpapiere.AsEnumerable(). + ' Where(Function(r) Not IsDBNull(r("tblSnd_Warenwert")) AndAlso ( + ' r("tblSnd_Vorpapier_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse + ' r("tblSnd_Vorpapier2_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse + ' r("tblSnd_Vorpapier3_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) + ' ) + ' ).ToArray() + + ' If rowsVorp.Length > 0 Then + + ' Dim row = rowsVorp(0) + ' If POSNr = posNr_temp Then + ' Warenwert = CDbl(row("tblSnd_Warenwert")) + ' Sicherheitsbetrag = System.Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) + ' End If + ' 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(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz")) + ' If Not IsDBNull(gsrightRow("gs_EH_Anzahl")) AndAlso IsNumeric(gsrightRow("gs_EH_Anzahl")) Then + + ' Try + ' anzahlPackstuecke = CInt(gsrightRow("gs_EH_Anzahl")) + ' Catch ex As Exception + ' anzahlPackstuecke = -1 + ' End Try + + ' 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") = gsrightRow("gs_MRNNr") + ' ro("LKW_ID") = gsrightRow("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 = gsrightRow("gs_gsId") + ' '.gsp_gspPosId = CInt(POSNr) + ' .gsp_gspPosId = gsrightRow("gs_posNr").ToString + ' .gsp_warenwert = Warenwert + ' .gsp_sicherheitsbetrag = Sicherheitsbetrag + ' .gsp_freitext = "DASKOY-IMPORT" + ' .gsp_filialenNr = gsrightRow("gs_filialenNr") + ' .gsp_art = "CLOSE" + ' .gsp_gsNr = gsrightRow("gs_gsnr") + ' .gsp_abfertigungsNr = gsrightRow("gs_abfertigungsnr") + ' .gsp_datum = NCTS.EinzelUeberlassungsmeldung.ObjektIdentifizierung.ZeitpunktEingang + ' .gsp_erstellungsdatum = DateTime.Now + ' .gsp_ust = gsrightRow("gs_ust") + ' .gsp_ATCNr = "" + ' .gsp_MRNNr = IIf(regNR = "", MRNNR.Trim(), regNR.Trim()) + ' .gsp_avisoId = gsrightRow("gs_avisoID") + ' .gsp_systemuser = "DAKOSY-AUTO" + ' End With + + + ' SicherheitsPos.SAVE() + ' GesSichRef.CalcSaldo() + + ' If sendInfoMail Then + ' Dim InfoText2 As String = createInfoMail(gsrightRow("gs_MRNNr").ToString, Nothing, "VW-AUSGANG",, SicherheitsPos) + ' VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Verwahrungsausgang T1 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" @@ -871,8 +1085,25 @@ Anzeige: Return 0 End Function + Private Shared Function getLatestPosNr(gs_gsnr As Integer, gs_ATBNr As String) As Integer + Dim posNr As Integer = 0 + 'Dim sqlq As String = "Select MAX([gsp_gspPosId]) As MaxPosNr from tblGesamtsicherheitsPositionen where gsp_gsnr = " & gs_gsnr + Dim sqlq As String = "Select MAX([gs_posNr]) As MaxPosNr from [tblGesamtsicherheit] where gs_gsnr = " & gs_gsnr & " And gs_ATBNR = '" & gs_ATBNr & "'" + Dim dt As New DataTable + dt = SQL.loadDgvBySql(sqlq, "AVISO", 100, True) - 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 + If (dt.Rows(0).Item(0) IsNot DBNull.Value) Then + + posNr = dt.Rows(0).Item(0) + + End If + + Return posNr + + 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 @@ -961,7 +1192,7 @@ Anzeige: TextHTMLtable &= "" & r.Item("LKW_ID") & "" TextHTMLtable &= "" & r.Item("anzahlPackstuecke") & "" TextHTMLtable &= "" & r.Item("AnzahlStückErledigt") & "" - TextHTMLtable &= "" & r.Item("StornierungKZ") & "" + If Not isNCTS Then TextHTMLtable &= "" & r.Item("StornierungKZ") & "" TextHTMLtable &= "" Next diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index b3f150b..c3cb03d 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -1039,7 +1039,7 @@ Public Class frmStartOptions End If End If Catch ex As Exception - MsgBox(ex.Message & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try cDHF_Anhaenge.SAVE() @@ -3197,7 +3197,9 @@ Public Class frmStartOptions Public Function copyFile(file, toDirectory, Optional ByRef dest = "") - If Not System.IO.File.Exists(file) Then Return False + Dim fileINfo As New FileInfo(file) + If Not HasDirectoryReadAccess(fileINfo.DirectoryName) Then Return False + If Not fileINfo.Exists Then Return False If Not System.IO.Directory.Exists(toDirectory) Then System.IO.Directory.CreateDirectory(toDirectory) dest = toDirectory & ".tmp_" & cut_file(file) Dim tmpExt = "" @@ -3211,6 +3213,23 @@ Public Class frmStartOptions Return True End Function + + + Function HasDirectoryReadAccess(path As String) As Boolean + Try + If Not System.IO.Directory.Exists(path) Then Return False + Dim entries = System.IO.Directory.EnumerateFileSystemEntries(path) + Dim first = entries.FirstOrDefault() + Return True + Catch ex As UnauthorizedAccessException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, ERROR_OP.MAIL) + Return False + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, ERROR_OP.MAIL) + Return False + End Try + End Function + Public Function cut_file(ByVal file As String) As String ' Funktion zum Entfernen der Backslashs / Ordner While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function While file.Contains("\") file = file.Remove(0, 1)