This commit is contained in:
2023-10-10 16:24:08 +02:00
parent a216266584
commit 5867cf5060
8 changed files with 1271 additions and 73 deletions

View File

@@ -27,6 +27,7 @@ Public Class frmMDMDatenverarbetiung
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Select Case LIEFERANT
Case "PLOSE" : genSummenbericht_PLOSE()
Case "ASFINAG" : genSummenbericht_ASFINAG()
Case Else : MsgBox("Nicht verfügbar!")
End Select
End Sub
@@ -41,6 +42,7 @@ Public Class frmMDMDatenverarbetiung
Dim pruef As Boolean = False
Select Case LIEFERANT
Case "PLOSE" : pruef = pruefData_PLOSE()
Case "ASFINAG" : pruef = pruefData_ASFINAG()
Case Else : MsgBox("Nicht verfügbar!") : Exit Sub
End Select
@@ -66,7 +68,11 @@ Public Class frmMDMDatenverarbetiung
Select Case LIEFERANT
Case "PLOSE" : initDgv_PLOSE()
btnDatenLaden.Text = "Daten laden"
Case "UTA" : initDgv_UTA()
btnDatenLaden.Text = "Daten laden"
Case "ASFINAG" : initDgv_ASFINAG(Not cbxNichtabgerechnet.Checked)
btnDatenLaden.Text = "Mautdaten laden"
End Select
End Sub
@@ -85,6 +91,8 @@ Public Class frmMDMDatenverarbetiung
' setFakturiertUTA()
'End If
End If
Case "ASFINAG"
End Select
End Sub
@@ -185,12 +193,106 @@ Public Class frmMDMDatenverarbetiung
print.Show()
End Sub
Sub genSummenbericht_ASFINAG()
Dim displayFilter = False
Dim sqlstr As String = ""
sqlstr &= " SELECT dbo.TTRBody.CardNumber,Adressen.AdressenNr AS KundenNr,Adressen.[Name 1], dbo.CLFArchiv.vehicleLicensePlate,dbo.TTRBody.DeliveryDate, 'ASFINAG ' + ISNULL(dbo.tblWarenarten.WarenartDE, dbo.tblWarenarten.ProductCode) as ProductCode,dbo.TTRBody.amountInclVAT - dbo.TTRBody.VATAmount as Netamount,dbo.TTRBody.VATAmount,dbo.TTRBody.amountInclVAT
FROM dbo.CLFArchiv RIGHT OUTER JOIN
dbo.TTRBody ON dbo.CLFArchiv.OBUID = dbo.TTRBody.InfoField LEFT OUTER JOIN
dbo.tblWarenarten ON dbo.TTRBody.ProductCode = dbo.tblWarenarten.ProductCode
INNER JOIN [VERAG].[dbo].Kreditkarten ON dbo.TTRBody.CardNumber = Kreditkarten.KartenNr
INNER JOIN [VERAG].[dbo].Adressen ON Adressen.AdressenNr = Kreditkarten.AdressenNr
WHERE (dbo.TTRBody.PKHistory = 0) AND (dbo.TTRBody.PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (TTRBody.abrechnungsdatum = '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "')
ORDER BY dbo.TTRBody.CardNumber"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "ASFINAG")
'DataGridView.DataSource = dt
Dim print As New frmPrintLayout
print.Text = "ASFINAG"
Dim rpt As New rptASFINAG_TransaktionenSumary
rpt.DataSource = dt
'If cbxProdukt.Checked Then
' rpt.GroupHeader2.DataField = "prod_descr"
'Else
' rpt.GroupHeader2.Visible = False
' rpt.GroupFooter2.Visible = False
'End If
Dim sum = 0
rpt.lblUeberschrift.Text = "ASFINAG Summenbericht " & CDate(Datum_Abrechnungsdaten.Value.ToShortDateString)
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumNetto As Double = 0
Dim sumMWST As Double = 0
Dim sumBrutto As Double = 0
Dim sumperKdNrNetto As Double = 0
Dim sumperKdNrMWST As Double = 0
Dim sumperKdNrBrutto As Double = 0
AddHandler rpt.Detail.Format, Sub()
rpt.lblKundennr.Text = SQL.isDbnullEmpty(rpt.Fields.Item("KundenNr").Value, "")
rpt.lblName1.Text = SQL.isDbnullEmpty(rpt.Fields.Item("Name 1").Value, "")
rpt.lblKartennr.Text = SQL.isDbnullEmpty(rpt.Fields.Item("CardNumber").Value, "") & " - " & SQL.isDbnullEmpty(rpt.Fields.Item("ProductCode").Value, "")
rpt.lblNetto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("Netamount").Value, 2, "")
rpt.lblMWST.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("VATAmount").Value, 2, "")
rpt.lblBrutto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("amountInclVAT").Value, 2, "")
rpt.lblSumNet.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("Netamount").Value, 2, "")
rpt.lblSumVat.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("VATAmount").Value, 2, "")
rpt.lblSumBrt.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("amountInclVAT").Value, 2, "")
sumNetto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("Netamount").Value, 4, 0)
sumMWST += SQL.isDbnullEmptyDbl(rpt.Fields.Item("VATAmount").Value, 4, 0)
sumBrutto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("amountInclVAT").Value, 4, 0)
End Sub
AddHandler rpt.ReportFooter1.Format, Sub()
rpt.lblSumNetto.Text = sumNetto.ToString("N2")
rpt.lblSumMwst.Text = sumMWST.ToString("N2")
rpt.lblSumBrutto.Text = sumBrutto.ToString("N2")
End Sub
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
End Sub
Sub initDgv_PLOSE()
With MyDatagridview1
.Columns.Clear()
.SET_SQL(" SELECT plose_POLSEKundennummer, count(*) Anzahl,plose_ProduktCode,max(plose_Produktbeschreibung) as plose_Produktbeschreibung, sum(plose_Menge) as plose_Menge,sum(plose_Preis) as plose_Preis,sum(plose_NettobetragWaehrungAbbuchung) as plose_NettobetragWaehrungAbbuchung,sum(plose_MWSTBetragWaehrungAbbuchung) as plose_MWSTBetragWaehrungAbbuchung,sum(plose_BruttobetragWaehrungAbbuchung) as plose_BruttobetragWaehrungAbbuchung
.SET_SQL(" SELECT plose_POLSEKundennummer, count(*) Anzahl,plose_ProduktCode,max(plose_Produktbeschreibung) as plose_Produktbeschreibung, sum(plose_Menge) as plose_Menge,sum(plose_Preis) as plose_Preis,sum(plose_NettobetragWaehrungAbbuchung) as plose_NettobetragWaehrungAbbuchung,sum(plose_MWSTBetragWaehrungAbbuchung) as plose_MWSTBetragWaehrungAbbuchung,sum(plose_BruttobetragWaehrungAbbuchung) as plose_BruttobetragWaehrungAbbuchung
FROM tblPLOSE_Details
WHERE 1 = 1
And plose_DatumTransaktion between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "'
@@ -353,6 +455,92 @@ Public Class frmMDMDatenverarbetiung
End Sub
Sub initDgv_ASFINAG(abgerechnet As Boolean)
dat_Sum_Von.Value = CDate(SQL.getValueTxtBySql("SELECT Abrechnungsdatum FROM Abrechnungsdatum", "ASFINAG"))
Dim sqlString = "AND (TTRBody.abrechnungsdatum " & IIf(abgerechnet, "= '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "')", "is null)")
With MyDatagridview1
.Columns.Clear()
'MsgBox(.sql)
.SET_SQL(" SELECT dbo.TTRBody.OBUID,dbo.TTRBody.CardNumber,dbo.TTRBody.receiptNumber,dbo.TTRBody.receiptNumber,dbo.TTRBody.VATAmount,dbo.TTRBody.amountInclVAT,dbo.TTRBody.abrechnungsdatum, dbo.tblWarenarten.WarenartDE, dbo.CLFArchiv.vehicleLicensePlate
FROM dbo.CLFArchiv RIGHT OUTER JOIN
dbo.TTRBody ON dbo.CLFArchiv.OBUID = dbo.TTRBody.InfoField LEFT OUTER JOIN
dbo.tblWarenarten ON dbo.TTRBody.ProductCode = dbo.tblWarenarten.ProductCode
WHERE (dbo.TTRBody.PKHistory = 0) AND (dbo.TTRBody.PKFileName LIKE N'" & checkifTestfiles() & ".%')" & sqlString & "
ORDER BY dbo.TTRBody.CardNumber, dbo.TTRBody.FileCreationDate, dbo.TTRBody.PKHistory, dbo.TTRBody.PKFileName, dbo.TTRBody.PKLine", "ASFINAG")
.LOAD()
'MsgBox(.GET_SQL())
If .Columns.Count > 0 Then
.Columns("WarenartDE").HeaderText = "Warenart"
.Columns("vehicleLicensePlate").HeaderText = "LKW-KZ"
.Columns("OBUID").HeaderText = "OBUID"
.Columns("OBUID").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("CardNumber").HeaderText = "Kartennummer"
.Columns("abrechnungsdatum").HeaderText = "Abrechnungsdatum"
.Columns("receiptNumber").HeaderText = "Rechnugnsnummer"
.Columns("VATAmount").HeaderText = "MWST"
.Columns("amountInclVAT").HeaderText = "Brutto"
'.Columns("VERAGLeistungsNr").ReadOnly = False
'.Columns("VERAGKdNr").ReadOnly = False
'For Each r As DataGridViewColumn In .Columns
' If r.Name = "VERAGLeistungsNr" Or r.Name = "VERAGKdNr" Then
' r.ReadOnly = False
' Else
' r.ReadOnly = True
' End If
'Next
'Dim c As New DataGridViewTextBoxColumn
'c.Name = "VERAGKdNr"
'c.HeaderText = "VERAG KdNr"
'c.Width = 100
'.Columns.Insert(1, c)
'c = New DataGridViewTextBoxColumn
'c.Name = "VERAGLeistungsNr"
'c.HeaderText = "VERAG/PLOSE LeistungsNr."
'c.Width = 100
'.Columns.Insert(2, c)
'c = New DataGridViewTextBoxColumn
'c.Name = "KundeOffertenNr"
'c.HeaderText = "Kunde OffertenNr."
'c.Width = 100
'.Columns.Insert(3, c)
'c = New DataGridViewTextBoxColumn
'c.Name = "KundeLeistungsNr"
'c.HeaderText = "Kunde LeistungsNr."
'c.Width = 100
'.Columns.Insert(4, c)
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End If
Dim sumBto As Double = 0
Dim sumNto As Double = 0
For Each r As DataGridViewRow In .Rows
sumBto += If(IsNumeric(r.Cells("amountInclVAT").Value), CDbl(r.Cells("amountInclVAT").Value), 0)
sumNto += If(IsNumeric(r.Cells("amountInclVAT").Value AndAlso r.Cells("VATAmount").Value), CDbl(r.Cells("amountInclVAT").Value) - r.Cells("VATAmount").Value, 0)
Next
txtAnzahl.Text = .Rows.Count
txtPruefsummeNetto.Text = CDbl(sumNto).ToString("C2")
txtPruefsummeBrutto.Text = CDbl(sumBto).ToString("C2")
.ClearSelection()
End With
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
initLieferant("PLOSE", sender)
@@ -374,14 +562,20 @@ Public Class frmMDMDatenverarbetiung
Select Case Me.LIEFERANT
Case "PLOSE"
Panel4.Visible = True
pnlAsfinag.Visible = False
Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_PLOSE(Me)
Panel3.Controls.Add(c)
c.Dock = DockStyle.Fill
Case "UTA"
Panel4.Visible = False
pnlAsfinag.Visible = False
'Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_UTA(Me)
'Panel3.Controls.Add(c)
'c.Dock = DockStyle.Fill
Case "ASFINAG"
Panel4.Visible = False
pnlAsfinag.Visible = True
End Select
init()
@@ -1513,6 +1707,127 @@ Public Class frmMDMDatenverarbetiung
End Try
End Function
Function pruefData_ASFINAG() As Boolean
pruefData_ASFINAG = True
Try
Dim SQLAbrechnungsparameter = ""
If MsgBox("Prüfung auf Inkonsistenz der Kartennummern mit Abrechnungsdatum vom " & Datum_Abrechnungsdaten.Value.ToShortDateString & " ?", vbYesNoCancel) = MsgBoxResult.Ok Then
SQLAbrechnungsparameter = " AND (TTRBody.abrechnungsdatum = '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "') "
End If
Dim dtAsfinagKartenpruef As DataTable = SQL.loadDgvBySql("
SELECT dbo.TTRBody.CardNumber, Kreditkarten.KartenNr, Kreditkarten.AdressenNr, (SELECT Offerten.OffertenNr FROM [VERAG].[dbo].[Offerten] WHERE (((Offerten.KundenNr)=isnull([Kreditkarten].[AdressenNr],0)) AND ((Offerten.OffertenNr)=11))) AS Offerte_11
FROM dbo.CLFArchiv
RIGHT OUTER JOIN dbo.TTRBody ON dbo.CLFArchiv.OBUID = dbo.TTRBody.InfoField
LEFT OUTER JOIN dbo.tblWarenarten ON dbo.TTRBody.ProductCode = dbo.tblWarenarten.ProductCode
LEFT JOIN [VERAG].[dbo].[Kreditkarten] on dbo.TTRBody.CardNumber = Kreditkarten.KartenNr
WHERE (dbo.TTRBody.PKHistory = 0) AND (dbo.TTRBody.PKFileName LIKE N'" & checkifTestfiles() & ".%')" & SQLAbrechnungsparameter &
"GROUP BY dbo.TTRBody.CardNumber, Kreditkarten.KartenNr, Kreditkarten.AdressenNr
HAVING dbo.TTRBody.CardNumber is null or (dbo.TTRBody.CardNumber is not null AND ((Kreditkarten.AdressenNr) Is Not Null) AND (((SELECT Offerten.OffertenNr FROM [VERAG].[dbo].[Offerten] WHERE (((Offerten.KundenNr)=isnull([Kreditkarten].[AdressenNr],0)) AND ((Offerten.OffertenNr)=11)))) Is Null))
ORDER BY dbo.TTRBody.CardNumber", "ASFINAG")
Dim VERAGKdNr = -1
Dim VERAGLeistungsNr = -1
Dim found = False
Dim results As DataRow()
Dim cnt = 0
For Each r As DataGridViewRow In MyDatagridview1.Rows
'KUNDEN-NR / PLOSE KD-NR
'results = dtAsfinagKartenpruef.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'")
'If results.Length > 0 Then
' 'Gefunden!
' 'r.Cells("VERAGKdNr").Value = results(0)("PLOSEKundenNr")
' 'r.Cells("VERAGKdNr").Style.BackColor = Color.MintCream
' VERAGKdNr = results(0)("AdressenNr")
' found = True
'Else
' r.Cells("VERAGKdNr").Style.BackColor = Color.PapayaWhip
' pruefData_ASFINAG = False
'End If
'KUNDEN-NR / PLOSE KD-NR
'Default -> Nicht gefunden
'r.Cells("VERAGKdNr").Style.BackColor = Color.PapayaWhip
'found = False
'For Each k In VERAGKdNr_DT.Rows
' If r.Cells("plose_POLSEKundennummer").Value = k("PLOSEKundenNr") Then
' 'Gefunden!
' r.Cells("VERAGKdNr").Value = k("PLOSEKundenNr")
' r.Cells("VERAGKdNr").Style.BackColor = Color.MintCream
' VERAGKdNr = k("AdressenNr")
' found = True
' Exit For
' End If
'Next
'If Not found Then pruefData_PLOSE = False
'VERAG/PLOSE LEISTUNG
'results = VERAGLeistungsNr_DT.Select("plp_ProductCode = '" & r.Cells("plose_ProduktCode").Value & "' AND plp_LeistungsNr is not null")
'If results.Length > 0 Then
' 'Gefunden!
' VERAGLeistungsNr = results(0)("plp_LeistungsNr")
' r.Cells("VERAGLeistungsNr").Value = results(0)("plp_LeistungsNr")
' r.Cells("VERAGLeistungsNr").Style.BackColor = Color.MintCream
' found = True
'Else
' r.Cells("VERAGLeistungsNr").Style.BackColor = Color.PapayaWhip
' pruefData_ASFINAG = False
'End If
''VERAG OFFERT 80
''Default -> Nicht gefunden
'Dim OffertenNr_DT = SQL.loadDgvBySql("SELECT KundenNr,OffertenNr FROM [Offerten] where OffertenNr = 80 AND KundenNr = '" & VERAGKdNr & "'", "FMZOLL")
'results = OffertenNr_DT.Select("KundenNr = '" & VERAGKdNr & "'")
'If results.Length > 0 Then
' 'Gefunden!
' r.Cells("KundeOffertenNr").Value = results(0)("OffertenNr")
' r.Cells("KundeOffertenNr").Style.BackColor = Color.MintCream
'Else
' pruefData_ASFINAG = False
' r.Cells("KundeOffertenNr").Style.BackColor = Color.PapayaWhip
'End If
''VERAG LEISTUNGS-NR
''Default -> Nicht gefunden
'Dim KundeLeistungsNr_DT = SQL.loadDgvBySql("SELECT [LeistungsNr],KundenNr FROM [Offertenpositionen] where OffertenNr = 80 AND KundenNr = '" & VERAGKdNr & "' AND LeistungsNr = '" & VERAGLeistungsNr & "'", "FMZOLL")
'results = KundeLeistungsNr_DT.Select("KundenNr = '" & VERAGKdNr & "' AND LeistungsNr = '" & VERAGLeistungsNr & "'")
'If results.Length > 0 Then
' 'Gefunden!
' r.Cells("KundeLeistungsNr").Value = VERAGLeistungsNr
' r.Cells("KundeLeistungsNr").Style.BackColor = Color.MintCream
'Else
' r.Cells("KundeLeistungsNr").Style.BackColor = Color.PapayaWhip
' pruefData_ASFINAG = False
'End If
'If cnt Mod 5 = 0 Then
' lblProzPruef.Text = CInt(cnt / MyDatagridview1.Rows.Count() * 100) & " %"
' lblProzPruef.Refresh()
' Me.Refresh()
'End If
cnt += 1
Next
MyDatagridview1.ClearSelection()
MyDatagridview1.DataSource = dtAsfinagKartenpruef
Dim count = MyDatagridview1.Rows.Count()
If count > 0 Then lblProzPruef.Text = CInt(cnt / count * 100) & " %" '100
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
pruefData_ASFINAG = False
End Try
End Function
Function pruefData_PLOSE_old() As Boolean
pruefData_PLOSE_old = True
Try
@@ -1686,7 +2001,58 @@ Public Class frmMDMDatenverarbetiung
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
initLieferant("UTA", sender)
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
initLieferant("ASFINAG", sender)
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
If CDate(Datum_Abrechnungsdaten.Value) <= Today.AddDays(1) Then
If MsgBox("Möchten Sie das Abrechnungsdatum auf " & Datum_Abrechnungsdaten.Value.ToShortDateString & " setzen?", vbYesNoCancel) = MsgBoxResult.Yes Then
'SQL.doSQL("DELETE * from tblAsfinagMaut", "FMZOLL")
SQL.doSQL("Update Abrechnungsdatum SET Abrechnungsdatum = '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "'", "ASFINAG")
If SQL.doSQL("UPDATE dbo.TTRBody SET Abrechnungsdatum = '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "' WHERE (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%') AND (FileCreationDate <= '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "') AND (abrechnungsdatum IS NULL)", "ASFINAG") Then MsgBox("Abrechnungsdatum gesetzt!")
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM tblAsfinagMaut", "FMZOLL")
initDgv_ASFINAG(Not cbxNichtabgerechnet.Checked)
End If
Else
MsgBox("Datum muss kleiner/gleich Tagesdatum sein")
End If
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
If CDate(Datum_Abrechnungsdaten.Value) <= Today.AddDays(1) Then
If MsgBox("Möchten Sie das Abrechnungsdatum vom " & Datum_Abrechnungsdaten.Value.ToShortDateString & "zurücksetzen?", vbYesNoCancel) = MsgBoxResult.Ok Then
If SQL.doSQL("UPDATE dbo.TTRBody SET Abrechnungsdatum = 'NULL' WHERE Abrechnungsdatum = '" & Datum_Abrechnungsdaten.Value.ToShortDateString & "' AND (PKHistory = 0) AND (PKFileName LIKE N'" & checkifTestfiles() & ".%')", "ASFINAG") Then MsgBox("Abrechnungsdatum zurückgesetzt!")
End If
Else
MsgBox("Datum muss kleiner/gleich Tagesdatum sein")
End If
End Sub
Private Sub Datum_Abrechnungsdaten_ValueChanged(sender As Object, e As EventArgs) Handles Datum_Abrechnungsdaten.ValueChanged
If Datum_Abrechnungsdaten IsNot Nothing Then
cbxNichtabgerechnet.Checked = False
End If
End Sub
Private Function checkifTestfiles() As String
If cbxTestdaten.Checked Then
Return "TEPVGTTR"
Else
Return "LEPVGTTR"
End If
End Function
End Class