Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-10-06 14:50:39 +02:00
14 changed files with 444 additions and 94 deletions

View File

@@ -1,4 +1,4 @@
Imports System.Data.SqlClient
Imports System.Data.SqlClient
Imports System.Reflection
Public Class cAvisoBenachrichtigungen
@@ -311,5 +311,6 @@ Public Class cAvisoBenachrichtigungenCodes
Public Shared AES_NachfrageVerbleib As Integer = 11
Public Shared Verwahrung_Foto As Integer = 20
Public Shared Essensgeld As Integer = 21
Public Shared AVISO_ERSTELLT As Integer = 22
End Class

View File

@@ -342,6 +342,10 @@ Public Class cIDS
objFileRead.DiscardBufferedData()
objFileRead.BaseStream.Seek(0, System.IO.SeekOrigin.Begin)
Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("IDS", Now())
Do While (objFileRead.Peek() > -1)
Dim currentRow As String()
@@ -354,7 +358,6 @@ Public Class cIDS
Return False
End If
Else
Try
@@ -388,6 +391,8 @@ Public Class cIDS
With ids
.YearMonthDay = isleernothing((currentRow(0)))
.CustomerCode = isleernothing((currentRow(1)))
@@ -398,6 +403,10 @@ Public Class cIDS
.OutletCode = isleernothing((currentRow(6)))
.ProductTypeCode = isleernothing((currentRow(7)))
If lngRecordCount = 2 Then
MDMEinarb.invoicedate = CDate(.YearMonthDay)
End If
'Dim transVol_old = .TransactionVolume
'Dim transVol_new = isleernothing((currentRow(8)))
@@ -471,9 +480,9 @@ Public Class cIDS
Console.WriteLine("IDS: " & isleernothing((currentRow(1))) & " - " & lngRecordCount & " - " & isleernothing((currentRow(10))))
If isOBO Then
.SAVE_OBO()
If .SAVE_OBO() Then counTrans += 1
Else
.SAVE_VR()
If .SAVE_VR() Then counTrans += 1
End If
'.SAVE()
@@ -488,6 +497,16 @@ Public Class cIDS
Loop
cnt = CInt(lngRecordCount)
MDMEinarb.ds_total += cnt - 1
MDMEinarb.ds_count += counTrans
MDMEinarb.import_date = Now()
If MDMEinarb.ds_total = MDMEinarb.ds_count Then
MDMEinarb.completed = True
MDMEinarb.completed_date = Now()
End If
MDMEinarb.SAVE()
objFileRead.Close()
Return True

View File

@@ -0,0 +1,225 @@

