Kopf-Sammelabrechnung

This commit is contained in:
2025-08-28 13:20:16 +02:00
parent 0100b3ed89
commit c126b4a064
11 changed files with 788 additions and 95 deletions

View File

@@ -97,6 +97,7 @@ Public Class cKundenErweitert
Property kde_AnmerkungAntrag As Object = Nothing
Property kde_Erstattungsart As Object = Nothing
Property kde_BezFIBU As Object = Nothing
Property kde_Kopfsammelrechnung As Boolean = False
@@ -198,6 +199,7 @@ Public Class cKundenErweitert
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_FR", kde_FR))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Erstattungsart", kde_Erstattungsart))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_BezFIBU", kde_BezFIBU))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kde_Kopfsammelrechnung", kde_Kopfsammelrechnung))
Return list
End Function

View File

@@ -119,6 +119,7 @@ Public Class cRechnungsausgang
Property ForceSteuerschlüssel As Object = Nothing
Property Automailversand As Boolean = False
Property Rechnungsart As String = "RG" ' RG=Rechnung; RU=Rechnung Unvollständig; RK=RechnungKopf -> bei unvollständiger Rechnung ein Kopf benötigt (zB Staffelabrechnung)
' FROM [VERAG as object=nothing.[dbo as object=nothing.[Rechnungsausgang as object=nothing
@@ -362,6 +363,7 @@ Public Class cRechnungsausgang
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("TextZZ", TextZZ))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ForceSteuerschlüssel", ForceSteuerschlüssel))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Automailversand", Automailversand))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsart", Rechnungsart))
Return list
End Function
@@ -499,10 +501,11 @@ Public Class cRechnungsausgang
End If
End If
If dgv Is Nothing Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
If Rechnungsart <> "RU" Then errMsg = "ERROR: Keine Positionen angegeben!" : Return False
ElseIf dgv.Rows.Count = 0 Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
If Rechnungsart <> "RU" Then errMsg = "ERROR: Keine Positionen angegeben!" : Return False
Else
If dgv.Rows.Count > 1 Then
'Prüfung für doppelte Positionen mit PK: Bezeichnung und LeistungNr!
@@ -522,39 +525,39 @@ Public Class cRechnungsausgang
End If
End If
End If
If dgv Is Nothing Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
ElseIf dgv.Rows.Count = 0 Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
Else
If dgv.Rows.Count > 1 Then
'Prüfung für doppelte Positionen mit PK: Bezeichnung und LeistungNr!
Dim dt As New DataTable
dt.Columns.Add("name", GetType(String))
For Each row As DataGridViewRow In dgv.Rows
Dim R As DataRow = dt.NewRow
R("name") = row.Cells(0).Value
dt.Rows.Add(R)
Next
Dim dv As New DataView(dt)
Dim distinct As DataTable = dv.ToTable(True, New String() {"name"})
If distinct.Rows.Count <> dt.Rows.Count Then
errMsg = "ERROR: Doppelte Positionen vorhanden!" : Return False
End If
End If
End If
If dgv Is Nothing Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
ElseIf dgv.Rows.Count = 0 Then
errMsg = "ERROR: Keine Positionen angegeben!" : Return False
Else
If dgv.Rows.Count > 1 Then
'Prüfung für doppelte Positionen mit PK: Bezeichnung und LeistungNr!
Dim dt As New DataTable
dt.Columns.Add("name", GetType(String))
For Each row As DataGridViewRow In dgv.Rows
Dim R As DataRow = dt.NewRow
R("name") = row.Cells(0).Value
dt.Rows.Add(R)
Next
Dim dv As New DataView(dt)
Dim distinct As DataTable = dv.ToTable(True, New String() {"name"})
If distinct.Rows.Count <> dt.Rows.Count Then
errMsg = "ERROR: Doppelte Positionen vorhanden!" : Return False
End If
End If
End If
'checkFirmen
'checkFirmen
Return True
End Function
Return True
End Function
Public Function SAVE_POSITIONEN(RK_ID) As Boolean
If DELETE_POSITIONEN() Then ' zuerst Einträge löschen...