Gesamtsicherheiten

This commit is contained in:
2026-03-18 14:33:50 +01:00
parent 2b631294e1
commit 2cdc1d73ba
4 changed files with 367 additions and 392 deletions

View File

@@ -523,6 +523,8 @@ Public Class cZOLL_IMPORT
Case "5103" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803 Case "5103" : Return bezugsNr.ToString.Substring(0, 4) '...... derzeit nur 4803
Case "5303" : 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 "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 "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 'Case "4801", "4803", "4805", "4807", "4811", "5003", "5103", "5303" : Return bezugsNr.ToString.Substring(0, 4) ...... derzeit nur 4803
'filialeBez SUB, NKD, WAI,.-.. 'filialeBez SUB, NKD, WAI,.-..

View File

@@ -4103,7 +4103,8 @@ Public Class cWorker_NCTS
' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist. ' NCTS.LOADByBezugsNr(bezugsNr, False) ' Falls schon ein DS mit dieser Bezugsnummer vorhanden ist.
If saveVerwahrung Then 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 End If
@@ -4649,282 +4650,4 @@ Public Class cWorker_NCTS
End Function 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 &= "<table border=1>"
TextHTMLtable &= "<tr><td>Code</td><td>Text</td><td>NichtzustellbarKz</td><td>PackstueckAnzahl</td><td>PackstueckArt</td></tr>"
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeCode") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeText") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("MassnahmeNichtzustellbarKz") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("PackstueckAnzahl") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("PackstueckArt") & "</b></td>"
TextHTMLtable &= "</tr>"
Next
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case "VW-EINGANG"
TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>PosNr</td><td>Vorpapier</td><td>MRN</td><td>LKWID</td></tr>"
If GS IsNot Nothing Then
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & GS.gs_posNr & "</b></td>"
TextHTMLtable &= "<td><b>" & GS.gs_ATBNr & "</b></td>"
TextHTMLtable &= "<td><b>" & GS.gs_MRNNr & "</b></td>"
TextHTMLtable &= "<td><b>" & GS.gs_avisoId & "</b></td>"
TextHTMLtable &= "</tr>"
End If
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case "VW-AUSGANG"
TextHTMLtable &= typ & " wurde aus DAKOSY generiert!" & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>PosNr</td><td>MRN</td><td>ATC</td><td>AVISOID</td></tr>"
If GSPOS IsNot Nothing Then
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & GSPOS.gsp_gspPosId & "</b></td>"
TextHTMLtable &= "<td><b>" & GSPOS.gsp_MRNNr & "</b></td>"
TextHTMLtable &= "<td><b>" & GSPOS.gsp_ATCNr & "</b></td>"
TextHTMLtable &= "<td><b>" & GSPOS.gsp_avisoId & "</b></td>"
TextHTMLtable &= "</tr>"
End If
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
Case Else
TextHTMLtable &= regNR & " wurde nicht vollständig aufgelöst." & vbNewLine & vbNewLine & vbNewLine
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>MRN-Nr</td><td>LKW-ID</td><td>Packstücke gesamt</td><td>Packstücke erledigt</td><td>Stornierung KZ</td></tr>"
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & r.Item("MRN") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("LKW_ID") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("anzahlPackstuecke") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("AnzahlStückErledigt") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("StornierungKZ") & "</b></td>"
TextHTMLtable &= "</tr>"
Next
TextHTMLtable &= "</table>"
TextHTMLtable &= vbNewLine & vbNewLine & vbNewLine & "*Automatic generated e-mail*"
Return TextHTMLtable
End Select
End Function
End Class End Class

View File

