Merge branch 'ADMIN' of https://git.it.verag.ag/edv/ADMIN into ADMIN

This commit is contained in:
2026-03-19 11:42:16 +01:00
5 changed files with 221 additions and 414 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,276 +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
anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value)
End If
If anzahlPackstuecke > 0 AndAlso anzahlPackstuecke <> AnzahlStückErledigt Then 'Hinweismeldung, wenn nicht alle erledigt wurden!
Dim dt As New DataTable
If Not dt.Columns.Contains("anzahlPackstuecke") Then
dt.Columns.Add("MRN", GetType(String))
dt.Columns.Add("LKW_ID", GetType(String))
dt.Columns.Add("anzahlPackstuecke", GetType(Integer))
'dt.Columns.Add("StornierungKZ", GetType(String))
dt.Columns.Add("AnzahlStückErledigt", GetType(Integer))
End If
Dim ro As DataRow = dt.NewRow
ro("MRN") = gs_row.Item("gs_MRNNr")
ro("LKW_ID") = gs_row.Item("gs_avisoId")
ro("anzahlPackstuecke") = anzahlPackstuecke
ro("AnzahlStückErledigt") = AnzahlStückErledigt
'ro("StornierungKZ") = StornierungKz
dt.Rows.Add(ro)
Dim InfoText As String = createInfoMail(MRNNR, dt, "")
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("verwahrung@verag.ag", IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "TEST-", "") & "Erledigungsmeldung-DAKOSY fehlende Positionen - " & Now().ToShortDateString, InfoText,,,,, "d.breimaier@verag.ag")
End If
Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
With SicherheitsPos
.gsp_gsId = gs_row("gs_gsId")
'.gsp_gspPosId = CInt(POSNr)
.gsp_gspPosId = gs_row.Item("gs_posNr")
.gsp_warenwert = Warenwert
.gsp_sicherheitsbetrag = Sicherheitsbetrag
.gsp_freitext = "DASKOY-IMPORT"
.gsp_filialenNr = gs_row("gs_filialenNr")
.gsp_art = "CLOSE"
.gsp_gsNr = gs_row("gs_gsnr")
.gsp_abfertigungsNr = gs_row("gs_abfertigungsnr")
.gsp_datum = 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

