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 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") 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 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 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)) 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