Timas, Asfinag-Schnittstelle
This commit is contained in:
@@ -15,15 +15,9 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
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 asfinag As New cAsfinag()
|
||||
|
||||
Dim Dateiname = ""
|
||||
|
||||
@@ -45,39 +39,27 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
|
||||
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()
|
||||
lblTestsystem.Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
||||
asfinag.initImportPfade()
|
||||
|
||||
If FileType <> "" Then
|
||||
|
||||
Label2.Text &= " " & FileType.ToUpper
|
||||
|
||||
For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
|
||||
For Each d In System.IO.Directory.GetFiles(asfinag.VERARBEITUNG_PFAD)
|
||||
Dim filename = frmStartOptions.cut_file(d)
|
||||
If filename.ToLower.Contains(FileType) Then
|
||||
Dim targetsystem As String = "nicht definiert"
|
||||
If filename.Substring(0, 1) = "T" Then
|
||||
targetsystem = "Test"
|
||||
ElseIf filename.Substring(0, 1) = "L" Then
|
||||
targetsystem = "Produktiv"
|
||||
End If
|
||||
ListBox3.Items.Add(filename)
|
||||
End If
|
||||
|
||||
Me.Refresh()
|
||||
Me.Refresh()
|
||||
Next
|
||||
End If
|
||||
|
||||
@@ -86,8 +68,18 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
Me.Enabled = False
|
||||
Try
|
||||
Dim stringLIst As New List(Of String)
|
||||
Label9.Visible = True
|
||||
Dim cnt = getNachrichtenDatenFromFTP()
|
||||
Dim cnt = asfinag.getNachrichtenDatenFromFTP(stringLIst, FileType)
|
||||
For Each s In stringLIst
|
||||
Dim targetsystem As String = "nicht definiert"
|
||||
If s.Substring(0, 1) = "T" Then
|
||||
targetsystem = "Test"
|
||||
ElseIf s.Substring(0, 1) = "L" Then
|
||||
targetsystem = "Produktiv"
|
||||
End If
|
||||
ListBox3.Items.Add(s)
|
||||
Next
|
||||
Label9.Text = cnt & " Datensätze empfangen."
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -117,56 +109,6 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
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
|
||||
@@ -178,7 +120,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
End If
|
||||
|
||||
|
||||
For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
|
||||
For Each d In System.IO.Directory.GetFiles(asfinag.VERARBEITUNG_PFAD)
|
||||
|
||||
Try
|
||||
Dim correctFile As Boolean = False
|
||||
@@ -214,7 +156,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
|
||||
ElseIf FileType = "clf" Then
|
||||
|
||||
If readAndSaveCLF(objFileRead, fi) Then
|
||||
If asfinag.readAndSaveCLF(objFileRead, fi) Then
|
||||
addDGVEinarbeitung(fi.Name, "OK")
|
||||
found = True
|
||||
Else
|
||||
@@ -224,7 +166,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
|
||||
ElseIf FileType = "ttr" Then
|
||||
|
||||
If readAndSaveTTR(objFileRead, fi) Then
|
||||
If asfinag.readAndSaveTTR(objFileRead, fi) Then
|
||||
addDGVEinarbeitung(fi.Name, "OK")
|
||||
found = True
|
||||
Else
|
||||
@@ -236,12 +178,14 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
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)
|
||||
If Not IO.Directory.Exists(asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\")
|
||||
frmStartOptions.moveFile(d, asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", asfinag.VERARBEITUNG_PFAD)
|
||||
cntDatenEingelesen += 1
|
||||
Else
|
||||
If Not found Then
|
||||
frmStartOptions.moveFile(d, ERROR_PFAD, VERARBEITUNGS_PFAD) ' nciht gefunden, oder durch ERROR nicht eingearbt,.
|
||||
If Not IO.Directory.Exists(asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\")
|
||||
frmStartOptions.moveFile(d, asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", asfinag.VERARBEITUNG_PFAD)
|
||||
' nciht gefunden, oder durch ERROR nicht eingearbt,.
|
||||
dsNichtErkannt += 1
|
||||
End If
|
||||
End If
|
||||
@@ -276,357 +220,6 @@ Public Class frmAsfinag_NachrichtenVerabeitung
|
||||
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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user