@@ -5,6 +5,13 @@ Public Class cWorker_Verwahrung
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL 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 Shared Function readVW_SumAVerwahrungsinfo(FORM As frmDYNachrichtenVerarbeitung, d As String, saveVerwahrung As Boolean, sendMail As Boolean, testlauf As Boolean) As String
@@ -215,7 +222,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 +486,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,30 +506,28 @@ 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
Dim urspringsSicherheit As cSicherheiten Dim DUMMYSicherheit As cSicherheiten
Dim rows = existingEntries.Select("gs_dakoyimport = true AND [gs_ATBNr] = '" & Vorpapiernummer & "' AND gs_freitext = 'DAKOSY DUMMY'") Dim rows = existingEntries.Select("gs_dakoyimport = true AND [gs_ATBNr] = '" & Vorpapiernummer & "' AND gs_freitext = '" & DAKOSY_STATUS.HEADER & "'")
If rows.Length > 0 Then If rows.Length > 0 Then
Dim row = rows(0) Dim row = rows(0)
'urspringsSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr")) DUMMYSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr"))
urspringsSicherheit = New cSicherheiten(row("gs_gsId"), row("gs_posNr"))
Else Else
Return False 'kein Dummy-Eintrag Return False 'kein Dummy-Eintrag
End If End If
Dim newSicherheit As New cSicherheiten() Dim newSicherheit As New cSicherheiten()
If Not urspringsSicherheit.hasEntry Then If Not DUMMYSicherheit.hasEntry Then
Return False Return False
End If End If
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(urspringsSicherheit.gs_standort) Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cGesamtsicherheitsReferenz(DUMMYSicherheit.gs_standort)
Dim saldo = GesSichRef.CalcSaldo() Dim saldo = GesSichRef.CalcSaldo()
If SND.FilialenNr > 0 Then filiale = SND.FilialenNr If SND.FilialenNr > 0 Then filiale = SND.FilialenNr
@@ -530,34 +535,43 @@ Anzeige:
'Verwahrung ANSCHREIBUNG 'Verwahrung ANSCHREIBUNG
newSicherheit.gs_systemuser = "DAKOSY-AUTO" newSicherheit.gs_systemuser = DAKOSY_STATUS.USER
newSicherheit.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY newSicherheit.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY
newSicherheit.gs_MRNNr = RegistriernummerATLAS 'wichtig für Zuweisung DAKOSY newSicherheit.gs_MRNNr = RegistriernummerATLAS 'wichtig für Zuweisung DAKOSY
newSicherheit.gs_gsNr = urspringsSicherheit.gs_gsNr newSicherheit.gs_gsNr = DUMMYSicherheit.gs_gsNr
newSicherheit.gs_ATBNr = urspringsSicherheit.gs_ATBNr newSicherheit.gs_ATBNr = DUMMYSicherheit.gs_ATBNr
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
Else newSicherheit.gs_EH_Anzahl = CInt(posGestellung.Rows(0).Item("AnzPackst"))
FreitextInfo = "DAKOSY-IMPORT"
End If End If
newSicherheit.gs_standort = urspringsSicherheit.gs_standort If IsNumeric(posGestellung.Rows(0).Item("Rohmasse")) Then
newSicherheit.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang 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_erstellungsdatum = Now()
newSicherheit.gs_posNr = laufnummer newSicherheit.gs_posNr = newSicherheit.getLatestPosNr(DUMMYSicherheit.gs_gsNr, DUMMYSicherheit.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
newSicherheit.gs_posSubNr = 1 newSicherheit.gs_posSubNr = 1
newSicherheit.gs_LKWKZ = urspringsSicherheit.gs_LKWKZ newSicherheit.gs_LKWKZ = DUMMYSicherheit.gs_LKWKZ
newSicherheit.gs_zollsatz = urspringsSicherheit.gs_zollsatz newSicherheit.gs_zollsatz = DUMMYSicherheit.gs_zollsatz
If laufnummer = 1 Then If laufnummer = 1 Then
newSicherheit.gs_warenwert = urspringsSicherheit.gs_warenwert newSicherheit.gs_warenwert = DUMMYSicherheit.gs_warenwert
newSicherheit.gs_sicherheitsbetrag = urspringsSicherheit.gs_sicherheitsbetrag newSicherheit.gs_sicherheitsbetrag = DUMMYSicherheit.gs_sicherheitsbetrag
Else Else
newSicherheit.gs_warenwert = 0 newSicherheit.gs_warenwert = 0
newSicherheit.gs_sicherheitsbetrag = 0 newSicherheit.gs_sicherheitsbetrag = 0
@@ -566,8 +580,8 @@ Anzeige:
newSicherheit.gs_art = "OPEN" newSicherheit.gs_art = "OPEN"
newSicherheit.gs_saldo = saldo newSicherheit.gs_saldo = saldo
newSicherheit.gs_avisoId = urspringsSicherheit.gs_avisoId newSicherheit.gs_avisoId = DUMMYSicherheit.gs_avisoId
newSicherheit.gs_warenort = urspringsSicherheit.gs_warenort newSicherheit.gs_warenort = DUMMYSicherheit.gs_warenort
newSicherheit.gs_dakoyimport = True newSicherheit.gs_dakoyimport = True
@@ -575,16 +589,16 @@ Anzeige:
If gsid > 0 AndAlso laufnummer = 1 Then If gsid > 0 AndAlso laufnummer = 1 Then
'wechsel des Sicherheitsbetrags und Warenwert von Dummypos auf erste Produkivposition 'wechsel des Sicherheitsbetrags und Warenwert von Dummypos auf erste Produkivposition
urspringsSicherheit.gs_warenwert = 0 DUMMYSicherheit.gs_warenwert = 0
urspringsSicherheit.gs_sicherheitsbetrag = 0 DUMMYSicherheit.gs_sicherheitsbetrag = 0
urspringsSicherheit.SAVE() DUMMYSicherheit.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
@@ -592,10 +606,9 @@ Anzeige:
.gsp_abfertigungsNr = abfertigungsnummer .gsp_abfertigungsNr = abfertigungsnummer
.gsp_erstellungsdatum = DateTime.Now .gsp_erstellungsdatum = DateTime.Now
.gsp_ust = "" .gsp_ust = ""
.gsp_freitext = "DAKOSY-IMP-DY" .gsp_freitext = DAKOSY_STATUS.SEND
.gsp_avisoId = urspringsSicherheit.gs_avisoId .gsp_avisoId = DUMMYSicherheit.gs_avisoId
.gsp_gsNr = urspringsSicherheit.gs_gsNr .gsp_systemuser = DAKOSY_STATUS.USER
.gsp_systemuser = "DAKOSY-AUTO"
End With End With
CLOSED_DUMMY.SAVE() CLOSED_DUMMY.SAVE()
@@ -605,27 +618,36 @@ Anzeige:
For i As Integer = 2 To posGestellung.Rows.Count For i As Integer = 2 To posGestellung.Rows.Count
Dim OPEN_DUMMY_SUBPOS As New cSicherheiten() Dim OPEN_DUMMY_SUBPOS As New cSicherheiten()
With OPEN_DUMMY_SUBPOS With OPEN_DUMMY_SUBPOS
.gs_systemuser = "DAKOSY-AUTO" .gs_systemuser = DAKOSY_STATUS.USER
.gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY .gs_VeralteteWeitereRegistriernummer = VeralteteWeitereRegistriernummer 'wichtig für Zuweisung DAKOSY
.gs_gsNr = urspringsSicherheit.gs_gsNr .gs_gsNr = DUMMYSicherheit.gs_gsNr
.gs_ATBNr = urspringsSicherheit.gs_ATBNr .gs_ATBNr = DUMMYSicherheit.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 = DUMMYSicherheit.gs_standort
.gs_datum = urspringsSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang .gs_datum = DUMMYSicherheit.gs_datum 'VWI.EinzelSumAVerwahrungsinfo.ObjektIdentifizierung.ZeitpunktNachrichteneingang
.gs_erstellungsdatum = Now() .gs_erstellungsdatum = Now()
.gs_abfertigungsnr = abfertigungsnummer .gs_abfertigungsnr = abfertigungsnummer
.gs_filialenNr = filiale .gs_filialenNr = filiale
.gs_LKWKZ = urspringsSicherheit.gs_LKWKZ .gs_LKWKZ = DUMMYSicherheit.gs_LKWKZ
.gs_zollsatz = urspringsSicherheit.gs_zollsatz .gs_zollsatz = DUMMYSicherheit.gs_zollsatz
.gs_warenwert = 0 .gs_warenwert = 0
.gs_sicherheitsbetrag = 0 .gs_sicherheitsbetrag = 0
.gs_art = "OPEN" .gs_art = "OPEN"
.gs_saldo = saldo .gs_saldo = saldo
.gs_avisoId = urspringsSicherheit.gs_avisoId .gs_avisoId = DUMMYSicherheit.gs_avisoId
.gs_warenort = urspringsSicherheit.gs_warenort .gs_warenort = DUMMYSicherheit.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
@@ -636,7 +658,7 @@ Anzeige:
With CLOSED_DUMMY_SUBPOS With CLOSED_DUMMY_SUBPOS
.gsp_gspPosId = OPEN_DUMMY_SUBPOS.gs_posNr .gsp_gspPosId = OPEN_DUMMY_SUBPOS.gs_posNr
.gsp_gsId = gsid_SupPos .gsp_gsId = gsid_SupPos
.gsp_gsNr = urspringsSicherheit.gs_gsNr .gsp_gsNr = DUMMYSicherheit.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
@@ -644,18 +666,21 @@ Anzeige:
.gsp_abfertigungsNr = abfertigungsnummer .gsp_abfertigungsNr = abfertigungsnummer
.gsp_erstellungsdatum = DateTime.Now .gsp_erstellungsdatum = DateTime.Now
.gsp_ust = "" .gsp_ust = ""
.gsp_freitext = "DAKOSY-IMP-DY" .gsp_freitext = DAKOSY_STATUS.SEND
.gsp_avisoId = urspringsSicherheit.gs_avisoId .gsp_avisoId = DUMMYSicherheit.gs_avisoId
.gsp_gsNr = urspringsSicherheit.gs_gsNr .gsp_gsNr = DUMMYSicherheit.gs_gsNr
.gsp_systemuser = "DAKOSY-AUTO" .gsp_systemuser = DAKOSY_STATUS.USER
End With End With
CLOSED_DUMMY_SUBPOS.SAVE() CLOSED_DUMMY_SUBPOS.SAVE()
Next Next
End If End If
End If End If
newSicherheit.rearangePosNrByDakosyLaufNr(newSicherheit.gs_gsNr, newSicherheit.gs_ATBNr)
If sendInfoMail Then If sendInfoMail Then
Dim InfoText As String = createInfoMail(RegistriernummerATLAS, posGestellung, "VW-EINGANG", newSicherheit) 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") 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")
@@ -684,7 +709,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, Optional sicherheitsbetragInput As Double = 0)
Dim originalTestSetting As Boolean = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Dim originalTestSetting As Boolean = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
@@ -692,40 +717,54 @@ 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 & "")
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()
@@ -734,47 +773,45 @@ Anzeige:
'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
Dim posNr_temp As String = gsrightRow.Item("gs_posNr")
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.AsEnumerable().Where(Function(r) Not IsDBNull(r("tblSnd_Warenwert")) AndAlso ((
r("tblSnd_Vorpapier_Pos").ToString() & "," &
r("tblSnd_Vorpapier2_Pos").ToString() & "," &
Dim posNr_temp As String = gs_row.Item("gs_posNr").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()
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 If rowsVorp.Length > 0 Then
Dim row = rowsVorp(0) Dim row = rowsVorp(0)
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
End If End If
'Dim dtSendungen = SQL.loadDgvBySql("SELECT")
Dim anzahlPackstuecke As Integer = -1 Dim anzahlPackstuecke As Integer = -1
Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte"))) Dim AnzahlStückErledigt As Integer = If(IsDBNull(POS("StueckzahlErledigte")), 0, CInt(POS("StueckzahlErledigte")))
Dim StornierungKz As String = If(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz")) Dim StornierungKz As String = ""
If gs_row.Item("gs_freitext") <> "" Then
anzahlPackstuecke = CInt(System.Text.RegularExpressions.Regex.Match(gs_row.Item("gs_freitext"), "\d+").Value) If Not isNCTS Then
StornierungKz = IIf(IsDBNull(POS("StornierungKz")), "", POS("StornierungKz"))
End If 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! If anzahlPackstuecke > 0 AndAlso anzahlPackstuecke <> AnzahlStückErledigt Then 'Hinweismeldung, wenn nicht alle erledigt wurden!
Dim dt As New DataTable Dim dt As New DataTable
@@ -782,16 +819,16 @@ Anzeige:
dt.Columns.Add("MRN", GetType(String)) dt.Columns.Add("MRN", GetType(String))
dt.Columns.Add("LKW_ID", GetType(String)) dt.Columns.Add("LKW_ID", GetType(String))
dt.Columns.Add("anzahlPackstuecke", GetType(Integer)) dt.Columns.Add("anzahlPackstuecke", GetType(Integer))
dt.Columns.Add("StornierungKZ", GetType(String)) If Not isNCTS Then dt.Columns.Add("StornierungKZ", GetType(String))
dt.Columns.Add("AnzahlStückErledigt", GetType(Integer)) dt.Columns.Add("AnzahlStückErledigt", GetType(Integer))
End If End If
Dim ro As DataRow = dt.NewRow Dim ro As DataRow = dt.NewRow
ro("MRN") = gs_row.Item("gs_MRNNr") ro("MRN") = gsrightRow.Item("gs_MRNNr")
ro("LKW_ID") = gs_row.Item("gs_avisoId") ro("LKW_ID") = gsrightRow.Item("gs_avisoId")
ro("anzahlPackstuecke") = anzahlPackstuecke ro("anzahlPackstuecke") = anzahlPackstuecke
ro("AnzahlStückErledigt") = AnzahlStückErledigt ro("AnzahlStückErledigt") = AnzahlStückErledigt
ro("StornierungKZ") = StornierungKz If Not isNCTS Then ro("StornierungKZ") = StornierungKz
dt.Rows.Add(ro) dt.Rows.Add(ro)
@@ -802,23 +839,32 @@ Anzeige:
Dim SicherheitsPos As New cGesamtsicherheitsPositionen() Dim SicherheitsPos As New cGesamtsicherheitsPositionen()
With SicherheitsPos With SicherheitsPos
.gsp_gsId = gs_row("gs_gsId") .gsp_gsId = gsrightRow("gs_gsId")
'.gsp_gspPosId = CInt(POSNr) '.gsp_gspPosId = CInt(POSNr)
.gsp_gspPosId = gs_row.Item("gs_posNr") .gsp_gspPosId = gsrightRow.Item("gs_posNr")
.gsp_warenwert = Warenwert .gsp_warenwert = Warenwert
.gsp_sicherheitsbetrag = Sicherheitsbetrag .gsp_sicherheitsbetrag = Sicherheitsbetrag
.gsp_freitext = "DASKOY-IMPORT" .gsp_freitext = DAKOSY_STATUS.IMPORTED
.gsp_filialenNr = gs_row("gs_filialenNr") .gsp_filialenNr = gsrightRow("gs_filialenNr")
.gsp_art = "CLOSE" .gsp_art = "CLOSE"
.gsp_gsNr = gs_row("gs_gsnr") .gsp_gsNr = gsrightRow("gs_gsnr")
.gsp_abfertigungsNr = gs_row("gs_abfertigungsnr") .gsp_abfertigungsNr = gsrightRow("gs_abfertigungsnr")
.gsp_datum = EZA.EinzelSumAErledigungsinformation.ObjektIdentifizierung.ZeitpunktNachrichteneingang .gsp_datum = nachrichtenDatum
.gsp_erstellungsdatum = DateTime.Now .gsp_erstellungsdatum = DateTime.Now
.gsp_ust = gs_row("gs_ust") .gsp_ust = gsrightRow("gs_ust")
If Not isNCTS Then
.gsp_ATCNr = IIf(veralteteregNR = "", MRNNR, veralteteregNR) .gsp_ATCNr = IIf(veralteteregNR = "", MRNNR, veralteteregNR)
.gsp_MRNNr = IIf(regNR = "", MRNNR, regNR) .gsp_MRNNr = IIf(regNR = "", MRNNR, regNR)
.gsp_avisoId = gs_row("gs_avisoID") Else
.gsp_ATCNr = ""
.gsp_MRNNr = IIf(regNR = "", MRNNR.Trim(), regNR.Trim())
End If
.gsp_avisoId = gsrightRow("gs_avisoID")
.gsp_systemuser = "DAKOSY-AUTO" .gsp_systemuser = "DAKOSY-AUTO"
.gsp_EH_Anzahl = AnzahlStückErledigt
End With End With
@@ -826,14 +872,16 @@ Anzeige:
GesSichRef.CalcSaldo() GesSichRef.CalcSaldo()
If sendInfoMail Then If sendInfoMail Then
Dim InfoText2 As String = createInfoMail(gs_row.Item("gs_MRNNr"), Nothing, "VW-AUSGANG",, SicherheitsPos) 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 - " & Now().ToShortDateString, InfoText2,,,,, "d.breimaier@verag.ag") 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 End If
End If
End If End If
@@ -866,8 +914,7 @@ Anzeige:
Return 0 Return 0
End Function 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
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 Dim TextHTMLtable As String
@@ -956,7 +1003,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

@@ -405,6 +405,16 @@ Public Class frmDYNachrichtenVerarbeitung
'------------------ Verwahrung/ Gestellung (NCTS) ------------------ '------------------ Verwahrung/ Gestellung (NCTS) ------------------
'------------------------------------------ '------------------------------------------
'VW: UngueltigkeitSicherheitenNCTSDE
If Not found And cGetMsgType.isNCTS_SumAVerwahrungsinfo(doc, VERSION) Then
Select Case VERSION
Case False
Case Else : If cWorker_Verwahrung.readVW_SumAVerwahrungsinfo(Me, d, saveVerwahrung, sendMail, GESTELLUNG_TESTLAUF) <> "" Then found = True
End Select
End If
'VW: UngueltigkeitSicherheitenNCTSDE 'VW: UngueltigkeitSicherheitenNCTSDE
If Not found And cGetMsgType.isNCTS_SumAVerwahrungsinfo(doc, VERSION) Then If Not found And cGetMsgType.isNCTS_SumAVerwahrungsinfo(doc, VERSION) Then
Select Case VERSION Select Case VERSION

View File

@@ -1027,7 +1027,7 @@ Public Class frmStartOptions
destFull = "" destFull = ""
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "UNISPED" : copyFile(cDHF_Anhaenge.pfad.Replace("C:\", "\\SRV04.unisu.at\c$\"), ZIEL_PFAD, destFull) Case "UNISPED" : copyFile(cDHF_Anhaenge.pfad.Replace("C:\Program Files (x86)\DHF\", "\\SRV04.unisu.at\DHF\"), ZIEL_PFAD, destFull)
Case Else : copyFile(cDHF_Anhaenge.pfad.Replace("C:\", "\\Ezoll\c$\"), ZIEL_PFAD, destFull) Case Else : copyFile(cDHF_Anhaenge.pfad.Replace("C:\", "\\Ezoll\c$\"), ZIEL_PFAD, destFull)
End Select End Select
@@ -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)