Asfinag_Rechnungsverarbeitung

This commit is contained in:
2023-12-18 15:19:37 +01:00
parent ed0823fbe4
commit a094691083
3 changed files with 200 additions and 172 deletions

View File

@@ -108,7 +108,10 @@ Public Class frmMDMDatenverarbetiung
datum = SQL.getValueTxtBySql("select top (1) Abrechnungsdatum from Abrechnungsdatum", "ASFINAG")
End If
genRGAtt_ASFINAG(abrechnungsDatum, datum)
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)
initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
End Select
@@ -755,17 +758,22 @@ Public Class frmMDMDatenverarbetiung
End Function
Function genRGAtt_ASFINAG(belegerstellungsdatum As DateTime, abrechnungsdatum As Date) As Boolean
Function genRGAtt_ASFINAG(belegerstellungsdatum As DateTime, abrechnungsdatum As Date, inputKdNr As String) As Boolean
If cbxASFINAGAbgerechnet.Checked = True Then
If cbxASFINAGAbgerechnet.Checked = False Then
MsgBox("Bitte abgerechnete Daten auswählen!")
Return False
End If
Dim sqlWhere As String = ""
If inputKdNr <> "" Then
sqlWhere &= " AND Adressen.AdressenNr=" & inputKdNr
End If
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("SELECT KundenNr, cardnumber FROM (SELECT Kreditkarten.KartenNr AS Kartennummer, Adressen.AdressenNr AS KundenNr FROM Adressen INNER JOIN Kreditkarten ON Adressen.AdressenNr = Kreditkarten.AdressenNr) as KUK INNER JOIN [tblAsfinagMaut] as Maut ON KUK.Kartennummer = Maut.cardnumber INNER JOIN Adressen ON KUK.KundenNr = Adressen.AdressenNr where Maut.receiptCreated = 0 Group by KundenNr, cardnumber ", "FMZOLL")
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("SELECT KundenNr, cardnumber FROM (SELECT Kreditkarten.KartenNr AS Kartennummer, Adressen.AdressenNr AS KundenNr FROM Adressen INNER JOIN Kreditkarten ON Adressen.AdressenNr = Kreditkarten.AdressenNr) as KUK INNER JOIN [tblAsfinagMaut] as Maut ON KUK.Kartennummer = Maut.cardnumber INNER JOIN Adressen ON KUK.KundenNr = Adressen.AdressenNr where Maut.receiptCreated = 0" & sqlWhere & "Group by KundenNr, cardnumber ", "FMZOLL")
If dt_Main Is Nothing OrElse dt_Main.Rows.Count = 0 Then
MsgBox("Keine Daten!")
MsgBox("Keine Abrechnungsdaten vorhanden" & IIf(inputKdNr <> "", " für KundenNr: " & inputKdNr, "!"))
Return False
End If
@@ -774,12 +782,12 @@ Public Class frmMDMDatenverarbetiung
FROM Adressen INNER JOIN Kreditkarten ON Adressen.AdressenNr = Kreditkarten.AdressenNr) as KUK
INNER JOIN [tblAsfinagMaut] as Maut ON KUK.Kartennummer = Maut.cardnumber
INNER JOIN Adressen ON KUK.KundenNr = Adressen.AdressenNr
WHERE (Adressen.Rechnungsdruck)<>2", "FMZOLL")
WHERE 1 = 1" & sqlWhere, "FMZOLL")
Dim dt_Main_CSV As DataTable = SQL.loadDgvBySql_Param("SELECT Adressen.AdressenNr, Maut.*
FROM Adressen INNER JOIN (Kreditkarten INNER JOIN tblAsfinagMaut as Maut ON Kreditkarten.KartenNr = Maut.cardnumber) ON Adressen.AdressenNr = Kreditkarten.AdressenNr
WHERE Adressen.ASFINAGExportCSV = 1
WHERE Adressen.ASFINAGExportCSV = 1 " & sqlWhere & "
ORDER BY Adressen.AdressenNr, Maut.cardnumber, Maut.licenceplate, Maut.turnoverdate", "FMZOLL")
Dim cnt = 0
@@ -787,12 +795,19 @@ Public Class frmMDMDatenverarbetiung
Dim displayViewKunden = New DataView(dt_Main, "", "KundenNr", DataViewRowState.CurrentRows)
Dim distinctDT_distKunden As DataTable = displayViewKunden.ToTable(True, "KundenNr")
Dim Info As String = ""
If inputKdNr = "" Then
Info = "Es wurden " & MyDatagridview1.Rows.Count & " Transaktionen von " & dt_Main.Rows.Count & " Kunden gefunden"
Else
Dim countTrans = SQL.getValueTxtBySql("SELECT count(cardnumber) FROM (SELECT Kreditkarten.KartenNr AS Kartennummer, Adressen.AdressenNr AS KundenNr FROM Adressen INNER JOIN Kreditkarten ON Adressen.AdressenNr = Kreditkarten.AdressenNr) as KUK INNER JOIN [tblAsfinagMaut] as Maut ON KUK.Kartennummer = Maut.cardnumber INNER JOIN Adressen ON KUK.KundenNr = Adressen.AdressenNr where Maut.receiptCreated = 0" & sqlWhere, "FMZOLL")
Info = "Es wurden " & countTrans & " Transaktionen von " & dt_Main.Rows.Count & " Kunden gefunden "
End If
If vbYes = MsgBox("Es wurden " & MyDatagridview1.Rows.Count & " Transaktionen von " & dt_Main.Rows.Count & " Kunden gefunden " & vbNewLine & " Möchten Sie die Anhänge erstellen?", vbYesNoCancel) Then
Dim dir = "C:\Users\d.breimaier\Desktop\Asfinag\Mautberichte" '"F:\FMZoll\Maut\AT\Anlagen\SDL"
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"
If Directory.Exists(dir) Then dir &= "_" & Now.ToShortTimeString.Replace(":", "")
Directory.CreateDirectory(dir)
'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
@@ -835,6 +850,7 @@ Public Class frmMDMDatenverarbetiung
clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ",") & ";"
Next
outFile.WriteLine(clmns)
Next
outFile.Close()
Next
@@ -850,10 +866,20 @@ Public Class frmMDMDatenverarbetiung
If verarbOK Then
SQL.doSQL("UPDATE dbo.TTRBody SET belegerstellungsdatum = '" & belegerstellungsdatum & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <= '" & belegerstellungsdatum & "') AND (abrechnungsdatum = '" & abrechnungsdatum & "')", "ASFINAG")
If inputKdNr <> "" Then
Dim result As DataRow() = dt_Main.Select("KundenNr ='" & R_ASFINAG("KundenNr") & "'")
For Each row As DataRow In result
SQL.doSQL("UPDATE dbo.TTRBody SET belegerstellungsdatum = '" & belegerstellungsdatum & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <='" & belegerstellungsdatum & "') AND (abrechnungsdatum = '" & abrechnungsdatum & "') And belegerstellungsdatum is null And CardNumber = " & row.Item("cardnumber") & "", "ASFINAG")
Next
Else
SQL.doSQL("UPDATE dbo.TTRBody SET belegerstellungsdatum = '" & belegerstellungsdatum & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <='" & belegerstellungsdatum & "') AND (abrechnungsdatum = '" & abrechnungsdatum & "') And belegerstellungsdatum is null", "ASFINAG")
End If
Dim results As DataRow() = dt_Main.Select("KundenNr ='" & R_ASFINAG("KundenNr") & "'")
For Each r As DataRow In results
SQL.doSQL("UPDATE [tblAsfinagMaut] SET receiptCreated = 1 WHERE cardnumber = " & r.Item("cardnumber") & "", "FMZOLL")
SQL.doSQL("UPDATE [tblAsfinagMaut] SET receiptCreated = 1 WHERE cardnumber = " & r.Item("cardnumber") & " AND receiptCreated = 0", "FMZOLL")
Next
End If
@@ -1457,7 +1483,6 @@ Public Class frmMDMDatenverarbetiung
rpt.lblSummeKennzeichen.Location = New PointF(rpt.lblSummeKennzeichen.Location.X + 4.5, rpt.lblSummeKennzeichen.Location.Y)
'rpt.lblSumKategorie.Location = New PointF(rpt.lblSumKategorie.Location.X + 4.5, rpt.lblSumKategorie.Location.Y)
rpt.lblGessumme.Location = New PointF(rpt.lblGessumme.Location.X + 4.5, rpt.lblGessumme.Location.Y)
rpt.lblLand.Text = "AT"
Dim sumNetto As Double = 0
Dim sumMWST As Double = 0
@@ -1479,6 +1504,7 @@ Public Class frmMDMDatenverarbetiung
' If cnt = 0 Then
rpt.txtKunde.Text = SQL.isDbnullEmpty(rpt.Fields.Item("KundenNr").Value, "")
rpt.txtKunde.Text &= " " & SQL.isDbnullEmpty(rpt.Fields.Item("Name 1").Value, "")
rpt.txtLand.Text = "AT"
' End If
' rpt.txtProduktBeschreibung.Text = sql.isDbnullEmpty(rpt.Fields.Item("BC_DESCR").Value, "")
@@ -2605,8 +2631,8 @@ Public Class frmMDMDatenverarbetiung
Private Function setFakturiert_ASFINAG() As Boolean
'Abrechnungsdatum setzen
If cbxASFINAGAbgerechnet.Checked = False Then
cbxASFINAGAbgerechnet.Checked = True
If cbxASFINAGAbgerechnet.Checked = True Then
cbxASFINAGAbgerechnet.Checked = False
End If
If MyDatagridview1.Rows.Count = 0 Then
@@ -2659,8 +2685,8 @@ Public Class frmMDMDatenverarbetiung
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles bntDatumzuruecksetzen.Click
If cbxASFINAGAbgerechnet.Checked = True Then
cbxASFINAGAbgerechnet.Checked = False
If cbxASFINAGAbgerechnet.Checked = False Then
cbxASFINAGAbgerechnet.Checked = True
End If
If MyDatagridview1.Rows.Count = 0 Then
@@ -2675,7 +2701,7 @@ Public Class frmMDMDatenverarbetiung
If SQL.doSQL("DELETE FROM tblAsfinagMaut", "FMZOLL") Then
MsgBox("Abrechnungsdatum zurückgesetzt!")
End If
cbxASFINAGAbgerechnet.Checked = True
cbxASFINAGAbgerechnet.Checked = False
'initDgv_ASFINAG(cbxASFINAGNichtAbgerechnet.Checked)
End If