This commit is contained in:
2025-01-15 16:07:55 +01:00
parent 347c29902f
commit 04dbc90618

View File

@@ -1,5 +1,6 @@
Imports System.Data.SqlClient
Imports System.IO
Imports java.awt.print
Imports Microsoft.Office.Interop.Outlook
Imports Microsoft.VisualBasic.FileIO
Imports VERAG_PROG_ALLGEMEIN
@@ -975,10 +976,7 @@ Public Class usrCntlMDMAuswertungen
Dim ok As Boolean = True
Dim Sachbearbeiter = cboSachbearbeiter._value
Dim varText As String = ""
Dim varNettozahlungsziel As Integer = 0
Dim strFälligkeitsdatum As String
Dim strZahlbar As String
Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text)
@@ -1036,6 +1034,7 @@ Public Class usrCntlMDMAuswertungen
ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and Sachbearbeiter<>'" & Sachbearbeiter & "' and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL")
Exit Sub
@@ -1083,280 +1082,22 @@ Public Class usrCntlMDMAuswertungen
End If
Dim dtSelectedSammelrechnungen As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
FROM Rechnungsausgang
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND [Sachbearbeiter] = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]", "FMZOLL")
'Rechnungstext im RK eintragen
If dtSelectedSammelrechnungen.Rows.Count > 0 Then
For Each rowRE In dtSelectedSammelrechnungen.Rows
Select Case rowRE("BelegartenNr")
Case 70 'RECHNUNG
If Not rowRE("Vorkasse") Then
If rowRE("Lastschrift") Then
varText = varText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf
Else
If Not IsDBNull(rowRE("RechnungsKundenNr")) Then
'Zahlungsziel aus Kundenstamm.
Dim ZZ = SQL.getValueTxtBySql("SELECT Kunden.Zahlungsziel from Kunden WHERE Kunden.KundenNr=" & rowRE("RechnungsKundenNr") & " AND Kunden.Zahlungsziel Is Not Null", "FMZOLL")
If ZZ <> "" AndAlso IsNumeric(ZZ) Then
varNettozahlungsziel = ZZ
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
'Zahlungsziel aus Offertenstamm.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(rowRE("OffertenNr")) Then
Dim ZZOffert = SQL.getValueTxtBySql("SELECT Offertenstamm.Zahlungsziel FROM Offertenstamm WHERE Offertenstamm.OffertenNr = " & rowRE("OffertenNr") & " AND Offertenstamm.Zahlungsziel IS NOT NULL", "FMZOLL")
If ZZOffert <> "" AndAlso IsNumeric(ZZOffert) Then
varNettozahlungsziel = ZZOffert
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Zahlungsziel ermitteln.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(rowRE("RK_ID")) Then
'Zahlungsziel bei Kreditaufwendungen.
Dim ZZRKID = SQL.getValueTxtBySql("Select Case [Preis], [Anzahl] From [RechnungsausgangPositionen] Where [RK_ID] = " & rowRE("RK_ID") & " And [LeistungsNr] = 750 And [BerechnungsartNr] = 9", "FMZOLL")
If ZZRKID <> "" Then
strZahlbar = "Zahlbar innerhalb 10 Tagen abzüglich Pos. 750; ab 10 Tagen netto fällig."
Else
varNettozahlungsziel = 25
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Fälligkeitstext in Landessprache
If strFälligkeitsdatum <> "" Then strZahlbar = "Rechnung zahlbar spätestens bis " & strFälligkeitsdatum & "!"
If Not IsDBNull(rowRE("RechnungsLandKz")) Then
Dim ZZRLandKZ = SQL.getValueTxtBySql("SELECT tblZahlungszieltexte.Text FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & rowRE("RechnungsLandKz") & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL")
If ZZRLandKZ <> "" Then
strZahlbar = ZZRLandKZ & " " & strFälligkeitsdatum & "!"
End If
End If
varText &= strZahlbar & vbCrLf
End If
End If
' Text bei Zoll oder EUSt drucken
Dim Zoll = SQL.getValueTxtBySql("Select LeistungsNr From dbo.RechnungsausgangPositionen Where RK_ID = " & rowRE("RK_ID") & " And LeistungsNr In (10, 60, 70)", "FMZOLL")
If Not IsDBNull(Zoll) AndAlso Zoll <> "" Then
varText = varText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf
End If
Case 71 'GUTSCHRIFT
If rowRE("Lastschrift") Then
varText = varText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End If
End Select
ok = SQL.doSQL("Update [Rechnungsausgang] Set [Text] = '" & varText & "', [Nettozahlungsziel] = " & varNettozahlungsziel & " WHERE [RK_ID] = " & rowRE("RK_ID"), "FMZOLL")
If Not ok Then MsgBox("Fehler") : Exit Sub
varText = ""
varNettozahlungsziel = 0
strFälligkeitsdatum = ""
Next
End If
setRechnungstext(Sachbearbeiter, rechnungsdatum)
' Porto/Papiere berechnen.
PortoPapiere(Sachbearbeiter, rechnungsdatum)
'Berechnet Banküberweisung/Bankspesen.
Dim sqlBB = " Select Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
From dbo.Rechnungsausgang
Where Status = 0
And Sammelrechnung = 6
And Sachbearbeiter ='" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
Group By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
Order By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift"
Dim dtBB As DataTable = SQL.loadDgvBySql(sqlBB, "FMZOLL")
If dtBB.Rows.Count > 0 Then
For Each r In dtBB.Rows
'spSelectReDruSchnSumBS415
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
Dim sum As DataTable = SQL.loadDgvBySql("SELECT SUM(dbo.RechnungsausgangPositionen.Preis * dbo.RechnungsausgangPositionen.Anzahl) AS [Summe von Preis]
FROM dbo.Rechnungsausgang INNER JOIN
dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN
dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (dbo.Rechnungsausgang.Status = " & r("Status") & ")
AND (dbo.Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & ")
AND (dbo.Rechnungsausgang.Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (dbo.Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (dbo.Rechnungsausgang.BelegartenNr =" & r("BelegartenNr") & ")
AND (dbo.Rechnungsausgang.Währungscode = '" & r("Währungscode") & "')
AND (dbo.Rechnungsausgang.[Steuersatz %] =" & SteuersatzString & ")
AND (dbo.Rechnungsausgang.Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
AND (dbo.Leistungen.BS415 = 1)", "FMZOLL",)
If sum.Rows.Count > 0 Then
For Each rowsum In sum.Rows
Dim sumCurrenRow As Double = rowsum("Summe von Preis")
If sumCurrenRow <> 0 Then
Dim dtBankspesen As DataTable = SQL.loadDgvBySql("SELECT KundenNr, [Bankspesen %], [Bankspesen Mindestbetrag] FROM dbo.Kunden where KundenNr = " & r("RechnungsKundenNr"), "FMZOLL")
If dtBankspesen.Rows.Count > 0 Then
For Each rowBS In dtBankspesen.Rows
If rowBS("Bankspesen %") = 0 And rowBS("Bankspesen Mindestbetrag") = 0 Then
Else
Dim query As String = "SELECT DISTINCT OffertenNr, RK_ID, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, upsize_ts FROM Rechnungsausgang
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (Status = " & r("Status") & ")
AND (Sammelrechnung = " & r("Sammelrechnung") & ")
AND (Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (BelegartenNr =" & r("BelegartenNr") & ")
AND (Währungscode = '" & r("Währungscode") & "')
AND ([Steuersatz %] =" & SteuersatzString & ")
AND (Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
ORDER BY OffertenNr"
Dim dtRechnung As DataTable = SQL.loadDgvBySql(query, "FMZOLL")
If dtRechnung.Rows.Count > 0 Then
For Each re In dtRechnung.Rows
Dim steuerpflichtigerGesamtbetrag = re("SteuerpflichtigerGesamtbetrag")
Dim steuerfreiegerGesamtbetrag = re("SteuerfreierGesamtbetrag")
Dim dt415 As DataTable = SQL.loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing],SteuerpflichtigerBetrag, SteuerfreierBetrag, upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 415", "FMZOLL")
If dt415.Rows.Count > 0 Then
For Each r415 In dt415.Rows
steuerpflichtigerGesamtbetrag -= dt415("SteuerpflichtigerBetrag")
steuerfreiegerGesamtbetrag -= dt415("SteuerfreierBetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, r415("LeistungsNr"), r415("Steuerpflichtig"), r415("LeistungsBez"), r415("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = steuerfreiegerGesamtbetrag
RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerpflichtigerGesamtbetrag
RECHNUNG.SAVE()
End If
Bankspesen(Sachbearbeiter, rechnungsdatum)
Next
End If
Next
If sumCurrenRow > 0 Then
Dim RElastEntry As DataRow = dtRechnung.Rows(dtRechnung.Rows.Count - 1)
Dim NEWPOS As New cRechnungsausgangPositionen(RElastEntry("RK_ID"))
NEWPOS.Anzahl = 1
NEWPOS.LeistungsNr = 415
If steuersatz = 0 Then
NEWPOS.Steuerpflichtig = False
Else
NEWPOS.Steuerpflichtig = SQL.DLookup("Steuerpflichtig", "Leistungen", "LeistungsNr= 415", "FMZOLL")
End If
NEWPOS.LeistungsBez = "Überweisungs/Bankspesen"
Dim preis As Double = 0
If rowBS("Bankspesen %") > 0 Then
If sumCurrenRow > 0 Then
preis = Math.Floor(sumCurrenRow * rowBS("Bankspesen %") + 0.5)
Else
preis = Math.Floor(0 - sumCurrenRow * rowBS("Bankspesen %") + 0.5)
End If
Else
preis = 0
End If
If preis < rowBS("Bankspesen Mindestbetrag") Then
preis = rowBS("Bankspesen Mindestbetrag")
End If
If sumCurrenRow < 0 Then
preis = 0 - preis
End If
Dim RECHNUNG As New cRechnungsausgang(RElastEntry("RK_ID"))
If NEWPOS.Steuerpflichtig Then
NEWPOS.SteuerpflichtigerBetrag = preis
RECHNUNG.SteuerpflichtigerGesamtbetrag = +preis
Else
NEWPOS.SteuerfreierBetrag = preis
RECHNUNG.SteuerfreierGesamtbetrag = +preis
End If
NEWPOS.Preis = preis
NEWPOS.INSERT(RElastEntry("RK_ID"))
RECHNUNG.SAVE()
End If
End If
End If
Next
End If
End If
Next
End If
Next
End If
End Sub
@@ -1524,6 +1265,291 @@ Public Class usrCntlMDMAuswertungen
End Function
Private Function setRechnungstext(Sachbearbeiter As String, rechnungsdatum As Date)
Dim varText As String = ""
Dim varNettozahlungsziel As Integer = 0
Dim strFälligkeitsdatum As String
Dim strZahlbar As String
Dim ok As Boolean = False
Dim dtSelectedSammelrechnungen As DataTable = (New SQL).loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
FROM Rechnungsausgang
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND [Sachbearbeiter] = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]", "FMZOLL")
If dtSelectedSammelrechnungen.Rows.Count > 0 Then
For Each rowRE In dtSelectedSammelrechnungen.Rows
Select Case rowRE("BelegartenNr")
Case 70 'RECHNUNG
If Not rowRE("Vorkasse") Then
If rowRE("Lastschrift") Then
varText = varText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf
Else
If Not IsDBNull(rowRE("RechnungsKundenNr")) Then
'Zahlungsziel aus Kundenstamm.
Dim ZZ = (New SQL).getValueTxtBySql("SELECT Kunden.Zahlungsziel from Kunden WHERE Kunden.KundenNr=" & rowRE("RechnungsKundenNr") & " AND Kunden.Zahlungsziel Is Not Null", "FMZOLL")
If ZZ <> "" AndAlso IsNumeric(ZZ) Then
varNettozahlungsziel = ZZ
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
'Zahlungsziel aus Offertenstamm.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(rowRE("OffertenNr")) Then
Dim ZZOffert = (New SQL).getValueTxtBySql("SELECT Offertenstamm.Zahlungsziel FROM Offertenstamm WHERE Offertenstamm.OffertenNr = " & rowRE("OffertenNr") & " AND Offertenstamm.Zahlungsziel IS NOT NULL", "FMZOLL")
If ZZOffert <> "" AndAlso IsNumeric(ZZOffert) Then
varNettozahlungsziel = ZZOffert
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Zahlungsziel ermitteln.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(rowRE("RK_ID")) Then
'Zahlungsziel bei Kreditaufwendungen.
Dim ZZRKID = (New SQL).getValueTxtBySql("Select Case [Preis], [Anzahl] From [RechnungsausgangPositionen] Where [RK_ID] = " & rowRE("RK_ID") & " And [LeistungsNr] = 750 And [BerechnungsartNr] = 9", "FMZOLL")
If ZZRKID <> "" Then
strZahlbar = "Zahlbar innerhalb 10 Tagen abzüglich Pos. 750; ab 10 Tagen netto fällig."
Else
varNettozahlungsziel = 25
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Fälligkeitstext in Landessprache
If strFälligkeitsdatum <> "" Then strZahlbar = "Rechnung zahlbar spätestens bis " & strFälligkeitsdatum & "!"
If Not IsDBNull(rowRE("RechnungsLandKz")) Then
Dim ZZRLandKZ = (New SQL).getValueTxtBySql("SELECT tblZahlungszieltexte.Text FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & rowRE("RechnungsLandKz") & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL")
If ZZRLandKZ <> "" Then
strZahlbar = ZZRLandKZ & " " & strFälligkeitsdatum & "!"
End If
End If
varText &= strZahlbar & vbCrLf
End If
End If
' Text bei Zoll oder EUSt drucken
Dim Zoll = (New SQL).getValueTxtBySql("Select LeistungsNr From dbo.RechnungsausgangPositionen Where RK_ID = " & rowRE("RK_ID") & " And LeistungsNr In (10, 60, 70)", "FMZOLL")
If Not IsDBNull(Zoll) AndAlso Zoll <> "" Then
varText = varText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf
End If
Case 71 'GUTSCHRIFT
If rowRE("Lastschrift") Then
varText = varText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End If
End Select
ok = (New SQL).doSQL("Update [Rechnungsausgang] Set [Text] = '" & varText & "', [Nettozahlungsziel] = " & varNettozahlungsziel & " WHERE [RK_ID] = " & rowRE("RK_ID"), "FMZOLL")
If Not ok Then MsgBox("Fehler") : Return False
varText = ""
varNettozahlungsziel = 0
strFälligkeitsdatum = ""
Next
End If
Return ok
End Function
Private Function Bankspesen(Sachbearbeiter As String, rechnungsdatum As Date)
Dim sqlBB = " Select Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
From dbo.Rechnungsausgang
Where Status = 0
And Sammelrechnung = 6
And Sachbearbeiter ='" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
Group By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
Order By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift"
Dim dtBB As DataTable = (New SQL).loadDgvBySql(sqlBB, "FMZOLL")
If dtBB.Rows.Count > 0 Then
For Each r In dtBB.Rows
'spSelectReDruSchnSumBS415
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
Dim sum As DataTable = (New SQL).loadDgvBySql("SELECT SUM(dbo.RechnungsausgangPositionen.Preis * dbo.RechnungsausgangPositionen.Anzahl) AS [Summe von Preis]
FROM dbo.Rechnungsausgang INNER JOIN
dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN
dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (dbo.Rechnungsausgang.Status = " & r("Status") & ")
AND (dbo.Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & ")
AND (dbo.Rechnungsausgang.Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (dbo.Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (dbo.Rechnungsausgang.BelegartenNr =" & r("BelegartenNr") & ")
AND (dbo.Rechnungsausgang.Währungscode = '" & r("Währungscode") & "')
AND (dbo.Rechnungsausgang.[Steuersatz %] =" & SteuersatzString & ")
AND (dbo.Rechnungsausgang.Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
AND (dbo.Leistungen.BS415 = 1)", "FMZOLL",)
If sum.Rows.Count > 0 Then
For Each rowsum In sum.Rows
Dim sumCurrenRow As Double = rowsum("Summe von Preis")
If sumCurrenRow <> 0 Then
Dim dtBankspesen As DataTable = (New SQL).loadDgvBySql("SELECT KundenNr, [Bankspesen %], [Bankspesen Mindestbetrag] FROM dbo.Kunden where KundenNr = " & r("RechnungsKundenNr"), "FMZOLL")
If dtBankspesen.Rows.Count > 0 Then
For Each rowBS In dtBankspesen.Rows
If rowBS("Bankspesen %") = 0 And rowBS("Bankspesen Mindestbetrag") = 0 Then
Else
Dim query As String = "SELECT DISTINCT OffertenNr, RK_ID, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, upsize_ts FROM Rechnungsausgang
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (Status = " & r("Status") & ")
AND (Sammelrechnung = " & r("Sammelrechnung") & ")
AND (Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (BelegartenNr =" & r("BelegartenNr") & ")
AND (Währungscode = '" & r("Währungscode") & "')
AND ([Steuersatz %] =" & SteuersatzString & ")
AND (Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
ORDER BY OffertenNr"
Dim dtRechnung As DataTable = (New SQL).loadDgvBySql(query, "FMZOLL")
If dtRechnung.Rows.Count > 0 Then
For Each re In dtRechnung.Rows
Dim steuerpflichtigerGesamtbetrag = re("SteuerpflichtigerGesamtbetrag")
Dim steuerfreiegerGesamtbetrag = re("SteuerfreierGesamtbetrag")
Dim dt415 As DataTable = (New SQL).loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing],SteuerpflichtigerBetrag, SteuerfreierBetrag, upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 415", "FMZOLL")
If dt415.Rows.Count > 0 Then
For Each r415 In dt415.Rows
steuerpflichtigerGesamtbetrag -= dt415("SteuerpflichtigerBetrag")
steuerfreiegerGesamtbetrag -= dt415("SteuerfreierBetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, r415("LeistungsNr"), r415("Steuerpflichtig"), r415("LeistungsBez"), r415("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = steuerfreiegerGesamtbetrag
RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerpflichtigerGesamtbetrag
RECHNUNG.SAVE()
End If
Next
End If
Next
If sumCurrenRow > 0 Then
Dim RElastEntry As DataRow = dtRechnung.Rows(dtRechnung.Rows.Count - 1)
Dim NEWPOS As New cRechnungsausgangPositionen(RElastEntry("RK_ID"))
NEWPOS.Anzahl = 1
NEWPOS.LeistungsNr = 415
If steuersatz = 0 Then
NEWPOS.Steuerpflichtig = False
Else
Dim sql As New SQL
NEWPOS.Steuerpflichtig = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("Steuerpflichtig", "Leistungen", "LeistungsNr= 415", "FMZOLL")
End If
NEWPOS.LeistungsBez = "Überweisungs/Bankspesen"
Dim preis As Double = 0
If rowBS("Bankspesen %") > 0 Then
If sumCurrenRow > 0 Then
preis = Math.Floor(sumCurrenRow * rowBS("Bankspesen %") + 0.5)
Else
preis = Math.Floor(0 - sumCurrenRow * rowBS("Bankspesen %") + 0.5)
End If
Else
preis = 0
End If
If preis < rowBS("Bankspesen Mindestbetrag") Then
preis = rowBS("Bankspesen Mindestbetrag")
End If
If sumCurrenRow < 0 Then
preis = 0 - preis
End If
Dim RECHNUNG As New cRechnungsausgang(RElastEntry("RK_ID"))
If NEWPOS.Steuerpflichtig Then
NEWPOS.SteuerpflichtigerBetrag = preis
RECHNUNG.SteuerpflichtigerGesamtbetrag = +preis
Else
NEWPOS.SteuerfreierBetrag = preis
RECHNUNG.SteuerfreierGesamtbetrag = +preis
End If
NEWPOS.Preis = preis
NEWPOS.INSERT(RElastEntry("RK_ID"))
RECHNUNG.SAVE()
End If
End If
End If
Next
End If
End If
Next
End If
Next
End If
End Function
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles btnContractdaten.Click
Try