faktMail, ustva, Auswertungen, etc.
This commit is contained in:
@@ -462,6 +462,178 @@ Public Class usrcntlFakturierung
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Else
|
||||
isSet = True
|
||||
|
||||
End If
|
||||
|
||||
Return isSet
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Private Function FixeTaxe(Sachbearbeiter As String, rechnungsdatum As Date, Optional kdNr As Integer = -1) As Boolean
|
||||
|
||||
|
||||
' Die Abfrage ermittelt aus den Rechnungspositonen,
|
||||
' das Vorkommen (Anzahl Porto/Papiere) pro RechnungsKundenNr
|
||||
' Status=0, Sammelrechnung=6, LeistungsNr=440.
|
||||
|
||||
Dim isSet As Boolean = False
|
||||
Dim sqlString = "SELECT
|
||||
Rechnungsausgang.Firma_ID,
|
||||
Rechnungsausgang.Status,
|
||||
Rechnungsausgang.Sammelrechnung,
|
||||
Rechnungsausgang.Sachbearbeiter,
|
||||
Rechnungsausgang.RechnungsKundenNr,
|
||||
Rechnungsausgang.BelegartenNr,
|
||||
Rechnungsausgang.Währungscode,
|
||||
isnull(Rechnungsausgang.[Steuersatz %],0) as [Steuersatz %],
|
||||
cast(Rechnungsausgang.Lastschrift as bit) as Lastschrift,
|
||||
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) AS AnzahlPP,
|
||||
SUM(CASE WHEN LeistungsNr = 440 THEN 0 ELSE SteuerpflichtigerBetrag + SteuerfreierBetrag END) AS BetragExclusivPP
|
||||
FROM
|
||||
Rechnungsausgang
|
||||
INNER JOIN
|
||||
RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
|
||||
WHERE
|
||||
Rechnungsausgang.Status in " & If(kdNr > 0, "(0,2)", "(0)") & "
|
||||
AND Rechnungsausgang.Sammelrechnung = 6
|
||||
AND UPPER(Rechnungsausgang.Sachbearbeiter) = '" & Sachbearbeiter & "'
|
||||
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' " & IIf(kdNr > 0, " AND RechnungsKundenNr = " & kdNr, "") & "
|
||||
|
||||
GROUP BY
|
||||
Rechnungsausgang.Firma_ID,
|
||||
Rechnungsausgang.Status,
|
||||
Rechnungsausgang.Sammelrechnung,
|
||||
Rechnungsausgang.Sachbearbeiter,
|
||||
Rechnungsausgang.RechnungsKundenNr,
|
||||
Rechnungsausgang.BelegartenNr,
|
||||
Rechnungsausgang.Währungscode,
|
||||
Rechnungsausgang.[Steuersatz %],
|
||||
Rechnungsausgang.Lastschrift
|
||||
HAVING
|
||||
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) > 0
|
||||
ORDER BY
|
||||
Rechnungsausgang.Firma_ID,
|
||||
Rechnungsausgang.Status,
|
||||
Rechnungsausgang.Sammelrechnung,
|
||||
Rechnungsausgang.Sachbearbeiter,
|
||||
Rechnungsausgang.RechnungsKundenNr,
|
||||
Rechnungsausgang.BelegartenNr,
|
||||
Rechnungsausgang.Währungscode,
|
||||
Rechnungsausgang.[Steuersatz %],
|
||||
Rechnungsausgang.Lastschrift"
|
||||
|
||||
Dim dtPP As DataTable = (New SQL).loadDgvBySql(sqlString, "FMZOLL")
|
||||
|
||||
If dtPP.Rows.Count > 0 Then
|
||||
|
||||
For Each r In dtPP.Rows
|
||||
|
||||
Dim intZlr As Integer = 0
|
||||
|
||||
' Bei BetragExclusivPP kleiner als 150€ wird 1x P.P. verrechnet, bei grösser/gleich 150€ wird kein P.P. verrechnet.
|
||||
' Zähler auf die Anzahl der P.P. Löschungen einstellen.
|
||||
|
||||
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then
|
||||
|
||||
If r("BetragExclusivPP") < 150 Then
|
||||
intZlr = r("AnzahlPP") - 1
|
||||
Else
|
||||
intZlr = r("AnzahlPP")
|
||||
End If
|
||||
Else
|
||||
If (0 - r("BetragExclusivPP")) < 150 Then
|
||||
intZlr = r("AnzahlPP") - 1
|
||||
Else
|
||||
intZlr = r("AnzahlPP") - 1
|
||||
End If
|
||||
End If
|
||||
If intZlr > 0 Then
|
||||
|
||||
|
||||
Dim steuersatz As Single = r("Steuersatz %") 'Single same as real-datatype in SQL (wichtig, sonst findet er den wert nicht!!!)
|
||||
'Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
|
||||
|
||||
' Die Abfrage liest in der Tabelle Rechnungsausgang,
|
||||
' passend zu den durch die vorherige Abfrage bereitgestellten Parametern.
|
||||
|
||||
Dim sqlStringRechnungen As String = "Select DISTINCT
|
||||
Rechnungsausgang.OffertenNr,
|
||||
Rechnungsausgang.RK_ID,
|
||||
Rechnungsausgang.SteuerpflichtigerGesamtbetrag,
|
||||
Rechnungsausgang.SteuerfreierGesamtbetrag,
|
||||
Rechnungsausgang.upsize_ts
|
||||
FROM Rechnungsausgang
|
||||
WHERE
|
||||
Rechnungsausgang.Firma_ID = " & r("Firma_ID") & "
|
||||
And Rechnungsausgang.Status = " & r("Status") & "
|
||||
And Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & "
|
||||
And Rechnungsausgang.UPPER(Sachbearbeiter) = '" & Sachbearbeiter & "'
|
||||
And Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & "
|
||||
And Rechnungsausgang.BelegartenNr = " & r("BelegartenNr") & "
|
||||
And Rechnungsausgang.Währungscode = '" & r("Währungscode") & "'
|
||||
And Rechnungsausgang.[Steuersatz %] = " & steuersatz.ToString.Replace(",", ".") & "
|
||||
And Rechnungsausgang.Lastschrift = " & IIf(r("Lastschrift"), 1, 0) & "
|
||||
AND cast(Rechnungsausgang.Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
|
||||
ORDER by
|
||||
Rechnungsausgang.OffertenNr"
|
||||
|
||||
|
||||
|
||||
|
||||
Dim dtRechnungen As DataTable = (New SQL).loadDgvBySql(sqlStringRechnungen, "FMZOLL")
|
||||
|
||||
If dtRechnungen.Rows.Count > 0 Then
|
||||
|
||||
For Each re In dtRechnungen.Rows
|
||||
|
||||
|
||||
|
||||
Dim dtREPOSANZ As DataTable = (New SQL).loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing], Anzahl, SteuerpflichtigerBetrag, SteuerfreierBetrag,upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 440", "FMZOLL")
|
||||
|
||||
If dtREPOSANZ.Rows.Count > 0 Then
|
||||
|
||||
Dim stgesBetr = re("SteuerpflichtigerGesamtbetrag")
|
||||
Dim stfregesBetr = re("SteuerfreierGesamtbetrag")
|
||||
|
||||
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
|
||||
|
||||
For Each row In dtREPOSANZ.Rows
|
||||
|
||||
intZlr = intZlr - row("Anzahl")
|
||||
|
||||
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"))
|
||||
|
||||
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, row("LeistungsNr"), row("Steuerpflichtig"), row("LeistungsBez"), row("IndexZkteing")) Then
|
||||
RECHNUNG.SteuerfreierGesamtbetrag = stfregesBetr
|
||||
RECHNUNG.SteuerpflichtigerGesamtbetrag = stgesBetr
|
||||
isSet = RECHNUNG.SAVE(False)
|
||||
End If
|
||||
|
||||
If intZlr = 0 Then Exit For
|
||||
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Else
|
||||
|
||||
Reference in New Issue
Block a user