@@ -1,4 +1,5 @@
Imports VERAG_PROG_ALLGEMEIN Imports com.sun.xml.internal.rngom.digested
Imports VERAG_PROG_ALLGEMEIN
Public Class cWorker_Verwahrung Public Class cWorker_Verwahrung
Public Shared Dateiname = "" Public Shared Dateiname = ""
@@ -215,7 +216,7 @@ Anzeige:
'Verwahrung ABSCHREIBUNG - rechte Seite bei Gesamtsicherheiten 'Verwahrung ABSCHREIBUNG - rechte Seite bei Gesamtsicherheiten
If saveAbschreibung Then If saveAbschreibung Then
saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, EZA, sendMail, testlauf) saveVerwahrungsAusgang(regNR, posErledigung, veralteteregNR, zp, sendMail, testlauf)
Anzeige: Anzeige:
@@ -479,17 +480,17 @@ Anzeige:
If SND IsNot Nothing AndAlso SND.tblSnd_Abfertigungsart_ID = 44 Then If SND IsNot Nothing AndAlso SND.tblSnd_Abfertigungsart_ID = 44 Then
Dim existingEntries As DataTable 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 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 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 End If
If existingEntries.Rows.Count > 0 Then If existingEntries.Rows.Count > 0 Then
Dim zubehandelndeGS As Boolean = existingEntries.AsEnumerable(). Dim zubehandelndeGSPOS As Boolean = existingEntries.AsEnumerable().
Any(Function(r) 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 Return False
End If End If
@@ -499,7 +500,7 @@ Anzeige:
Return alt = VeralteteWeitereRegistriernummer OrElse mrn = RegistriernummerATLAS Return alt = VeralteteWeitereRegistriernummer OrElse mrn = RegistriernummerATLAS
End Function) End Function)
If zubehandelndeGS Then If zubehandelndeGSPOS Then
Return True 'bereits behandelt -> Return True 'bereits behandelt ->
End If End If
@@ -539,7 +540,15 @@ Anzeige:
Dim FreitextInfo As String = "" Dim FreitextInfo As String = ""
If posGestellung.Rows.Count > 0 Then 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 Else
FreitextInfo = "DAKOSY-IMPORT" FreitextInfo = "DAKOSY-IMPORT"
End If End If
@@ -547,7 +556,8 @@ Anzeige:
newSicherheit.gs_standort = urspringsSicherheit.gs_standort newSicherheit.gs_standort = urspringsSicherheit.gs_standort
newSicherheit.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang newSicherheit.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang
newSicherheit.gs_erstellungsdatum = Now() 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_freitext = FreitextInfo
newSicherheit.gs_abfertigungsnr = abfertigungsnummer newSicherheit.gs_abfertigungsnr = abfertigungsnummer
newSicherheit.gs_filialenNr = filiale newSicherheit.gs_filialenNr = filiale
@@ -580,11 +590,11 @@ Anzeige:
urspringsSicherheit.SAVE() urspringsSicherheit.SAVE()
End If End If
Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, laufnummer) Dim CLOSED_DUMMY = New cGesamtsicherheitsPositionen(gsid, newSicherheit.gs_posNr)
With CLOSED_DUMMY With CLOSED_DUMMY
.gsp_gsNr = urspringsSicherheit.gs_gsNr .gsp_gsNr = newSicherheit.gs_gsNr
.gsp_warenwert = 0 ' = 0 wichtig .gsp_warenwert = 0 ' = 0 wichtig
.gsp_sicherheitsbetrag = 0 ' = 0 wichtig .gsp_sicherheitsbetrag = 0 ' = 0 wichtig
.gsp_filialenNr = filiale .gsp_filialenNr = filiale
@@ -594,7 +604,6 @@ Anzeige:
.gsp_ust = "" .gsp_ust = ""
.gsp_freitext = "DAKOSY-IMP-DY" .gsp_freitext = "DAKOSY-IMP-DY"
.gsp_avisoId = urspringsSicherheit.gs_avisoId .gsp_avisoId = urspringsSicherheit.gs_avisoId
.gsp_gsNr = urspringsSicherheit.gs_gsNr
.gsp_systemuser = "DAKOSY-AUTO" .gsp_systemuser = "DAKOSY-AUTO"
End With End With
@@ -609,7 +618,14 @@ Anzeige:
.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY .gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY
.gs_gsNr = urspringsSicherheit.gs_gsNr .gs_gsNr = urspringsSicherheit.gs_gsNr
.gs_ATBNr = urspringsSicherheit.gs_ATBNr .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_MRNNr = RegistriernummerATLAS
.gs_standort = urspringsSicherheit.gs_standort .gs_standort = urspringsSicherheit.gs_standort
.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang .gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang
@@ -624,8 +640,10 @@ Anzeige:
.gs_saldo = saldo .gs_saldo = saldo
.gs_avisoId = urspringsSicherheit.gs_avisoId .gs_avisoId = urspringsSicherheit.gs_avisoId
.gs_warenort = urspringsSicherheit.gs_warenort .gs_warenort = urspringsSicherheit.gs_warenort
.gs_posNr = laufnummer + i - 1 .gs_posNr = newSicherheit.gs_posNr + i - 1
.gs_posSubNr = i .gs_posSubNr = i
.gs_dakoyimport = True
.gs_DK_laufnr = laufnummer
End With End With
@@ -684,7 +702,7 @@ Anzeige:
End Function 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 Dim originalTestSetting As Boolean = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
@@ -692,61 +710,74 @@ Anzeige:
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = testlauf
If posErledigung IsNot Nothing AndAlso posErledigung.Rows.Count > 0 Then If posErledigung IsNot Nothing AndAlso posErledigung.Rows.Count > 0 Then
'If regNR <> "" AndAlso veralteteregNR <> "" Then
For Each POS As DataRow In posErledigung.Rows For Each POS As DataRow In posErledigung.Rows
Dim MRNNR As String = "" Dim MRNNR As String = ""
Dim existingEntryID As Integer = 0 Dim existingEntryID As Integer = 0
If Not IsDBNull(POS("IDRegNrSumA")) AndAlso POS("IDRegNrSumA").ToString <> "" Then If Not IsDBNull(POS("IDRegNrSumA")) AndAlso POS("IDRegNrSumA").ToString <> "" Then
Dim POSNr As Integer = If(IsDBNull(POS("IDRegNrSumAPos")), 0, CInt(POS("IDRegNrSumAPos"))) Dim POSNr As Integer = If(IsDBNull(POS("IDRegNrSumAPos")), 0, CInt(POS("IDRegNrSumAPos")))
If MRNNR <> POS.Item("IDRegNrSumA") Then If MRNNR <> POS.Item("IDRegNrSumA") Then
MRNNR = POS.Item("IDRegNrSumA") 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(sqlString, "AVISO")
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")
If dtGesamtsicherheit.Rows.Count > 0 Then 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 'If rows.Length > 0 Then
Exit Sub 'bereits vorhanden -> keine INFO ' 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 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 saldo As Double = GesSichRef.CalcSaldo()
Dim Warenwert As Double = 0 Dim Warenwert As Double = 0
Dim Sicherheitsbetrag As Double = 0 Dim Sicherheitsbetrag As Double = 0
'Berechnung Warenwert und Sicherheitsbetrag aus Sendung -> immer aus den Produktivdaten! 'Berechnung Warenwert und Sicherheitsbetrag aus Sendung -> immer aus den Produktivdaten!
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False 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") 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 ( 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_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_Vorpapier2_Pos").ToString().Split(","c).Select(Function(x) x.Trim()).Contains(posNr_temp) OrElse
@@ -754,92 +785,106 @@ Anzeige:
) )
).ToArray() ).ToArray()
If rowsVorp.Length > 0 Then If rowsVorp.Length > 0 Then
Dim row = rowsVorp(0) Dim row = rowsVorp(0)
If POSNr = posNr_temp Then If POSNr = posNr_temp Then
Warenwert = CDbl(row("tblSnd_Warenwert")) Warenwert = CDbl(row("tblSnd_Warenwert"))
Sicherheitsbetrag = Math.Round(Warenwert * (GesSichRef.gsr_zollsatz / 100), 2) 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()
End If 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") If sendInfoMail Then
Dim anzahlPackstuecke As Integer = -1 Dim InfoText2 As String = createInfoMail(gsrightRow.Item("gs_MRNNr"), Nothing, "VW-AUSGANG",, SicherheitsPos, isNCTS)
Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte"))) 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")
Dim StornierungKz As String = If(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz")) End If
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 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
End If
End If End If
Next Next
@@ -855,6 +900,175 @@ Anzeige:
End Try End Try
End Sub 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 Public Shared Function AddNewGesamtSichNr() As Integer
Dim sqlq As String = "select MAX([gs_gsNr]) as MaxGesSich from tblGesamtsicherheit" Dim sqlq As String = "select MAX([gs_gsNr]) as MaxGesSich from tblGesamtsicherheit"
@@ -871,8 +1085,25 @@ Anzeige:
Return 0 Return 0
End Function 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 Dim TextHTMLtable As String
@@ -961,7 +1192,7 @@ Anzeige:
TextHTMLtable &= "<td><b>" & r.Item("LKW_ID") & "</b></td>" TextHTMLtable &= "<td><b>" & r.Item("LKW_ID") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("anzahlPackstuecke") & "</b></td>" TextHTMLtable &= "<td><b>" & r.Item("anzahlPackstuecke") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("AnzahlStückErledigt") & "</b></td>" TextHTMLtable &= "<td><b>" & r.Item("AnzahlStückErledigt") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("StornierungKZ") & "</b></td>" If Not isNCTS Then TextHTMLtable &= "<td><b>" & r.Item("StornierungKZ") & "</b></td>"
TextHTMLtable &= "</tr>" TextHTMLtable &= "</tr>"
Next Next

View File

@@ -1039,7 +1039,7 @@ Public Class frmStartOptions
End If End If
End If End If
Catch ex As Exception 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 End Try
cDHF_Anhaenge.SAVE() cDHF_Anhaenge.SAVE()
@@ -3197,7 +3197,9 @@ Public Class frmStartOptions
Public Function copyFile(file, toDirectory, Optional ByRef dest = "") 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) If Not System.IO.Directory.Exists(toDirectory) Then System.IO.Directory.CreateDirectory(toDirectory)
dest = toDirectory & ".tmp_" & cut_file(file) dest = toDirectory & ".tmp_" & cut_file(file)
Dim tmpExt = "" Dim tmpExt = ""
@@ -3211,6 +3213,23 @@ Public Class frmStartOptions
Return True Return True
End Function 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 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("\") While file.Contains("\")
file = file.Remove(0, 1) file = file.Remove(0, 1)