Files
SDL/SDL/Classes/cEABeleg.vb
2024-10-02 08:59:41 +00:00

623 lines
35 KiB
VB.net

Imports System.Data.SqlClient
Public Class EABelegPositionen
Dim SQL As New SQL
Property Mandant As String = "XXXX"
Property Niederlassung As String = "XXX"
Property Benutzer As Integer = -1
Property BelegDat As DateTime = Now
Property BelegNr As Integer = -1
Property PreislistenPos As Integer = -1
Property LeistungsNr As Integer = -1
Property LeistungsBez As String = ""
Property Leistungsbeschreibung As String = ""
Property Abfertigungsart As Object = Nothing 'int
Property PreislistenNr As Object = Nothing 'int
Property PreistabellenNr As Object = Nothing 'int
Property Preis As Double = 0
Property TW1 As String = Nothing
Property TW2 As String = Nothing
Property Anzahl As Integer = 1
Property Anzahlmultiplikator As Integer = 0
Property Betrag As Double = 0
Property Preisbindung As Integer = 0
Property EABPo_Zeitstempel As DateTime = Now
Property FilialenNr As Integer = -1
Property AbfertigungsNr As Integer = -1
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 tblEABelegposition WITH(updlock,serializable) WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat AND PreislistenPos=@PreislistenPos AND LeistungsNr=@LeistungsNr AND FilialenNr=@FilialenNr AND AbfertigungsNr=@AbfertigungsNr) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
'MsgBox(sqlstr)
Return SQL.doSQL(sqlstr, "FMZOLL", , list)
End Function
Public Sub LOAD(Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date, PreislistenPos As Integer, LeistungsNr As Integer) ' As EABeleg
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM [tblEABelegposition] WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat AND PreislistenPos=@PreislistenPos AND LeistungsNr=@LeistungsNr AND FilialenNr=@FilialenNr AND AbfertigungsNr=@AbfertigungsNr", conn)
cmd.Parameters.AddWithValue("@Mandant", Mandant)
cmd.Parameters.AddWithValue("@Niederlassung", Niederlassung)
cmd.Parameters.AddWithValue("@Benutzer", Benutzer)
cmd.Parameters.AddWithValue("@BelegNr", BelegNr)
cmd.Parameters.AddWithValue("@BelegDat", BelegDat)
cmd.Parameters.AddWithValue("@PreislistenPos", PreislistenPos)
cmd.Parameters.AddWithValue("@LeistungsNr", LeistungsNr)
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.BelegDat = cSqlDb.checkNullDate(dr.Item("BelegDat"))
Me.BelegNr = cSqlDb.checkNullInteger(dr.Item("BelegNr"))
Me.PreislistenPos = cSqlDb.checkNullInteger(dr.Item("PreislistenPos"))
Me.LeistungsNr = cSqlDb.checkNullInteger(dr.Item("LeistungsNr"))
Me.LeistungsBez = cSqlDb.checkNullStr(dr.Item("LeistungsBez"))
Me.Leistungsbeschreibung = cSqlDb.checkNullStr(dr.Item("Leistungsbeschreibung"))
Me.Abfertigungsart = cSqlDb.checkNullInteger(dr.Item("Abfertigungsart"))
Me.PreislistenNr = cSqlDb.checkNullInteger(dr.Item("PreislistenNr"))
Me.PreistabellenNr = cSqlDb.checkNullInteger(dr.Item("PreistabellenNr"))
Me.Preis = cSqlDb.checkNulDbl(dr.Item("Preis"))
Me.TW1 = cSqlDb.checkNullStr(dr.Item("TW1"))
Me.TW2 = cSqlDb.checkNullStr(dr.Item("TW2"))
Me.Anzahl = cSqlDb.checkNullInteger(dr.Item("Anzahl"))
Me.Anzahlmultiplikator = cSqlDb.checkNullStr(dr.Item("Anzahlmultiplikator"))
Me.Betrag = cSqlDb.checkNulDbl(dr.Item("Betrag"))
' MsgBox(cSqlDb.checkNulDbl(dr.Item("Betrag"))
Me.Preisbindung = cSqlDb.checkNullBool(dr.Item("Preisbindung"))
Me.EABPo_Zeitstempel = cSqlDb.checkNullStr(dr.Item("EABPo_Zeitstempel"))
Me.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr"))
Me.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr"))
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("BelegDat", BelegDat.ToString("yyyy-MM-dd HH:mm:ss.fff"))) '.ToShortDateString))'("dd.MM.yyyy HH:mm")))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("BelegDat", BelegDat.ToShortDateString)) '.ToShortDateString))'("dd.MM.yyyy HH:mm")))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("BelegNr", BelegNr))
' MsgBox(Mandant)
' MsgBox(Niederlassung)
' MsgBox(Benutzer)
'MsgBox(BelegDat)
' MsgBox(BelegNr)
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("PreislistenPos", PreislistenPos))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LeistungsNr", LeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LeistungsBez", LeistungsBez))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Leistungsbeschreibung", Leistungsbeschreibung))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Abfertigungsart", Abfertigungsart))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("PreislistenNr", PreislistenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("PreistabellenNr", PreistabellenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Preis", Preis))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("TW1", TW1))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("TW2", TW2))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Anzahl", Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Anzahlmultiplikator", Anzahlmultiplikator))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Betrag", Betrag))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Preisbindung", Preisbindung))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("AbfertigungsNr", AbfertigungsNr))
' list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("EABPo_Zeitstempel", EABPo_Zeitstempel))
'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties()
'If p.CanRead Then
'Dim name = p.Name
' list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2(name, p.GetValue(Me, Nothing)))
' End If
' Next
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 tblEABelegposition SET " & str & " WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat AND PreislistenPos=@PreislistenPos AND LeistungsNr=@LeistungsNr AND FilialenNr=@FilialenNr AND AbfertigungsNr=@AbfertigungsNr")
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 tblEABelegposition (" & 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
Public Function UPDATE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
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. ','
Dim sqlstr = (" UPDATE tblEABelegposition SET " & str & " WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat AND PreislistenPos=@PreislistenPos AND LeistungsNr=@LeistungsNr AND FilialenNr=@FilialenNr AND AbfertigungsNr=@AbfertigungsNr")
Using cmd As New SqlCommand(sqlstr, cSqlDb.GetNewOpenConnectionFMZOLL())
For Each i In list
cmd.Parameters.AddWithValue("@" & i.Text.Replace("-", "").Replace(" ", "") & "", IIf(i.Value Is Nothing, DBNull.Value, i.Value))
Next
cmd.ExecuteNonQuery()
End Using
Return True
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 False
End Function
Public Function INSERT() 'obj As Object, tablename As String, Optional conn_art As String = "SDL") As Boolean
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. ','
Dim sqlstr = (" INSERT INTO tblEABelegposition (" & str & ") VALUES(" & values & ") ")
MsgBox(sqlstr)
Using cmd As New SqlCommand(sqlstr, cSqlDb.GetNewOpenConnectionFMZOLL())
For Each i In list
cmd.Parameters.AddWithValue("@" & i.Text.Replace("-", "").Replace(" ", "") & "", IIf(i.Value Is Nothing, DBNull.Value, i.Value))
Next
cmd.ExecuteNonQuery()
End Using
Return True
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 False
End Function
End Class
Public Class EABeleg
Dim SQL As New SQL
Property Mandant As String = "XXXX"
Property Niederlassung As String = "XXX"
Property Benutzer As Integer = -1
Property BelegDat As DateTime = Now
Property BelegNr As Integer = -1
Property Belegart As Integer = 1
Property FilialenNr As Integer = -1
Property AbfertigungsNr As Integer = -1
Property Ordnungsbegriff As String = ""
Property KundenNr As Integer = -1
Property Name1 As String = ""
Property Name2 As String = ""
Property Straße As String = ""
Property LandKz As String = ""
Property PLZ As String = ""
Property Ort As String = ""
Property UstIdKz As String = ""
Property UstIdNr As String = ""
Property Frachtführer As String = ""
Property FrachtführerKundenNr As Integer = -1
Property LKW_Kennzeichen As String = ""
Property Fahrer As String = ""
Property Passnummer As String = ""
Property PreislistenNr As String = ""
Property Steuerschlüssel As String = ""
Property DruckDatumUhrzeit As Object = Nothing
Property storniert As Boolean = False
Property Stornogrund As String = ""
Property gebucht As Boolean = False
Property gebuchtStorno As Boolean = False
Property SgutKompl As Object = Nothing
Property rksv_id As Integer = Nothing
Property rksv_BelegId As Integer = Nothing
Property rksv_BelegIdStorno As Object = Nothing
Property rksv_jws As String = Nothing
Property rksv_qr As String = Nothing
Property rksv_umsatz As Double = Nothing
Property rksv_aktiv As Boolean = False
Property Beleg_TYP As String = Nothing
Property Auftraggeber_KdAuftragsnummer As Object = Nothing
Property Auftraggeber_Provision As Object = Nothing
Property LKW_Id As Object = Nothing
Property LKW_Beleg As Object = Nothing
Property Benutzer_LG As Object = Nothing
Property POS As New List(Of EABelegPositionen)
Public Sub New(Mandant As String, Niederlassung As String, Benutzer As Integer)
Me.Mandant = Mandant
Me.Niederlassung = Niederlassung
Me.Benutzer = Benutzer
End Sub
Public Sub New(op As String, Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date)
Select Case op
Case "LOAD" : LOAD(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
Case "INSERT"
End Select
End Sub
Public Sub LOAD(Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date, Optional loadPosAswell As Boolean = True) ' As EABeleg
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM [tblEABelegnummer] WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat", conn)
cmd.Parameters.AddWithValue("@Mandant", Mandant)
cmd.Parameters.AddWithValue("@Niederlassung", Niederlassung)
cmd.Parameters.AddWithValue("@Benutzer", Benutzer)
cmd.Parameters.AddWithValue("@BelegNr", BelegNr)
cmd.Parameters.AddWithValue("@BelegDat", BelegDat.ToShortDateString)
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.checkNullInteger(dr.Item("Benutzer"))
Me.BelegDat = cSqlDb.checkNullDate(dr.Item("BelegDat"))
Me.BelegNr = cSqlDb.checkNullInteger(dr.Item("BelegNr"))
Me.Belegart = cSqlDb.checkNullInteger(dr.Item("Belegart"))
Me.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr"))
Me.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr"))
Me.Ordnungsbegriff = cSqlDb.checkNullStr(dr.Item("Ordnungsbegriff"))
Me.KundenNr = cSqlDb.checkNullInteger(dr.Item("KundenNr"))
Me.Name1 = cSqlDb.checkNullStr(dr.Item("Name1"))
Me.Name2 = cSqlDb.checkNullStr(dr.Item("Name2"))
Me.Straße = cSqlDb.checkNullStr(dr.Item("Straße"))
Me.LandKz = cSqlDb.checkNullStr(dr.Item("LandKz"))
Me.PLZ = cSqlDb.checkNullStr(dr.Item("PLZ"))
Me.Ort = cSqlDb.checkNullStr(dr.Item("Ort"))
Me.UstIdKz = cSqlDb.checkNullStr(dr.Item("UstIdKz"))
Me.UstIdNr = cSqlDb.checkNullStr(dr.Item("UstIdNr"))
Me.Frachtführer = cSqlDb.checkNullStr(dr.Item("Frachtführer"))
Me.FrachtführerKundenNr = cSqlDb.checkNullInteger(dr.Item("FrachtführerKundenNr"))
Me.LKW_Kennzeichen = cSqlDb.checkNullStr(dr.Item("LKW Kennzeichen"))
Me.Fahrer = cSqlDb.checkNullStr(dr.Item("Fahrer"))
Me.Passnummer = cSqlDb.checkNullStr(dr.Item("Passnummer"))
Me.PreislistenNr = cSqlDb.checkNullInteger(dr.Item("PreislistenNr"))
Me.Steuerschlüssel = cSqlDb.checkNullInteger(dr.Item("Steuerschlüssel"))
Me.DruckDatumUhrzeit = cSqlDb.checkNullDateNothing(dr.Item("DruckDatumUhrzeit"))
Me.storniert = cSqlDb.checkNullStr(dr.Item("storniert"))
Me.Stornogrund = cSqlDb.checkNullStr(dr.Item("Stornogrund"))
Me.gebucht = cSqlDb.checkNullBool(dr.Item("gebucht"))
Me.gebuchtStorno = cSqlDb.checkNullBool(dr.Item("gebuchtStorno"))
Me.SgutKompl = cSqlDb.checkNullReturnValue(dr.Item("SgutKompl"), Nothing)
Me.rksv_BelegId = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegId"), Nothing)
Me.rksv_BelegIdStorno = cSqlDb.checkNullReturnValue(dr.Item("rksv_BelegIdStorno"), Nothing)
Me.rksv_id = cSqlDb.checkNullReturnValue(dr.Item("rksv_id"), Nothing)
Me.rksv_jws = cSqlDb.checkNullReturnValue(dr.Item("rksv_jws"), Nothing)
Me.rksv_qr = cSqlDb.checkNullReturnValue(dr.Item("rksv_qr"), Nothing)
Me.rksv_umsatz = cSqlDb.checkNullReturnValue(dr.Item("rksv_umsatz"), Nothing)
Me.rksv_aktiv = cSqlDb.checkNullReturnValue(dr.Item("rksv_aktiv"), False)
Me.Beleg_TYP = cSqlDb.checkNullReturnValue(dr.Item("Beleg_TYP"), Nothing)
Me.Auftraggeber_KdAuftragsnummer = cSqlDb.checkNullReturnValue(dr.Item("Auftraggeber_KdAuftragsnummer"), Nothing)
Me.Auftraggeber_Provision = cSqlDb.checkNullReturnValue(dr.Item("Auftraggeber_Provision"), Nothing)
Me.LKW_Id = cSqlDb.checkNullReturnValue(dr.Item("LKW_Id"), Nothing)
Me.LKW_Beleg = cSqlDb.checkNullReturnValue(dr.Item("LKW_Beleg"), Nothing)
Me.Benutzer_LG = cSqlDb.checkNullReturnValue(dr.Item("Benutzer_LG"), Nothing)
If loadPosAswell Then POS = LOAD_POS_List(Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
' MsgBox(POS.Count)
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
Public Function LOAD_POS_List(Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date) As List(Of EABelegPositionen)
Dim ll As New List(Of EABelegPositionen)
Try
Using conn As SqlConnection = cSqlDb.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM [tblEABelegposition] WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ", conn)
cmd.Parameters.AddWithValue("@Mandant", Mandant)
cmd.Parameters.AddWithValue("@Niederlassung", Niederlassung)
cmd.Parameters.AddWithValue("@Benutzer", Benutzer)
cmd.Parameters.AddWithValue("@BelegNr", BelegNr)
cmd.Parameters.AddWithValue("@BelegDat", BelegDat.ToShortDateString)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New EABelegPositionen
l.Mandant = cSqlDb.checkNullStr(dr.Item("Mandant"))
l.Niederlassung = cSqlDb.checkNullStr(dr.Item("Niederlassung"))
l.Benutzer = cSqlDb.checkNullStr(dr.Item("Benutzer"))
l.BelegDat = cSqlDb.checkNullDate(dr.Item("BelegDat"))
l.BelegNr = cSqlDb.checkNullStr(dr.Item("BelegNr"))
l.PreislistenPos = cSqlDb.checkNullInteger(dr.Item("PreislistenPos"))
l.LeistungsNr = cSqlDb.checkNullInteger(dr.Item("LeistungsNr"))
l.LeistungsBez = cSqlDb.checkNullStr(dr.Item("LeistungsBez"))
l.Leistungsbeschreibung = cSqlDb.checkNullStr(dr.Item("Leistungsbeschreibung"))
l.Abfertigungsart = cSqlDb.checkNullInteger(dr.Item("Abfertigungsart"))
l.PreislistenNr = cSqlDb.checkNullInteger(dr.Item("PreislistenNr"))
l.PreistabellenNr = cSqlDb.checkNullInteger(dr.Item("PreistabellenNr"))
l.Preis = cSqlDb.checkNulDbl(dr.Item("Preis"))
l.TW1 = cSqlDb.checkNullStr(dr.Item("TW1"))
l.TW2 = cSqlDb.checkNullStr(dr.Item("TW2"))
l.Anzahl = cSqlDb.checkNullInteger(dr.Item("Anzahl"))
l.Anzahlmultiplikator = cSqlDb.checkNullStr(dr.Item("Anzahlmultiplikator"))
l.Betrag = cSqlDb.checkNulDbl(dr.Item("Betrag"))
l.Preisbindung = cSqlDb.checkNullBool(dr.Item("Preisbindung"))
l.EABPo_Zeitstempel = cSqlDb.checkNullStr(dr.Item("EABPo_Zeitstempel"))
l.AbfertigungsNr = cSqlDb.checkNullInteger(dr.Item("AbfertigungsNr"))
l.FilialenNr = cSqlDb.checkNullInteger(dr.Item("FilialenNr"))
ll.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 ll
End Function
Public Function SAVE(Optional savePOSaswell As Boolean = True) As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim list = getParameterList()
If Me.BelegNr < 0 Then
Me.BelegNr = SQL.getValueTxtBySql("SELECT isNull(MAX(BelegNr)+1,1) as BelegNr FROM tblEABelegnummer WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer ", "FMZOLL", list)
For Each p In Me.POS : p.BelegNr = BelegNr : Next ' Alle POS durchlaufen, BelgNr ersetzen
list = getParameterList() 'BelegNr neu laden
End If
SQL.doSQL(" BEGIN TRAN IF EXISTS(SELECT * FROM tblEABelegnummer WITH(updlock,serializable) WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ) " &
" BEGIN " & getUpdateCmd() & " END " &
" ELSE " &
" BEGIN " & getInsertCmd() & " END " &
" COMMIT TRAN", "FMZOLL", , list)
' MsgBox(POS.Count)
If savePOSaswell Then SAVE_POS_List()
Return True
End Function
Public Function SAVE_POS_List() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
If POS.Count = 0 Then Return True
Dim b As Boolean = True
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
SQL.doSQL(" DELETE FROM tblEABelegposition WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ", "FMZOLL", , list)
For Each p In POS
If p.SAVE() = False Then b = False
Next
Return b
End Function
Public Function DEL_POS_List() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
If POS.Count = 0 Then Return True
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Return SQL.doSQL(" DELETE FROM tblEABelegposition WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ", "FMZOLL", , list)
End Function
Public Function DELETE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
DEL_POS_List()
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Return SQL.doSQL(" DELETE FROM tblEABelegnummer WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ", "FMZOLL", , list)
End Function
Public Function getInsertCmd() As String 'obj As Object, tablename As String, Optional conn_art As String = "SDL") As Boolean
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
Dim name = i.Text
If name = "LKWKennzeichen" Then name = "LKW Kennzeichen"
str &= "[" & name & "],"
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 tblEABelegnummer (" & 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
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("BelegDat", BelegDat.ToString("yyyy-MM-dd HH:mm:ss.fff"))) '.ToString("dd.MM.yyyy HH:mm")))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("BelegDat", BelegDat.ToShortDateString)) '.ToString("dd.MM.yyyy HH:mm")))
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("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("AbfertigungsNr", AbfertigungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Ordnungsbegriff", Ordnungsbegriff))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("KundenNr", KundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Name1", Name1))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Name2", Name2))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Straße", Straße))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LandKz", LandKz))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("PLZ", PLZ))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Ort", Ort))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("UstIdKz", UstIdKz))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("UstIdNr", UstIdNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Frachtführer", Frachtführer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("FrachtführerKundenNr", FrachtführerKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LKWKennzeichen", LKW_Kennzeichen))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Fahrer", Fahrer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Passnummer", Passnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("PreislistenNr", PreislistenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Steuerschlüssel", Steuerschlüssel))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("DruckDatumUhrzeit", IIf(DruckDatumUhrzeit Is Nothing, DBNull.Value, CDate(DruckDatumUhrzeit))))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("storniert", storniert))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Stornogrund", Stornogrund))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("gebucht", gebucht))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("gebuchtStorno", gebuchtStorno))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("SgutKompl", SgutKompl))
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_BelegIdStorno", rksv_BelegIdStorno))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_jws", rksv_jws))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_qr", rksv_qr))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_umsatz", rksv_umsatz))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("rksv_aktiv", rksv_aktiv))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Beleg_TYP", Beleg_TYP))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Auftraggeber_KdAuftragsnummer", Auftraggeber_KdAuftragsnummer))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Auftraggeber_Provision", Auftraggeber_Provision))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LKW_Id", LKW_Id))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("LKW_Beleg", LKW_Beleg))
list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2("Benutzer_LG", Benutzer_LG))
'For Each p As System.Reflection.PropertyInfo In Me.GetType().GetProperties()
'If p.CanRead Then
'Dim name = p.Name
' If name = "LKW_Kennzeichen" Then name = "LKW Kennzeichen"
' list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem2(name, p.GetValue(Me, Nothing)))
' End If
' Next
Return list
End Function
Public Function getUpdateCmd() As String 'obj As Object, tablename As String, where As String) As Boolean
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
For Each i In list
Dim name = i.Text
If name = "LKWKennzeichen" Then name = "LKW Kennzeichen"
str &= "[" & name & "] = @" & i.Text.Replace("-", "").Replace(" ", "") & ","
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE tblEABelegnummer SET " & str & " WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ")
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 INSERT() 'obj As Object, tablename As String, Optional conn_art As String = "SDL") As Boolean
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
Dim name = i.Text
If name = "LKWKennzeichen" Then name = "LKW Kennzeichen"
str &= "[" & name & "],"
values &= "@" & i.Text.Replace("-", "").Replace(" ", "") & ","
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Dim sqlstr = (" INSERT INTO tblEABelegnummer (" & str & ") VALUES(" & values & ") ")
Using cmd As New SqlCommand(sqlstr, cSqlDb.GetNewOpenConnectionFMZOLL())
For Each i In list
cmd.Parameters.AddWithValue("@" & i.Text.Replace("-", "").Replace(" ", "") & "", IIf(i.Value Is Nothing, DBNull.Value, i.Value))
Next
cmd.ExecuteNonQuery()
End Using
Return True
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 False
End Function
Public Function UPDATE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.MyListItem2) = getParameterList()
Dim str As String = ""
For Each i In list
Dim name = i.Text
If name = "LKWKennzeichen" Then name = "LKW Kennzeichen"
str &= "[" & name & "] = @" & i.Text.Replace("-", "").Replace(" ", "") & ","
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Dim sqlstr = (" UPDATE tblEABelegnummer SET " & str & " WHERE [Mandant]=@Mandant AND Niederlassung=@Niederlassung AND Benutzer=@Benutzer AND BelegNr=@BelegNr AND CAST(BelegDat as date)=@BelegDat ")
Using cmd As New SqlCommand(sqlstr, cSqlDb.GetNewOpenConnectionFMZOLL())
For Each i In list
cmd.Parameters.AddWithValue("@" & i.Text.Replace("-", "").Replace(" ", "") & "", IIf(i.Value Is Nothing, DBNull.Value, i.Value))
Next
cmd.ExecuteNonQuery()
End Using
Return True
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 False
End Function
End Class