Esensbestellungen, MDM Datenverarbeitung, UID pruefung

This commit is contained in:
2023-12-15 16:46:33 +01:00
parent fd7942711c
commit ed0823fbe4
5 changed files with 135 additions and 102 deletions

View File

@@ -75,12 +75,12 @@ Public Class frmMDMDatenverarbetiung
btnDatenLaden.Text = "Daten laden"
Case "UTA" : initDgv_UTA()
btnDatenLaden.Text = "Daten laden"
Case "ASFINAG" : initDgv_ASFINAG(Not cbxASFINAGNichtAbgerechnet.Checked)
btnDatenLaden.Text = "Mautdaten einlesen"
Case "ASFINAG" : initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
btnDatenLaden.Text = "Daten laden"
End Select
End Sub
Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click
Private Sub btnREerstellen_Click_1(sender As Object, e As EventArgs) Handles btnREerstellen.Click
Dim errorTmp = False
Select Case LIEFERANT
Case "PLOSE"
@@ -97,16 +97,19 @@ Public Class frmMDMDatenverarbetiung
End If
Case "ASFINAG"
cbxASFINAGNichtAbgerechnet.Checked = False
MsgBox("Funktion nicht implementiert")
Exit Sub
genRGAtt_ASFINAG()
'cbxASFINAGAbgerechnet.Checked = False
'cbxBelegeerstellt.Checked = False
Dim abrechnungsDatum As DateTime = Now()
'MsgBox("Funktion nicht implementiert")
'Exit Sub
If datum = Nothing Then
datum = SQL.getValueTxtBySql("select top (1) Abrechnungsdatum from Abrechnungsdatum", "ASFINAG")
End If
genRGAtt_ASFINAG(abrechnungsDatum, datum)
initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
End Select
End Sub
@@ -257,8 +260,6 @@ Public Class frmMDMDatenverarbetiung
group by Adressen.AdressenNr,Adressen.[Name 1], contractPartner,CardNumber
order by Adressen.AdressenNr"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "ASFINAG")
'DataGridView.DataSource = dt
@@ -506,15 +507,16 @@ Public Class frmMDMDatenverarbetiung
End Sub
Sub initDgv_ASFINAG(abgerechnet As Boolean)
Sub initDgv_ASFINAG(abgerechnet As Boolean, belegeErstellt As Boolean)
'datum = CDate(SQL.getValueTxtBySql("SELECT Abrechnungsdatum FROM Abrechnungsdatum", "ASFINAG"))
Dim sqlString = "AND (TTRBody.abrechnungsdatum " & IIf(abgerechnet, "is not null)", "is null)")
Dim sqlString = " AND (TTRBody.abrechnungsdatum " & IIf(abgerechnet, "is not null)", "is null)")
sqlString &= "AND (TTRBody.belegerstellungsdatum " & IIf(belegeErstellt, "is not null)", "is null)")
With MyDatagridview1
.Columns.Clear()
'MsgBox(.sql)
.SET_SQL(" SELECT dbo.TTRBody.OBUID,dbo.TTRBody.CardNumber,dbo.TTRBody.receiptNumber,dbo.TTRBody.VATAmount,dbo.TTRBody.amountInclVAT,dbo.TTRBody.abrechnungsdatum, dbo.tblWarenarten.WarenartDE, dbo.CLFArchiv.vehicleLicensePlate
.SET_SQL(" SELECT dbo.TTRBody.OBUID,dbo.TTRBody.CardNumber,dbo.TTRBody.receiptNumber,dbo.TTRBody.VATAmount,dbo.TTRBody.amountInclVAT,dbo.TTRBody.abrechnungsdatum,dbo.TTRBody.belegerstellungsdatum, dbo.tblWarenarten.WarenartDE, dbo.CLFArchiv.vehicleLicensePlate
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
@@ -530,6 +532,7 @@ Public Class frmMDMDatenverarbetiung
.Columns("OBUID").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("CardNumber").HeaderText = "Kartennummer"
.Columns("abrechnungsdatum").HeaderText = "Abrechnungsdatum"
.Columns("belegerstellungsdatum").HeaderText = "Belegerstellung am"
.Columns("receiptNumber").HeaderText = "Rechnungsnummer"
.Columns("VATAmount").HeaderText = "MWST"
.Columns("amountInclVAT").HeaderText = "Brutto"
@@ -572,7 +575,8 @@ Public Class frmMDMDatenverarbetiung
End If
Next
cbxASFINAGNichtAbgerechnet.Visible = False
cbxASFINAGAbgerechnet.Visible = False
cbxBelegeerstellt.Visible = False
cbxTestdaten.Visible = False
Select Case Me.LIEFERANT
@@ -589,11 +593,12 @@ Public Class frmMDMDatenverarbetiung
'Panel3.Controls.Add(c)
'c.Dock = DockStyle.Fill
Case "ASFINAG"
cbxASFINAGNichtAbgerechnet.Visible = True
cbxASFINAGAbgerechnet.Visible = True
cbxBelegeerstellt.Visible = True
cbxTestdaten.Visible = True
Panel4.Visible = False
pnlAsfinag.Visible = True
Exit Sub
End Select
init()
@@ -750,14 +755,14 @@ Public Class frmMDMDatenverarbetiung
End Function
Function genRGAtt_ASFINAG() As Boolean
Function genRGAtt_ASFINAG(belegerstellungsdatum As DateTime, abrechnungsdatum As Date) As Boolean
If cbxASFINAGNichtAbgerechnet.Checked = True Then
If cbxASFINAGAbgerechnet.Checked = True Then
MsgBox("Bitte abgerechnete Daten auswählen!")
Return False
End If
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("SELECT Maut.*,Adressen.AdressenNr 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", "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 Group by KundenNr, cardnumber ", "FMZOLL")
If dt_Main Is Nothing OrElse dt_Main.Rows.Count = 0 Then
MsgBox("Keine Daten!")
@@ -779,10 +784,11 @@ Public Class frmMDMDatenverarbetiung
Dim cnt = 0
Dim dv_main = New DataView(dt_Main, "", "AdressenNr", DataViewRowState.CurrentRows)
Dim dt_main_distinctKunden As DataTable = dv_main.ToTable(True, "AdressenNr")
Dim displayViewKunden = New DataView(dt_Main, "", "KundenNr", DataViewRowState.CurrentRows)
Dim distinctDT_distKunden As DataTable = displayViewKunden.ToTable(True, "KundenNr")
If vbYes = MsgBox("Es wurden " & MyDatagridview1.Rows.Count & " Abrechnungen von " & dt_main_distinctKunden.Rows.Count & " Kunden gefunden " & vbNewLine & " Möchten Sie die Anhänge erstellen?", vbYesNoCancel) Then
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 Directory.Exists(dir) Then dir &= "_" & Now.ToShortTimeString.Replace(":", "")
@@ -836,11 +842,20 @@ Public Class frmMDMDatenverarbetiung
For Each R_ASFINAG In dt_Main.Rows
For Each R_ASFINAG In distinctDT_distKunden.Rows
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Dim verarbOK = True
If Not genASFINAG_SPEDBUCH_ByKdNr(R_ASFINAG("AdressenNr"), SPEDBUCH) Then verarbOK = False
If Not genASFINAG_RECHNUNG_BySPEDBUCH(R_ASFINAG("AdressenNr"), SPEDBUCH, dat_Sum_Von.Value, dat_Sum_Bis.Value) Then verarbOK = False
If Not genASFINAG_SPEDBUCH_ByKdNr(R_ASFINAG("KundenNr"), SPEDBUCH) Then verarbOK = False
If Not genASFINAG_RECHNUNG_BySPEDBUCH(R_ASFINAG("KundenNr"), SPEDBUCH, dat_Sum_Von.Value, dat_Sum_Bis.Value) Then verarbOK = False
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")
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")
Next
End If
If True Then 'cnt Mod 10 = 0 Then
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count
@@ -1930,31 +1945,11 @@ Public Class frmMDMDatenverarbetiung
RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum)
Dim sqlstr_mitMWSt As String = "SELECT '135' as leistungsNr, [contractPartner] as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount <> 0 Group by [contractPartner]"
Dim sqlstr_ohneMWSt As String = "SELECT '153' as leistungsNr, [contractPartner] as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount = 0 Group by [contractPartner]"
Dim dt_mitMwSt As DataTable = SQL.loadDgvBySql_Param(sqlstr_mitMWSt, "FMZOLL")
Dim dt_ohneMwsT As DataTable = SQL.loadDgvBySql_Param(sqlstr_ohneMWSt, "FMZOLL")
Dim dt As New DataTable
If (dt_mitMwSt IsNot Nothing AndAlso dt_mitMwSt.Rows.Count > 0) And (dt_ohneMwsT IsNot Nothing AndAlso dt_ohneMwsT.Rows.Count > 0) Then
dt_mitMwSt.Merge(dt_ohneMwsT, False, MissingSchemaAction.Add)
dt = dt_mitMwSt.Copy
ElseIf dt_ohneMwsT IsNot Nothing AndAlso dt_ohneMwsT.Rows.Count > 0 Then
dt = dt_ohneMwsT.Copy
Else
dt = dt_mitMwSt.Copy
End If
Dim sqlstr As String = "SELECT '135' as leistungsNr, [contractPartner] as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount <> 0 Group by [contractPartner]
UNION
SELECT '153' as leistungsNr, [contractPartner] as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount = 0 Group by [contractPartner]"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
For Each r In dt.Rows
@@ -2419,7 +2414,7 @@ Public Class frmMDMDatenverarbetiung
If count > 0 Then
lblProzPruef.Text = CInt(cnt / count * 100) & " %" '100
Else
cbxASFINAGNichtAbgerechnet.Checked = False
cbxASFINAGAbgerechnet.Checked = True
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
@@ -2610,12 +2605,12 @@ Public Class frmMDMDatenverarbetiung
Private Function setFakturiert_ASFINAG() As Boolean
'Abrechnungsdatum setzen
If cbxASFINAGNichtAbgerechnet.Checked = False Then
cbxASFINAGNichtAbgerechnet.Checked = True
If cbxASFINAGAbgerechnet.Checked = False Then
cbxASFINAGAbgerechnet.Checked = True
End If
If MyDatagridview1.Rows.Count = 0 Then
MsgBox("keine Daten zum Abrechnen vorhanden!")
MsgBox("Keine Daten zum Abrechnen vorhanden!")
Return False
End If
@@ -2625,9 +2620,9 @@ Public Class frmMDMDatenverarbetiung
datum = f.Datum
SQL.doSQL("DELETE FROM tblAsfinagMaut", "FMZOLL")
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)", "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.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
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
@@ -2648,13 +2643,14 @@ Public Class frmMDMDatenverarbetiung
maut.totalAmount = CDbl(row.Item("amountInclVAT"))
maut.additionalData = row.Item("Town") 'wird nicht mehr verwendet????
maut.receiptnumber = row.Item("receiptNumber")
maut.receiptCreated = IIf(IsDBNull(row.Item("belegerstellungsdatum")), False, True)
maut.SAVE()
Next
MsgBox("Abrechnungsdatum gesetzt!")
End If
End If
cbxASFINAGNichtAbgerechnet.Checked = False
cbxASFINAGAbgerechnet.Checked = True
'initDgv_ASFINAG(Not cbxASFINAGNichtAbgerechnet.Checked)
End If
@@ -2663,8 +2659,8 @@ Public Class frmMDMDatenverarbetiung
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles bntDatumzuruecksetzen.Click
If cbxASFINAGNichtAbgerechnet.Checked = True Then
cbxASFINAGNichtAbgerechnet.Checked = False
If cbxASFINAGAbgerechnet.Checked = True Then
cbxASFINAGAbgerechnet.Checked = False
End If
If MyDatagridview1.Rows.Count = 0 Then
@@ -2674,12 +2670,12 @@ Public Class frmMDMDatenverarbetiung
Dim datumDel = CDate(SQL.getValueTxtBySql("Select Abrechnungsdatum FROM Abrechnungsdatum", "ASFINAG"))
If MsgBox("Möchten Sie das Abrechnungsdatum vom " & datumDel.ToShortDateString & " zurücksetzen?", vbYesNoCancel) = MsgBoxResult.Yes Then
If SQL.doSQL("UPDATE dbo.TTRBody Set Abrechnungsdatum = NULL WHERE Abrechnungsdatum = '" & datumDel & "' AND (PKHistory = 0) AND (PKFileName LIKE '%" & checkifTestfiles() & ".%')", "ASFINAG") Then
If MsgBox("Möchten Sie das Abrechnungsdatum vom " & datumDel.ToShortDateString & " zurücksetzen?" & vbNewLine & "Nur für Transaktionen möglich, zu denen es noch keine Rechnung erstellt wurde!", vbYesNoCancel) = MsgBoxResult.Yes Then
If SQL.doSQL("UPDATE dbo.TTRBody Set Abrechnungsdatum = NULL WHERE Abrechnungsdatum = '" & datumDel & "' AND (PKHistory = 0) AND (PKFileName LIKE '%" & checkifTestfiles() & ".%') AND belegerstellungsdatum IS NULL", "ASFINAG") Then
If SQL.doSQL("DELETE FROM tblAsfinagMaut", "FMZOLL") Then
MsgBox("Abrechnungsdatum zurückgesetzt!")
End If
cbxASFINAGNichtAbgerechnet.Checked = True
cbxASFINAGAbgerechnet.Checked = True
'initDgv_ASFINAG(cbxASFINAGNichtAbgerechnet.Checked)
End If
@@ -2700,11 +2696,29 @@ Public Class frmMDMDatenverarbetiung
End Function
Private Sub cbxASFINAGNichtAbgerechnet_CheckedChanged(sender As Object, e As EventArgs) Handles cbxASFINAGNichtAbgerechnet.CheckedChanged
If Me.LIEFERANT = "ASFINAG" Then initDgv_ASFINAG(Not cbxASFINAGNichtAbgerechnet.Checked)
Private Sub cbxASFINAGabgerechnet_CheckedChanged(sender As Object, e As EventArgs) Handles cbxASFINAGAbgerechnet.CheckedChanged
If Me.LIEFERANT = "ASFINAG" Then
If Not cbxASFINAGAbgerechnet.Checked Then cbxBelegeerstellt.Checked = False
initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
End If
End Sub
Private Sub bntDatumsetzen_Click(sender As Object, e As EventArgs) Handles bntDatumsetzen.Click
setFakturiert_ASFINAG()
End Sub
Private Sub cbxBelegeerstellt_CheckedChanged(sender As Object, e As EventArgs) Handles cbxBelegeerstellt.CheckedChanged
If cbxBelegeerstellt.Checked Then
btnREerstellen.Enabled = False
bntDatumsetzen.Enabled = False
bntDatumzuruecksetzen.Enabled = False
Else
btnREerstellen.Enabled = True
bntDatumsetzen.Enabled = True
bntDatumzuruecksetzen.Enabled = True
End If
End Sub
End Class