This commit is contained in:
2023-12-05 16:31:38 +01:00
parent 7addd7b133
commit 3b57150abf
5 changed files with 420 additions and 276 deletions

View File

@@ -999,6 +999,9 @@ Public Class cAsfinag
Public Class Exportist
Dim blacklisteExported As Boolean = False
Dim whiteListExported As Boolean = False
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"
@@ -1056,7 +1059,7 @@ Public Class cAsfinag
End Function
Public Function exportiereBlackList() As Boolean
Public Function exportiereBlackList(Optional autoclose As Boolean = False) As Boolean
Dim fileName = "TBL"
Dim sucess = False
@@ -1069,17 +1072,32 @@ Public Class cAsfinag
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
'qryExportiereBlackList
' DO NOT WORK ON SQL2008 SERVER
'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"
'WORK ON SQL 2008
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
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.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()
And DateAdd(DAY, -1, DateAdd(MONTH,1,CAST(CONVERT(VARCHAR,2000 + [Kreditkarten].[Kartenablaufjahr])+ '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat]) + '-' + CONVERT(VARCHAR,1) AS DATETIME))) >= GETDATE()
And DateAdd(DAY, -1, DateAdd(MONTH,1,CAST(CONVERT(VARCHAR,2000 + [Kreditkarten].[Kartenablaufjahr])+ '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat])+ '-' + CONVERT(VARCHAR,1) AS DATETIME))) <> ''
And (Kreditkarten_1.Kartenfreischaltungsdatum) Is Null Or (Kreditkarten_1.Kartenfreischaltungsdatum) > GETDATE()
ORDER BY Kreditkarten.KartenNr"
@@ -1167,7 +1185,12 @@ Public Class cAsfinag
sw.Close()
SQL.doSQL("UPDATE [dbo].[FileINfo] SET FileVersion=" & currentFileNr & " WHERE [filename]='" & fileName & "'", "ASFINAG")
MsgBox("Files uploaded: " & uploadListToFTP(fileName))
If autoclose Then
uploadListToFTP(fileName)
Else
MsgBox("Files uploaded: " & uploadListToFTP(fileName))
End If
Return True
End Using
@@ -1177,7 +1200,7 @@ Public Class cAsfinag
End Function
Public Function exportiereWhiteList() As Boolean
Public Function exportiereWhiteList(Optional autoclose As Boolean = False) As Boolean
Dim fileName = "TWL"
Dim sucess = False
@@ -1190,21 +1213,40 @@ Public Class cAsfinag
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
'qryExportiereWhiteList
' DOES NOT WORK WITH SQL2008!!!!
'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))))
' "
' WORKS WITH SQL2008!!!!
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,
Select Kreditkarten.KartenNr As CardNumber,
Convert(varchar, [Kreditkarten].[Kartenfreischaltungsdatum], 112) As ValidFrom,
Convert(varchar, DateAdd(Day, -1, DateAdd(Month, 1, CAST(Convert(VARCHAR, 2000 + [Kreditkarten].[Kartenablaufjahr]) + '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat]) + '-' + CONVERT(VARCHAR,1) AS Datetime))),112) as ValidTo,
Kreditkarten_1.KartenNr As NewCardNumber,
Case when IsNull(Kreditkarten_1.KartenNr,0) = 0 THEN CONVERT(varchar,[Kreditkarten_1].[Kartenfreischaltungsdatum],112) ELSE '' END AS NewValidFrom,
Case when IsNull(Kreditkarten_1.KartenNr,0) <> 0 THEN '' ELSE CONVERT(varchar, DateAdd(DAY, -1, DateAdd(MONTH,1,CAST(CONVERT(VARCHAR,2000 + [Kreditkarten].[Kartenablaufjahr]) + '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat]) + '-' + CONVERT(VARCHAR,1)AS DATETIME))), 112) END 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))))
"
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,CAST(CONVERT(VARCHAR,2000 + [Kreditkarten].[Kartenablaufjahr]) + '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat]) + '-' + CONVERT(VARCHAR,1) as datetime))) >= 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, CAST(Convert(VARCHAR, 2000 + [Kreditkarten].[Kartenablaufjahr]) + '-' + CONVERT(VARCHAR,[Kreditkarten].[Kartenablaufmonat]) + '-' + CONVERT(VARCHAR,1) AS datetime))), 112)"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
'qry_ASFINAG_FileInfo_TWL
@@ -1326,7 +1368,12 @@ Public Class cAsfinag
SQL.doSQL("UPDATE [dbo].[FileINfo] SET FileVersion=" & currentFileNr & " WHERE [filename]='" & fileName & "'", "ASFINAG")
MsgBox("Files uploaded: " & uploadListToFTP(fileName))
If autoclose Then
uploadListToFTP(fileName)
Else
MsgBox("Files uploaded: " & uploadListToFTP(fileName))
End If
Return True
End Using
@@ -1360,14 +1407,24 @@ Public Class cAsfinag
'End While
IO.File.Copy(f, zielPfad & "\" & fi.Name, True)
If IO.File.Exists(zielPfad & "\" & fi.Name) Then
If Not IO.Directory.Exists(ARCHIV_PFAD & "\" & Now.Year & "\" & filename & "\") Then IO.Directory.CreateDirectory(ARCHIV_PFAD & "\" & Now.Year & "\" & filename & "\")
IO.File.Move(BEREITSTELLUNG_PFAD & "\" & fi.Name, ARCHIV_PFAD & "\" & Now.Year & "\" & filename & "\" & fi.Name)
If filename = "TWL" Then whiteListExported = True
If filename = "TBL" Then blacklisteExported = True
End If
cnt += 1
End If
Next
For Each f In IO.Directory.GetFiles(SERVER_Path)
Dim fi As New IO.FileInfo(f)
If fi.Name.ToUpper.Contains("DO_NOT_DELETE") AndAlso whiteListExported AndAlso blacklisteExported Then
IO.File.SetLastWriteTime(fi.FullName, Now())
End If
Next
Return cnt
@@ -1418,7 +1475,7 @@ Public Class cAsfinag
SERVERPath = Me.FTP_PFAD
End If
Dim catchedFiles As Boolean = False
For Each f In IO.Directory.GetFiles(SERVERPath)
Dim fi As New IO.FileInfo(f)
If fi.Name.ToUpper.Contains(fileType) Then
@@ -1428,8 +1485,10 @@ Public Class cAsfinag
zielPfad = VERARBEITUNG_PFAD & "\" & "DOPPELT" & "\" & fi.Name.Replace(fi.Extension, "") & fi.Extension & Now.ToString("_yyyyMMdd_HHmmss")
End While
IO.File.Copy(f, zielPfad)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
If IO.File.Exists(zielPfad) Then IO.File.Delete(f)
If IO.File.Exists(zielPfad) Then
IO.File.Delete(f)
catchedFiles = True
End If
Dim filename = frmStartOptions.cut_file((New FileInfo(zielPfad)).Name)
@@ -1443,6 +1502,14 @@ Public Class cAsfinag
Next
' zur prüfung ob Daten von uns abgeholt wurden bzw. ob Daten von Asfingag bereitgestellt wurden
For Each f In IO.Directory.GetFiles(SERVERPath)
Dim fi As New IO.FileInfo(f)
If fi.Name.ToUpper.Contains("DO_NOT_DELETE") AndAlso catchedFiles Then
IO.File.SetLastWriteTime(fi.FullName, Now())
End If
Next
Return cnt
@@ -1489,6 +1556,7 @@ Public Class cAsfinag
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
@@ -1527,10 +1595,18 @@ Public Class cAsfinag
Dim lngPKLine As Long = 0
lngRecordCount = 0
'gleicher PKFileName wird nun aus CLFHeader gelöscht. CASCADE löscht dann zugehörige CLFBody und CLFTrailer (muss noch eingebaut werden).
SQL.doSQL("delete FROM CLFHeader WHERE (PKHistory = 0) AND (PKFileName = N'" & fi.Name.ToString & "')", "ASFINAG")
'gleicher PKFileName wird nun aus CLFHeader gelöscht. CASCADE löscht dann zugehörige CLFBody und CLFTrailer.
If Not SQL.doSQL("delete FROM CLFHeader WHERE (PKHistory = 0) AND (PKFileName = N'" & fi.Name.ToString & "')", "ASFINAG") Then
MsgBox("Fehler beim Löschen des CLF-Headers")
objFileRead.Close()
Return False
End If
SQL.doSQL("UPDATE CLF SET PKFileName = '" & fi.Name.ToString & "'", "ASFINAG")
If Not SQL.doSQL("UPDATE CLF SET PKFileName = '" & fi.Name.ToString & "'", "ASFINAG") Then
MsgBox("Fehler beim Update der CLF-Nr")
objFileRead.Close()
Return False
End If
objFileRead.DiscardBufferedData()
objFileRead.BaseStream.Seek(0, System.IO.SeekOrigin.Begin)