MDM Asfinag Berichte, Umbau mit insert in tblMautberichte

This commit is contained in:
2023-12-19 13:58:55 +01:00
parent 78786c451c
commit 4307a84813
5 changed files with 377 additions and 95 deletions

View File

@@ -1,4 +1,5 @@
Imports System.Data.OleDb
Imports System.DirectoryServices.ActiveDirectory
Imports System.IO
Imports com.sun.jdi
Imports com.sun.net.httpserver.Authenticator
@@ -103,7 +104,9 @@ Public Class frmMDMDatenverarbetiung
Dim inputKdNr = InputBox("Wenn einzelner Kunde abgerechnet werde soll, bitte KdNr eingeben" & vbNewLine & "Wenn keine KdNr angegeben wird, dann werden alle Kunden abgerechnet:", "Asfinag abrechen")
genRGAtt_ASFINAG(abrechnungsDatum, datum, inputKdNr)
If genRGAtt_ASFINAG(abrechnungsDatum, datum, inputKdNr) Then
MautD_Befuellen(inputKdNr)
End If
initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
End Select
@@ -769,6 +772,7 @@ Public Class frmMDMDatenverarbetiung
Return False
End If
Dim dt_Main_PDF As DataTable = SQL.loadDgvBySql_Param("SELECT Maut.cardnumber, Maut.licenceplate, Maut.turnoverdate, Maut.contractPartner, Maut.netAmount, Maut.VATamount, Maut.totalAmount, Maut.[additionalData],Maut.receiptNumber, KUK.KundenNr, KUK.[Name 1] FROM (
SELECT Kreditkarten.KartenNr AS Kartennummer, Adressen.AdressenNr AS KundenNr, Adressen.[Name 1]
FROM Adressen INNER JOIN Kreditkarten ON Adressen.AdressenNr = Kreditkarten.AdressenNr) as KUK
@@ -796,10 +800,12 @@ Public Class frmMDMDatenverarbetiung
End If
If vbYes = MsgBox(Info & vbNewLine & "Möchten Sie die Rechnungen + Anhänge erstellen?", vbYesNoCancel) Then
Dim dir = "F:\FMZoll\Maut\AT\Anlagen" '"C:\Users\d.breimaier\Desktop\Asfinag\Mautberichte"
Dim dir = "F:\FMZoll\Maut\AT\Anlagen" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "\Test", "") '"C:\Users\d.breimaier\Desktop\Asfinag\Mautberichte"
If Not Directory.Exists(dir) Then
Directory.CreateDirectory(dir)
End If
'If Directory.Exists(dir) Then dir &= "_" & Now.ToShortTimeString.Replace(":", "")
'Directory.CreateDirectory(dir)
If dt_Main_PDF IsNot Nothing AndAlso dt_Main_PDF.Rows.Count > 0 Then
@@ -895,10 +901,15 @@ Public Class frmMDMDatenverarbetiung
' Next
'End If
'If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang)
Dim dirCSV = "F:\FMZoll\Maut\Anlagen\" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test\", "")
'For Each f In Directory.GetFiles(dir)
' File.Copy(f, dirAnhang & (New FileInfo(f)).Name)
'Next
If Not Directory.Exists(dirCSV) Then
Directory.CreateDirectory(dirCSV)
End If
For Each f In Directory.GetFiles(dir)
If f.EndsWith(".csv") Then File.Copy(f, dirCSV & (New FileInfo(f)).Name)
Next
pbPloseAnh_Proz.Value = 100
txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count
@@ -1051,6 +1062,135 @@ Public Class frmMDMDatenverarbetiung
End Function
Function genASFINAGInsertMautAT(kdNr) As Boolean
Try
pic.Visible = False
Dim displayFilter = False
Dim sqlstr As String = ""
Dim sqlWhere As String = ""
If kdNr <> "" Then
sqlWhere &= " AND Adressen.AdressenNr=" & kdNr
End If
sqlstr = " select
'ASFINAG'
,Adressen.AdressenNr
,licenceplate
,turnoverdate
,'AT'
,contractPartner as ProductCode
,[cardnumber] as CardNumber
,[netAmount] as Netamount
,[VATamount] as VATAmount
,[totalAmount] as totalAmount
FROM [VERAG].[dbo].[tblAsfinagMaut]
INNER JOIN [VERAG].[dbo].Kreditkarten ON cardnumber = Kreditkarten.KartenNr
INNER JOIN [VERAG].[dbo].Adressen ON Adressen.AdressenNr = Kreditkarten.AdressenNr
WHERE 1 = 1 " & sqlWhere & "
order by Adressen.AdressenNr"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
Dim sqlstrAT As String = ""
sqlstrAT &= "select 'ASFINAG'
,Adressen.AdressenNr
,licenceplate
,turnoverdate
,'AT' as land
,'' as ProductCode
,[cardnumber] as CardNumber
,sum([netAmount]) as Netamount
,sum([VATamount]) as VATAmount
,sum([totalAmount]) as totalAmount
FROM [VERAG].[dbo].[tblAsfinagMaut]
INNER JOIN [VERAG].[dbo].Kreditkarten ON cardnumber = Kreditkarten.KartenNr
INNER JOIN [VERAG].[dbo].Adressen ON Adressen.AdressenNr = Kreditkarten.AdressenNr
WHERE 1 = 1 " & sqlWhere & "
group by Adressen.AdressenNr, licenceplate,turnoverdate,CardNumber
order by Adressen.AdressenNr"
Dim dtAT As DataTable = SQL.loadDgvBySql_Param(sqlstrAT, "FMZOLL")
'AT ---> Gruppiert
If dtAT IsNot Nothing AndAlso dtAT.Rows.Count > 0 Then
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
dt = dtAT
Else
For Each r In dtAT.Rows
dt.Rows.Add({r(0), r(1), r(2), r(3), r(4), r(5), r(6), r(7), r(8), r(9)})
Next
End If
End If
Dim connectionString = ""
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\DEVELOPER\f\FMZoll\MautD.accdb"
Else
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL.verag.ost.dmn\f\FMZoll\MautD.accdb"
End If
Dim con As New OleDbConnection(connectionString)
Dim cmd As New OleDbCommand
Dim var1 As String
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter()
Dim reader As OleDbDataReader = Nothing
If dt IsNot Nothing Then
con.Open()
For Each r In dt.Rows
Try
'Zeitstempel
Dim SQLQuery = "INSERT INTO tblMautbericht (Datenquelle,[Customer No],[Licence Plate Number],[Transaction Date],[Transaction Country],[Product description],[Card Number],[Nett Amount],[VAT Amount],[Total Amount]) VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10) "
' "SELECT * FROM DBParent WHERE P_ID = " & UniqeID & ";"
Using Command As New OleDbCommand(SQLQuery, con)
Command.Parameters.AddWithValue("@P1", r(0))
Command.Parameters.AddWithValue("@P2", r(1))
Command.Parameters.AddWithValue("@P3", r(2))
Command.Parameters.AddWithValue("@P4", r(3))
Command.Parameters.AddWithValue("@P5", r(4))
Command.Parameters.AddWithValue("@P6", r(5))
Command.Parameters.AddWithValue("@P7", r(6))
Command.Parameters.AddWithValue("@P8", CDbl(r(7)))
Command.Parameters.AddWithValue("@P9", CDbl(r(8)))
Command.Parameters.AddWithValue("@P10", CDbl(r(9)))
Command.ExecuteNonQuery()
Command.Dispose()
End Using
Catch ex2 As System.Exception
MsgBox("err: " & ex2.Message & ex2.StackTrace)
Finally
If reader IsNot Nothing Then reader.Close()
End Try
Next
con.Close()
End If
pic.Visible = True
Return True
Catch ex As System.Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Function deleteMautD(Datenquelle As String) As Boolean
Try
Dim connectionString = ""
@@ -2537,9 +2677,10 @@ Public Class frmMDMDatenverarbetiung
End If
End Sub
Function MautD_Befuellen() As Boolean
Function MautD_Befuellen(Optional kdNr = "") As Boolean
Select Case LIEFERANT
Case "PLOSE" : deleteMautD("PLOSE") : Return genPLOSEInsertMautD(dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString)
Case "ASFINAG" : deleteMautD("ASFINAG") : Return genASFINAGInsertMautAT(kdNr)
End Select
Return False
End Function
@@ -2640,7 +2781,7 @@ Public Class frmMDMDatenverarbetiung
If SQL.doSQL("Update Abrechnungsdatum SET Abrechnungsdatum = '" & f.Datum.ToShortDateString & "'", "ASFINAG") Then
If SQL.doSQL("UPDATE dbo.TTRBody SET Abrechnungsdatum = '" & f.Datum.ToShortDateString & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <= '" & f.Datum.ToShortDateString & "') AND abrechnungsdatum IS NULL AND belegerstellungsdatum IS NULL", "ASFINAG") Then
Dim dt As DataTable = SQL.loadDgvBySql("Select dbo.TTRBody.OBUID, dbo.TTRBody.CardNumber, dbo.TTRBody.receiptNumber, dbo.TTRBody.VATAmount, dbo.TTRBody.amountInclVAT, dbo.TTRBody.DeliveryDate,dbo.TTRBody.abrechnungsdatum,dbo.TTRBody.belegerstellungsdatum, dbo.tblWarenarten.WarenartDE, dbo.CLFArchiv.vehicleLicensePlate, dbo.TTRBody.InfoField, dbo.TTRBody.ProductCode, dbo.TTRBody.Town
Dim dt As DataTable = SQL.loadDgvBySql("Select dbo.TTRBody.OBUID, dbo.TTRBody.CardNumber, dbo.TTRBody.receiptNumber, dbo.TTRBody.VATAmount, dbo.TTRBody.amountInclVAT, dbo.TTRBody.DeliveryDate,dbo.TTRBody.abrechnungsdatum,dbo.TTRBody.belegerstellungsdatum, dbo.tblWarenarten.WarenartDE, dbo.CLFArchiv.vehicleLicensePlate, dbo.TTRBody.InfoField, dbo.TTRBody.ProductCode, dbo.TTRBody.Town, dbo.TTRBody.PKFileName
From dbo.CLFArchiv
RIGHT OUTER Join dbo.TTRBody ON dbo.CLFArchiv.OBUID = dbo.TTRBody.OBUID
LEFT OUTER Join dbo.tblWarenarten ON dbo.TTRBody.ProductCode = dbo.tblWarenarten.ProductCode
@@ -2664,10 +2805,24 @@ Public Class frmMDMDatenverarbetiung
maut.receiptCreated = IIf(IsDBNull(row.Item("belegerstellungsdatum")), False, True)
maut.SAVE()
Next
Dim pruefSumTTR = SQL.getValueTxtBySql("select sum(checksumAmounntInclVAT) from [ASFINAG].[dbo].[TTRTrailer] where PKHistory = 0 and [TTRTrailer].PKFileName in (select distinct([TTRBody].PKFileName) as Test from [ASFINAG].[dbo].[TTRBody] where (TTRBody.PKHistory = 0) And (TTRBody.PKFileName Like N'" & checkifTestfiles() & ".%') AND TTRBody.abrechnungsdatum = '" & f.Datum.ToShortDateString & "')", "FMZOLL")
If pruefSumTTR IsNot Nothing AndAlso IsNumeric(pruefSumTTR) Then
txtTTRSum.Text = CDbl(pruefSumTTR).ToString("C2")
lblTTRSum.Visible = True
txtTTRSum.Visible = True
Else
lblTTRSum.Visible = False
txtTTRSum.Visible = False
End If
MsgBox("Abrechnungsdatum gesetzt!")
End If
End If
cbxASFINAGAbgerechnet.Checked = True
'initDgv_ASFINAG(Not cbxASFINAGNichtAbgerechnet.Checked)
End If