Files
SDL/SDL/Classes/cKassenbuch.vb
2025-01-02 15:52:10 +01:00

192 lines
10 KiB
VB.net

Imports System.Data.SqlClient
Public Class cKassenbuch
Property Mandant As String = "VERA"
Property Niederlassung As String = "SUB"
Property Benutzer As Integer = -1
Property Geschäftsjahr As Integer = cRKSV.getGJ_FIRMA(Now, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) ' cRKSV.getGJ(Now) ' IIf(Now.Month = 1, Now.Year - 1, Now.Year)
Property JournalNr As Integer = -1
Property Buchungsdatum As Object = Nothing
Property BelegDat As Object = Nothing
Property BelegNr As Integer = -1
Property Belegart As Integer = 1
Property Buchungstext As String = ""
Property Betrag As Double = 0.0
Property Währung As Integer = 900
Property Kurs As Integer = 1
Property Eingabeart As Integer = 0
Property Konto As Integer = -1
Property Soll As Double = 0.0
Property Haben As Double = 0.0
Property Steuer As Integer = 0
Property Steuerbetrag As Double = 0.0
Property Referenz As String = ""
Property Belegverbuchung As Boolean = False
Property gebucht As Boolean = False
Property Finanzwege As String = ""
Property rksv_id As Object = Nothing
Property rksv_BelegId As Object = Nothing
Property rksv_aktiv As Boolean = False
Dim SQL As New SQL
Public Sub New(Mandant As String, Niederlassung As String, Benutzer As Integer, Geschäftsjahr As Integer, JournalNr As Integer)
Me.Mandant = Mandant
Me.Niederlassung = Niederlassung
Me.Benutzer = Benutzer
Me.Geschäftsjahr = Geschäftsjahr
Me.JournalNr = JournalNr
End Sub
Public Sub New(op As String, Mandant As String, Niederlassung As String, Benutzer As Integer, Geschäftsjahr As Integer, JournalNr As Integer)
Select Case op
Case "LOAD" : LOAD(Mandant, Niederlassung, Benutzer, Geschäftsjahr, JournalNr)
Case "INSERT"
End Select
End Sub
Public Function SAVE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM [tblKassenbuch] WITH(updlock,serializable) WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND Geschäftsjahr=@Geschäftsjahr AND JournalNr=@JournalNr ) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
'MsgBox(sqlstr)
Return SQL.doSQL(sqlstr, "FMZOLL", , list)
End Function
Public Function INSERT() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
' MsgBox(getInsertCmd())
Return SQL.doSQL(getInsertCmd(), "FMZOLL", , list)
End Function
Public Sub LOAD(Mandant As String, Niederlassung As String, Benutzer As Integer, Geschäftsjahr As Integer, JournalNr As Integer)
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblKassenbuch WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND Geschäftsjahr=@Geschäftsjahr AND JournalNr=@JournalNr ", conn)
cmd.Parameters.AddWithValue("@Mandant", Mandant)
cmd.Parameters.AddWithValue("@Niederlassung", Niederlassung)
cmd.Parameters.AddWithValue("@Benutzer", Benutzer)
cmd.Parameters.AddWithValue("@Geschäftsjahr", Geschäftsjahr)
cmd.Parameters.AddWithValue("@JournalNr", JournalNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
Me.Mandant = cSqlDb.checkNullStr(dr.Item("Mandant"))
Me.Niederlassung = cSqlDb.checkNullStr(dr.Item("Niederlassung"))
Me.Benutzer = cSqlDb.checkNullStr(dr.Item("Benutzer"))
Me.Geschäftsjahr = cSqlDb.checkNullInteger(dr.Item("Geschäftsjahr"))
Me.JournalNr = cSqlDb.checkNullInteger(dr.Item("JournalNr"))
Me.Buchungsdatum = cSqlDb.checkNullDate(dr.Item("Buchungsdatum"))
Me.BelegDat = cSqlDb.checkNullDate(dr.Item("BelegDat"))
Me.BelegNr = cSqlDb.checkNullInteger(dr.Item("BelegNr"))
Me.Belegart = cSqlDb.checkNullInteger(dr.Item("Belegart"))
Me.Buchungstext = cSqlDb.checkNullStr(dr.Item("Buchungstext"))
Me.Betrag = cSqlDb.checkNulDbl(dr.Item("Betrag"))
Me.Währung = cSqlDb.checkNullInteger(dr.Item("Währung"))
Me.Kurs = cSqlDb.checkNullInteger(dr.Item("Kurs"))
Me.Eingabeart = cSqlDb.checkNullInteger(dr.Item("Eingabeart"))
Me.Konto = cSqlDb.checkNullInteger(dr.Item("Konto"))
Me.Soll = cSqlDb.checkNulDbl(dr.Item("Soll"))
Me.Haben = cSqlDb.checkNulDbl(dr.Item("Haben"))
Me.Steuer = cSqlDb.checkNullInteger(dr.Item("Steuer"))
Me.Steuerbetrag = cSqlDb.checkNulDbl(dr.Item("Steuerbetrag"))
Me.Referenz = cSqlDb.checkNullStr(dr.Item("Referenz"))
Me.Belegverbuchung = cSqlDb.checkNullBool(dr.Item("Belegverbuchung"))
Me.gebucht = cSqlDb.checkNullBool(dr.Item("gebucht"))
Me.Finanzwege = cSqlDb.checkNullStr(dr.Item("Finanzwege"))
Me.rksv_id = cSqlDb.checkNullReturnValue(dr.Item("rksv_id"), Nothing)
Me.rksv_BelegId = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegId"), Nothing)
Me.rksv_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksv_aktiv"), False)
End If
dr.Close()
End Using
End Using
'Return Nothing
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 Nothing
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.MyListItem2)
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Mandant", Mandant))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Niederlassung", Niederlassung))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Benutzer", Benutzer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Geschäftsjahr", Geschäftsjahr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("JournalNr", JournalNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Buchungsdatum", Buchungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("BelegDat", BelegDat))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("BelegNr", BelegNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Belegart", Belegart))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Buchungstext", Buchungstext))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Betrag", Betrag))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Währung", Währung))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Kurs", Kurs))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Eingabeart", Eingabeart))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Konto", Konto))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Soll", Soll))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Haben", Haben))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Steuer", Steuer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Steuerbetrag", Steuerbetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Referenz", Referenz))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Belegverbuchung", Belegverbuchung))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("gebucht", gebucht))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Finanzwege", Finanzwege))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_id", rksv_id))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_BelegId", rksv_BelegId))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_aktiv", rksv_aktiv))
Return list
End Function
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
For Each i In list
str &= "[" & i.Text & "] = @" & i.Text.Replace("-", "").Replace(" ", "") & ","
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [tblKassenbuch] SET " & str & " WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND Geschäftsjahr=@Geschäftsjahr AND JournalNr=@JournalNr ")
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
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
str &= "[" & i.Text & "],"
values &= "@" & i.Text.Replace("-", "").Replace(" ", "") & ","
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO [tblKassenbuch] (" & 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