Imports System.Data.SqlClient Imports System.IO Imports System.Reflection Imports System.Security.Cryptography Imports com.itextpdf.text.pdf Imports DocumentFormat.OpenXml.VariantTypes Imports RoutineManager.cAsfinag Public Class cAsfinag Public Class CLFHeader Property PKFileName As Object = Nothing Property recordType As String Property fileVersion As Integer Property fileNumber As Integer Property indcator As Object = Nothing Property senderID As Object = Nothing Property receiverID As Object = Nothing Property fileCreationDate As DateTime Property fileCreationTime As DateTime Property ISOCountryCode As Object = Nothing Property creationName As Object = Nothing Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(PKFileName, fileNumber) Me.PKFileName = PKFileName Me.fileNumber = fileNumber LOAD() End Sub Sub New() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("indcator", indcator)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("senderID", senderID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("receiverID", receiverID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileCreationDate", fileCreationDate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileCreationTime", fileCreationTime)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ISOCountryCode", ISOCountryCode)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("creationName", creationName)) 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 CLFHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM CLFHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@filenumber", fileNumber) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [CLFHeader] SET " & str & " WHERE PKFileName=@PKFileName ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 CLFHeader (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class CLFBody Property PKFileName As Object = Nothing Property RecordType As String Property fileVersion As Integer Property fileNumber As Integer Property cardNumber As String Property validTo As Integer Property OBUID As Object = Nothing Property vehicleLicensePlate As Object = Nothing Property nationality As Object = Nothing Property vehicleCategory As Object = Nothing Property emissionCategory As Object = Nothing Property status As Object = Nothing Property contractDate As Object = Nothing Property PKLine As Long Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(PKFileName, PKLine) Me.PKFileName = PKFileName Me.PKLine = PKLine LOAD() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKLine", PKLine)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RecordType", RecordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cardNumber", cardNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("validTo", validTo)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OBUID", OBUID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vehicleLicensePlate", vehicleLicensePlate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("nationality", nationality)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vehicleCategory", vehicleCategory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("emissionCategory", emissionCategory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("status", status)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("contractDate", contractDate)) 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 CLFBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM CLFBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine ", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@PKLine", PKLine) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [CLFBody] SET " & str & " WHERE PKFileName=@PKFileName AND PKLine = @PKLine ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 CLFBody (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class CLFTrailer Property PKFileName As Object = Nothing Property recordType As String Property fileVersion As Integer Property fileNumber As Integer Property recordCount As Integer Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(PKFileName) Me.PKFileName = PKFileName LOAD() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordCount", recordCount)) 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 CLFTrailer WHERE PKFileName=@PKFileName) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM CLFTrailer WHERE PKFileName=@PKFileName", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [CLFTrailer] SET " & str & " WHERE PKFileName=@PKFileName") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 CLFTrailer (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class TTRHeader Property PKFileName As Object = Nothing Property recordType As Integer Property fileVersion As Integer Property fileNumber As Integer Property senderID As Object = Nothing Property receiverID As Object = Nothing Property fileCreationDate As DateTime Property fileCreationTime As DateTime Property ISOCountryCode As Object = Nothing Property description As Object = Nothing Property currencyCode As Object = Nothing Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(PKFileName, filenummer) Me.PKFileName = PKFileName Me.fileNumber = filenummer LOAD() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("senderID", senderID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("receiverID", receiverID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileCreationDate", fileCreationDate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileCreationTime", fileCreationTime)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ISOCountryCode", ISOCountryCode)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("description", description)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("currencyCode", currencyCode)) 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 TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber ", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@fileNumber", fileNumber) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [TTRHeader] SET " & str & " WHERE PKFileName=@PKFileName AND filenumber = @filenumber") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 TTRHeader (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class TTRBody Property PKFileName As Object = Nothing Property recordType As Integer Property fileVersion As Integer Property siteId As String Property fileNumber As Integer Property cardNumber As String Property fileCreationDate As Date Property deliveryNoteNumber As Integer Property deliveryDate As Date Property deliveryTime As Date Property transactionType As Integer Property productCode As Integer Property productQuantity As Double Property amountInclVAT As Double Property VATrate As Double Property VATamount As Double Property PKLine As Integer Property km As Integer Property driverId As Integer Property receiptNumber As String Property OBUID As String Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New() End Sub Sub New(PKFileName, PKLine) Me.PKFileName = PKFileName Me.PKLine = PKLine LOAD() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKLine", PKLine)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("siteId", siteId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileCreationDate", fileCreationDate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("deliveryNoteNumber", deliveryNoteNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cardNumber", cardNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("deliveryDate", deliveryDate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("deliveryTime", deliveryTime)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("transactionType", transactionType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("productCode", productCode)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("km", km)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("driverId", driverId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("productQuantity", productQuantity)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("amountInclVAT", amountInclVAT)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VATrate", VATrate)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VATamount", VATamount)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("receiptNumber", receiptNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OBUID", OBUID)) 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 TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine ", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@PKLine", PKLine) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [TTRBody] SET " & str & " WHERE PKFileName=@PKFileName AND PKLine = @PKLine ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 TTRBody (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class TTRTrailer Property PKFileName As Object = Nothing Property recordType As Integer Property fileVersion As Integer Property recordCount As Integer Property checksumProductQuantity As Double Property checksumAmounntInclVAT As Double Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(PKFileName) Me.PKFileName = PKFileName LOAD() 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("PKFileName", PKFileName)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordCount", recordCount)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("checksumProductQuantity", checksumProductQuantity)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("checksumAmounntInclVAT", checksumAmounntInclVAT)) 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 TTRTrailer WHERE PKFileName=@PKFileName) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() Using cmd As New SqlCommand("Select * FROM TTRTrailer WHERE PKFileName=@PKFileName", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) 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 MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 [TTRTrailer] SET " & str & " WHERE PKFileName=@PKFileName") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) 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 TTRTrailer (" & str & ") VALUES(" & values & ") ") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return "" End Function End Class Public Class Paramter Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL Shared Function GET_PARAM_ByName(tcParam_name, TESTSYSTEM) As String Return SQL.getValueTxtBySql("SELECT TOP 1 [Param_value] FROM [tblPartnersystem_Paramter] WHERE Param_system='ASFINAG' AND [Param_name]='" & tcParam_name & "'", , , SQL.GetNewOpenConnectionFMZOLL_SYSTEM(TESTSYSTEM)) End Function End Class Shared Function fktMod10Prüfziffer(strNummer As String) As String ' Der Funktion wird im Feld strNummer der Wert ohne Prüfziffer übergeben. ' Die Funktion berechnet und liefert die Prüfziffer zurück. Dim intIX As Integer Dim intZSum As Integer Dim intSum As Integer Dim boo1 As Boolean For intIX = Len(strNummer) To 1 Step -1 intZSum = IIf(boo1, Mid(strNummer, intIX, 1) * 1, Mid(strNummer, intIX, 1) * 2) If intZSum < 10 Then intSum = intSum + intZSum Else intSum = intSum + ((intZSum Mod 10) + ((intZSum - (intZSum Mod 10)) / 10)) End If boo1 = Not boo1 Next intIX fktMod10Prüfziffer = CStr((10 - (intSum Mod 10)) Mod 10) End Function Public Class Exportist Structure Header ' Format Muss von bis Kommentar Dim SortField As String ' N3 Y 1 3 "000" Dim RecordID As String ' N2 Y 4 5 "00" Dim FileName As String ' C3 Y 6 8 "TBL" Dim LiveTestIndicator As String ' C1 Y 9 9 "L" oder "T" Dim FileCreationDate As String ' N8 Y 10 17 YYYYMMDD Dim FileCreationTime As String ' N4 Y 18 21 HHMM (24hr) Dim RunNumber As String ' N3 Y 22 24 Laufende Nummer pro File-Type Dim SenderID As String ' C2 Y 25 26 "VG" Dim ReceiverID As String ' C2 Y 27 28 "EP" Dim Filler As String ' C3 Y 29 31 Leerzeichen End Structure Structure Body ' Format Muss von bis Kommentar Dim SortField As String ' N3 Y 1 3 "000" Dim RecordID As String ' N2 Y 4 5 "50" Dim ISOCountryCode As String ' N3 Y 6 8 "040" (Österreich) Dim CardNumber As String ' C22 Y 9 30 Komplette Tankkartennummer 'onlyBlacklist Dim StopType As String ' N1 Y 31 31 "3" Stopped for Post-Pay 'only Whitelist Dim ValidFrom As String ' N8 Y 31 38 YYYYMMDD Dim ValidTo As String ' N8 Y 39 46 YYYYMMDD Dim NewCardNumber As String ' N22 N 47 68 Tankkartennummer der Folge- oder Ersatzkarte Dim NewValidFrom As String ' N8 N 69 76 YYYYMMDD der Folge- oder Ersatzkarte Dim NewValidTo As String End Structure Private Structure Trailer ' Format Muss von bis Kommentar Dim SortField As String ' N3 Y 1 3 "999" Dim RecordID As String ' N2 Y 4 5 "99" Dim FileName As String ' C3 Y 6 8 "TBL" Dim RunNumber As String ' N3 Y 9 11 Gleiche Nr. wie im Header Dim RecordCount As String ' N7 Y 12 18 Anzahl der Sätze inkl. Header und Trailer Dim Filler As String ' C13 Y 19 31 Leerzeichen End Structure ' Private Type TWLHeader ' Format Muss von bis Kommentar ' SortField As String * 3 ' N3 Y 1 3 "000" ' RecordID As String * 2 ' N2 Y 4 5 "00" ' FileName As String * 3 ' C3 Y 6 8 "TWL" ' LiveTestIndicator As String * 1 ' C1 Y 9 9 "L" oder "T" ' FileCreationDate As String * 8 ' N8 Y 10 17 YYYYMMDD ' FileCreationTime As String * 4 ' N4 Y 18 21 HHMM (24hr) ' RunNumber As String * 3 ' N3 Y 22 24 Laufende Nummer pro File-Type ' SenderID As String * 2 ' C2 Y 25 26 "VG" ' ReceiverID As String * 2 ' C2 Y 27 28 "EP" ' Filler As String * 56 ' C56 Y 29 84 Leerzeichen 'End Type 'Private Type TWLBody ' Format Muss von bis Kommentar ' SortField As String * 3 ' N3 Y 1 3 "000" ' RecordID As String * 2 ' N2 Y 4 5 "40" ' ISOCountryCode As String * 3 ' N3 Y 6 8 "040" (Österreich) ' CardNumber As String * 22 ' N22 Y 9 30 Komplette Tankkartennummer ' ValidFrom As String * 8 ' N8 Y 31 38 YYYYMMDD ' ValidTo As String * 8 ' N8 Y 39 46 YYYYMMDD ' NewCardNumber As String * 22 ' N22 N 47 68 Tankkartennummer der Folge- oder Ersatzkarte ' NewValidFrom As String * 8 ' N8 N 69 76 YYYYMMDD der Folge- oder Ersatzkarte ' NewValidTo As String * 8 ' N8 N 77 84 YYYYMMDD der Folge- oder Ersatzkarte 'End Type 'Private Type TWLTrailer ' Format Muss von bis Kommentar ' SortField As String * 3 ' N3 Y 1 3 "999" ' RecordID As String * 2 ' N2 Y 4 5 "99" ' FileName As String * 3 ' C3 Y 6 8 "TWL" ' RunNumber As String * 3 ' N3 Y 9 11 Gleiche Nr. wie im Header ' RecordCount As String * 7 ' N7 Y 12 18 Anzahl der Sätze inkl. Header und Trailer ' Filler As String * 66 ' C66 Y 19 84 Leerzeichen 'End Type Dim ASFINAG_PFAD, FTP_PFAD_TEST, FTP_PFAD Dim sw As StreamWriter Dim Dateiname = "" Public Function initPFad() ASFINAG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) FTP_PFAD_TEST = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_Out_Test", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) FTP_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_Out", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) If Not IO.Directory.Exists(ASFINAG_PFAD) Then IO.Directory.CreateDirectory(ASFINAG_PFAD) If Not IO.Directory.Exists(FTP_PFAD_TEST) Then IO.Directory.CreateDirectory(FTP_PFAD_TEST) End Function Public Function exportiereBlackList() As Boolean Dim fileName = "TBL" Dim sucess = False Dim Header As Header Dim Body As Body Dim Trailer As Trailer Dim intRunNumber As Integer = 1 Dim lngAnzahlSätze As Long Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL 'qryExportiereBlackList Dim sqlstr As String = " SELECT Kreditkarten.KartenNr AS CardNumber, Kreditkarten.Kartensperre AS StopType FROM Kreditkarten LEFT JOIN Kreditkarten AS Kreditkarten_1 ON Kreditkarten.NeueKartenNr = Kreditkarten_1.KartenNr WHERE Kreditkarten.Kartensperre > 0 AND ((Kreditkarten.Kartensperrdatum)<=GETDATE()) AND ((Left([Kreditkarten].[KartenNr],6))='990001') AND [Kreditkarten].[Kartenfreischaltungsdatum] <= GETDATE() And [Kreditkarten].[Kartenfreischaltungsdatum] <> '' AND DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1))) >= GETDATE() AND DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1))) <> '' AND (Kreditkarten_1.Kartenfreischaltungsdatum) Is Null Or (Kreditkarten_1.Kartenfreischaltungsdatum) > GETDATE() ORDER BY Kreditkarten.KartenNr" Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") 'qry_ASFINAG_FileInfo_TBL Dim currentFileNr As Integer = SQL.getValueTxtBySql("SELECT fileVersion FROM [FileINfo] where [filename]='" & fileName & "'", "ASFINAG") If currentFileNr = 999 Then currentFileNr = 0 currentFileNr = currentFileNr + 1 Dim preFilename As String = "" If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then preFilename = "LVGEP" Else preFilename = "TVGEP" End If Dim strFile As String = ASFINAG_PFAD & "\" & preFilename & fileName & "." & currentFileNr Try 'Dim fileExists As Boolean = File.Exists(ASFINAG_PFAD & "\" & strFile) Using sw As New StreamWriter(File.Open(strFile, FileMode.OpenOrCreate)) With Header .SortField = "000" .RecordID = "00" .FileName = fileName .LiveTestIndicator = "L" 'T für Testfile, L Livesystem .FileCreationDate = Today.ToString("yyyymmdd") .FileCreationTime = Now().ToString("hhmm") .RunNumber = Format(currentFileNr, "000") .SenderID = "VG" .ReceiverID = "EP" .Filler = New String(" ", 3) sw.Write(Header.SortField) sw.Write(Header.RecordID) sw.Write(Header.FileName) sw.Write(Header.LiveTestIndicator) sw.Write(Header.FileCreationDate) sw.Write(Header.FileCreationTime) sw.Write(Header.RunNumber) sw.Write(Header.SenderID) sw.Write(Header.ReceiverID) sw.Write(Header.Filler) sw.WriteLine() End With lngAnzahlSätze = 1 For Each row As DataRow In dt.Rows lngAnzahlSätze = lngAnzahlSätze + 1 With Body .SortField = "000" .RecordID = "50" .ISOCountryCode = "040" .CardNumber = row.Item("CardNumber") + New String(" ", 22 - Len(row.Item("CardNumber"))) .StopType = row.Item("StopType") sw.Write(Body.SortField) sw.Write(Body.RecordID) sw.Write(Body.ISOCountryCode) sw.Write(Body.CardNumber) sw.Write(Body.StopType) sw.WriteLine() End With Next lngAnzahlSätze = lngAnzahlSätze + 1 With Trailer .SortField = "999" .RecordID = "99" .FileName = "TBL" .RunNumber = Format(currentFileNr, "000") .RecordCount = Format(lngAnzahlSätze, "0000000") .Filler = New String(" ", 13) sw.Write(Trailer.SortField) sw.Write(Trailer.RecordID) sw.Write(Trailer.FileName) sw.Write(Trailer.RunNumber) sw.Write(Trailer.RecordCount) sw.Write(Trailer.Filler) sw.WriteLine() End With sw.Close() SQL.doSQL("UPDATE [dbo].[FileINfo] SET FileVersion=" & currentFileNr & " WHERE [filename]='" & fileName & "'", "ASFINAG") MsgBox("Files uploaded: " & uploadListToFTP(fileName)) Return True End Using Catch ex As Exception MsgBox(ex.Message) End Try End Function Public Function exportiereWhiteList() As Boolean Dim fileName = "TWL" Dim sucess = False Dim Header As Header Dim Body As Body Dim Trailer As Trailer Dim intRunNumber As Integer = 1 Dim lngAnzahlSätze As Long Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL 'qryExportiereWhiteList Dim sqlstr As String = " SELECT Kreditkarten.KartenNr AS CardNumber, CONVERT(varchar, [Kreditkarten].[Kartenfreischaltungsdatum],112) AS ValidFrom, CONVERT(varchar,DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1))),112) AS ValidTo, Kreditkarten_1.KartenNr AS NewCardNumber, IIf(Not IsNull(Kreditkarten_1.KartenNr,0) <> 0 ,CONVERT(varchar,[Kreditkarten_1].[Kartenfreischaltungsdatum],112),'') AS NewValidFrom, IIf(Not IsNull(Kreditkarten_1.KartenNr,0) <> 0,CONVERT(varchar, DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1))),112),'') AS NewValidTo, Kreditkarten.NeueKartenNrGemeldet FROM Kreditkarten AS Kreditkarten_1 RIGHT JOIN Kreditkarten ON Kreditkarten_1.KartenNr = Kreditkarten.NeueKartenNr WHERE (([Kreditkarten].[Kartenfreischaltungsdatum])<= GETDATE() And ([Kreditkarten].[Kartenfreischaltungsdatum] <>'') AND DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1))) >= GETDATE() AND ((Kreditkarten_1.KartenNr) Is Null)) OR (((Kreditkarten_1.KartenNr) Is Not Null) AND ((Kreditkarten.NeueKartenNrGemeldet)= 0)) ORDER BY Kreditkarten.KartenNr, [Kreditkarten].[Kartenfreischaltungsdatum], CONVERT(varchar, DateAdd(DAY, -1, DateAdd(MONTH,1,DATEFROMPARTS(2000 + [Kreditkarten].[Kartenablaufjahr],[Kreditkarten].[Kartenablaufmonat],1)))) " Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") 'qry_ASFINAG_FileInfo_TWL Dim currentFileNr As Integer = SQL.getValueTxtBySql("SELECT fileVersion FROM [FileINfo] where [filename]='" & fileName & "'", "ASFINAG") If currentFileNr = 999 Then currentFileNr = 0 currentFileNr = currentFileNr + 1 Dim preFilename As String = "" If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then preFilename = "LVGEP" Else preFilename = "TVGEP" End If Dim strFile As String = ASFINAG_PFAD & "\" & preFilename & fileName & "." & currentFileNr Try Using sw As New StreamWriter(File.Open(strFile, FileMode.OpenOrCreate)) With Header .SortField = "000" .RecordID = "00" .FileName = fileName .LiveTestIndicator = "L" 'T für Testfile, L Livesystem .FileCreationDate = Today.ToString("yyyymmdd") .FileCreationTime = Now().ToString("hhmm") .RunNumber = Format(currentFileNr, "000") .SenderID = "VG" .ReceiverID = "EP" .Filler = New String(" ", 56) sw.Write(Header.SortField) sw.Write(Header.RecordID) sw.Write(Header.FileName) sw.Write(Header.LiveTestIndicator) sw.Write(Header.FileCreationDate) sw.Write(Header.FileCreationTime) sw.Write(Header.RunNumber) sw.Write(Header.SenderID) sw.Write(Header.ReceiverID) sw.Write(Header.Filler) sw.WriteLine() End With lngAnzahlSätze = 1 For Each row As DataRow In dt.Rows lngAnzahlSätze = lngAnzahlSätze + 1 With Body If Not IsDBNull(row.Item("NewCardNumber")) Then If Not row.Item("NeueKartenNrGemeldet") Then lngAnzahlSätze = lngAnzahlSätze + 1 .SortField = "000" .RecordID = "40" .ISOCountryCode = "040" .CardNumber = row.Item("CardNumber") + New String(" ", 22 - Len(row.Item("CardNumber"))) .ValidFrom = row.Item("ValidFrom") .ValidTo = row.Item("ValidTo") .NewCardNumber = row.Item("NewCardNumber") + New String(" ", 22 - Len(row.Item("NewCardNumber"))) .NewValidFrom = row.Item("NewValidFrom") .NewValidTo = row.Item("NewValidTo") sw.Write(.SortField) sw.Write(.RecordID) sw.Write(.ISOCountryCode) sw.Write(.CardNumber) sw.Write(.ValidFrom) sw.Write(.ValidTo) sw.Write(.NewCardNumber) sw.Write(.NewValidFrom) sw.Write(.NewValidTo) sw.WriteLine() row.Item("NeueKartenNrGemeldet") = True End If Else lngAnzahlSätze = lngAnzahlSätze + 1 .SortField = "000" .RecordID = "40" .ISOCountryCode = "040" .CardNumber = row.Item("CardNumber") + New String(" ", 22 - Len(row.Item("CardNumber"))) .ValidFrom = row.Item("ValidFrom") .ValidTo = row.Item("ValidTo") .NewCardNumber = "0000000000000000000000" .NewValidFrom = "00000000" .NewValidTo = "00000000" sw.Write(.SortField) sw.Write(.RecordID) sw.Write(.ISOCountryCode) sw.Write(.CardNumber) sw.Write(.ValidFrom) sw.Write(.ValidTo) sw.Write(.NewCardNumber) sw.Write(.NewValidFrom) sw.Write(.NewValidTo) sw.WriteLine() End If End With Next lngAnzahlSätze = lngAnzahlSätze + 1 With Trailer .SortField = "999" .RecordID = "99" .FileName = "TBL" .RunNumber = Format(currentFileNr, "000") .RecordCount = Format(lngAnzahlSätze, "0000000") .Filler = New String(" ", 13) sw.Write(Trailer.SortField) sw.Write(Trailer.RecordID) sw.Write(Trailer.FileName) sw.Write(Trailer.RunNumber) sw.Write(Trailer.RecordCount) sw.Write(Trailer.Filler) sw.WriteLine() End With sw.Close() SQL.doSQL("UPDATE [dbo].[FileINfo] SET FileVersion=" & currentFileNr & " WHERE [filename]='" & fileName & "'", "ASFINAG") MsgBox("Files uploaded: " & uploadListToFTP(fileName)) Return True End Using Catch ex As Exception MsgBox(ex.Message) End Try End Function Public Function uploadListToFTP(filename As String) As Integer Dim cnt = 0 Try Dim SERVER_Path = "" If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then SERVER_Path = Me.FTP_PFAD_TEST Else SERVER_Path = Me.FTP_PFAD End If For Each f In IO.Directory.GetFiles(ASFINAG_PFAD) Dim fi As New IO.FileInfo(f) If Not fi.Name.StartsWith(".") AndAlso fi.Name.Contains(filename) Then Dim zielPfad = SERVER_Path 'While IO.File.Exists(zielPfad) ' zielPfad = SERVER_Path & "\" & Now.ToString("yyyyMMdd_HHmmss_") & fi.Name 'End While IO.File.Copy(f, zielPfad & "\" & fi.Name) If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If IO.File.Exists(zielPfad) Then IO.File.Delete(f) End If cnt += 1 End If Next Return cnt Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return cnt End Function End Class End Class