ZE, MDM, IDS

This commit is contained in:
2024-11-12 21:41:17 +01:00
parent 4494565024
commit 53e5955411
6 changed files with 931 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
Imports System.Data.OleDb
Imports System.DirectoryServices.ActiveDirectory
Imports System.IO
Imports Microsoft.Office.Interop.Outlook
Public Class frmMDMDatenverarbetiung
@@ -44,7 +45,7 @@ Public Class frmMDMDatenverarbetiung
Case "PLOSE" : pruef = pruefData_PLOSE()
Case "ASFINAG" : pruef = pruefData_ASFINAG()
Case "UTA" : pruef = pruefData_UTA()
Case "IDS" : MsgBox("Nicht verfügbar!") : Exit Sub
Case "IDS" : pruef = pruefData_IDS()
Case "MSE" : pruef = pruefData_MSE()
Case Else : MsgBox("Nicht verfügbar!") : Exit Sub
End Select
@@ -76,7 +77,7 @@ Public Class frmMDMDatenverarbetiung
btnDatenLaden.Text = "Daten laden"
Case "ASFINAG" : initDgv_ASFINAG(cbxASFINAGAbgerechnet.Checked, cbxBelegeerstellt.Checked)
btnDatenLaden.Text = "Daten laden"
Case "IDS" 'MsgBox("Nicht verfügbar!")
Case "IDS" : initDgv_IDS()
btnDatenLaden.Text = "Daten laden"
Case "MSE" : initDgv_MSE()
btnDatenLaden.Text = "Daten laden"
@@ -739,8 +740,6 @@ Public Class frmMDMDatenverarbetiung
Sub initDgv_MSE()
With MyDatagridview1
.Columns.Clear()
'Exit Sub
'MsgBox(.sql)
.SET_SQL(" SELECT Adressen.AdressenNr as KundenNr, Adressen.[Name 1] as Name, trans.transaction_country AS Country,trans.device_product_type AS CardType,
Sum(trans.transaction_gross_amount) As [Transaktionsbetrag],
@@ -756,15 +755,87 @@ Public Class frmMDMDatenverarbetiung
.LOAD()
If .Columns.Count > 0 Then
.Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
End If
Dim sumGes As Double = 0
Dim sumFee As Double = 0
Dim sumTr As Double = 0
For Each r As DataGridViewRow In .Rows
sumGes += If(IsNumeric(r.Cells("Gesamtbetrag").Value), CDbl(r.Cells("Gesamtbetrag").Value), 0)
sumTr += If(IsNumeric(r.Cells("Transaktionsbetrag").Value), CDbl(r.Cells("Transaktionsbetrag").Value), 0)
sumFee += If(IsNumeric(r.Cells("Transaktionskosten").Value), CDbl(r.Cells("Transaktionskosten").Value), 0)
Next
txtAnzahl.Text = .Rows.Count
txtPruefsummeNetto.Text = CDbl(sumTr).ToString("C2")
txtPruefsummeBrutto.Text = CDbl(sumGes).ToString("C2")
txtTTRSum.Text = CDbl(sumFee).ToString("C2")
lblTTRSum.Visible = True
txtTTRSum.Visible = True
lblTTRSum.Text = "Tr-Kosten"
.ClearSelection()
End With
End Sub
Sub initDgv_IDS()
With MyDatagridview1
.Columns.Clear()
'Exit Sub
'MsgBox(.sql)
.SET_SQL("SELECT [transaction_id]
,[YearMonthDay] as Datum
,[Paymentsummarynumber] as ZahlungsNr
,[CustomerCode]
,[CustomerName]
,[OutletCountryCode]
,[OutletCountry]
,[OutletCode]
,[OutletName]
,[ProductTypeCode]
,[TransactionVolume] as Transaktionsbetrag
,[AmminclVAT] as Gesamtbetrag
,[TotalNetAmount] as Net
,[VATAmount] as UST
,[avpriceexclVAT]
,[Rechenwert]
,[Kz]
,[Rabattbetrag]
,[RabattbetragProLiter]
,[Zeitstempel]
,[Sachbearbeiter]
,[KdNrVERAG]
,[CardNumber]
,[EmissionNumber]
,[CardComments]
,[CalendarDate]
,[TransactionHHMM]
,[UStVAn_ID]
,[VRNumber]
,[OBONumber] from tblIDSTransactionsNew where cast(YearMonthDay as Date) = '" & DateTimePicker2.Text & "' and UStVAn_ID is null", "FMZOLL")
.LOAD()
If .Columns.Count > 0 Then
'.Columns("AdressenNr").HeaderText = "KdNr"
'.Columns("Name 1").HeaderText = "Kunde"
'.Columns("LandKz").HeaderText = "Land"
.Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("CustomerName").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("VERAGLeistungsNr").ReadOnly = False
'.Columns("VERAGKdNr").ReadOnly = False
.Columns("transaction_id").Visible = False
'For Each r As DataGridViewColumn In .Columns
' If r.Name = "VERAGLeistungsNr" Or r.Name = "VERAGKdNr" Then
@@ -811,7 +882,7 @@ Public Class frmMDMDatenverarbetiung
For Each r As DataGridViewRow In .Rows
sumGes += If(IsNumeric(r.Cells("Gesamtbetrag").Value), CDbl(r.Cells("Gesamtbetrag").Value), 0)
sumTr += If(IsNumeric(r.Cells("Transaktionsbetrag").Value), CDbl(r.Cells("Transaktionsbetrag").Value), 0)
sumFee += If(IsNumeric(r.Cells("Transaktionskosten").Value), CDbl(r.Cells("Transaktionskosten").Value), 0)
sumFee += If(IsNumeric(r.Cells("Net").Value), CDbl(r.Cells("Net").Value), 0)
Next
txtAnzahl.Text = .Rows.Count
@@ -903,6 +974,7 @@ Public Class frmMDMDatenverarbetiung
cbxBelegeerstellt.Visible = False
cbxTestdaten.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", Me.FindForm)
pnlAsfinag.Visible = False
pnlIDS.Visible = False
Panel4.Visible = False
Panel5.Visible = False
@@ -920,12 +992,13 @@ Public Class frmMDMDatenverarbetiung
Case "ASFINAG"
cbxASFINAGAbgerechnet.Visible = True
cbxBelegeerstellt.Visible = True
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", Me.FindForm) Then
End If
pnlAsfinag.Visible = True
Exit Sub
Case "IDS"
MsgBox("Noch nicht verfürbar!")
Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_divers(Me, Me.LIEFERANT)
Panel3.Controls.Add(c)
c.Dock = DockStyle.Fill
pnlIDS.Visible = True
Case "MSE"
Panel5.Visible = True
@@ -1144,8 +1217,7 @@ Public Class frmMDMDatenverarbetiung
If Directory.Exists(dir) Then
dir &= "_" & Now.ToShortTimeString.Replace(":", "")
End If
Directory.CreateDirectory(dir)
Directory.CreateDirectory(dir)
@@ -2644,6 +2716,8 @@ Public Class frmMDMDatenverarbetiung
Case "ASFINAG" : OffertenNr = 11 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4814
Case "UTA" : OffertenNr = 30 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4823
Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4821
Case "IDS" : OffertenNr = 17 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4868
Case "IDS AUT" : OffertenNr = 21 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4868
End Select
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, Now.Year)
@@ -2847,6 +2921,8 @@ Public Class frmMDMDatenverarbetiung
Case "ASFINAG" : OffertenNr = 11 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "UTA" : OffertenNr = 30 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "IDS" : OffertenNr = 17 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "IDS AUT" : OffertenNr = 21 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
End Select
@@ -3104,6 +3180,84 @@ Public Class frmMDMDatenverarbetiung
Next
Case "IDS"
' Case 17 'Diesel IDS
'5970 Set qryOffPos = dbs.QueryDefs("qryIDSDieselofferte17")
'5980 qryOffPos.Parameters("[Bitte Kundennummer eingeben:]") = rstRK![RechnungsKundenNr]
'5990 Set rstOffPos = qryOffPos.OpenRecordset(dbOpenSnapshot)
'6000 Do Until rstOffPos.EOF
'6010 Set qryRPPKey = dbs.QueryDefs("qryReErfSchRPPKey") '<SQL Server>
'6020 qryRPPKey.Parameters("[prmRK_ID]") = rstRK!RK_ID
'6030 qryRPPKey.Parameters("[prmLeistungsNr]") = rstOffPos!LeistungsNr
'6040 qryRPPKey.Parameters("[prmSteuerpflichtig]") = False
'6050 qryRPPKey.Parameters("[prmLeistungsBez]") = rstOffPos!LeistungsBez
'6060 qryRPPKey.Parameters("[prmIndexZkteing]") = 0
'6070 Set rstRPPKey = qryRPPKey.OpenRecordset(dbOpenDynaset, dbSeeChanges) '<SQL Server>
'6080 With rstRPPKey
'6090 If .EOF Then
'6100 .AddNew
'6110 !RK_ID = rstRK!RK_ID
'6120 !LeistungsNr = rstOffPos!LeistungsNr
'6130 !steuerpflichtig = False
'6140 !LeistungsBez = rstOffPos!LeistungsBez
'6150 !BerechnungsartNr = rstOffPos!BerechnungsartNr
'6160 Else
'6170 .Edit
'6180 End If
'6190 !Preis = rstOffPos!Bruttobetrag - rstOffPos![Summe von Rabattbetrag]
'6200 !Anzahl = 1
'6210 .Update
'6220 .Close
'6230 End With
'6240 Set rstRPPKey = Nothing
'6250 rstOffPos.MoveNext
'6260 Loop
'6270 rstOffPos.Close
'6280 Set rstOffPos = Nothing
'6290 qryOffPos.Close
'6300 Set qryOffPos = Nothing
Case "IDS AUT"
' Case 21 'Diesel IDS AT
'6320 Set qryOffPos = dbs.QueryDefs("qryIDSDieselofferte21")
'6330 qryOffPos.Parameters("[Bitte Kundennummer eingeben:]") = rstRK![RechnungsKundenNr]
'6340 Set rstOffPos = qryOffPos.OpenRecordset(dbOpenSnapshot)
'6350 Do Until rstOffPos.EOF
'6360 Set qryRPPKey = dbs.QueryDefs("qryReErfSchRPPKey") '<SQL Server>Test
'6370 qryRPPKey.Parameters("[prmRK_ID]") = rstRK!RK_ID
'6380 qryRPPKey.Parameters("[prmLeistungsNr]") = rstOffPos!LeistungsNr
'6390 qryRPPKey.Parameters("[prmSteuerpflichtig]") = False
'6400 qryRPPKey.Parameters("[prmLeistungsBez]") = rstOffPos!LeistungsBez
'6410 qryRPPKey.Parameters("[prmIndexZkteing]") = 0
'6420 Set rstRPPKey = qryRPPKey.OpenRecordset(dbOpenDynaset, dbSeeChanges) '<SQL Server>Test
'6430 With rstRPPKey
'6440 If .EOF Then
'6450 .AddNew
'6460 !RK_ID = rstRK!RK_ID
'6470 !LeistungsNr = rstOffPos!LeistungsNr
'6480 !steuerpflichtig = False
'6490 !LeistungsBez = rstOffPos!LeistungsBez
'6500 !BerechnungsartNr = rstOffPos!BerechnungsartNr
'6510 Else
'6520 .Edit
'6530 End If
'6540 !Preis = rstOffPos!Bruttobetrag - rstOffPos![Summe von Rabattbetrag]
'6550 !Anzahl = 1
'6560 .Update
'6570 .Close
'6580 End With
'6590 Set rstRPPKey = Nothing
'6600 rstOffPos.MoveNext
'6610 Loop
'6620 rstOffPos.Close
'6630 Set rstOffPos = Nothing
'6640 qryOffPos.Close
'6650 Set qryOffPos = Nothing
End Select
@@ -3546,6 +3700,77 @@ Public Class frmMDMDatenverarbetiung
End Try
End Function
Function pruefData_IDS() As Boolean
pruefData_IDS = True
Try
Dim RechnenWertNichtEingetragen As Integer = CInt((New SQL).getValueTxtBySql("select count(*) from [tblIDSTransactionsNew]
WHERE where cast(YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND [UStVAn_ID] is null AND [Rechenwert] is null ", "FMZOLL"))
If RechnenWertNichtEingetragen > 0 Then
pruefData_IDS = False
MsgBox("Es wurden bei " & RechnenWertNichtEingetragen & " Transaktionen die Rechenwerte nicht eingetragen!" & vbNewLine & "Diese müssen nacherfasst werden (von Rechnung " & DateTimePicker2.Text & "). (bitte an Administrator wenden).")
Return False
End If
Dim sqlStringfalscheLeistungsNr = ""
Dim falscheLeistungsnummern As Integer = CInt((New SQL).getValueTxtBySql(sqlStringfalscheLeistungsNr, "FMZOLL"))
If falscheLeistungsnummern > 0 Then
If Not SQL.doSQL("update [VERAG].[dbo].[tblMSETransactions] set device_product_type = 'HUGO SIM renewal cost' where transaction_product_id = 453 and transaction_product_name like 'HUGO SIM renewal cost%'", "FMZOLL") Then
MsgBox("Fehler beim Setzen der HUGO SIM renewal cost")
Return False
End If
falscheLeistungsnummern = CInt((New SQL).getValueTxtBySql(sqlStringfalscheLeistungsNr, "FMZOLL"))
If falscheLeistungsnummern > 0 Then
pruefData_IDS = False
MsgBox("Es fehlen " & falscheLeistungsnummern & " Leistungsnummern!" & vbNewLine & "Diese Leistungssnummern (von Rechnung " & DateTimePicker2.Text & ") müssen nachgetragen werden. (bitte an Administrator wenden, tblMSELeistungen).")
Return False
End If
End If
Dim nichtAufAbgerechnetGesetzteTransactionen As Integer = 0
nichtAufAbgerechnetGesetzteTransactionen = CInt((New SQL).getValueTxtBySql("select count (*) FROM [VERAG].[dbo].[tblMSESettlements] as bills inner join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id] where trans.[transaction_status] <> 'Billed' and [invoice_date] = '" & DateTimePicker2.Text & "'", "FMZOLL"))
If nichtAufAbgerechnetGesetzteTransactionen > 0 Then
Dim hint As String = ""
pruefData_IDS = False
If nichtAufAbgerechnetGesetzteTransactionen > 500 Then
hint = "Batch-Nr: "
hint &= SQL.getValueTxtBySql("select distinct(trans.batch_seq_nr) FROM [VERAG].[dbo].[tblMSESettlements] as bills inner join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id] where trans.[transaction_status] <> 'Billed' and [invoice_date] = '" & DateTimePicker2.Text & "'", "FMZOLL")
End If
MsgBox("Es sind " & nichtAufAbgerechnetGesetzteTransactionen & " Transaktionen in der Datenbank, die noch nicht auf VERRECHNET gesetzt sind!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen aktualisiert werden. (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If
'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann!
Dim fehlendeTransactionen As Integer = 0
fehlendeTransactionen = CInt((New SQL).getValueTxtBySql("select count(*) FROM [VERAG].[dbo].[tblMSESettlements] where [invoice_date] = '" & DateTimePicker2.Text & "' AND [transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions]) ", "FMZOLL"))
If fehlendeTransactionen > 0 Then
pruefData_IDS = False
Dim hint As String = ""
If fehlendeTransactionen > 500 Then
hint = "Batch-Nr: "
hint &= SQL.getValueTxtBySql("select distinct(trans.batch_seq_nr) FROM [VERAG].[dbo].[tblMSESettlements] as settle INNER JOIN [VERAG].[dbo].[tblMSETransactions] as trans on trans.transaction_id = settle.transaction_id where [invoice_date] = '" & DateTimePicker2.Text & "' AND trans.[transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions]) ", "FMZOLL")
End If
MsgBox("Es fehlen " & fehlendeTransactionen & " Transaktionen in der Datenbank!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen nachgeladen werden (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
pruefData_IDS = False
End Try
End Function
Function pruefData_PLOSE_old() As Boolean
pruefData_PLOSE_old = True
Try
@@ -3833,6 +4058,260 @@ Public Class frmMDMDatenverarbetiung
cbxASFINAGAbgerechnet.Checked = True
'initDgv_ASFINAG(Not cbxASFINAGNichtAbgerechnet.Checked)
End If
End Function
Private Function setRechenwerteIDS() As Boolean
'Abrechnungsdatum setzen
If Not LIEFERANT = "IDS" Then Return false
If MyDatagridview1.Rows.Count = 0 Then
MsgBox("Keine Daten zum Setzen vorhanden!")
Return False
End If
For each row In MyDatagridview1.Rows
Dim Rechenwert = 0
Dim mKZ = "R"
Dim trans As New VERAG.PROG.ALLGEMEIN.cIDS(row.Cells("transaction_id").Value )
If row.Cells("TransactionVolume").Value <> 0
row.Cells("avpriceexclVAT").Value = row.Cells("TotalNetAmount").Value / row.Cells("TransactionVolume").Value
End If
Next
' Literpreis errechnen
1340 If ![Transaction Volume] <> 0 Then
1350 ![av price excl VAT] = ![Total Net Amount] / ![Transaction Volume]
1360 End If
' Über den IDS-CustomerCode die VERAG-Kundennummer ermitteln und eintragen.
1370 ![KdNrVERAG] = DLookup("KdNrVERAG", "tbl_IDS_Kunden", "CustomerCode=" & ![Customer Code])
1380 If Not IsNull(![KdNrVERAG]) Then
' Kunde ohne Rabatt
1390 strSQL = "SELECT *" & _
" FROM tbl_IDS_Kunden_ohne_Rabatt" & _
" WHERE (((tbl_IDS_Kunden_ohne_Rabatt.CustomerCode)=" & ![KdNrVERAG] & "));"
1400 Set rstIDSRechenwert = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
1410 If Not rstIDSRechenwert.EOF Then
1420 GoTo Rabatt_errechnen
1430 End If
1440 rstIDSRechenwert.Close
' Rechenwert für Land/Station/Kunde/Produkt ermitteln
1450 strSQL = "SELECT Rechenwert, Kz, KategorieNr" & _
" FROM tbl_IDS_Rechenwerte" & _
" WHERE (((OutletCountryCode)=" & ![Outlet Country Code] & ")" & _
" AND ((OutletCode)=" & ![Outlet Code] & ")" & _
" AND ((CustomerCode)=" & ![KdNrVERAG] & ")" & _
" AND ((ProductTypeCode)=" & ![Product Type Code] & "))" & _
" ORDER BY Zeitstempel DESC;"
1460 Set rstIDSRechenwert = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
1470 If Not rstIDSRechenwert.EOF Then
1480 GoTo Rechenwert_eintragen
1490 End If
1500 rstIDSRechenwert.Close
' Rechenwert für Land/Kunde/Produkt ermittteln
1510 strSQL = "SELECT Rechenwert, Kz, KategorieNr" & _
" FROM tbl_IDS_Rechenwerte" & _
" WHERE (((OutletCountryCode)=" & ![Outlet Country Code] & ")" & _
" AND ((OutletCode) Is Null)" & _
" AND ((CustomerCode)=" & ![KdNrVERAG] & ")" & _
" AND ((ProductTypeCode)=" & ![Product Type Code] & "))" & _
" ORDER BY Zeitstempel DESC;"
1520 Set rstIDSRechenwert = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
1530 If Not rstIDSRechenwert.EOF Then
1540 GoTo Rechenwert_eintragen
1550 End If
1560 rstIDSRechenwert.Close
1570 End If
' Rechenwert für Land/Station/Produkt ermitteln
1580 strSQL = "SELECT Rechenwert, Kz, KategorieNr" & _
" FROM tbl_IDS_Rechenwerte" & _
" WHERE (((OutletCountryCode)=" & ![Outlet Country Code] & ")" & _
" AND ((OutletCode)=" & ![Outlet Code] & ")" & _
" AND ((CustomerCode) Is Null)" & _
" AND ((ProductTypeCode)=" & ![Product Type Code] & "))" & _
" ORDER BY Zeitstempel DESC;"
1590 Set rstIDSRechenwert = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
1600 If Not rstIDSRechenwert.EOF Then
1610 GoTo Rechenwert_eintragen
1620 End If
1630 rstIDSRechenwert.Close
' Rechenwert für Land/Produkt ermitteln
1640 strSQL = "SELECT Rechenwert, Kz, KategorieNr" & _
" FROM tbl_IDS_Rechenwerte" & _
" WHERE (((OutletCountryCode)=" & ![Outlet Country Code] & ")" & _
" AND ((OutletCode) Is Null)" & _
" AND ((CustomerCode) Is Null)" & _
" AND ((ProductTypeCode)=" & ![Product Type Code] & "))" & _
" ORDER BY Zeitstempel DESC;"
1650 Set rstIDSRechenwert = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
1660 If Not rstIDSRechenwert.EOF Then
1670 GoTo Rechenwert_eintragen
1680 End If
1690 rstIDSRechenwert.Close
1700 GoTo Rabatt_errechnen
Rechenwert_eintragen:
1710 !Rechenwert = rstIDSRechenwert!Rechenwert
1720 !Kz = rstIDSRechenwert!Kz
1730 If Not IsNull(rstIDSRechenwert!KategorieNr) Then
1740 Set qry = dbs.QueryDefs("qry_IDS_KategorieNr_ProductTypeCode_Rechenwert")
1750 qry.Parameters("[prmKategorieNr]") = rstIDSRechenwert!KategorieNr
1760 qry.Parameters("[prmProductTypeCode]") = ![Product Type Code]
1770 Set rst = qry.OpenRecordset(dbOpenSnapshot)
1780 If Not rst.EOF Then
1790 !Rechenwert = !Rechenwert + rst!Rechenwert
1800 If !Rechenwert < 0 Then
1810 !Rechenwert = 0
1820 End If
1830 End If
1840 rst.Close
1850 qry.Close
1860 End If
1870 rstIDSRechenwert.Close
' Ab 24.03.2010 ist die Kategorie neu hinzugekommen.
' Lt. Hr. Siener wird der Kategorierabatt nur dann berücksichtigt,
' wenn [Outlet Country Code] <> 740543 (Österreich)
' und [Rechenwert] > 0 (aus Land/Produkt oder Land/Station/Produkt)
' und [Kz = R] (Rabatt) ist.
' Der Kategorierabatt kann auch ein Minusbetrag sein.
' Der Rechenwert darf aber nicht negativ werden.
' Dieser Teil entfällt ab 31.01.2019
' If Not IsNull(![KdNrVERAG]) Then
' If ![Outlet Country Code] <> 740543 And _
' ![Rechenwert] > 0 And _
' ![Kz] = "R" Then
' Set qry = dbs.QueryDefs("qry_IDS_Kunde_Kategorie_Produkt_Rechenwert")
' qry.Parameters("[parCustomerCode]") = ![KdNrVERAG]
' qry.Parameters("[parProductTypeCode]") = ![Product Type Code]
' Set rst = qry.OpenRecordset(dbOpenSnapshot)
' If Not rst.EOF Then
' !Rechenwert = !Rechenwert + rst!Rechenwert
' If !Rechenwert < 0 Then
' !Rechenwert = 0
' End If
' End If
' rst.Close
' qry.Close
' End If
' End If
Rabatt_errechnen:
1880 Select Case !Kz
Case "P" 'Rechenwert ist Preis pro Liter
1890 !Rabattbetrag = ![Total Net Amount] - Int(!Rechenwert * ![Transaction Volume] * 100 + 0.5) / 100
1900 Case "R" 'Rechenwert ist Rabatt pro Liter
1910 !Rabattbetrag = Int(!Rechenwert * ![Transaction Volume] * 100 + 0.5) / 100
1920 End Select
1930 If ![Transaction Volume] <> 0 Then
1940 !RabattbetragProLiter = !Rabattbetrag / ![Transaction Volume]
1950 End If
' Zeitstempel und Sachbearbeiter in tblDiesel eintragen
1960 !Zeitstempel = Now
1970 !Sachbearbeiter = CurrentUser()
1980 .Update
' Daten in das Archiv schreiben.
1990 Set qryIDSDieselArchiv = dbs.QueryDefs("qryDieselArchivPKey")
2000 qryIDSDieselArchiv.Parameters("[prmYearMonthDay]") = ![Year Month Day]
2010 qryIDSDieselArchiv.Parameters("[prmPaymentSummaryNumber]") = ![Payment summary number]
2020 qryIDSDieselArchiv.Parameters("[prmCustomerCode]") = ![Customer Code]
2030 qryIDSDieselArchiv.Parameters("[prmOutletCountryCode]") = ![Outlet Country Code]
2040 qryIDSDieselArchiv.Parameters("[prmOutletCode]") = ![Outlet Code]
2050 qryIDSDieselArchiv.Parameters("[prmProductTypeCode]") = ![Product Type Code]
2060 Set rstIDSDieselArchiv = qryIDSDieselArchiv.OpenRecordset(dbOpenDynaset)
2070 If rstIDSDieselArchiv.EOF Then
2080 rstIDSDieselArchiv.AddNew
2090 lngDatensätzeAngefügt = lngDatensätzeAngefügt + 1
2100 Call SysCmd(acSysCmdSetStatus, "IDS-Diesel-Archiv Neuzugang: " & ![Year Month Day] & "-" & ![Payment summary number] & "-" & ![Customer Code] & "-" & ![Outlet Country Code] & "-" & ![Outlet Code] & "-" & ![Product Type Code])
2110 Else
2120 rstIDSDieselArchiv.Edit
2130 lngDatensätzeAktualisiert = lngDatensätzeAktualisiert + 1
2140 Call SysCmd(acSysCmdSetStatus, "IDS-Diesel-Archiv Änderung: " & ![Year Month Day] & "-" & ![Payment summary number] & "-" & ![Customer Code] & "-" & ![Outlet Country Code] & "-" & ![Outlet Code] & "-" & ![Product Type Code])
2150 End If
2160 For Each fld In .Fields
2170 rstIDSDieselArchiv(fld.Name) = fld.Value
2180 Next
2190 rstIDSDieselArchiv.Update
2200 rstIDSDieselArchiv.Close
2210 qryIDSDieselArchiv.Close
2220 DoEvents
2230 .MoveNext
2240 Loop
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 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, 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
Where (dbo.TTRBody.PKHistory = 0) And (dbo.TTRBody.PKFileName Like N'" & checkifTestfiles() & ".%') AND TTRBody.abrechnungsdatum = '" & f.Datum.ToShortDateString & "'
Order By dbo.TTRBody.CardNumber, dbo.TTRBody.FileCreationDate, dbo.TTRBody.PKHistory, dbo.TTRBody.PKFileName, dbo.TTRBody.PKLine", "ASFINAG")
If dt.Rows.Count = 0 Then
MsgBox("Es wurden keine Daten in tblAsfinagMaut geschrieben!")
Return False
End If
For Each row As DataRow In dt.Rows
Dim maut As New VERAG_PROG_ALLGEMEIN.cAsfinagMaut()
maut.cardnumber = row.Item("CardNumber")
maut.licenceplate = IIf(Not IsDBNull(row.Item("vehicleLicensePlate")), row.Item("vehicleLicensePlate"), row.Item("InfoField"))
maut.turnoverdate = row.Item("DeliveryDate")
maut.contractPartner = "ASFINAG " & IIf(Not IsDBNull(row.Item("WarenartDE")), row.Item("WarenartDE"), "Product Code " & row.Item("ProductCode"))
maut.netAmount = CDbl(row.Item("amountInclVAT")) - CDbl(row.Item("VATAmount"))
maut.VATamount = CDbl(row.Item("VATAmount"))
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
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 & "')", "ASFINAG")
If pruefSumTTR IsNot Nothing AndAlso IsNumeric(pruefSumTTR) Then
txtTTRSum.Text = CDbl(pruefSumTTR).ToString("C2")
lblTTRSum.Visible = True
txtTTRSum.Visible = True
lblTTRSum.Text = "Prüfsumme TTR:"
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
@@ -3887,7 +4366,9 @@ Public Class frmMDMDatenverarbetiung
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
@@ -3915,4 +4396,8 @@ Public Class frmMDMDatenverarbetiung
Private Sub cbxTestdaten_CheckedChanged(sender As Object, e As EventArgs) Handles cbxTestdaten.CheckedChanged
test = cbxTestdaten.Checked
End Sub
Private Sub btnRechenwertesetzen_Click(sender As Object, e As EventArgs) Handles btnRechenwertesetzen.Click
If vbYes = MsgBox("Haben Sie die Rechenwerte in den IDS-Tabellen aktualisiert?" & vbNewLine & "(Diese werden beim Importieren in die Abrechnungsdaten übernommen)", vbYesNoCancel) Then setRechenwerteIDS()
End Sub
End Class