This commit is contained in:
2021-10-27 11:19:22 +02:00
parent 13f28aa1d8
commit f4813a04a9
76 changed files with 9922 additions and 2253 deletions

View File

@@ -109,11 +109,14 @@ Public Class cRechnungsausgang
Property VorschauID As Object = Nothing
Property Grenze As Object = Nothing
Property RechnungSprache As Object = Nothing
Property FakturierungsGruppe As String = ""
' FROM [VERAG as object=nothing.[dbo as object=nothing.[Rechnungsausgang as object=nothing
Public POSITIONEN As New List(Of cRechnungsausgangPositionen)
Public ANHAENGE As New List(Of cRechnungsausgangANHAENGE)
Shared SQL As New SQL
Sub New()
@@ -332,6 +335,7 @@ Public Class cRechnungsausgang
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorschauID", VorschauID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Grenze", Grenze))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungSprache", RechnungSprache))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FakturierungsGruppe", FakturierungsGruppe))
Return list
End Function
@@ -414,6 +418,7 @@ Public Class cRechnungsausgang
If RK_ID > 0 Then
doVorzeichenPOS()
If saveAll Then SAVE_POSITIONEN(RK_ID) ' positionen speicehrn
If saveAll Then SAVE_ANHAENGE(RK_ID) ' positionen speicehrn
doVorzeichenPOS()
End If
doVorzeichen()
@@ -450,7 +455,7 @@ Public Class cRechnungsausgang
If FIRMA.Firma_ID = 26 Then
If RechnungsLandKz <> "GB" And RechnungsLandKz <> "UK" Then
errMsg = "ERROR: Es darf nur nach GB abgerechnet werden!" : Return False
errMsg = "WARN: Abrechnung außerhalb GB." ' Return False
End If
If Währungscode <> "GBP" Then
errMsg = "ERROR: Es darf nur mit Währung 'GBP' abgerechnet werden!" : Return False
@@ -479,6 +484,16 @@ Public Class cRechnungsausgang
End If
Return True
End Function
Public Function SAVE_ANHAENGE(RK_ID) As Boolean
If DELETE_ANHAENGE() Then ' zuerst Einträge löschen...
'ORDER_ANHAENGE() ' ... dann ordnen ...
For Each p In ANHAENGE
If Not p.INSERT(RK_ID) Then Return False ' ... dann insert
Next
Else : Return False
End If
Return True
End Function
Public Sub LOAD()
@@ -572,6 +587,11 @@ Public Class cRechnungsausgang
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Function DELETE_ANHAENGE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim sqlstr = " DELETE FROM [RechnungsausgangAnhaenge] WHERE RK_ID=" & Me.RK_ID
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Sub LOAD_POSITIONEN()
Try
POSITIONEN.Clear()
@@ -601,6 +621,63 @@ Public Class cRechnungsausgang
End Try
End Sub
Public Sub LOAD_ANHAENGE()
Try
ANHAENGE.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM RechnungsausgangAnhaenge WHERE RK_ID=@RK_ID ", conn)
cmd.Parameters.AddWithValue("@RK_ID", Me.RK_ID)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cRechnungsausgangAnhaenge
For Each i In l.getParameterList()
Dim propInfo As PropertyInfo = l.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(l, Nothing)
Else
propInfo.SetValue(l, dr.Item(i.Text))
End If
Next
ANHAENGE.Add(l)
End While
dr.Close()
End Using
End Using
doVorzeichenPOS()
Catch ex As Exception
MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Shared Function LOAD_ANHAENGE_LIST(RK_ID) As List(Of cRechnungsausgangAnhaenge)
Dim ANHAENGE As New List(Of cRechnungsausgangAnhaenge)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM RechnungsausgangAnhaenge WHERE RK_ID=@RK_ID ", conn)
cmd.Parameters.AddWithValue("@RK_ID", RK_ID)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cRechnungsausgangAnhaenge
For Each i In l.getParameterList()
Dim propInfo As PropertyInfo = l.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(l, Nothing)
Else
propInfo.SetValue(l, dr.Item(i.Text))
End If
Next
ANHAENGE.Add(l)
End While
dr.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ANHAENGE
End Function
Public Sub ORDER_POSITIONEN()
Try
' Dim POSITIONEN_Tmp As New List(Of cRechnungsausgangPositionen)
@@ -669,7 +746,7 @@ Public Class cRechnungsausgangPositionen
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerpflichtigerBetrag", SteuerpflichtigerBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerfreierBetrag", SteuerfreierBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerfreierBetrag", SteuerfreierBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AufschubkontoNr", AufschubkontoNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Aufschubfälligkeit", Aufschubfälligkeit))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Prüfsumme berechnen", Prüfsumme_berechnen, "Prüfsumme_berechnen")) '!!!!
@@ -682,7 +759,7 @@ Public Class cRechnungsausgangPositionen
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebBgl", BGebBgl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RePosZeitstempel", RePosZeitstempel))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RePosZeitstempel", RePosZeitstempel))
'list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("upsize_ts", XXXXXXXXXXXXX))
Return list
@@ -725,4 +802,63 @@ Public Class cRechnungsausgangPositionen
End Class
Public Class cRechnungsausgangAnhaenge
Property RK_ID As Integer
Property dsId As Integer
Property anhId As Integer
Property Bezeichnung As String = ""
Dim SQL As New SQL
Sub New()
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RK_ID", RK_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dsId", dsId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("anhId", anhId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Bezeichnung", Bezeichnung))
Return list
End Function
Public Function INSERT(RK_ID) As Boolean
Me.RK_ID = RK_ID
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list)
End Function
Public Function getInsertCmd() As String
Try
'Me.Eingegeben_am = Now
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO RechnungsausgangAnhaenge (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
End Class