FixeTaxe441 bei Sammelrechnung
This commit is contained in:
@@ -2430,7 +2430,7 @@ Public Class usrCntlFaktAbrechnung
|
||||
Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen
|
||||
Call przPP(RECHNUNG) ' Porto/Papiere errechnen
|
||||
Call przBS415(RECHNUNG) ' Bankspesen errechnen
|
||||
'Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen
|
||||
Call setFixeTaxeMin(RECHNUNG, 500) ' Mind Fixe Taxe errechnen
|
||||
|
||||
'Me![SteuerpflichtigerGesamtbetrag] = 0.0#
|
||||
'Me![SteuerfreierGesamtbetrag] = 0.0#
|
||||
@@ -3045,20 +3045,16 @@ Public Class usrCntlFaktAbrechnung
|
||||
' RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
|
||||
'...und der Wert gesetzt.
|
||||
FixeTaxePOS.Anzahl = 1
|
||||
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxe
|
||||
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.[Preis]
|
||||
|
||||
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double)
|
||||
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double)
|
||||
|
||||
Dim FixeTaxe_Berechnungbetrag As Double = 0
|
||||
|
||||
If Not CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If Not leistungExistsInPos(RECHNUNG, 441) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
||||
|
||||
For Each POS In RECHNUNG.POSITIONEN
|
||||
@@ -3079,13 +3075,13 @@ Public Class usrCntlFaktAbrechnung
|
||||
FixeTaxePOS.BerechnungsartNr = 1
|
||||
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
|
||||
'...und der Wert gesetzt.
|
||||
If FixeTaxe_Berechnungbetrag < minBetrag Then
|
||||
If FixeTaxe_Berechnungbetrag < minBetrag AndAlso CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
|
||||
FixeTaxePOS.Anzahl = 1
|
||||
Else
|
||||
FixeTaxePOS.Anzahl = 0
|
||||
End If
|
||||
|
||||
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!!
|
||||
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxePOS.Preis 'Preis wird bewusst überschrieben!!!
|
||||
|
||||
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Data.OleDb
|
||||
Imports System.IO
|
||||
Imports com.sun.xml.internal.rngom
|
||||
Imports itextsharp.text.pdf
|
||||
Imports MDM_Worker
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
@@ -1220,8 +1221,6 @@ Public Class frmMDMDatenverarbetiung
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
If verarbOK Then
|
||||
'UPDATE Fakturiert
|
||||
SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL")
|
||||
@@ -3437,6 +3436,10 @@ Public Class frmMDMDatenverarbetiung
|
||||
Dim sqlstr As String = ""
|
||||
Dim useNettogesamtbetrag As Boolean = False
|
||||
|
||||
'If KdNr = "401715" Or KdNr = "401943" Or KdNr = "402179" Or KdNr = "402598" Or KdNr = "402656" Or KdNr = "402688" Or KdNr = "402719" Or KdNr = "402888" Or KdNr = "402933" Then
|
||||
'MsgBox("Test")
|
||||
'End If
|
||||
|
||||
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
|
||||
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
|
||||
|
||||
@@ -3636,11 +3639,11 @@ Public Class frmMDMDatenverarbetiung
|
||||
End If
|
||||
|
||||
'cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
|
||||
'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird!
|
||||
'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440 nicht FÜR Sammelrechnung verwendet wird!
|
||||
'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen -> NICHT NOTWENDIG WEIL 440 nicht mehr FÜR Sammelrechnung verwendet wird!
|
||||
'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen -> NICHT NOTWENDIG WEIL 440/PP nicht mehr FÜR Sammelrechnung verwendet wird!
|
||||
|
||||
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
|
||||
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500, 20) ' Fixe Taxe 441 errechnen
|
||||
Call usrCntlFaktAbrechnung.setFixeTaxeMin(RG, 500) ' Fixe Taxe 441 errechnen
|
||||
|
||||
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
|
||||
|
||||
@@ -3705,12 +3708,6 @@ Public Class frmMDMDatenverarbetiung
|
||||
POS.BGebProzent = o.BGebProzent
|
||||
POS.BGebMinBetrag = o.BGebMinBetrag
|
||||
|
||||
If POS.LeistungsNr = 441 Then
|
||||
MsgBox("")
|
||||
End If
|
||||
|
||||
|
||||
|
||||
RG.POSITIONEN.Add(POS)
|
||||
|
||||
|
||||
@@ -3839,6 +3836,9 @@ Public Class frmMDMDatenverarbetiung
|
||||
Dim cnt = 0
|
||||
Dim cntTotal = MyDatagridview1.Rows.Count()
|
||||
|
||||
checkFixeTaxeImOffert("PLOSE", VERAGKdNr_DT)
|
||||
|
||||
|
||||
For Each r As DataGridViewRow In MyDatagridview1.Rows
|
||||
'KUNDEN-NR / PLOSE KD-NR
|
||||
results = VERAGKdNr_DT.Select("PLOSEKundenNr = '" & r.Cells("plose_POLSEKundennummer").Value & "'")
|
||||
@@ -3930,6 +3930,10 @@ Public Class frmMDMDatenverarbetiung
|
||||
ORDER BY cardnumber", "FMZOLL")
|
||||
|
||||
|
||||
Dim dtKunden As DataTable = SQL.loadDgvBySql("SELECT Distinct(Kreditkarten.AdressenNr FROM dbo.tblAsfinagMaut", "FMZOLL")
|
||||
|
||||
checkFixeTaxeImOffert("ASFINAG", dtKunden)
|
||||
|
||||
Dim VERAGKdNr = -1
|
||||
Dim VERAGLeistungsNr = -1
|
||||
Dim found = False
|
||||
@@ -3956,7 +3960,7 @@ Public Class frmMDMDatenverarbetiung
|
||||
pruefData_UTA = True
|
||||
Try
|
||||
|
||||
Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("SELECT Distinct(tblUTAImportNew.Kundennummer)
|
||||
Dim dtUTAKundennummern As DataTable = SQL.loadDgvBySql("Select Distinct(tblUTAImportNew.Kundennummer)
|
||||
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
|
||||
GROUP BY tblUTAImportNew.Kundennummer, Adressen.UTAKundenNr
|
||||
HAVING (((Adressen.UTAKundenNr) Is Null))", "FMZOLL")
|
||||
@@ -3998,6 +4002,13 @@ Public Class frmMDMDatenverarbetiung
|
||||
|
||||
End If
|
||||
|
||||
Dim dtKundenNr As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
|
||||
FROM tblUTAImportNew LEFT JOIN Adressen ON tblUTAImportNew.Kundennummer = Adressen.UTAKundenNr
|
||||
WHERE cast(tblUTAImportNew.Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "'
|
||||
GROUP BY Adressen.AdressenNr", "FMZOLL")
|
||||
|
||||
checkFixeTaxeImOffert("UTA", dtKundenNr)
|
||||
|
||||
|
||||
Dim fehlendeRechnungen As Integer = 0
|
||||
|
||||
@@ -4088,6 +4099,16 @@ Public Class frmMDMDatenverarbetiung
|
||||
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
|
||||
|
||||
Dim dt As DataTable = SQL.loadDgvBySql("SELECT Distinct(Adressen.AdressenNr)
|
||||
FROM [VERAG].[dbo].[tblMSESettlements] as bills
|
||||
left join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id]
|
||||
left join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id
|
||||
left join [VERAG].[dbo].[tblMSEInvoices] as inv on inv.[invoice_id] = bills.[invoice_number] and inv.customer_number = cust.[customer_id] and trans.transaction_country = inv.country
|
||||
left join adressen ON cust.[customer_id] = Adressen.MSEKundenNr
|
||||
WHERE bills.[invoice_date] = '" & DateTimePicker2.Text & "' ", "FMZOLL")
|
||||
|
||||
checkFixeTaxeImOffert("MSE", dt)
|
||||
|
||||
'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann!
|
||||
Dim fehlendeTransactionen As Integer = 0
|
||||
|
||||
@@ -4134,6 +4155,9 @@ Public Class frmMDMDatenverarbetiung
|
||||
|
||||
Dim dt As DataTable = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "'", "FMZOLL")
|
||||
|
||||
checkFixeTaxeImOffert("IDS", dt)
|
||||
checkFixeTaxeImOffert("IDS_AT", dt)
|
||||
|
||||
If dt.Rows.Count > 0 Then
|
||||
Dim counter As Integer = 0
|
||||
For Each r In dt.Rows
|
||||
@@ -4903,4 +4927,64 @@ RabattBerechnen:
|
||||
|
||||
Return checkDate
|
||||
End Function
|
||||
|
||||
Private Function checkFixeTaxeImOffert(Lieferant As String, dt As DataTable) As Boolean
|
||||
|
||||
Dim OffertenNr As Integer = -1
|
||||
|
||||
If Lieferant = "" Then Return False
|
||||
|
||||
Select Case Lieferant
|
||||
Case "PLOSE" : OffertenNr = 80
|
||||
Case "ASFINAG" : OffertenNr = 11
|
||||
Case "UTA" : OffertenNr = 30
|
||||
Case "MSE" : OffertenNr = 23
|
||||
Case "IDS" : OffertenNr = 17
|
||||
Case "IDS_AT" : OffertenNr = 21
|
||||
Case Else
|
||||
Return False
|
||||
End Select
|
||||
|
||||
Dim AdressenNr As String = ""
|
||||
|
||||
If dt.Rows.Count > 0 Then
|
||||
If dt.Columns.Contains("AdressenNr") Or dt.Columns.Contains("KdNrVERAG") Then
|
||||
Dim dtNew As DataTable = dt.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) field Is DBNull.Value Or field.Equals(""))).CopyToDataTable()
|
||||
If dtNew.Rows.Count > 0 Then
|
||||
Dim counter = 0
|
||||
For Each r As DataRow In dtNew.Rows
|
||||
AdressenNr &= r.Item(0)
|
||||
counter = counter + 1
|
||||
If (dtNew.Rows.Count <> 0 And counter <> dtNew.Rows.Count) Then
|
||||
AdressenNr &= ","
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Dim sqlStringOffertMehrfach = "select COUNT(*) as Anzahl ,OffertenNr, KundenNr LeistungsNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ") group by KundenNr, LeistungsNr, OffertenNr having COUNT(*) > 1"
|
||||
Dim dtOfferten As DataTable = SQL.loadDgvBySql(sqlStringOffertMehrfach, "FMZOLL")
|
||||
If dtOfferten.Rows.Count > 0 Then
|
||||
MsgBox("Es sind bei " & dtOfferten.Rows.Count & " Kunden das Offert 441 mehrfach hinterlegt, das muss korrigiert werden, ansonten kann die Fixe Taxe nicht berechnet werden!")
|
||||
cProgramFunctions.genExcelCSVFromDT(dtOfferten, True)
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim sqlStringFehlendeOffertenNr = "select KundenNr, OffertenNr from Offertenpositionen where OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
|
||||
GROUP by KundenNr, OffertenNr
|
||||
EXCEPT
|
||||
select KundenNr, OffertenNr from Offertenpositionen where LeistungsNr = 441 and OffertenNr = " & OffertenNr & " and KundenNr in (" & AdressenNr & ")
|
||||
GROUP by KundenNr, OffertenNr"
|
||||
|
||||
Dim dtfehlendeOfferten As DataTable = SQL.loadDgvBySql(sqlStringFehlendeOffertenNr, "FMZOLL")
|
||||
If dtfehlendeOfferten.Rows.Count > 0 Then
|
||||
MsgBox("Es fehlen bei " & dtfehlendeOfferten.Rows.Count & " Kunden das Offert 441, bitte hinterlegen ansonten wird die Fixe Taxe nicht gesetzt!")
|
||||
cProgramFunctions.genExcelCSVFromDT(dtfehlendeOfferten, True)
|
||||
Return True
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -544,6 +544,11 @@ Public Class usrcntlFakturierung
|
||||
|
||||
Dim intZlr As Integer = 0
|
||||
|
||||
If r("RechnungsKundenNr") = "401715" Or r("RechnungsKundenNr") = "401943" Or r("RechnungsKundenNr") = "402179" Or r("RechnungsKundenNr") = "402598" Or r("RechnungsKundenNr") = "402656" Or r("RechnungsKundenNr") = "402688" Or r("RechnungsKundenNr") = "402719" Or r("RechnungsKundenNr") = "402888" Or r("RechnungsKundenNr") = "402933" Or r("RechnungsKundenNr") = "401733" Or r("RechnungsKundenNr") = "402245" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "402065" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "401908" Or r("RechnungsKundenNr") = "401829" Or r("RechnungsKundenNr") = "203083" Then
|
||||
'MsgBox("Test")
|
||||
End If
|
||||
|
||||
|
||||
' Bei BetragExclusivFT kleiner als 500€ wird 1x fixe Taxe verrechnet, bei grösser/gleich 500€ wird kein fixe Taxe verrechnet.
|
||||
' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen.
|
||||
|
||||
@@ -556,6 +561,7 @@ Public Class usrcntlFakturierung
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
If (0 - r("BetragExclusivFT")) < 500 Then
|
||||
intZlr = r("AnzahlFT") - 1
|
||||
Else
|
||||
@@ -619,6 +625,8 @@ Public Class usrcntlFakturierung
|
||||
|
||||
intZlr = intZlr - row("Anzahl")
|
||||
|
||||
If intZlr < 0 Then Exit For
|
||||
|
||||
If Not IsDBNull(row("SteuerpflichtigerBetrag")) AndAlso IsNumeric(row("SteuerpflichtigerBetrag")) Then stgesBetr = stgesBetr - CDbl(row("SteuerpflichtigerBetrag"))
|
||||
If Not IsDBNull(row("SteuerfreierBetrag")) AndAlso IsNumeric(row("SteuerfreierBetrag")) Then stfregesBetr = stfregesBetr - CDbl(row("SteuerfreierBetrag"))
|
||||
|
||||
@@ -628,7 +636,7 @@ Public Class usrcntlFakturierung
|
||||
isSet = RECHNUNG.SAVE(False)
|
||||
End If
|
||||
|
||||
If intZlr = 0 Then Exit For
|
||||
If intZlr <= 0 Then Exit For
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Reference in New Issue
Block a user