Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb

952 lines
43 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
Public Class cOfferteList
Property KundenNr As Object = Nothing
' Property OffertenNr As Object = Nothing
Public LIST As New List(Of cOfferte)
Dim SQL As New SQL
'Dim listTodelete As New List(Of cOfferte)
Sub New(KundenNr, loadPos)
Me.KundenNr = KundenNr
' Me.OffertenNr = OffertenNr
LOAD_LIST(Me.KundenNr, loadPos)
End Sub
Public Sub CLEAR()
LIST.Clear()
End Sub
Public Sub ADD(eb_EMail As String, Optional cc As Boolean = False, Optional bcc As Boolean = False)
' Dim l As New cOfferte
'l.eb_bcc = bcc
'LIST.Add(l)
End Sub
Public Sub LOAD_LIST(KundenNr, loadPos)
Try
LIST.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Offerten WHERE KundenNr=@KundenNr ", conn)
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
' cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cOfferte
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
If loadPos Then l.LOAD_POSITIONEN()
LIST.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
End Sub
'Function SAVE()
' If SQL.doSQLVarList("DELETE FROM tblEmailBenachrichtigung WHERE eb_KundenNr=" & Me.eb_KundenNr & " and eb_ebartId=" & Me.eb_ebartId & " ", "FMZOLL") Then
' For Each l In LIST
' If Not l.INSERT() Then Return False
' Next
' Return True
' Else
' Return False
' End If
'End Function
End Class
Public Class cOfferte
Property KundenNr As Object = Nothing
Property OffertenNr As Object = Nothing
Property FilialenNr As Object = Nothing
Property Pauschalpreis As Object = Nothing
Property Standardofferte As Object = Nothing
Property Besonderheiten As Object = Nothing
Property Eingegeben_am As Object = Nothing
Property Geändert_am As Object = Nothing
Property Sachbearbeiter As Object = Nothing
Property Gesperrt As Object = Nothing
Property Gesperrt_Datum As Object = Nothing
Property Gesperrt_Grund As Object = Nothing
Property SSMA_TimeStamp As Object = Nothing
Property Art As Object = Nothing
Property POSITIONEN As New List(Of cOffertPosition) '= Nothing
Dim SQL As New SQL
Sub New()
End Sub
Sub New(KundenNr, OffertenNr, loadPos)
Me.KundenNr = KundenNr
Me.OffertenNr = OffertenNr
LOAD(KundenNr, OffertenNr, loadPos)
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("KundenNr", KundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Pauschalpreis", Pauschalpreis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Standardofferte", Standardofferte))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Besonderheiten", Besonderheiten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Eingegeben am", Eingegeben_am, "Eingegeben_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Geändert am", Geändert_am, "Geändert_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt", Gesperrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt_Datum", Gesperrt_Datum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt_Grund", Gesperrt_Grund))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Art", Art))
Return list
End Function
Public Sub LOAD(KundenNr, OffertenNr, loadPos)
Try
POSITIONEN.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Offerten WHERE KundenNr=@KundenNr AND OffertenNr=@OffertenNr ", conn)
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
'Dim l As New cOfferte
For Each i In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(i.Text))
End If
Next
If loadPos Then LOAD_POSITIONEN()
End If
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
End Sub
Public Sub LOAD_POSITIONEN()
Try
POSITIONEN.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Offertenpositionen WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr ", conn)
cmd.Parameters.AddWithValue("@KundenNr", Me.KundenNr)
cmd.Parameters.AddWithValue("@OffertenNr", Me.OffertenNr)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cOffertPosition
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
POSITIONEN.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
End Sub
Public Function INSERT() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list)
End Function
Public Function SAVE() As Boolean
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM Offerten WITH(updlock,serializable) WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr ) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Return SQL.doSQLVarList(sqlstr, "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 Offerten (" & 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 getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [Offerten] SET " & str & " WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr ")
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 RESET_STANDARTOFFERTEN(Sachbearbeiter As String, Optional Sprache As String = "DE") As Boolean
'Zuserst alle OffertenPos von dem Offert löschen
If SQL.doSQL("DELETE FROM [Offertenpositionen] WHERE KundenNr=" & Me.KundenNr & " and OffertenNr=" & Me.OffertenNr, "FMZOLL") Then
'jetzt die Standartofferten einfügen
For Each r In SQL.loadDgvBySql("SELECT * FROM [Standardofferten] WHERE [OffertenNr]=" & Me.OffertenNr, "FMZOLL").Rows
Dim P As New cOffertPosition()
Dim Leistung As New cLeistungen(r("LeistungsNr"))
P.KundenNr = Me.KundenNr
P.OffertenNr = Me.OffertenNr
P.LeistungsNr = r("LeistungsNr")
Dim leistBez As String = ""
Select Case Sprache
Case "EN" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_EN")), r("LeistungsBez_EN"), "")
Case "RO" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_RO")), r("LeistungsBez_RO"), "")
Case "TR" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_TR")), r("LeistungsBez_TR"), "")
Case Else
P.LeistungsBez = r("LeistungsBez")
End Select
If leistBez.Length > 30 Then
P.LeistungsBez = leistBez.Substring(0, 30)
Else
P.LeistungsBez = leistBez
End If
If IsDBNull(P.LeistungsBez) OrElse P.LeistungsBez = "" Then P.LeistungsBez = r("LeistungsBez")
P.BerechnungsartNr = Leistung.BerechnungsartNr
P.Preis = r("Preis")
P.Anzahl = r("Anzahl")
P.BGebLeistungsNr = r("BGebLeistungsNr")
P.BGebProzent = r("BGebProzent")
P.BGebMinBetrag = r("BGebMinBetrag")
P.Eingegeben_am = Now
'P.Geändert_am = XXXXXXXXX
If r("BerechnungsartPosInkludiert") IsNot DBNull.Value Then P.BerechnungsartPosInkludiert = r("BerechnungsartPosInkludiert")
If r("BerechnungsartNr") IsNot DBNull.Value Then P.BerechnungsartNr = r("BerechnungsartNr") 'Falls hier, dann übernommen, sonst von Leistung
P.Sachbearbeiter = Sachbearbeiter
'P.Preisänderung = XXXXXXXXX
'P.PreisänderungProzent = XXXXXXXXX
'P.PreisAlt = XXXXXXXXX
Dim LandISO As String = ""
Select Case P.OffertenNr
Case 31, 15, 14
If (P.LeistungsNr = 124 Or P.LeistungsNr = 125 Or P.LeistungsNr = 126) Then
LandISO = P.LeistungsBez.ToString.Substring(P.LeistungsBez.ToString.Length - 2, 2)
End If
End Select
If LandISO <> "" AndAlso LandISO.All(Function(c) Char.IsUpper(c)) Then
P.Land = LandISO
End If
If Not P.INSERT() Then
Return False
End If
Next
Else
Return False
End If
Return True
End Function
Public Function RESET_STANDARTOFFERTEN_FIRMA(Sachbearbeiter As String, Firma As String, Optional Sprache As String = "DE") As Boolean
If Firma = "" Or Firma = "VERAG" Then
Return RESET_STANDARTOFFERTEN(Sachbearbeiter, Sprache)
Else
'Zuserst alle OffertenPos von dem Offert löschen
If SQL.doSQL("DELETE FROM [Offertenpositionen] WHERE KundenNr=" & Me.KundenNr & " and OffertenNr=" & Me.OffertenNr, "FMZOLL") Then
'jetzt die Standartofferten einfügen
For Each r In SQL.loadDgvBySql("SELECT * FROM [StandardoffertenFirma] WHERE Firma='" & Firma & "' AND [OffertenNr]=" & Me.OffertenNr, "FMZOLL").Rows
Dim P As New cOffertPosition()
Dim Leistung As New cLeistungen(r("LeistungsNr"))
P.KundenNr = Me.KundenNr
P.OffertenNr = Me.OffertenNr
P.LeistungsNr = r("LeistungsNr")
Dim leistBez As String = ""
Select Case Sprache
Case "EN" : leistBez = r("LeistungsBez_EN")
Case "RO" : leistBez = r("LeistungsBez_RO")
Case "TR" : leistBez = r("LeistungsBez_TR")
Case Else
P.LeistungsBez = r("LeistungsBez")
End Select
If leistBez.Length > 30 Then
P.LeistungsBez = leistBez.Substring(0, 30)
Else
P.LeistungsBez = leistBez
End If
If IsDBNull(P.LeistungsBez) OrElse P.LeistungsBez = "" Then P.LeistungsBez = r("LeistungsBez")
P.BerechnungsartNr = Leistung.BerechnungsartNr
P.Preis = r("Preis")
P.Anzahl = r("Anzahl")
P.BGebLeistungsNr = r("BGebLeistungsNr")
P.BGebProzent = r("BGebProzent")
P.BGebMinBetrag = r("BGebMinBetrag")
P.Eingegeben_am = Now
'P.Geändert_am = XXXXXXXXX
P.Sachbearbeiter = Sachbearbeiter
If r("BerechnungsartPosInkludiert") IsNot DBNull.Value Then P.BerechnungsartPosInkludiert = r("BerechnungsartPosInkludiert")
If r("BerechnungsartNr") IsNot DBNull.Value Then P.BerechnungsartNr = r("BerechnungsartNr") 'Falls hier, dann übernommen, sonst von Leistung
'P.Preisänderung = XXXXXXXXX
'P.PreisänderungProzent = XXXXXXXXX
'P.PreisAlt = XXXXXXXXX
Dim LandISO As String = ""
Select Case P.OffertenNr
Case 31, 15, 14
LandISO = P.LeistungsBez.ToString.Substring(P.LeistungsBez.ToString.Length - 2, 2)
End Select
If LandISO <> "" AndAlso LandISO.All(Function(c) Char.IsUpper(c)) Then
P.Land = LandISO
End If
If Not P.INSERT() Then
Return False
End If
Next
Else
Return False
End If
Return True
End If
End Function
End Class
Public Class cOffertPosition
Property KundenNr As Object = Nothing
Property OffertenNr As Object = Nothing
Property LeistungsNr As Object = Nothing
Property LeistungsBez As Object = Nothing
Property BerechnungsartNr As Object = Nothing
Property Preis As Object = Nothing
Property Anzahl As Object = Nothing
Property BGebLeistungsNr As Object = Nothing
Property BGebProzent As Object = Nothing
Property BGebMinBetrag As Object = Nothing
Property Eingegeben_am As Object = Nothing
Property Geändert_am As Object = Nothing
Property Sachbearbeiter As Object = Nothing
Property Preisänderung As Object = Nothing
Property PreisänderungProzent As Object = Nothing
Property PreisAlt As Object = Nothing
Property BerechnungsartPosInkludiert As Object = Nothing
Property SSMA_TimeStamp As Object = Nothing
Property Land As Object = Nothing
Property VZ As Object = Nothing
Property RMC As Object = Nothing
Property Fremd As Object = Nothing
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("KundenNr", KundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebLeistungsNr", BGebLeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Eingegeben am", Eingegeben_am, "Eingegeben_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Geändert am", Geändert_am, "Geändert_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preisänderung", Preisänderung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisänderungProzent", PreisänderungProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisAlt", PreisAlt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartPosInkludiert", BerechnungsartPosInkludiert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Land", Land))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZ", VZ))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RMC", RMC))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fremd", Fremd))
Return list
End Function
Public Function INSERT() As Boolean
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 Offertenpositionen (" & 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
Public Class cOfferteArchiv
Property OfID As Integer
Property KundenNr As Object = Nothing
Property OffertenNr As Object = Nothing
Property FilialenNr As Object = Nothing
Property Pauschalpreis As Object = Nothing
Property Standardofferte As Object = Nothing
Property Besonderheiten As Object = Nothing
Property Eingegeben_am As Object = Nothing
Property Geändert_am As Object = Nothing
Property Sachbearbeiter As Object = Nothing
Property Gesperrt As Object = Nothing
Property Gesperrt_Datum As Object = Nothing
Property Gesperrt_Grund As Object = Nothing
Property SSMA_TimeStamp As Object = Nothing
Property Art As Object = Nothing
Property POSITIONEN As New List(Of cOffertPosition) '= Nothing
Dim SQL As New SQL
Sub New()
End Sub
Sub New(KundenNr, OffertenNr, loadPos)
Me.KundenNr = KundenNr
Me.OffertenNr = OffertenNr
LOAD(KundenNr, OffertenNr, loadPos)
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("OfID", OfID, , True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KundenNr", KundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Pauschalpreis", Pauschalpreis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Standardofferte", Standardofferte))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Besonderheiten", Besonderheiten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Eingegeben am", Eingegeben_am, "Eingegeben_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Geändert am", Geändert_am, "Geändert_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt", Gesperrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt_Datum", Gesperrt_Datum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesperrt_Grund", Gesperrt_Grund))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SSMA_TimeStamp", SSMA_TimeStamp))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Art", Art))
Return list
End Function
Public Function UPDATE() As Boolean
Dim sqlstr = " BEGIN " & getUpdateCmd() & " End "
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
OfID = SQL.doSQLVarListID(OfID, sqlstr, "FMZOLL", , list)
Return OfID
End Function
Public Function SAVERETURNID() As Integer
Dim sqlstr = " BEGIN " & getInsertCmd() & " End "
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
OfID = SQL.doSQLVarListID(OfID, sqlstr, "FMZOLL", , list)
Return OfID
End Function
Public Sub LOAD(KundenNr, OffertenNr, loadPos)
Try
POSITIONEN.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM tblOffertenArchiv WHERE KundenNr=@KundenNr And OffertenNr=@OffertenNr ", conn)
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
'Dim l As New cOfferte
For Each i In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(i.Text))
End If
Next
If loadPos Then LOAD_POSITIONEN()
End If
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
End Sub
Public Sub LOAD_POSITIONEN()
Try
POSITIONEN.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
'Using cmd As New SqlCommand("SELECT * FROM OffertenpositionenArchiv WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr ", conn)
Using cmd As New SqlCommand("SELECT * FROM tblOffertenpositionenArchiv WHERE OfID=@OfID ", conn)
cmd.Parameters.AddWithValue("@OfId", Me.OfID)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cOffertPosition
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
POSITIONEN.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
End Sub
Public Function INSERT() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list)
End Function
'Public Function SAVE() As Boolean
' Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM OffertenArchiv WITH(updlock,serializable) WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr ) " &
' " BEGIN " & getUpdateCmd() & " END " &
' " Else " &
' " BEGIN " & getInsertCmd() & " END " &
' " commit tran "
' Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
' Return SQL.doSQLVarList(sqlstr, "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 tblOffertenArchiv (" & 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 getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [OffertenArchiv] SET " & str & " WHERE IfID=@OfID ")
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 RESET_STANDARTOFFERTEN(Sachbearbeiter) As Boolean
' 'Zuserst alle OffertenPos von dem Offert löschen
' If SQL.doSQL("DELETE FROM [OffertenpositionenArchiv] WHERE KundenNr=" & Me.KundenNr & " and OffertenNr=" & Me.OffertenNr, "FMZOLL") Then
' 'jetzt die Standartofferten einfügen
' For Each r In SQL.loadDgvBySql("SELECT * FROM [Standardofferten] WHERE [OffertenNr]=" & Me.OffertenNr, "FMZOLL").Rows
' Dim P As New cOffertPosition()
' Dim Leistung As New cLeistungen(r("LeistungsNr"))
' P.KundenNr = Me.KundenNr
' P.OffertenNr = Me.OffertenNr
' P.LeistungsNr = r("LeistungsNr")
' P.LeistungsBez = r("LeistungsBez")
' P.BerechnungsartNr = Leistung.BerechnungsartNr
' P.Preis = r("Preis")
' P.Anzahl = r("Anzahl")
' P.BGebLeistungsNr = r("BGebLeistungsNr")
' P.BGebProzent = r("BGebProzent")
' P.BGebMinBetrag = r("BGebMinBetrag")
' P.Eingegeben_am = Now
' 'P.Geändert_am = XXXXXXXXX
' If r("BerechnungsartPosInkludiert") IsNot DBNull.Value Then P.BerechnungsartPosInkludiert = r("BerechnungsartPosInkludiert")
' If r("BerechnungsartNr") IsNot DBNull.Value Then P.BerechnungsartNr = r("BerechnungsartNr") 'Falls hier, dann übernommen, sonst von Leistung
' P.Sachbearbeiter = Sachbearbeiter
' 'P.Preisänderung = XXXXXXXXX
' 'P.PreisänderungProzent = XXXXXXXXX
' 'P.PreisAlt = XXXXXXXXX
' If Not P.INSERT() Then
' Return False
' End If
' Next
' Else
' Return False
' End If
' Return True
'End Function
'Public Function RESET_STANDARTOFFERTEN_FIRMA(Sachbearbeiter, Firma) As Boolean
' If Firma = "" Or Firma = "VERAG" Then
' Return RESET_STANDARTOFFERTEN(Sachbearbeiter)
' Else
' 'Zuserst alle OffertenPos von dem Offert löschen
' If SQL.doSQL("DELETE FROM [Offertenpositionen] WHERE KundenNr=" & Me.KundenNr & " and OffertenNr=" & Me.OffertenNr, "FMZOLL") Then
' 'jetzt die Standartofferten einfügen
' For Each r In SQL.loadDgvBySql("SELECT * FROM [StandardoffertenFirma] WHERE Firma='" & Firma & "' AND [OffertenNr]=" & Me.OffertenNr, "FMZOLL").Rows
' Dim P As New cOffertPosition()
' Dim Leistung As New cLeistungen(r("LeistungsNr"))
' P.KundenNr = Me.KundenNr
' P.OffertenNr = Me.OffertenNr
' P.LeistungsNr = r("LeistungsNr")
' P.LeistungsBez = r("LeistungsBez")
' P.BerechnungsartNr = Leistung.BerechnungsartNr
' P.Preis = r("Preis")
' P.Anzahl = r("Anzahl")
' P.BGebLeistungsNr = r("BGebLeistungsNr")
' P.BGebProzent = r("BGebProzent")
' P.BGebMinBetrag = r("BGebMinBetrag")
' P.Eingegeben_am = Now
' 'P.Geändert_am = XXXXXXXXX
' P.Sachbearbeiter = Sachbearbeiter
' If r("BerechnungsartPosInkludiert") IsNot DBNull.Value Then P.BerechnungsartPosInkludiert = r("BerechnungsartPosInkludiert")
' If r("BerechnungsartNr") IsNot DBNull.Value Then P.BerechnungsartNr = r("BerechnungsartNr") 'Falls hier, dann übernommen, sonst von Leistung
' 'P.Preisänderung = XXXXXXXXX
' 'P.PreisänderungProzent = XXXXXXXXX
' 'P.PreisAlt = XXXXXXXXX
' If Not P.INSERT() Then
' Return False
' End If
' Next
' Else
' Return False
' End If
' Return True
' End If
'End Function
End Class
Public Class cOffertPositionArchiv
Property OfID As Integer
Property KundenNr As Object = Nothing
Property OffertenNr As Object = Nothing
Property LeistungsNr As Object = Nothing
Property LeistungsBez As Object = Nothing
Property BerechnungsartNr As Object = Nothing
Property Preis As Object = Nothing
Property Anzahl As Object = Nothing
Property BGebLeistungsNr As Object = Nothing
Property BGebProzent As Object = Nothing
Property BGebMinBetrag As Object = Nothing
Property Eingegeben_am As Object = Nothing
Property Geändert_am As Object = Nothing
Property Sachbearbeiter As Object = Nothing
Property Preisänderung As Object = Nothing
Property PreisänderungProzent As Object = Nothing
Property PreisAlt As Object = Nothing
Property BerechnungsartPosInkludiert As Object = Nothing
Property SSMA_TimeStamp As Object = Nothing
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("OfID", OfID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KundenNr", KundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebLeistungsNr", BGebLeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Eingegeben am", Eingegeben_am, "Eingegeben_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Geändert am", Geändert_am, "Geändert_am"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preisänderung", Preisänderung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisänderungProzent", PreisänderungProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisAlt", PreisAlt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartPosInkludiert", BerechnungsartPosInkludiert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SSMA_TimeStamp", SSMA_TimeStamp))
Return list
End Function
Public Function INSERT() As Boolean
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 tblOffertenpositionenArchiv (" & 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
Public Class cStandardofferten
Property OffertenNr As Integer
Property Währungscode As Object = Nothing
Property LeistungsNr As Integer
Property LeistungsBez As Object = Nothing
Property Preis As Object = Nothing
Property Anzahl As Object = Nothing
Property BGebLeistungsNr As Object = Nothing
Property BGebProzent As Object = Nothing
Property BGebMinBetrag As Object = Nothing
Property BerechnungsartPosInkludiert As Object = Nothing
Property BerechnungsartNr As Object = Nothing
Property LeistungsBez_EN As Object = Nothing
Property LeistungsBez_RO As Object = Nothing
Property LeistungsBez_TR As Object = Nothing
Public hasEntry = False
Dim SQL As New SQL
Sub New(OffertenNr, Währungscode, LeistungsNr, LeistungsBez)
Me.OffertenNr = OffertenNr
Me.Währungscode = Währungscode
Me.LeistungsNr = LeistungsNr
Me.LeistungsBez = LeistungsBez
LOAD()
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("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Währungscode", Währungscode))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebLeistungsNr", BGebLeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartPosInkludiert", BerechnungsartPosInkludiert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_EN", LeistungsBez_EN))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_RO", LeistungsBez_RO))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_TR", LeistungsBez_TR))
Return list
End Function
Public Function SAVE() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM Standardofferten WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Standardofferten WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez ", conn)
cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr)
cmd.Parameters.AddWithValue("@Währungscode", Währungscode)
cmd.Parameters.AddWithValue("@LeistungsNr", LeistungsNr)
cmd.Parameters.AddWithValue("@LeistungsBez", LeistungsBez)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [Standardofferten] SET " & str & " WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Public Function getInsertCmd() As String
Try
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 Standardofferten (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
End Class