diff --git a/SDL/kunden/usrCntlOfferte.Designer.vb b/SDL/kunden/usrCntlOfferte.Designer.vb index 8e566247..9fc28ad1 100644 --- a/SDL/kunden/usrCntlOfferte.Designer.vb +++ b/SDL/kunden/usrCntlOfferte.Designer.vb @@ -60,6 +60,8 @@ Partial Class usrCntlOfferte Me.btnCreateOffert = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.cbxArchivierteOfferten = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.cbxArchivierteOffertenAnzeigen = New System.Windows.Forms.CheckBox() + Me.lblArchivierteOfferten = New System.Windows.Forms.Label() + Me.lblEditMode = New System.Windows.Forms.Label() CType(Me.dgvOfferteDetails, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvOfferte, System.ComponentModel.ISupportInitialize).BeginInit() Me.cntxtAddSdl.SuspendLayout() @@ -71,7 +73,7 @@ Partial Class usrCntlOfferte ' Me.lblBesonderheiten.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.lblBesonderheiten.AutoSize = True - Me.lblBesonderheiten.Location = New System.Drawing.Point(478, 440) + Me.lblBesonderheiten.Location = New System.Drawing.Point(478, 442) Me.lblBesonderheiten.Name = "lblBesonderheiten" Me.lblBesonderheiten.Size = New System.Drawing.Size(84, 13) Me.lblBesonderheiten.TabIndex = 18 @@ -81,9 +83,9 @@ Partial Class usrCntlOfferte ' Me.rtbBesonderheiten.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.rtbBesonderheiten.Location = New System.Drawing.Point(478, 456) + Me.rtbBesonderheiten.Location = New System.Drawing.Point(478, 458) Me.rtbBesonderheiten.Name = "rtbBesonderheiten" - Me.rtbBesonderheiten.Size = New System.Drawing.Size(402, 116) + Me.rtbBesonderheiten.Size = New System.Drawing.Size(552, 116) Me.rtbBesonderheiten.TabIndex = 19 Me.rtbBesonderheiten.Text = "" ' @@ -128,7 +130,7 @@ Partial Class usrCntlOfferte Me.dgvOfferteDetails.Name = "dgvOfferteDetails" Me.dgvOfferteDetails.RowHeadersVisible = False Me.dgvOfferteDetails.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvOfferteDetails.Size = New System.Drawing.Size(646, 345) + Me.dgvOfferteDetails.Size = New System.Drawing.Size(796, 347) Me.dgvOfferteDetails.TabIndex = 5 ' 'dgvOfferte @@ -149,7 +151,7 @@ Partial Class usrCntlOfferte Me.dgvOfferte.ReadOnly = True Me.dgvOfferte.RowHeadersVisible = False Me.dgvOfferte.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvOfferte.Size = New System.Drawing.Size(227, 345) + Me.dgvOfferte.Size = New System.Drawing.Size(227, 347) Me.dgvOfferte.TabIndex = 4 ' 'FlatButton5 @@ -206,7 +208,7 @@ Partial Class usrCntlOfferte Me.btnDeleteLeistung.BackgroundImage = Global.SDL.My.Resources.Resources.del Me.btnDeleteLeistung.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnDeleteLeistung.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnDeleteLeistung.Location = New System.Drawing.Point(348, 226) + Me.btnDeleteLeistung.Location = New System.Drawing.Point(348, 228) Me.btnDeleteLeistung.Name = "btnDeleteLeistung" Me.btnDeleteLeistung.Size = New System.Drawing.Size(28, 23) Me.btnDeleteLeistung.TabIndex = 8 @@ -219,7 +221,7 @@ Partial Class usrCntlOfferte Me.btnAddLeistung.BackgroundImage = Global.SDL.My.Resources.Resources.plus Me.btnAddLeistung.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnAddLeistung.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnAddLeistung.Location = New System.Drawing.Point(375, 226) + Me.btnAddLeistung.Location = New System.Drawing.Point(375, 228) Me.btnAddLeistung.Name = "btnAddLeistung" Me.btnAddLeistung.Size = New System.Drawing.Size(28, 23) Me.btnAddLeistung.TabIndex = 9 @@ -245,7 +247,7 @@ Partial Class usrCntlOfferte Me.btnOfferteSpeichern.ForeColor = System.Drawing.Color.Black Me.btnOfferteSpeichern.Image = Global.SDL.My.Resources.Resources.save Me.btnOfferteSpeichern.ImageAlign = System.Drawing.ContentAlignment.TopLeft - Me.btnOfferteSpeichern.Location = New System.Drawing.Point(513, 0) + Me.btnOfferteSpeichern.Location = New System.Drawing.Point(663, 0) Me.btnOfferteSpeichern.Name = "btnOfferteSpeichern" Me.btnOfferteSpeichern.Size = New System.Drawing.Size(133, 36) Me.btnOfferteSpeichern.TabIndex = 15 @@ -360,7 +362,7 @@ Partial Class usrCntlOfferte Me.Label2.AutoSize = True Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Label2.ForeColor = System.Drawing.Color.Red - Me.Label2.Location = New System.Drawing.Point(420, 281) + Me.Label2.Location = New System.Drawing.Point(420, 283) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(50, 13) Me.Label2.TabIndex = 7 @@ -392,9 +394,9 @@ Partial Class usrCntlOfferte Me.pnlEdit.Controls.Add(Me.btnOfferteSpeichern) Me.pnlEdit.Controls.Add(Me.cboLeistungenAdd) Me.pnlEdit.Controls.Add(Me.MyTextBox1) - Me.pnlEdit.Location = New System.Drawing.Point(235, 377) + Me.pnlEdit.Location = New System.Drawing.Point(235, 379) Me.pnlEdit.Name = "pnlEdit" - Me.pnlEdit.Size = New System.Drawing.Size(646, 60) + Me.pnlEdit.Size = New System.Drawing.Size(796, 60) Me.pnlEdit.TabIndex = 20 ' 'cbxAutoFakturierung @@ -402,7 +404,7 @@ Partial Class usrCntlOfferte Me.cbxAutoFakturierung.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.cbxAutoFakturierung.AutoSize = True Me.cbxAutoFakturierung.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxAutoFakturierung.Location = New System.Drawing.Point(389, 6) + Me.cbxAutoFakturierung.Location = New System.Drawing.Point(539, 6) Me.cbxAutoFakturierung.Name = "cbxAutoFakturierung" Me.cbxAutoFakturierung.Size = New System.Drawing.Size(118, 17) Me.cbxAutoFakturierung.TabIndex = 32 @@ -460,9 +462,10 @@ Partial Class usrCntlOfferte ' 'btnStandardLaden ' - Me.btnStandardLaden.Location = New System.Drawing.Point(287, 6) + Me.btnStandardLaden.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnStandardLaden.Location = New System.Drawing.Point(293, 7) Me.btnStandardLaden.Name = "btnStandardLaden" - Me.btnStandardLaden.Size = New System.Drawing.Size(154, 23) + Me.btnStandardLaden.Size = New System.Drawing.Size(121, 25) Me.btnStandardLaden.TabIndex = 23 Me.btnStandardLaden.Text = "Standardoffert laden" Me.btnStandardLaden.UseVisualStyleBackColor = True @@ -544,7 +547,7 @@ Partial Class usrCntlOfferte Me.cbxArchivierteOfferten._allowFreiText = False Me.cbxArchivierteOfferten._value = "" Me.cbxArchivierteOfferten.FormattingEnabled = True - Me.cbxArchivierteOfferten.Location = New System.Drawing.Point(705, 8) + Me.cbxArchivierteOfferten.Location = New System.Drawing.Point(600, 3) Me.cbxArchivierteOfferten.Name = "cbxArchivierteOfferten" Me.cbxArchivierteOfferten.Size = New System.Drawing.Size(121, 21) Me.cbxArchivierteOfferten.TabIndex = 24 @@ -553,18 +556,43 @@ Partial Class usrCntlOfferte 'cbxArchivierteOffertenAnzeigen ' Me.cbxArchivierteOffertenAnzeigen.AutoSize = True - Me.cbxArchivierteOffertenAnzeigen.Location = New System.Drawing.Point(514, 10) + Me.cbxArchivierteOffertenAnzeigen.Location = New System.Drawing.Point(432, 9) Me.cbxArchivierteOffertenAnzeigen.Name = "cbxArchivierteOffertenAnzeigen" Me.cbxArchivierteOffertenAnzeigen.Size = New System.Drawing.Size(162, 17) Me.cbxArchivierteOffertenAnzeigen.TabIndex = 25 Me.cbxArchivierteOffertenAnzeigen.Text = "archivierte Offerten anzeigen" Me.cbxArchivierteOffertenAnzeigen.UseVisualStyleBackColor = True ' + 'lblArchivierteOfferten + ' + Me.lblArchivierteOfferten.AutoSize = True + Me.lblArchivierteOfferten.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblArchivierteOfferten.ForeColor = System.Drawing.Color.Red + Me.lblArchivierteOfferten.Location = New System.Drawing.Point(727, 9) + Me.lblArchivierteOfferten.Name = "lblArchivierteOfferten" + Me.lblArchivierteOfferten.Size = New System.Drawing.Size(118, 13) + Me.lblArchivierteOfferten.TabIndex = 26 + Me.lblArchivierteOfferten.Text = "Archivierte Offerten" + Me.lblArchivierteOfferten.Visible = False + ' + 'lblEditMode + ' + Me.lblEditMode.AutoSize = True + Me.lblEditMode.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEditMode.ForeColor = System.Drawing.Color.Red + Me.lblEditMode.Location = New System.Drawing.Point(895, 9) + Me.lblEditMode.Name = "lblEditMode" + Me.lblEditMode.Size = New System.Drawing.Size(64, 13) + Me.lblEditMode.TabIndex = 28 + Me.lblEditMode.Text = "Edit Mode" + ' 'usrCntlOfferte ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White + Me.Controls.Add(Me.lblEditMode) + Me.Controls.Add(Me.lblArchivierteOfferten) Me.Controls.Add(Me.cbxArchivierteOffertenAnzeigen) Me.Controls.Add(Me.cbxArchivierteOfferten) Me.Controls.Add(Me.btnStandardLaden) @@ -585,7 +613,7 @@ Partial Class usrCntlOfferte Me.Controls.Add(Me.pnlEdit) Me.Margin = New System.Windows.Forms.Padding(2) Me.Name = "usrCntlOfferte" - Me.Size = New System.Drawing.Size(891, 574) + Me.Size = New System.Drawing.Size(1041, 576) CType(Me.dgvOfferteDetails, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.dgvOfferte, System.ComponentModel.ISupportInitialize).EndInit() Me.cntxtAddSdl.ResumeLayout(False) @@ -633,4 +661,6 @@ Partial Class usrCntlOfferte Friend WithEvents btnStandardLaden As Button Friend WithEvents cbxArchivierteOfferten As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents cbxArchivierteOffertenAnzeigen As CheckBox + Friend WithEvents lblArchivierteOfferten As Label + Friend WithEvents lblEditMode As Label End Class diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index 11b889ff..84158e3a 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -1,5 +1,6 @@ -Imports System.Web.UI.WebControls.Expressions -Imports DocumentFormat.OpenXml.Presentation + + +Imports TAlex.WPF.Helpers Public Class usrCntlOfferte @@ -15,8 +16,10 @@ Public Class usrCntlOfferte Public BIND_DB = "FMZOLL" Dim tmpDataTable As New DataTable Dim currentOffert As VERAG_PROG_ALLGEMEIN.cOfferte + Dim currentOffertArchiv As VERAG_PROG_ALLGEMEIN.cOfferteArchiv Dim edit As Boolean - + Dim DGVHasChaged = False + Dim isStandard = False Dim loaded = False Sub New() @@ -33,6 +36,7 @@ Public Class usrCntlOfferte Me.kdNr = kdNr initDGVOfferte() edit = False + handleEditMode(edit) KD_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdNr) cbxAutoFakturierung.Checked = KD_ERW.AutoFakturierung @@ -60,6 +64,7 @@ Public Class usrCntlOfferte Sub initDGVOfferteDetails(OffertenNr) loaded = False + DGVHasChaged = False With dgvOfferteDetails '.Columns.Clear() @@ -92,23 +97,7 @@ Public Class usrCntlOfferte FUNC.dgvCellToCbo(dgvOfferteDetails, 2, "Berechnungsart", "BerechnungsartNr", " SELECT [BerechnungsartNr], CAST(BerechnungsartNr as varchar(3)) + ' - ' + [BerechnungsartBez] as [BerechnungsartBez] FROM [Berechnungsart] ORDER BY BerechnungsartNr ", "FMZOLL", 150) FUNC.dgvCellToCbo(dgvOfferteDetails, 5, "BGebLeist.", "BGebLeistungsNr", " SELECT [LeistungsNr], CAST(LeistungsNr as varchar(3)) + ' - ' + [LeistungsBez] as LeistungsBez FROM [Leistungen] ORDER BY [LeistungsNr] ", "FMZOLL", 250) - If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then - For Each c As DataGridViewColumn In .Columns - c.ReadOnly = True - Next - Else - For Each c As DataGridViewColumn In .Columns - If (c.Name = "Preis" Or c.Name = "LeistungsBez" Or c.Name = "Anzahl" Or c.Name = "BerechnungsartNr" Or c.Name = "BerechnungsartPosInkludiert") Then - If edit Then - c.ReadOnly = False - Else - c.ReadOnly = True - End If - Else - c.ReadOnly = True - End If - Next - End If + checkPerimissionsDGVDetails() .Columns("OffertenNr").Visible = False .Columns("KundenNr").Visible = False @@ -159,9 +148,15 @@ Public Class usrCntlOfferte Private Sub dgvOfferteDetails_SelectionChanged(sender As Object, e As EventArgs) Handles dgvOfferte.SelectionChanged + isStandard = False + cbxArchivierteOffertenAnzeigen.Checked = False + checkPermissions() If dgvOfferte.RowCount > 0 Then + rtbBesonderheiten.Text = cSqlDb.checkNullStr(dgvOfferte.Rows(0).Cells("Besonderheiten").Value) Else + btnStandardLaden.Visible = False + cbxArchivierteOfferten.Enabled = False rtbBesonderheiten.Text = "" End If @@ -180,26 +175,7 @@ Public Class usrCntlOfferte ' sbLeistungAdd.initSearchBox(Me.FindForm, " [Code] ,[LeistungsNr],[LeistungsBez] FROM [Leistungen]", {"LeistungsNr", "LeistungsBez"}, " ", "LeistungsNr", "LeistungsNr", , "FMZOLL", , 400, 200) cboLeistungenAdd.fillWithSQL("SELECT [LeistungsNr],[LeistungsBez] FROM [Leistungen] ORDER BY LeistungsNr", , "FMZOLL", True) - If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then - pnlEdit.Visible = False - pnlSperre.Visible = False - btnCreateOffert.Visible = False - dgvOfferte.ReadOnly = True - fbtnBearbeiten.Visible = False - btnStandardLaden.Visible = False - Else - dgvOfferteDetails.AllowUserToAddRows = True - dgvOfferteDetails.AllowUserToDeleteRows = True - dgvOfferteDetails.RowHeadersVisible = True - fbtnBearbeiten.Visible = True - btnStandardLaden.Visible = True - - - If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_LOESCHEN", "SDL") Then - btnDeleteOfferte.Visible = True - End If - End If - + checkPermissions() 'AddHandler OFFERTEBind.bindingdataTable.ColumnChanged, Sub(ev As EventArgs, change As DataColumnChangeEventArgs) @@ -262,6 +238,10 @@ Public Class usrCntlOfferte Private Sub btnHinzufuegen_Click_1(sender As Object, e As EventArgs) Handles btnHinzufuegen.Click + If edit = False Then + MsgBox("Bitte vorher in den Editiermodus wechseln") + Exit Sub + End If lblLeistunAddErr.Visible = False lblLeistunAddErr2.Visible = False Label3.Visible = False @@ -324,6 +304,7 @@ Public Class usrCntlOfferte dgvOfferteDetails.Rows(e.RowIndex).Cells("Sachbearbeiter").Value = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME dgvOfferteDetails.Rows(e.RowIndex).Cells("Geändert am").Value = Now End If + DGVHasChaged = True End Sub @@ -342,8 +323,9 @@ Public Class usrCntlOfferte KD_ERW.AutoFakturierung = cbxAutoFakturierung.Checked KD_ERW.SAVE() edit = False - dgvOfferte.Enabled = True - + handleEditMode(edit) + checkPerimissionsDGVDetails() + If isStandard = False Then OfferteArchivieren() OFFERTEBind.updateBinding() RaiseEvent OfferteChanged() End Sub @@ -351,22 +333,38 @@ Public Class usrCntlOfferte Private Sub fbtnBearbeiten_Click(sender As Object, e As EventArgs) Handles fbtnBearbeiten.Click edit = True - dgvOfferte.Enabled = False - - currentOffert = New VERAG_PROG_ALLGEMEIN.cOfferte(kdNr, dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value, True) - tmpDataTable = dgvOfferteDetails.DataSource + handleEditMode(edit) + saveCurrentOffert() + checkPerimissionsDGVDetails() End Sub - Private Sub OffertenArchivieren() + Private Sub OfferteArchivieren() + If DGVHasChaged = False Then Exit Sub - If currentOffert.SAVETOARCHIVE() Then + currentOffertArchiv = New VERAG_PROG_ALLGEMEIN.cOfferteArchiv() + currentOffertArchiv.KundenNr = currentOffert.KundenNr + currentOffertArchiv.FilialenNr = currentOffert.FilialenNr + currentOffertArchiv.OffertenNr = currentOffert.OffertenNr + currentOffertArchiv.Standardofferte = currentOffert.Standardofferte + currentOffertArchiv.Besonderheiten = currentOffert.Besonderheiten + currentOffertArchiv.Eingegeben_am = currentOffert.Eingegeben_am + currentOffertArchiv.Geändert_am = currentOffert.Geändert_am + currentOffertArchiv.Sachbearbeiter = currentOffert.Sachbearbeiter + currentOffertArchiv.SSMA_TimeStamp = currentOffert.SSMA_TimeStamp + currentOffertArchiv.Gesperrt = currentOffert.Gesperrt + currentOffertArchiv.Gesperrt_Datum = currentOffert.Gesperrt_Datum + currentOffertArchiv.Gesperrt_Grund = currentOffert.Gesperrt_Grund + Dim ofID As Integer = currentOffertArchiv.SAVERETURNID() + + If ofID > 0 Then For Each row As DataRow In tmpDataTable.Rows - Dim oP As New VERAG_PROG_ALLGEMEIN.cOffertPosition - oP.KundenNr = currentOffert.KundenNr + Dim oP As New VERAG_PROG_ALLGEMEIN.cOffertPositionArchiv + oP.OfID = ofID + oP.KundenNr = currentOffertArchiv.KundenNr oP.LeistungsNr = row("LeistungsNr") oP.LeistungsBez = row("LeistungsBez") - oP.OffertenNr = currentOffert.OffertenNr + oP.OffertenNr = currentOffertArchiv.OffertenNr oP.BerechnungsartNr = row("BerechnungsartNr") oP.Preis = row("Preis") oP.Anzahl = row("Anzahl") @@ -380,7 +378,7 @@ Public Class usrCntlOfferte oP.PreisänderungProzent = row("PreisänderungProzent") oP.PreisAlt = row("PreisAlt") oP.BerechnungsartPosInkludiert = row("BerechnungsartPosInkludiert") - oP.INSERTTOARCHIVE() + oP.INSERT() Next End If @@ -389,22 +387,223 @@ Public Class usrCntlOfferte Private Sub btnStandardLaden_Click(sender As Object, e As EventArgs) Handles btnStandardLaden.Click edit = True - dgvOfferte.Enabled = False - currentOffert = New VERAG_PROG_ALLGEMEIN.cOfferte(kdNr, dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value, True) - tmpDataTable = dgvOfferteDetails.DataSource + handleEditMode(edit) + saveCurrentOffert() + OfferteArchivieren() + If SQL.doSQL("DELETE FROM Offerten where [KundenNr]='" & kdNr & "' AND [OffertenNr]='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "' ", "FMZOLL") Then + currentOffert.SAVE() + currentOffert.LOAD_POSITIONEN() + If currentOffert.POSITIONEN.Count = 0 Then ' + currentOffert.RESET_STANDARTOFFERTEN(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) + + End If + isStandard = True + initDGVOfferte() + RaiseEvent OfferteChanged() + End If End Sub - Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxArchivierteOfferten.SelectedIndexChanged + Private Sub cbxArchivierteOfferten_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxArchivierteOfferten.SelectedIndexChanged + If cbxArchivierteOffertenAnzeigen.Checked = False Then Exit Sub + If cbxArchivierteOfferten._value = "" Then Exit Sub + + If cbxArchivierteOffertenAnzeigen.Checked = True Then + edit = False + handleEditMode(edit) + lblArchivierteOfferten.Visible = True + + Dim ofId As Integer + + ofId = CInt(cbxArchivierteOfferten._value) + + initDGVOfferteDetailsArchived(ofId) + + End If + checkPerimissionsDGVDetails() + End Sub Private Sub cbxArchivierteOffertenAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles cbxArchivierteOffertenAnzeigen.CheckedChanged + + If dgvOfferte.SelectedRows.Count = 0 Then Exit Sub + If cbxArchivierteOffertenAnzeigen.Checked Then + cbxArchivierteOfferten.SelectedIndex = -1 + cbxArchivierteOfferten.Items.Clear() cbxArchivierteOfferten.Visible = True + cbxArchivierteOfferten.fillWithSQL("SELECT OfID, Cast([Archiviert am] AS DATE) as Archivierungsdatum FROM [tblOffertenArchiv] WHERE KundenNr='" & kdNr & "' and OffertenNr='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "'", True, "FMZOLL", True) + fbtnBearbeiten.Visible = False + Else + lblArchivierteOfferten.Visible = False cbxArchivierteOfferten.Visible = False + initDGVOfferteDetails(dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value) + fbtnBearbeiten.Visible = True End If End Sub + + + Private Sub checkPerimissionsDGVDetails() + + With dgvOfferteDetails + + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then + For Each c As DataGridViewColumn In .Columns + c.ReadOnly = True + handleEditMode(False) + Next + Else + For Each c As DataGridViewColumn In .Columns + If (c.Name = "Preis" Or c.Name = "LeistungsBez" Or c.Name = "Anzahl" Or c.Name = "BerechnungsartNr" Or c.Name = "BerechnungsartPosInkludiert") Then + If edit Then + c.ReadOnly = False + handleEditMode(edit) + Else + c.ReadOnly = True + + End If + Else + c.ReadOnly = True + + End If + Next + End If + + End With + + End Sub + + Private Sub initDGVOfferteDetailsArchived(OffertenId) + + + loaded = False + DGVHasChaged = False + With dgvOfferteDetails + .Columns.Clear() + + Try + OFFERTEBind = New cEasyBinding(BIND_DB) + OFFERTEBind.initBinding(" SELECT [LeistungsNr],[LeistungsBez],[BerechnungsartNr],[Preis],[Anzahl],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],BerechnungsartPosInkludiert,[Eingegeben am],[Geändert am],[Sachbearbeiter],[PreisänderungProzent],[PreisAlt],[Preisänderung],KundenNr,OffertenNr " & + " FROM [tblOffertenpositionenArchiv] " & + " WHERE OfId='" & OffertenId & "' ORDER BY LeistungsNr, Preis DESC", "tblOffertenpositionenArchiv") + + .DataSource = OFFERTEBind.bindingdataTable + + + Catch ex As Exception + MsgBox(ex.Message) + End Try + + FUNC.dgvCellToCbo(dgvOfferteDetails, 2, "Berechnungsart", "BerechnungsartNr", " SELECT [BerechnungsartNr], CAST(BerechnungsartNr as varchar(3)) + ' - ' + [BerechnungsartBez] as [BerechnungsartBez] FROM [Berechnungsart] ORDER BY BerechnungsartNr ", "FMZOLL", 150) + FUNC.dgvCellToCbo(dgvOfferteDetails, 5, "BGebLeist.", "BGebLeistungsNr", " SELECT [LeistungsNr], CAST(LeistungsNr as varchar(3)) + ' - ' + [LeistungsBez] as LeistungsBez FROM [Leistungen] ORDER BY [LeistungsNr] ", "FMZOLL", 250) + + + checkPerimissionsDGVDetails() + + .Columns("OffertenNr").Visible = False + .Columns("KundenNr").Visible = False + .Columns("LeistungsNr").Width = 30 + .Columns("LeistungsNr").HeaderText = "Nr" + .Columns("LeistungsBez").MinimumWidth = 200 + .Columns("LeistungsBez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("LeistungsBez").HeaderText = "Leistung" + .Columns("BerechnungsartNr").MinimumWidth = 150 + .Columns("Preis").Width = 60 + .Columns("Preis").DefaultCellStyle.Format = "N2" + .Columns("Preis").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("Anzahl").Width = 50 + .Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter + .Columns("BerechnungsartPosInkludiert").HeaderText = "Pos.inkl." + .Columns("BerechnungsartPosInkludiert").Width = 45 + .Columns("BGebLeistungsNr").Width = 60 + .Columns("BGebProzent").Width = 55 + .Columns("BGebProzent").HeaderText = "BGeb %" + .Columns("BGebProzent").DefaultCellStyle.Format = "P" + .Columns("BGebProzent").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("BGebMinBetrag").Width = 60 + .Columns("BGebMinBetrag").HeaderText = "BGebMinBetr." + .Columns("BGebMinBetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("Eingegeben am").Visible = False + .Columns("PreisänderungProzent").Width = 70 + .Columns("PreisänderungProzent").HeaderText = "Preisänd. %" + .Columns("PreisänderungProzent").DefaultCellStyle.Format = "P" + .Columns("PreisänderungProzent").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("PreisAlt").Width = 60 + .Columns("PreisAlt").DefaultCellStyle.Format = "N2" + .Columns("PreisAlt").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + .Columns("Preisänderung").Width = 60 + .Columns("Preisänderung").HeaderText = "PreisNeu" + .Columns("Preisänderung").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight + + loaded = True + End With + + End Sub + + Private Sub saveCurrentOffert() + + dgvOfferte.Enabled = False + currentOffert = New VERAG_PROG_ALLGEMEIN.cOfferte(kdNr, dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value, False) + Dim orgDataTable As DataTable = dgvOfferteDetails.DataSource + tmpDataTable = orgDataTable.Copy + + End Sub + + Private Sub checkPermissions() + + + + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then + pnlEdit.Visible = False + pnlSperre.Visible = False + btnCreateOffert.Visible = False + dgvOfferte.ReadOnly = True + fbtnBearbeiten.Visible = False + btnStandardLaden.Visible = False + cbxArchivierteOfferten.Enabled = False + Else + dgvOfferteDetails.AllowUserToAddRows = True + dgvOfferteDetails.AllowUserToDeleteRows = True + dgvOfferteDetails.RowHeadersVisible = True + fbtnBearbeiten.Visible = True + btnStandardLaden.Visible = True + cbxArchivierteOfferten.Enabled = True + cbxArchivierteOffertenAnzeigen.Visible = True + + + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_LOESCHEN", "SDL") Then + btnDeleteOfferte.Visible = True + End If + End If + + + If dgvOfferte.SelectedRows.Count = 0 Then + + fbtnBearbeiten.Visible = False + btnStandardLaden.Visible = False + cbxArchivierteOffertenAnzeigen.Visible = False + + End If + + End Sub + + Private Sub handleEditMode(isInEditMode As Boolean) + + If isInEditMode Then + lblEditMode.Visible = True + cbxArchivierteOffertenAnzeigen.Enabled = False + cbxArchivierteOffertenAnzeigen.Checked = False + dgvOfferte.Enabled = False + Else + lblEditMode.Visible = False + cbxArchivierteOffertenAnzeigen.Enabled = True + dgvOfferte.Enabled = True + + End If + End Sub + + End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index 5672150f..c2ad95ac 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -304,40 +304,6 @@ Public Class cOfferte End Function - - Public Function SAVETOARCHIVE() As Boolean - - Dim sqlstr = "BEGIN TRAN " & - "BEGIN " & getInsertToArchiveCmd() & " END " & - " commit tran " - Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SSMA_TimeStamp", SSMA_TimeStamp)) - - Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) - End Function - - Public Function getInsertToArchiveCmd() 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 - - End Class @@ -396,12 +362,6 @@ Public Class cOffertPosition End Function - Public Function INSERTTOARCHIVE() As Boolean - Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SSMA_TimeStamp", SSMA_TimeStamp)) - Return SQL.doSQLVarList(getInsertToArchiveCmd, "FMZOLL", , list) - End Function - Public Function getInsertCmd() As String Try Me.Eingegeben_am = Now @@ -423,8 +383,148 @@ Public Class cOffertPosition Return "" End Function +End Class - Public Function getInsertToArchiveCmd() As String +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 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)) + + Return list + End Function + + + Public Function SAVE() As Boolean + + Dim sqlstr = " BEGIN " & getInsertCmd() & " End " + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + 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() @@ -438,11 +538,195 @@ Public Class cOffertPosition Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' - Return (" INSERT INTO tblOffertenPositionenArchiv (" & str & ") VALUES(" & values & ") ") + 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 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 [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