Files
ADMIN/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.vb

668 lines
28 KiB
VB.net

Imports System.IO
Imports System.Globalization
Imports System.Xml
Imports Renci.SshNet
Imports System.Net
Imports System.Text
Imports System.ComponentModel
Imports RoutineManager.cAsfinag
Imports DocumentFormat.OpenXml.Drawing.Charts
Imports DocumentFormat.OpenXml.VariantTypes
Public Class frmAsfinag_NachrichtenVerabeitung
Dim cntDatenEingelesen As Integer = 0
Dim dsNichtErkannt As Integer = 0
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim allowClose = False
' Dim DY_PFAD = "C:\Users\DEVELOPER1\Desktop\test\TEST\"
Dim ASFINAG_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
Dim VERARBEITUNGS_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
Dim ZIEL_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Ablage\"
Dim ERROR_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_ERROR\"
Dim PARTNERSYSTEM = "ASFINAG"
Dim SERVER_Path = ""
Dim SERVER_Path_TEST = ""
Dim FileType As String
Dim Dateiname = ""
Sub New(FileType)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Me.FileType = FileType
End Sub
Sub New(FileType, allowClose) 'autostart
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
FileType = FileType
Me.allowClose = allowClose
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub initPfade()
Me.SERVER_Path = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.SERVER_Path_TEST = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In_Test", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.ASFINAG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.VERARBEITUNGS_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("VERARBEITUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.ZIEL_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.ERROR_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
If Not IO.Directory.Exists(VERARBEITUNGS_PFAD) Then IO.Directory.CreateDirectory(VERARBEITUNGS_PFAD)
If Not IO.Directory.Exists(ZIEL_PFAD) Then IO.Directory.CreateDirectory(ZIEL_PFAD)
If Not IO.Directory.Exists(ERROR_PFAD) Then IO.Directory.CreateDirectory(ERROR_PFAD)
'Me.BOX_VERSION = NCTSTR_Worker.cDY_Paramter.GET_PARAM_ByName("BOX_VERSION", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
End Sub
Private Sub frmDYNachrichtenVerarbeitung_Load(sender As Object, e As EventArgs) Handles Me.Load
initPfade()
If FileType <> "" Then
Label2.Text &= " " & FileType.ToUpper
For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
Dim filename = frmStartOptions.cut_file(d)
If filename.ToLower.Contains(FileType) Then
ListBox3.Items.Add(filename)
End If
Me.Refresh()
Next
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Me.Enabled = False
Try
Label9.Visible = True
Dim cnt = getNachrichtenDatenFromFTP()
Label9.Text = cnt & " Datensätze empfangen."
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Enabled = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Enabled = False
Try
Label5.Visible = True
DatenEinlesen() '<<<<------------
If dsNichtErkannt > 0 Then
Label6.Text = dsNichtErkannt & " Datensätze nicht " & vbNewLine & "erkannt."
Label6.Visible = True
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Enabled = True
Label5.Text = cntDatenEingelesen & " Datensätze verarbeitet."
End Sub
Function getNachrichtenDatenFromFTP() As Integer
Dim cnt = 0
Try
Dim SERVERPath = ""
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
SERVERPath = Me.SERVER_Path '"\\ftps.verag.ag\FTP\MAVI\IN\"
Else
SERVERPath = Me.SERVER_Path_TEST '"\\ftps.verag.ag\FTP\MAVI\IN\"
End If
For Each f In IO.Directory.GetFiles(SERVER_Path)
Dim fi As New IO.FileInfo(f)
If fi.Name.ToLower.Contains(FileType) Then
If Not fi.Name.StartsWith(".") Then
Dim zielPfad = VERARBEITUNGS_PFAD & "\" & fi.Name
While IO.File.Exists(zielPfad)
zielPfad = VERARBEITUNGS_PFAD & "\" & Now.ToString("yyyyMMdd_HHmmss_") & fi.Name
End While
IO.File.Copy(f, zielPfad)
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If IO.File.Exists(zielPfad) Then IO.File.Delete(f)
End If
Dim filename = frmStartOptions.cut_file((New FileInfo(zielPfad)).Name)
If filename.ToLower.Contains(FileType) Then
ListBox3.Items.Add(filename)
cnt += 1
End If
End If
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
Sub DatenEinlesen()
VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW
If ListBox3.Items.Count = 0 Then
Label6.Text = "Keine Daten zum Einlesen vorhanden."
Label6.Visible = True
Exit Sub
End If
For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
Try
Dim correctFile As Boolean = False
For Each i In ListBox3.Items
Dim fileName As FileInfo = New FileInfo(d)
If Equals(fileName.Name, i) Then
correctFile = True
Exit For
End If
Next
Dim found = False
Dateiname = d
If IO.File.Exists(d) And correctFile Then
Dim nr_id As Integer = -1
Dim fi As FileInfo = New FileInfo(d)
If Not fi.Name.StartsWith(".") Then
Dim alreadyMoved = False
Dim objFileRead As StreamReader = New StreamReader(d)
If objFileRead.Peek() = -1 Then
MsgBox("Datei hat keinen Inhalt!",
MsgBoxStyle.Information,
MsgBoxStyle.DefaultButton2 = MsgBoxStyle.OkOnly)
Exit Sub
ElseIf FileType = "clf" Then
If readAndSaveCLF(objFileRead, fi) Then
addDGVEinarbeitung(fi.Name, "OK")
found = True
Else
addDGVEinarbeitung(fi.Name, "Fehler")
End If
ElseIf FileType = "ttr" Then
If readAndSaveTTR(objFileRead, fi) Then
addDGVEinarbeitung(fi.Name, "OK")
found = True
Else
addDGVEinarbeitung(fi.Name, "Fehler")
End If
End If
End If
If found Then
If Not IO.Directory.Exists(ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\")
frmStartOptions.moveFile(d, ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", VERARBEITUNGS_PFAD)
cntDatenEingelesen += 1
Else
If Not found Then
frmStartOptions.moveFile(d, ERROR_PFAD, VERARBEITUNGS_PFAD) ' nciht gefunden, oder durch ERROR nicht eingearbt,.
dsNichtErkannt += 1
End If
End If
Me.Refresh()
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Next
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
Me.Close()
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Me.Close()
End Sub
Sub addDGVEinarbeitung(art, BezugsNr)
dgvEinarbeitung.Rows.Add(art, BezugsNr)
Try
dgvEinarbeitung.FirstDisplayedScrollingRowIndex = dgvEinarbeitung.RowCount - 1
Catch ex As Exception
End Try
End Sub
Public Function readAndSaveCLF(objFileRead As StreamReader, fi As FileInfo) As Boolean
Dim booHeaderVorhanden = False
Dim booPrüfziffernfehler = False
Dim booInTransaktion = False
Dim booTrailerVorhanden = False
Dim lngPKLine As Long = 0
Dim lngRecordCount As Long
Do While (objFileRead.Peek() > -1)
Dim strZeile = objFileRead.ReadLine()
lngRecordCount = lngRecordCount + 1
Select Case Mid(strZeile, 1, 2)
Case "10"
booHeaderVorhanden = True
Dim ext = CInt(fi.Extension.Remove(0, 1))
Dim clfHeader As New cAsfinag.CLFHeader(fi.Name.ToString, ext)
With clfHeader
.PKFileName = fi.Name
.recordType = Mid(strZeile, 1, 2)
.fileVersion = Mid(strZeile, 3, 2)
.indcator = Trim(Mid(strZeile, 9, 1))
.senderID = Trim(Mid(strZeile, 10, 6))
.receiverID = Trim(Mid(strZeile, 16, 6))
.fileCreationDate = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2))
.fileCreationTime = Now()
'.fileCreationTime = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) & " " & TimeSerial(Mid(strZeile, 30, 2), Mid(strZeile, 32, 2), Mid(strZeile, 34, 2))
.ISOCountryCode = Trim(Mid(strZeile, 62, 3))
.SAVE()
End With
Case "20"
' Meldung bei nicht vorhandenen Haeder.
If Not booHeaderVorhanden Then
MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.")
objFileRead.Close()
Return False
End If
Dim clfBody As New cAsfinag.CLFBody(fi.Name, lngPKLine)
With clfBody
.PKFileName = fi.Name
lngPKLine = lngPKLine + 1
.RecordType = Trim(Mid(strZeile, 1, 2))
.fileVersion = Trim(Mid(strZeile, 3, 2))
.fileNumber = Trim(Mid(strZeile, 5, 3))
.cardNumber = Trim(Mid(strZeile, 9, 22))
.validTo = Trim(Mid(strZeile, 31, 4))
.OBUID = Trim(Mid(strZeile, 35, 18))
.vehicleLicensePlate = Trim(Mid(strZeile, 53, 10))
.nationality = Trim(Mid(strZeile, 63, 3))
.vehicleCategory = Trim(Mid(strZeile, 66, 1))
.emissionCategory = Trim(Mid(strZeile, 67, 2))
.status = Trim(Mid(strZeile, 69, 2))
.contractDate = DateSerial(Mid(strZeile, 71, 4), Mid(strZeile, 75, 2), Mid(strZeile, 77, 2))
.SAVE()
End With
'CardNumber prüfen.
If (Right(clfBody.cardNumber, 1)) <> cAsfinag.fktMod10Prüfziffer(Left(clfBody.cardNumber, Len(clfBody.cardNumber) - 1)) Then
booPrüfziffernfehler = True
End If
'strSQL = "SELECT * FROM CLFArchiv WHERE (OBUID = N'" & Trim(Mid(strZeile, 37, 18)) & "')"
'rstCLFArchiv.Open strSQL, cnnASFINAG, adOpenStatic, adLockOptimistic, adCmdText
'With rstCLFArchiv
' If .EOF Then
' .AddNew
' !OBUID = Trim(Mid(strZeile, 37, 18))
' End If
' !FileName = strPKFileName
' !RecordType = Trim(Mid(strZeile, 1, 2))
' !RunNumber = Trim(Mid(strZeile, 3, 8))
' !CardNumber = Trim(Mid(strZeile, 11, 22))
' !ValidTo = Trim(Mid(strZeile, 33, 4))
' !KfzKennzeichen = Trim(Mid(strZeile, 55, 10))
' !Nationalität = Trim(Mid(strZeile, 65, 3))
' !Kategorie = Trim(Mid(strZeile, 68, 1))
' !Schadstoffklasse = Trim(Mid(strZeile, 69, 2))
' !Status = Trim(Mid(strZeile, 71, 2))
' !DatumVertragsabschluss = DateSerial(Mid(strZeile, 73, 4), Mid(strZeile, 77, 2), Mid(strZeile, 79, 2))
' .Update
' .Close
'End With
' Meldung bei Prüfziffernfehler.
If booPrüfziffernfehler Then
MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString)
booInTransaktion = False
Return False
End If
Case "90"
' Meldung bei nicht vorhandenen Haeder.
If Not booHeaderVorhanden Then
MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.")
objFileRead.Close()
Return False
End If
booTrailerVorhanden = True
Dim clfTrailer As New cAsfinag.CLFTrailer(fi.Name)
With clfTrailer
.PKFileName = fi.Name
.recordType = Trim(Mid(strZeile, 1, 2))
.fileVersion = Trim(Mid(strZeile, 3, 2))
.fileNumber = Trim(Mid(strZeile, 5, 4))
.recordCount = Trim(Mid(strZeile, 9, 7))
.SAVE()
End With
' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer.
If clfTrailer.recordCount <> (lngRecordCount) Then
MsgBox("Record Count: " & clfTrailer.recordCount & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf)
objFileRead.Close()
Return False
End If
' Meldung bei Prüfsummenfehler.
If booPrüfziffernfehler Then
MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.")
objFileRead.Close()
' MsgBox strPrompt, , strPKFileName
' ' Zurücksetzen der Transaktion.
'cnnASFINAG.RollbackTrans
' booInTransaktion = False
End If
Case Else
' Andere RecordNumber überlesen.
End Select
Loop
objFileRead.Close()
Return True
End Function
Public Function readAndSaveTTR(objFileRead As StreamReader, fi As FileInfo) As Boolean
Dim booHeaderVorhanden = False
Dim booPrüfziffernfehler = False
Dim booInTransaktion = False
Dim booTrailerVorhanden = False
Dim dblCheckSumQuantity As Double
Dim curCheckSumAmount As Double
Dim lngPKLine As Long = 0
Dim lngRecordCount As Long
Do While (objFileRead.Peek() > -1)
Dim strZeile = objFileRead.ReadLine()
lngRecordCount = lngRecordCount + 1
Select Case Mid(strZeile, 1, 2)
Case "10"
booHeaderVorhanden = True
Dim ext = CInt(fi.Extension.Remove(0, 1))
Dim ttrHeader As New cAsfinag.TTRHeader(fi.Name.ToString, ext)
With ttrHeader
.PKFileName = fi.Name
.recordType = Trim(Mid(strZeile, 1, 2))
.fileVersion = Trim(Mid(strZeile, 3, 2))
.senderID = Trim(Mid(strZeile, 5, 6))
.receiverID = Trim(Mid(strZeile, 11, 6))
.fileCreationDate = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2))
.fileCreationTime = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2)) & " " & TimeSerial(Mid(strZeile, 25, 2), Mid(strZeile, 27, 2), 0)
.fileNumber = Trim(Mid(strZeile, 29, 4))
.currencyCode = Trim(Mid(strZeile, 33, 3))
.description = IIf(Trim(Mid(strZeile, 36, 25)) = "", Nothing, Trim(Mid(strZeile, 36, 25)))
.ISOCountryCode = Trim(Mid(strZeile, 61, 3))
.SAVE()
End With
Case "20"
' Meldung bei nicht vorhandenen Haeder.
If Not booHeaderVorhanden Then
MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.")
objFileRead.Close()
Return False
End If
Dim ttrBody As New cAsfinag.TTRBody(fi.Name, lngPKLine)
With ttrBody
.PKFileName = fi.Name
.recordType = Trim(Mid(strZeile, 1, 2))
lngPKLine = lngPKLine + 1
.PKLine = lngPKLine
.fileVersion = Trim(Mid(strZeile, 3, 2))
.siteId = IIf(Trim(Mid(strZeile, 7, 15)) = "", Nothing, Trim(Mid(strZeile, 7, 15)))
.fileNumber = Trim(Mid(strZeile, 22, 4))
.fileCreationDate = DateSerial(Mid(strZeile, 26, 4), Mid(strZeile, 30, 2), Mid(strZeile, 32, 2))
.deliveryNoteNumber = IIf(Trim(Mid(strZeile, 35, 8)) = "", Nothing, Trim(Mid(strZeile, 35, 8)))
.cardNumber = Trim(Mid(strZeile, 43, 22))
.deliveryDate = DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2))
.deliveryTime = IIf(Trim(Mid(strZeile, 73, 4)) = "", Nothing, DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2)) & " " & TimeSerial(Mid(strZeile, 73, 2), Mid(strZeile, 75, 2), 0))
.transactionType = Trim(Mid(strZeile, 77, 2))
.productCode = Trim(Mid(strZeile, 79, 4))
.km = IIf(Trim(Mid(strZeile, 83, 7)) = "", Nothing, Trim(Mid(strZeile, 83, 7)))
.driverId = IIf(Trim(Mid(strZeile, 90, 4)) = "", Nothing, Trim(Mid(strZeile, 90, 4)))
.productQuantity = Trim(Mid(strZeile, 94, 6)) / 100
.amountInclVAT = Trim(Mid(strZeile, 100, 10)) / 100
.VATrate = Trim(Mid(strZeile, 155, 4)) / 100
.VATamount = Trim(Mid(strZeile, 159, 10)) / 100
.OBUID = Trim(Mid(strZeile, 130, 25))
.receiptNumber = Trim(Mid(strZeile, 110, 20))
' Bei den Checksummen wird unabhängig vom TransactionType immer der positive Betrag aufsummiert.
dblCheckSumQuantity = dblCheckSumQuantity + ttrBody.productQuantity
curCheckSumAmount = curCheckSumAmount + ttrBody.amountInclVAT
' Bei TransactionType 03 .......Credit-Transaktion (negativ)
If ttrBody.transactionType = 3 Then
' Vorzeichenänderung
ttrBody.km = 0 - ttrBody.km
ttrBody.productQuantity = 0 - ttrBody.productQuantity
ttrBody.amountInclVAT = 0 - ttrBody.amountInclVAT
ttrBody.VATamount = 0 - ttrBody.VATamount
End If
' CardNumber prüfen.
If (Right(ttrBody.cardNumber, 1)) <> (fktMod10Prüfziffer(Left(ttrBody.cardNumber, Len(ttrBody.cardNumber) - 1))) Then
booPrüfziffernfehler = True
End If
.SAVE()
End With
'strSQL = "SELECT * FROM CLFArchiv WHERE (OBUID = N'" & Trim(Mid(strZeile, 37, 18)) & "')"
'rstCLFArchiv.Open strSQL, cnnASFINAG, adOpenStatic, adLockOptimistic, adCmdText
'With rstCLFArchiv
' If .EOF Then
' .AddNew
' !OBUID = Trim(Mid(strZeile, 37, 18))
' End If
' !FileName = strPKFileName
' !RecordType = Trim(Mid(strZeile, 1, 2))
' !RunNumber = Trim(Mid(strZeile, 3, 8))
' !CardNumber = Trim(Mid(strZeile, 11, 22))
' !ValidTo = Trim(Mid(strZeile, 33, 4))
' !KfzKennzeichen = Trim(Mid(strZeile, 55, 10))
' !Nationalität = Trim(Mid(strZeile, 65, 3))
' !Kategorie = Trim(Mid(strZeile, 68, 1))
' !Schadstoffklasse = Trim(Mid(strZeile, 69, 2))
' !Status = Trim(Mid(strZeile, 71, 2))
' !DatumVertragsabschluss = DateSerial(Mid(strZeile, 73, 4), Mid(strZeile, 77, 2), Mid(strZeile, 79, 2))
' .Update
' .Close
'End With
' Meldung bei Prüfziffernfehler.
If booPrüfziffernfehler Then
MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString)
booInTransaktion = False
objFileRead.Close()
Return False
End If
Case "90"
' Meldung bei nicht vorhandenen Haeder.
If Not booHeaderVorhanden Then
MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.")
objFileRead.Close()
Return False
End If
booTrailerVorhanden = True
Dim ttrTrailer As New cAsfinag.TTRTrailer(fi.Name)
With ttrTrailer
.PKFileName = fi.Name
.recordType = Trim(Mid(strZeile, 1, 2))
.fileVersion = Trim(Mid(strZeile, 3, 2))
'.fileNumber = Trim(Mid(strZeile, 5, 4))
.recordCount = Trim(Mid(strZeile, 5, 9))
.checksumProductQuantity = Trim(Mid(strZeile, 14, 15)) / 100
.checksumAmounntInclVAT = Trim(Mid(strZeile, 29, 15)) / 100
.SAVE()
Dim strPrompt
If ttrTrailer.recordCount <> lngRecordCount Then
strPrompt = strPrompt & "Record Count: " & ttrTrailer.recordCount & vbCrLf &
"Prüfsumme: " & lngRecordCount & vbCrLf
End If
' Prüfsumme Menge.
If ttrTrailer.checksumProductQuantity <> dblCheckSumQuantity Then
strPrompt = strPrompt & "Check Sum Quantity: " & ttrTrailer.checksumProductQuantity & vbCrLf &
"Prüfsumme: " & dblCheckSumQuantity & vbCrLf
End If
' Prüfsumme Betrag.
If ttrTrailer.checksumAmounntInclVAT <> Math.Round(curCheckSumAmount, 2) Then
strPrompt = strPrompt & "Check Sum Amount: " & ttrTrailer.checksumAmounntInclVAT & vbCrLf &
"Prüfsumme: " & curCheckSumAmount & vbCrLf
End If
If strPrompt <> "" Then
MsgBox(strPrompt)
objFileRead.Close()
Return False
End If
End With
' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer.
If ttrTrailer.recordCount <> (lngRecordCount) Then
MsgBox("Record Count: " & ttrTrailer.recordCount & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf)
objFileRead.Close()
Return False
End If
' Meldung bei Prüfsummenfehler.
If booPrüfziffernfehler Then
MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.")
objFileRead.Close()
Return False
' MsgBox strPrompt, , strPKFileName
' ' Zurücksetzen der Transaktion.
'cnnASFINAG.RollbackTrans
' booInTransaktion = False
End If
Case Else
' Andere RecordNumber überlesen.
End Select
Loop
objFileRead.Close()
Return True
End Function
Private Sub dgvEinarbeitung_SelectionChanged(sender As Object, e As EventArgs) Handles dgvEinarbeitung.SelectionChanged
dgvEinarbeitung.ClearSelection()
End Sub
Private Sub frmTCNachrichtenVerarbeitung_Shown(sender As Object, e As EventArgs) Handles Me.Shown
If allowClose Then
Me.Refresh()
Button2.PerformClick()
Button1.PerformClick()
System.Threading.Thread.Sleep(2000)
Me.Close()
End If
End Sub
Private Sub pnl_Paint(sender As Object, e As PaintEventArgs) Handles pnl.Paint
End Sub
Public Shadows Function Right(ByVal sText As String,
ByVal nLen As Integer) As String
If nLen > sText.Length Then nLen = sText.Length
Return (sText.Substring(sText.Length - nLen))
End Function
Public Shadows Function Left(ByVal sText As String,
ByVal nLen As Integer) As String
If nLen > sText.Length Then nLen = sText.Length
Return (sText.Substring(0, nLen))
End Function
End Class