Imports System.Data.SqlClient
Imports System.Reflection
Imports com.sun.xml.internal.rngom.digested
Public Class cMDMEinarbeitung
Property id As Integer
Property supplier As Object = Nothing
Property invoicedate As Object = Nothing
Property ds_count As Object = Nothing
Property ds_total As Object = Nothing
Property completed As Boolean = False
Property completed_date As Object = Nothing
Property import_date As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
Sub New(id)
Me.id = id
LOAD()
End Sub
Sub New(supplier, invoicedate)
Me.supplier = supplier
Me.invoicedate = invoicedate
LOAD(supplier, invoicedate)
End Sub
Sub New(supplier, invoicedate, importdate)
Me.supplier = supplier
Me.invoicedate = invoicedate
Me.import_date = import_date
LOAD(supplier, invoicedate, import_date)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("id", id,, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("supplier", supplier))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("invoicedate", invoicedate))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ds_count", ds_count))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ds_total", ds_total))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("completed", completed))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("completed_date", completed_date))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("import_date", import_date))
Return list
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMDMEinarbeitung WHERE id=@id) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblMDMEinarbeitung WHERE id=@id ", conn)
cmd.Parameters.AddWithValue("@id", id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOAD(supplier, invoicedate)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblMDMEinarbeitung WHERE supplier=@supplier and invoicedate=@invoicedate ", conn)
cmd.Parameters.AddWithValue("@supplier", supplier)
cmd.Parameters.AddWithValue("@invoicedate", invoicedate)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOAD(supplier, invoicedate, import_date)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblMDMEinarbeitung WHERE supplier=@supplier and invoicedate=@invoicedate and import_date=@import_date ", conn)
cmd.Parameters.AddWithValue("@supplier", supplier)
cmd.Parameters.AddWithValue("@invoicedate", invoicedate)
cmd.Parameters.AddWithValue("@import_date", import_date)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [tblMDMEinarbeitung] SET " & str & " WHERE id=@id ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO tblMDMEinarbeitung (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Shared Function setInvoicingDate(ByRef import_date As Date, ByRef MDM_OBJ As cMDMEinarbeitung) As Boolean
Dim REDat
If import_date.Day < 15 Then
'vor 15, letzer Monat Monatsletzter!
If import_date.Month <> 1 Then
'Monatsletzter aus Vorjahr
REDat = New Date(Today.Year, Today.Month - 1, DateTime.DaysInMonth(import_date.Year, import_date.Month - 1))
Else
REDat = New Date(Today.Year - 1, 12, DateTime.DaysInMonth(import_date.Year - 1, 12))
End If
ElseIf Today().Day >= 15 Then
REDat = New Date(import_date.Year, import_date.Month, 15)
End If
If REDat IsNot Nothing AndAlso IsDate(REDat) Then
MDM_OBJ.invoicedate = REDat
Return True
Else
Return False
End If
End Function
End Class

View File

@@ -148,7 +148,7 @@ Public Class cUIDPruefung
End Function
Public Shared Function doUIDPruefungALL(Optional datum As Object = Nothing, Optional SaveErgInAdressen As Boolean = True, Optional Sciherheitsabfrage As Boolean = True, Optional MaxEintraege As Integer = -1, Optional showErr As Boolean = True, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1000) As DataTable
Public Shared Function doUIDPruefungALL(Optional datum As Object = Nothing, Optional SaveErgInAdressen As Boolean = True, Optional Sciherheitsabfrage As Boolean = True, Optional MaxEintraege As Integer = -1, Optional showErr As Boolean = True, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1500) As DataTable
Dim dt As DataTable = Nothing
If datum = Nothing Then datum = CDate("15." & Now.ToString("MM.yyyy")).AddMonths(-1)
@@ -214,6 +214,11 @@ Public Class cUIDPruefung
r("Ergebnis") = "ERROR"
End If
If veroegerungMs > 0 Then
Thread.Sleep(veroegerungMs) 'Bei Verögeung soll zwischen jeder Abfrage eine Pause gemacht werden! (Wegen Sperre bei zu vielen Abfragen)
End If
Next

View File

@@ -989,6 +989,11 @@ Public Class cUTA
Dim lngÜbertragungsposition As Integer
Dim curChecksumme As Double
Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("UTA", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
Dim lngRecordCount As Long
Try
@@ -1209,7 +1214,7 @@ Public Class cUTA
.SAVE()
End If
Else
.SAVE()
If .SAVE() Then savedTrans += 1
End If
@@ -1324,6 +1329,7 @@ Public Class cUTA
.Anzahl_Sätze = Mid(strZeile, 3, 13)
.Checksumme = Mid(strZeile, 16, 18) / 100
.SAVE()
MDMEinarb.ds_total += .Anzahl_Sätze
End With
@@ -1334,6 +1340,15 @@ Public Class cUTA
Loop
MDMEinarb.ds_count += savedTrans
MDMEinarb.import_date = Now()
If MDMEinarb.ds_count = MDMEinarb.ds_total Then
MDMEinarb.completed = True
MDMEinarb.completed_date = Now()
End If
MDMEinarb.SAVE()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try

View File

@@ -78,7 +78,7 @@ Public Class cMSEAPI
End Function
Public Function getNewestTransactions(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer, onlyBilledTransactions As Boolean) As String
Public Function getNewestTransactions(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer, onlyBilledTransactions As Boolean, ByRef savedTrans As Integer) As String
Try
Dim returnText As String = ""
Dim failureText As String = ""
@@ -155,7 +155,7 @@ Public Class cMSEAPI
Return "FEHLER im TransaktionArray"
End If
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"), onlyBilledTransactions)
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"), onlyBilledTransactions, savedTrans)
Catch ex As WebException
@@ -413,7 +413,7 @@ Public Class cMSEAPI
End If
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"), 0)
Catch ex As WebException
@@ -526,7 +526,7 @@ Public Class cMSEAPI
End If
'If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
saveTransactions(num, dt, transactions, json.StringOf("receiver"), True,) ' wenn ID explizit aufgerufen keine Prüfung auf receivcer und purchaseDate
saveTransactions(num, dt, transactions, json.StringOf("receiver"), 0, True,) ' wenn ID explizit aufgerufen keine Prüfung auf receivcer und purchaseDate
End If
Next row
@@ -545,7 +545,7 @@ Public Class cMSEAPI
End Function
Public Function getTransactionsFromBatchNrAndPage(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer) As String
Public Function getTransactionsFromBatchNrAndPage(jwt As String, dt As DataTable, ByRef batchNr As Integer, ByRef totalPages As Integer, ByRef currentPage As Integer, ByRef savedTrans As Integer) As String
Try
Dim returnText As String = ""
Dim failureText As String = ""
@@ -625,7 +625,7 @@ Public Class cMSEAPI
Return "FEHLER Array Transaktions ist leer"
End If
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"))
If json.StringOf("receiver") = "10738" Then saveTransactions(num, dt, transactions, json.StringOf("receiver"), savedTrans)
Catch ex As WebException
@@ -1048,7 +1048,7 @@ Public Class cMSEAPI
End Function
Public Sub saveTransactions(num As Integer, dt As DataTable, transactions As Chilkat.JsonArray, receiver As Integer, Optional ignorePurchaseDate As Boolean = False, Optional onlyBilledTransactions As Boolean = True)
Public Sub saveTransactions(num As Integer, dt As DataTable, transactions As Chilkat.JsonArray, receiver As Integer, ByRef savedTrans As Integer, Optional ignorePurchaseDate As Boolean = False, Optional onlyBilledTransactions As Boolean = True)
Dim j As Integer = 0
@@ -1215,9 +1215,11 @@ Public Class cMSEAPI
'trans.distance_km = CDbl(R("distance_km"))
If onlyBilledTransactions Then
If trans.transaction_status = "Billed" Then trans.SAVE()
If trans.transaction_status = "Billed" Then
If trans.SAVE() Then savedTrans += 1
End If
Else
trans.SAVE()
If trans.SAVE() Then savedTrans += 1
End If

View File

@@ -386,6 +386,7 @@
<Compile Include="AuditFlow\Classes\cAuditFlow.vb" />
<Compile Include="AuditFlow\Classes\cAuditFlow_Pruefobjekte.vb" />
<Compile Include="AuditFlow\Classes\cAuditFlow_Pruefungen.vb" />
<Compile Include="Classes\cMDMEInarbeitung.vb" />
<Compile Include="frmTimasabfrage.Designer.vb">
<DependentUpon>frmTimasabfrage.vb</DependentUpon>
</Compile>