From 6b278a1f60e114ca0b6235ebbf8aafa72859ae84 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 16 Nov 2022 17:18:30 +0100 Subject: [PATCH 1/4] Feature: Offerten --- SDL/kunden/usrCntlOfferte.Designer.vb | 417 +++++++++++++---------- SDL/kunden/usrCntlOfferte.resx | 3 - SDL/kunden/usrCntlOfferte.vb | 118 ++++++- VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 67 +++- 4 files changed, 395 insertions(+), 210 deletions(-) diff --git a/SDL/kunden/usrCntlOfferte.Designer.vb b/SDL/kunden/usrCntlOfferte.Designer.vb index 8ee21743..8e566247 100644 --- a/SDL/kunden/usrCntlOfferte.Designer.vb +++ b/SDL/kunden/usrCntlOfferte.Designer.vb @@ -23,8 +23,8 @@ Partial Class usrCntlOfferte Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() - Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() - Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Me.lblBesonderheiten = New System.Windows.Forms.Label() Me.rtbBesonderheiten = New System.Windows.Forms.RichTextBox() Me.lblOffert = New System.Windows.Forms.TextBox() @@ -35,29 +35,31 @@ Partial Class usrCntlOfferte Me.cbxSperreSetzen = New System.Windows.Forms.CheckBox() Me.Label36 = New System.Windows.Forms.Label() Me.Label67 = New System.Windows.Forms.Label() - Me.Button1 = New System.Windows.Forms.Button() - Me.btn = New System.Windows.Forms.Button() + Me.btnDeleteLeistung = New System.Windows.Forms.Button() + Me.btnAddLeistung = New System.Windows.Forms.Button() Me.cntxtAddSdl = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.DToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.btnOfferteSpeichern = New System.Windows.Forms.Button() - Me.Button2 = New System.Windows.Forms.Button() + Me.btnHinzufuegen = New System.Windows.Forms.Button() Me.Label1 = New System.Windows.Forms.Label() Me.pnlSperre = New System.Windows.Forms.Panel() Me.txtSperreDat = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.txtSperreGrund = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.lblLeistunAddErr = New System.Windows.Forms.Label() - Me.cboLeistungenAdd = New VERAG_PROG_ALLGEMEIN.MyComboBox() - Me.sbLeistungAdd = New VERAG_PROG_ALLGEMEIN.MySearchBox() - Me.FlatButton2 = New VERAG_PROG_ALLGEMEIN.FlatButton() - Me.FlatButton1 = New VERAG_PROG_ALLGEMEIN.FlatButton() - Me.MyTextBox1 = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Label2 = New System.Windows.Forms.Label() Me.lblLeistunAddErr2 = New System.Windows.Forms.Label() Me.pnlEdit = New System.Windows.Forms.Panel() - Me.Label3 = New System.Windows.Forms.Label() - 'Me.CheckVatService1 = New SDL.eu.europa.ec.checkVatService() - Me.FlatButton3 = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.cbxAutoFakturierung = New System.Windows.Forms.CheckBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.cboLeistungenAdd = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.MyTextBox1 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.btnStandardLaden = New System.Windows.Forms.Button() + Me.btnDeleteOfferte = New VERAG_PROG_ALLGEMEIN.FlatButton() + Me.sbLeistungAdd = New VERAG_PROG_ALLGEMEIN.MySearchBox() + Me.fbtnBearbeiten = New VERAG_PROG_ALLGEMEIN.FlatButton() + Me.btnCreateOffert = New VERAG_PROG_ALLGEMEIN.FlatButton() + Me.cbxArchivierteOfferten = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.cbxArchivierteOffertenAnzeigen = New System.Windows.Forms.CheckBox() CType(Me.dgvOfferteDetails, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvOfferte, System.ComponentModel.ISupportInitialize).BeginInit() Me.cntxtAddSdl.SuspendLayout() @@ -114,8 +116,8 @@ Partial Class usrCntlOfferte Me.dgvOfferteDetails.AllowUserToDeleteRows = False Me.dgvOfferteDetails.AllowUserToOrderColumns = True Me.dgvOfferteDetails.AllowUserToResizeRows = False - DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) - Me.dgvOfferteDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.dgvOfferteDetails.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle3 Me.dgvOfferteDetails.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) @@ -135,8 +137,8 @@ Partial Class usrCntlOfferte Me.dgvOfferte.AllowUserToDeleteRows = False Me.dgvOfferte.AllowUserToOrderColumns = True Me.dgvOfferte.AllowUserToResizeRows = False - DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) - Me.dgvOfferte.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 + DataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.dgvOfferte.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle4 Me.dgvOfferte.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) Me.dgvOfferte.BackgroundColor = System.Drawing.Color.White @@ -198,31 +200,31 @@ Partial Class usrCntlOfferte Me.Label67.TabIndex = 3 Me.Label67.Text = "Datum:" ' - 'Button1 + 'btnDeleteLeistung ' - Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Button1.BackgroundImage = Global.SDL.My.Resources.Resources.del - Me.Button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button1.Location = New System.Drawing.Point(348, 226) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(28, 23) - Me.Button1.TabIndex = 8 - Me.Button1.UseVisualStyleBackColor = True - Me.Button1.Visible = False + Me.btnDeleteLeistung.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + 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.Name = "btnDeleteLeistung" + Me.btnDeleteLeistung.Size = New System.Drawing.Size(28, 23) + Me.btnDeleteLeistung.TabIndex = 8 + Me.btnDeleteLeistung.UseVisualStyleBackColor = True + Me.btnDeleteLeistung.Visible = False ' - 'btn + 'btnAddLeistung ' - Me.btn.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btn.BackgroundImage = Global.SDL.My.Resources.Resources.plus - Me.btn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btn.Location = New System.Drawing.Point(375, 226) - Me.btn.Name = "btn" - Me.btn.Size = New System.Drawing.Size(28, 23) - Me.btn.TabIndex = 9 - Me.btn.UseVisualStyleBackColor = True - Me.btn.Visible = False + Me.btnAddLeistung.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + 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.Name = "btnAddLeistung" + Me.btnAddLeistung.Size = New System.Drawing.Size(28, 23) + Me.btnAddLeistung.TabIndex = 9 + Me.btnAddLeistung.UseVisualStyleBackColor = True + Me.btnAddLeistung.Visible = False ' 'cntxtAddSdl ' @@ -251,20 +253,20 @@ Partial Class usrCntlOfferte Me.btnOfferteSpeichern.Text = "Speichern" Me.btnOfferteSpeichern.UseVisualStyleBackColor = True ' - 'Button2 + 'btnHinzufuegen ' - Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button2.ForeColor = System.Drawing.Color.Black - Me.Button2.Image = Global.SDL.My.Resources.Resources.plus - Me.Button2.ImageAlign = System.Drawing.ContentAlignment.TopLeft - Me.Button2.Location = New System.Drawing.Point(235, 1) - Me.Button2.Name = "Button2" - Me.Button2.Size = New System.Drawing.Size(106, 36) - Me.Button2.TabIndex = 14 - Me.Button2.Tag = "" - Me.Button2.Text = "Hinzufügen" - Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.Button2.UseVisualStyleBackColor = True + Me.btnHinzufuegen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnHinzufuegen.ForeColor = System.Drawing.Color.Black + Me.btnHinzufuegen.Image = Global.SDL.My.Resources.Resources.plus + Me.btnHinzufuegen.ImageAlign = System.Drawing.ContentAlignment.TopLeft + Me.btnHinzufuegen.Location = New System.Drawing.Point(235, 1) + Me.btnHinzufuegen.Name = "btnHinzufuegen" + Me.btnHinzufuegen.Size = New System.Drawing.Size(106, 36) + Me.btnHinzufuegen.TabIndex = 14 + Me.btnHinzufuegen.Tag = "" + Me.btnHinzufuegen.Text = "Hinzufügen" + Me.btnHinzufuegen.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnHinzufuegen.UseVisualStyleBackColor = True ' 'Label1 ' @@ -295,10 +297,12 @@ Partial Class usrCntlOfferte Me.txtSperreDat._DateTimeOnly = False Me.txtSperreDat._numbersOnly = False Me.txtSperreDat._numbersOnlyKommastellen = "" + Me.txtSperreDat._numbersOnlyTrennzeichen = True Me.txtSperreDat._Prozent = False Me.txtSperreDat._ShortDateNew = False Me.txtSperreDat._ShortDateOnly = False Me.txtSperreDat._TimeOnly = False + Me.txtSperreDat._TimeOnly_Seconds = False Me.txtSperreDat._value = Nothing Me.txtSperreDat._Waehrung = False Me.txtSperreDat._WaehrungZeichen = True @@ -319,10 +323,12 @@ Partial Class usrCntlOfferte Me.txtSperreGrund._DateTimeOnly = False Me.txtSperreGrund._numbersOnly = False Me.txtSperreGrund._numbersOnlyKommastellen = "" + Me.txtSperreGrund._numbersOnlyTrennzeichen = True Me.txtSperreGrund._Prozent = False Me.txtSperreGrund._ShortDateNew = False Me.txtSperreGrund._ShortDateOnly = False Me.txtSperreGrund._TimeOnly = False + Me.txtSperreGrund._TimeOnly_Seconds = False Me.txtSperreGrund._value = Nothing Me.txtSperreGrund._Waehrung = False Me.txtSperreGrund._WaehrungZeichen = True @@ -348,95 +354,6 @@ Partial Class usrCntlOfferte Me.lblLeistunAddErr.Text = "Auswahl!" Me.lblLeistunAddErr.Visible = False ' - 'cboLeistungenAdd - ' - Me.cboLeistungenAdd._allowedValuesFreiText = Nothing - Me.cboLeistungenAdd._allowFreiText = False - Me.cboLeistungenAdd._value = "" - Me.cboLeistungenAdd.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend - Me.cboLeistungenAdd.DropDownWidth = 350 - Me.cboLeistungenAdd.FormattingEnabled = True - Me.cboLeistungenAdd.Location = New System.Drawing.Point(6, 16) - Me.cboLeistungenAdd.Name = "cboLeistungenAdd" - Me.cboLeistungenAdd.Size = New System.Drawing.Size(47, 21) - Me.cboLeistungenAdd.TabIndex = 12 - ' - 'sbLeistungAdd - ' - Me.sbLeistungAdd._allowFreitext = False - Me.sbLeistungAdd._AllowSetValue = False - Me.sbLeistungAdd._autoSizeGross = False - Me.sbLeistungAdd._hideIfListEmpty = True - Me.sbLeistungAdd._value = Nothing - Me.sbLeistungAdd.conn_art = "FMZOLL" - Me.sbLeistungAdd.dgvpos = "LEFT" - Me.sbLeistungAdd.DISPLAY_PARAM = Nothing - Me.sbLeistungAdd.INVISIBLE_COLUMNS = Nothing - Me.sbLeistungAdd.key_visible = False - Me.sbLeistungAdd.KEYPARAM = Nothing - Me.sbLeistungAdd.Location = New System.Drawing.Point(348, 255) - Me.sbLeistungAdd.Name = "sbLeistungAdd" - Me.sbLeistungAdd.searchActive = True - Me.sbLeistungAdd.Size = New System.Drawing.Size(223, 20) - Me.sbLeistungAdd.SQL_ORDER_BY = Nothing - Me.sbLeistungAdd.SQL_SELECT = Nothing - Me.sbLeistungAdd.SQL_WHERE = Nothing - Me.sbLeistungAdd.SQL_WhereParamList = Nothing - Me.sbLeistungAdd.TabIndex = 6 - Me.sbLeistungAdd.usrcntl = Nothing - Me.sbLeistungAdd.Visible = False - ' - 'FlatButton2 - ' - Me.FlatButton2.allowBorder = False - Me.FlatButton2.BackgroundImage = Global.SDL.My.Resources.Resources.stift - Me.FlatButton2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.FlatButton2.FlatAppearance.BorderSize = 0 - Me.FlatButton2.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.FlatButton2.ForeColor = System.Drawing.Color.Black - Me.FlatButton2.Location = New System.Drawing.Point(861, 10) - Me.FlatButton2.Name = "FlatButton2" - Me.FlatButton2.Size = New System.Drawing.Size(20, 20) - Me.FlatButton2.TabIndex = 3 - Me.FlatButton2.UseVisualStyleBackColor = True - Me.FlatButton2.Visible = False - ' - 'FlatButton1 - ' - Me.FlatButton1.allowBorder = False - Me.FlatButton1.BackgroundImage = Global.SDL.My.Resources.Resources.stift - Me.FlatButton1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.FlatButton1.FlatAppearance.BorderSize = 0 - Me.FlatButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.FlatButton1.ForeColor = System.Drawing.Color.Black - Me.FlatButton1.Location = New System.Drawing.Point(208, 10) - Me.FlatButton1.Name = "FlatButton1" - Me.FlatButton1.Size = New System.Drawing.Size(20, 20) - Me.FlatButton1.TabIndex = 1 - Me.FlatButton1.UseVisualStyleBackColor = True - ' - 'MyTextBox1 - ' - Me.MyTextBox1._DateTimeOnly = False - Me.MyTextBox1._numbersOnly = False - Me.MyTextBox1._numbersOnlyKommastellen = "" - Me.MyTextBox1._Prozent = False - Me.MyTextBox1._ShortDateNew = False - Me.MyTextBox1._ShortDateOnly = False - Me.MyTextBox1._TimeOnly = False - Me.MyTextBox1._value = Nothing - Me.MyTextBox1._Waehrung = False - Me.MyTextBox1._WaehrungZeichen = True - Me.MyTextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!) - Me.MyTextBox1.ForeColor = System.Drawing.Color.Black - Me.MyTextBox1.Location = New System.Drawing.Point(52, 16) - Me.MyTextBox1.MaxLineLength = -1 - Me.MyTextBox1.MaxLines_Warning = "" - Me.MyTextBox1.MaxLines_Warning_Label = Nothing - Me.MyTextBox1.Name = "MyTextBox1" - Me.MyTextBox1.Size = New System.Drawing.Size(177, 21) - Me.MyTextBox1.TabIndex = 13 - ' 'Label2 ' Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) @@ -469,7 +386,7 @@ Partial Class usrCntlOfferte Me.pnlEdit.Controls.Add(Me.cbxAutoFakturierung) Me.pnlEdit.Controls.Add(Me.Label3) Me.pnlEdit.Controls.Add(Me.Label1) - Me.pnlEdit.Controls.Add(Me.Button2) + Me.pnlEdit.Controls.Add(Me.btnHinzufuegen) Me.pnlEdit.Controls.Add(Me.lblLeistunAddErr2) Me.pnlEdit.Controls.Add(Me.lblLeistunAddErr) Me.pnlEdit.Controls.Add(Me.btnOfferteSpeichern) @@ -480,39 +397,6 @@ Partial Class usrCntlOfferte Me.pnlEdit.Size = New System.Drawing.Size(646, 60) Me.pnlEdit.TabIndex = 20 ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label3.ForeColor = System.Drawing.Color.Red - Me.Label3.Location = New System.Drawing.Point(55, 40) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(110, 13) - Me.Label3.TabIndex = 17 - Me.Label3.Text = "Zuerst Offert anlegen!" - Me.Label3.Visible = False - ' - 'CheckVatService1 - ' - 'Me.CheckVatService1.Credentials = Nothing - 'Me.CheckVatService1.Url = "http://ec.europa.eu/taxation_customs/vies/services/checkVatService" - 'Me.CheckVatService1.UseDefaultCredentials = False - ' - 'FlatButton3 - ' - Me.FlatButton3.allowBorder = False - Me.FlatButton3.BackgroundImage = Global.SDL.My.Resources.Resources.del_small - Me.FlatButton3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.FlatButton3.FlatAppearance.BorderSize = 0 - Me.FlatButton3.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.FlatButton3.ForeColor = System.Drawing.Color.Black - Me.FlatButton3.Location = New System.Drawing.Point(182, 9) - Me.FlatButton3.Name = "FlatButton3" - Me.FlatButton3.Size = New System.Drawing.Size(20, 20) - Me.FlatButton3.TabIndex = 21 - Me.FlatButton3.UseVisualStyleBackColor = True - Me.FlatButton3.Visible = False - ' 'cbxAutoFakturierung ' Me.cbxAutoFakturierung.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) @@ -525,19 +409,173 @@ Partial Class usrCntlOfferte Me.cbxAutoFakturierung.Text = "AUTO Fakturierung" Me.cbxAutoFakturierung.UseVisualStyleBackColor = True ' - 'c + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label3.ForeColor = System.Drawing.Color.Red + Me.Label3.Location = New System.Drawing.Point(55, 40) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(110, 13) + Me.Label3.TabIndex = 17 + Me.Label3.Text = "Zuerst Offert anlegen!" + Me.Label3.Visible = False + ' + 'cboLeistungenAdd + ' + Me.cboLeistungenAdd._allowedValuesFreiText = Nothing + Me.cboLeistungenAdd._allowFreiText = False + Me.cboLeistungenAdd._value = "" + Me.cboLeistungenAdd.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.cboLeistungenAdd.DropDownWidth = 350 + Me.cboLeistungenAdd.FormattingEnabled = True + Me.cboLeistungenAdd.Location = New System.Drawing.Point(6, 16) + Me.cboLeistungenAdd.Name = "cboLeistungenAdd" + Me.cboLeistungenAdd.Size = New System.Drawing.Size(47, 21) + Me.cboLeistungenAdd.TabIndex = 12 + ' + 'MyTextBox1 + ' + Me.MyTextBox1._DateTimeOnly = False + Me.MyTextBox1._numbersOnly = False + Me.MyTextBox1._numbersOnlyKommastellen = "" + Me.MyTextBox1._numbersOnlyTrennzeichen = True + Me.MyTextBox1._Prozent = False + Me.MyTextBox1._ShortDateNew = False + Me.MyTextBox1._ShortDateOnly = False + Me.MyTextBox1._TimeOnly = False + Me.MyTextBox1._TimeOnly_Seconds = False + Me.MyTextBox1._value = Nothing + Me.MyTextBox1._Waehrung = False + Me.MyTextBox1._WaehrungZeichen = True + Me.MyTextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!) + Me.MyTextBox1.ForeColor = System.Drawing.Color.Black + Me.MyTextBox1.Location = New System.Drawing.Point(52, 16) + Me.MyTextBox1.MaxLineLength = -1 + Me.MyTextBox1.MaxLines_Warning = "" + Me.MyTextBox1.MaxLines_Warning_Label = Nothing + Me.MyTextBox1.Name = "MyTextBox1" + Me.MyTextBox1.Size = New System.Drawing.Size(177, 21) + Me.MyTextBox1.TabIndex = 13 + ' + 'btnStandardLaden + ' + Me.btnStandardLaden.Location = New System.Drawing.Point(287, 6) + Me.btnStandardLaden.Name = "btnStandardLaden" + Me.btnStandardLaden.Size = New System.Drawing.Size(154, 23) + Me.btnStandardLaden.TabIndex = 23 + Me.btnStandardLaden.Text = "Standardoffert laden" + Me.btnStandardLaden.UseVisualStyleBackColor = True + Me.btnStandardLaden.Visible = False + ' + 'btnDeleteOfferte + ' + Me.btnDeleteOfferte.allowBorder = False + Me.btnDeleteOfferte.BackgroundImage = Global.SDL.My.Resources.Resources.del_small + Me.btnDeleteOfferte.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnDeleteOfferte.FlatAppearance.BorderSize = 0 + Me.btnDeleteOfferte.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnDeleteOfferte.ForeColor = System.Drawing.Color.Black + Me.btnDeleteOfferte.Location = New System.Drawing.Point(182, 9) + Me.btnDeleteOfferte.Name = "btnDeleteOfferte" + Me.btnDeleteOfferte.Size = New System.Drawing.Size(20, 20) + Me.btnDeleteOfferte.TabIndex = 21 + Me.btnDeleteOfferte.UseVisualStyleBackColor = True + Me.btnDeleteOfferte.Visible = False + ' + 'sbLeistungAdd + ' + Me.sbLeistungAdd._allowFreitext = False + Me.sbLeistungAdd._AllowSetValue = False + Me.sbLeistungAdd._allowSpaceAsSplitter = False + Me.sbLeistungAdd._autoSizeGross = False + Me.sbLeistungAdd._hideIfListEmpty = True + Me.sbLeistungAdd._value = Nothing + Me.sbLeistungAdd.conn_art = "FMZOLL" + Me.sbLeistungAdd.dgvpos = "LEFT" + Me.sbLeistungAdd.DISPLAY_PARAM = Nothing + Me.sbLeistungAdd.INVISIBLE_COLUMNS = Nothing + Me.sbLeistungAdd.key_visible = False + Me.sbLeistungAdd.KEYPARAM = Nothing + Me.sbLeistungAdd.Location = New System.Drawing.Point(348, 255) + Me.sbLeistungAdd.Name = "sbLeistungAdd" + Me.sbLeistungAdd.searchActive = True + Me.sbLeistungAdd.Size = New System.Drawing.Size(223, 20) + Me.sbLeistungAdd.SQL_ORDER_BY = Nothing + Me.sbLeistungAdd.SQL_SELECT = Nothing + Me.sbLeistungAdd.SQL_WHERE = Nothing + Me.sbLeistungAdd.SQL_WhereParamList = Nothing + Me.sbLeistungAdd.TabIndex = 6 + Me.sbLeistungAdd.usrcntl = Nothing + Me.sbLeistungAdd.Visible = False + ' + 'fbtnBearbeiten + ' + Me.fbtnBearbeiten.allowBorder = False + Me.fbtnBearbeiten.BackgroundImage = Global.SDL.My.Resources.Resources.stift + Me.fbtnBearbeiten.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.fbtnBearbeiten.FlatAppearance.BorderSize = 0 + Me.fbtnBearbeiten.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.fbtnBearbeiten.ForeColor = System.Drawing.Color.Black + Me.fbtnBearbeiten.Location = New System.Drawing.Point(860, 7) + Me.fbtnBearbeiten.Name = "fbtnBearbeiten" + Me.fbtnBearbeiten.Size = New System.Drawing.Size(20, 20) + Me.fbtnBearbeiten.TabIndex = 3 + Me.fbtnBearbeiten.UseVisualStyleBackColor = True + Me.fbtnBearbeiten.Visible = False + ' + 'btnCreateOffert + ' + Me.btnCreateOffert.allowBorder = False + Me.btnCreateOffert.BackgroundImage = Global.SDL.My.Resources.Resources.stift + Me.btnCreateOffert.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnCreateOffert.FlatAppearance.BorderSize = 0 + Me.btnCreateOffert.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCreateOffert.ForeColor = System.Drawing.Color.Black + Me.btnCreateOffert.Location = New System.Drawing.Point(208, 10) + Me.btnCreateOffert.Name = "btnCreateOffert" + Me.btnCreateOffert.Size = New System.Drawing.Size(20, 20) + Me.btnCreateOffert.TabIndex = 1 + Me.btnCreateOffert.UseVisualStyleBackColor = True + ' + 'cbxArchivierteOfferten + ' + Me.cbxArchivierteOfferten._allowedValuesFreiText = Nothing + Me.cbxArchivierteOfferten._allowFreiText = False + Me.cbxArchivierteOfferten._value = "" + Me.cbxArchivierteOfferten.FormattingEnabled = True + Me.cbxArchivierteOfferten.Location = New System.Drawing.Point(705, 8) + Me.cbxArchivierteOfferten.Name = "cbxArchivierteOfferten" + Me.cbxArchivierteOfferten.Size = New System.Drawing.Size(121, 21) + Me.cbxArchivierteOfferten.TabIndex = 24 + Me.cbxArchivierteOfferten.Visible = False + ' + 'cbxArchivierteOffertenAnzeigen + ' + Me.cbxArchivierteOffertenAnzeigen.AutoSize = True + Me.cbxArchivierteOffertenAnzeigen.Location = New System.Drawing.Point(514, 10) + 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 + ' + '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.FlatButton3) + Me.Controls.Add(Me.cbxArchivierteOffertenAnzeigen) + Me.Controls.Add(Me.cbxArchivierteOfferten) + Me.Controls.Add(Me.btnStandardLaden) + Me.Controls.Add(Me.btnDeleteOfferte) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.pnlSperre) Me.Controls.Add(Me.sbLeistungAdd) - Me.Controls.Add(Me.Button1) - Me.Controls.Add(Me.btn) - Me.Controls.Add(Me.FlatButton2) - Me.Controls.Add(Me.FlatButton1) + Me.Controls.Add(Me.btnDeleteLeistung) + Me.Controls.Add(Me.btnAddLeistung) + Me.Controls.Add(Me.fbtnBearbeiten) + Me.Controls.Add(Me.btnCreateOffert) Me.Controls.Add(Me.Label11) Me.Controls.Add(Me.lblBesonderheiten) Me.Controls.Add(Me.rtbBesonderheiten) @@ -546,7 +584,7 @@ Partial Class usrCntlOfferte Me.Controls.Add(Me.dgvOfferte) Me.Controls.Add(Me.pnlEdit) Me.Margin = New System.Windows.Forms.Padding(2) - Me.Name = "c" + Me.Name = "usrCntlOfferte" Me.Size = New System.Drawing.Size(891, 574) CType(Me.dgvOfferteDetails, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.dgvOfferte, System.ComponentModel.ISupportInitialize).EndInit() @@ -565,20 +603,20 @@ Partial Class usrCntlOfferte Friend WithEvents Label11 As System.Windows.Forms.Label Friend WithEvents dgvOfferteDetails As System.Windows.Forms.DataGridView Friend WithEvents dgvOfferte As System.Windows.Forms.DataGridView - Friend WithEvents FlatButton1 As VERAG_PROG_ALLGEMEIN.FlatButton - Friend WithEvents FlatButton2 As VERAG_PROG_ALLGEMEIN.FlatButton + Friend WithEvents btnCreateOffert As VERAG_PROG_ALLGEMEIN.FlatButton + Friend WithEvents fbtnBearbeiten As VERAG_PROG_ALLGEMEIN.FlatButton Friend WithEvents FlatButton5 As Button Friend WithEvents txtSperreGrund As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents txtSperreDat As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents cbxSperreSetzen As CheckBox Friend WithEvents Label36 As Label Friend WithEvents Label67 As Label - Friend WithEvents Button1 As Button - Friend WithEvents btn As Button + Friend WithEvents btnDeleteLeistung As Button + Friend WithEvents btnAddLeistung As Button Friend WithEvents cntxtAddSdl As ContextMenuStrip Friend WithEvents DToolStripMenuItem As ToolStripMenuItem Friend WithEvents btnOfferteSpeichern As Button - Friend WithEvents Button2 As Button + Friend WithEvents btnHinzufuegen As Button Friend WithEvents Label1 As Label Friend WithEvents sbLeistungAdd As VERAG_PROG_ALLGEMEIN.MySearchBox Friend WithEvents pnlSperre As Panel @@ -590,6 +628,9 @@ Partial Class usrCntlOfferte Friend WithEvents pnlEdit As Panel ' Friend WithEvents CheckVatService1 As eu.europa.ec.checkVatService Friend WithEvents Label3 As Label - Friend WithEvents FlatButton3 As VERAG_PROG_ALLGEMEIN.FlatButton + Friend WithEvents btnDeleteOfferte As VERAG_PROG_ALLGEMEIN.FlatButton Friend WithEvents cbxAutoFakturierung As CheckBox + Friend WithEvents btnStandardLaden As Button + Friend WithEvents cbxArchivierteOfferten As VERAG_PROG_ALLGEMEIN.MyComboBox + Friend WithEvents cbxArchivierteOffertenAnzeigen As CheckBox End Class diff --git a/SDL/kunden/usrCntlOfferte.resx b/SDL/kunden/usrCntlOfferte.resx index 9d199e03..6a2661ff 100644 --- a/SDL/kunden/usrCntlOfferte.resx +++ b/SDL/kunden/usrCntlOfferte.resx @@ -120,7 +120,4 @@ 17, 17 - - 135, 17 - \ No newline at end of file diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index bc680096..11b889ff 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -1,4 +1,7 @@ -Public Class usrCntlOfferte +Imports System.Web.UI.WebControls.Expressions +Imports DocumentFormat.OpenXml.Presentation + +Public Class usrCntlOfferte Dim FUNC As New cProgramFunctions Public kdNr As Integer = -1 @@ -6,9 +9,13 @@ Public KD_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert Public Event OfferteChanged() + Dim OFFERTEBind As cEasyBinding Dim table Public BIND_DB = "FMZOLL" + Dim tmpDataTable As New DataTable + Dim currentOffert As VERAG_PROG_ALLGEMEIN.cOfferte + Dim edit As Boolean Dim loaded = False @@ -25,9 +32,10 @@ Public Sub init(kdNr) Me.kdNr = kdNr initDGVOfferte() - + edit = False KD_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdNr) cbxAutoFakturierung.Checked = KD_ERW.AutoFakturierung + End Sub Sub initDGVOfferte() dgvOfferteDetails.Columns.Clear() @@ -91,7 +99,11 @@ 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 - c.ReadOnly = False + If edit Then + c.ReadOnly = False + Else + c.ReadOnly = True + End If Else c.ReadOnly = True End If @@ -171,14 +183,20 @@ If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then pnlEdit.Visible = False pnlSperre.Visible = False - FlatButton1.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 - FlatButton3.Visible = True + btnDeleteOfferte.Visible = True End If End If @@ -194,15 +212,16 @@ End Sub - Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click + Private Sub btnCreateOffert_Click(sender As Object, e As EventArgs) Handles btnCreateOffert.Click Dim f As New frmOffertenBearbeiten(kdNr) If f.ShowDialog() = DialogResult.OK Then initDGVOfferte() RaiseEvent OfferteChanged() + dgvOfferte.Enabled = True End If End Sub - Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click + Private Sub btnAddLeistung_Click(sender As Object, e As EventArgs) Handles btnAddLeistung.Click Dim SQLsrt = " SELECT (select case when COUNT(*)>0 then 1 else 0 end FROM Offertenpositionen where KundenNr=" & kdNr & " and [Offertenpositionen].[OffertenNr]=[Offertenstamm].[OffertenNr]) as vorhanden," & @@ -222,7 +241,7 @@ - btn.ContextMenuStrip = cntxtAddSdl + btnAddLeistung.ContextMenuStrip = cntxtAddSdl ' cntxtAddSdl Dim ptLowerLeft As New Point(sender.width, sender.Height) ptLowerLeft = sender.PointToScreen(ptLowerLeft) @@ -241,15 +260,8 @@ End Sub - Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnOfferteSpeichern.Click - KD_ERW.AutoFakturierung = cbxAutoFakturierung.Checked - KD_ERW.SAVE() - OFFERTEBind.updateBinding() - RaiseEvent OfferteChanged() - End Sub - - Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click + Private Sub btnHinzufuegen_Click_1(sender As Object, e As EventArgs) Handles btnHinzufuegen.Click lblLeistunAddErr.Visible = False lblLeistunAddErr2.Visible = False Label3.Visible = False @@ -294,7 +306,7 @@ Private Sub cboLeistungenAdd_KeyDown(sender As Object, e As KeyEventArgs) Handles cboLeistungenAdd.KeyDown, MyTextBox1.KeyDown If e.KeyCode = Keys.Return Then - Button2.PerformClick() + btnHinzufuegen.PerformClick() End If End Sub @@ -315,7 +327,7 @@ End Sub - Private Sub FlatButton3_Click(sender As Object, e As EventArgs) Handles FlatButton3.Click + Private Sub btnDeleteOfferte_Click(sender As Object, e As EventArgs) Handles btnDeleteOfferte.Click If dgvOfferte.SelectedRows.Count = 1 Then If vbYes = MsgBox("Möchten Sie das Offert '" & dgvOfferte.SelectedRows(0).Cells("OffertenBez").Value & "' wirklich löschen", vbYesNoCancel) Then If SQL.doSQL("DELETE FROM Offerten where [KundenNr]='" & kdNr & "' AND [OffertenNr]='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "' ", "FMZOLL") Then @@ -325,4 +337,74 @@ End If End If End Sub + + Private Sub btnOfferteSpeichern_Click(sender As Object, e As EventArgs) Handles btnOfferteSpeichern.Click + KD_ERW.AutoFakturierung = cbxAutoFakturierung.Checked + KD_ERW.SAVE() + edit = False + dgvOfferte.Enabled = True + + OFFERTEBind.updateBinding() + RaiseEvent OfferteChanged() + End Sub + + 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 + + End Sub + + Private Sub OffertenArchivieren() + + If currentOffert.SAVETOARCHIVE() Then + For Each row As DataRow In tmpDataTable.Rows + Dim oP As New VERAG_PROG_ALLGEMEIN.cOffertPosition + oP.KundenNr = currentOffert.KundenNr + oP.LeistungsNr = row("LeistungsNr") + oP.LeistungsBez = row("LeistungsBez") + oP.OffertenNr = currentOffert.OffertenNr + oP.BerechnungsartNr = row("BerechnungsartNr") + oP.Preis = row("Preis") + oP.Anzahl = row("Anzahl") + oP.BGebLeistungsNr = row("BGebLeistungsNr") + oP.BGebProzent = row("BGebProzent") + oP.BGebMinBetrag = row("BGebMinBetrag") + oP.Eingegeben_am = row("Eingegeben am") + oP.Geändert_am = row("Geändert am") + oP.Sachbearbeiter = row("Sachbearbeiter") + oP.Preisänderung = row("Preisänderung") + oP.PreisänderungProzent = row("PreisänderungProzent") + oP.PreisAlt = row("PreisAlt") + oP.BerechnungsartPosInkludiert = row("BerechnungsartPosInkludiert") + oP.INSERTTOARCHIVE() + Next + + End If + + End Sub + + 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 + + + End Sub + + Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxArchivierteOfferten.SelectedIndexChanged + + End Sub + + Private Sub cbxArchivierteOffertenAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles cbxArchivierteOffertenAnzeigen.CheckedChanged + If cbxArchivierteOffertenAnzeigen.Checked Then + cbxArchivierteOfferten.Visible = True + Else + cbxArchivierteOfferten.Visible = False + End If + End Sub End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index a17255a4..5672150f 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -77,7 +77,7 @@ Public Class cOfferte 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 @@ -304,6 +304,40 @@ 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 @@ -325,6 +359,7 @@ Public Class cOffertPosition 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 @@ -360,6 +395,13 @@ Public Class cOffertPosition Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list) 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 @@ -380,4 +422,27 @@ Public Class cOffertPosition End Try Return "" 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 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 From 6140dc2c0594114b90b7b806e92739b99484d5ef Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 18 Nov 2022 16:03:56 +0100 Subject: [PATCH 2/4] Feature: Offertenlogik --- SDL/kunden/usrCntlOfferte.Designer.vb | 64 ++-- SDL/kunden/usrCntlOfferte.vb | 311 +++++++++++++++---- VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 368 ++++++++++++++++++++--- 3 files changed, 628 insertions(+), 115 deletions(-) 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 From 579d56e057287b339563fda3a003630a98ea30cb Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 21 Nov 2022 09:23:19 +0100 Subject: [PATCH 3/4] Feature: Offerten --- SDL/kunden/usrCntlOfferte.vb | 16 +++++++++++----- VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 2 ++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index 84158e3a..c447f39e 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -325,7 +325,7 @@ Public Class usrCntlOfferte edit = False handleEditMode(edit) checkPerimissionsDGVDetails() - If isStandard = False Then OfferteArchivieren() + If isStandard = False Then OfferteArchivieren("Geändert") OFFERTEBind.updateBinding() RaiseEvent OfferteChanged() End Sub @@ -339,7 +339,7 @@ Public Class usrCntlOfferte End Sub - Private Sub OfferteArchivieren() + Private Sub OfferteArchivieren(Optional Art As String = "") If DGVHasChaged = False Then Exit Sub currentOffertArchiv = New VERAG_PROG_ALLGEMEIN.cOfferteArchiv() @@ -355,6 +355,7 @@ Public Class usrCntlOfferte currentOffertArchiv.Gesperrt = currentOffert.Gesperrt currentOffertArchiv.Gesperrt_Datum = currentOffert.Gesperrt_Datum currentOffertArchiv.Gesperrt_Grund = currentOffert.Gesperrt_Grund + currentOffertArchiv.Art = Art Dim ofID As Integer = currentOffertArchiv.SAVERETURNID() If ofID > 0 Then @@ -386,16 +387,21 @@ Public Class usrCntlOfferte End Sub Private Sub btnStandardLaden_Click(sender As Object, e As EventArgs) Handles btnStandardLaden.Click + + Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(kdNr) + Dim FIRMA_TMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr) + + edit = True handleEditMode(edit) saveCurrentOffert() - OfferteArchivieren() + OfferteArchivieren("Neuer Standard") 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) + currentOffert.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP) End If isStandard = True @@ -434,7 +440,7 @@ Public Class usrCntlOfferte 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) + cbxArchivierteOfferten.fillWithSQL("SELECT OfID, Concat(Cast([Archiviert am] AS DATE),' ' ,Art) as Archivierungsdatum, Art FROM [tblOffertenArchiv] WHERE KundenNr='" & kdNr & "' and OffertenNr='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "'", False, "FMZOLL", True) fbtnBearbeiten.Visible = False Else diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index c2ad95ac..21772576 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -401,6 +401,7 @@ Public Class cOfferteArchiv 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 @@ -429,6 +430,7 @@ Public Class cOfferteArchiv 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 From 4b07117bf3e4147ab6dc05bec94b80f0d6ff27ad Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 21 Nov 2022 16:42:29 +0100 Subject: [PATCH 4/4] Feature Offertenarchivierung --- SDL/kunden/usrCntlOfferte.Designer.vb | 5 +- SDL/kunden/usrCntlOfferte.vb | 82 ++++++++++++++++++++---- VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 39 +++++------ 3 files changed, 91 insertions(+), 35 deletions(-) diff --git a/SDL/kunden/usrCntlOfferte.Designer.vb b/SDL/kunden/usrCntlOfferte.Designer.vb index 9fc28ad1..1c4ffddf 100644 --- a/SDL/kunden/usrCntlOfferte.Designer.vb +++ b/SDL/kunden/usrCntlOfferte.Designer.vb @@ -520,7 +520,7 @@ Partial Class usrCntlOfferte Me.fbtnBearbeiten.FlatAppearance.BorderSize = 0 Me.fbtnBearbeiten.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.fbtnBearbeiten.ForeColor = System.Drawing.Color.Black - Me.fbtnBearbeiten.Location = New System.Drawing.Point(860, 7) + Me.fbtnBearbeiten.Location = New System.Drawing.Point(898, 5) Me.fbtnBearbeiten.Name = "fbtnBearbeiten" Me.fbtnBearbeiten.Size = New System.Drawing.Size(20, 20) Me.fbtnBearbeiten.TabIndex = 3 @@ -546,6 +546,7 @@ Partial Class usrCntlOfferte Me.cbxArchivierteOfferten._allowedValuesFreiText = Nothing Me.cbxArchivierteOfferten._allowFreiText = False Me.cbxArchivierteOfferten._value = "" + Me.cbxArchivierteOfferten.DropDownWidth = 250 Me.cbxArchivierteOfferten.FormattingEnabled = True Me.cbxArchivierteOfferten.Location = New System.Drawing.Point(600, 3) Me.cbxArchivierteOfferten.Name = "cbxArchivierteOfferten" @@ -580,7 +581,7 @@ Partial Class usrCntlOfferte 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.Location = New System.Drawing.Point(957, 11) Me.lblEditMode.Name = "lblEditMode" Me.lblEditMode.Size = New System.Drawing.Size(64, 13) Me.lblEditMode.TabIndex = 28 diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index c447f39e..2be7bd65 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -1,7 +1,5 @@  -Imports TAlex.WPF.Helpers - Public Class usrCntlOfferte Dim FUNC As New cProgramFunctions @@ -19,8 +17,11 @@ Public Class usrCntlOfferte Dim currentOffertArchiv As VERAG_PROG_ALLGEMEIN.cOfferteArchiv Dim edit As Boolean Dim DGVHasChaged = False - Dim isStandard = False + Dim isStandard Dim loaded = False + Dim isNew = False + Dim addLeistung = False + Dim ofID As Integer Sub New() InitializeComponent() @@ -64,7 +65,7 @@ Public Class usrCntlOfferte Sub initDGVOfferteDetails(OffertenNr) loaded = False - DGVHasChaged = False + With dgvOfferteDetails '.Columns.Clear() @@ -142,14 +143,17 @@ Public Class usrCntlOfferte loaded = True End With + DGVHasChaged = False + End Sub Private Sub dgvOfferteDetails_SelectionChanged(sender As Object, e As EventArgs) Handles dgvOfferte.SelectionChanged - isStandard = False + cbxArchivierteOffertenAnzeigen.Checked = False + cbxArchivierteOfferten.Items.Clear() checkPermissions() If dgvOfferte.RowCount > 0 Then @@ -194,6 +198,7 @@ Public Class usrCntlOfferte initDGVOfferte() RaiseEvent OfferteChanged() dgvOfferte.Enabled = True + isNew = True End If End Sub @@ -276,7 +281,10 @@ Public Class usrCntlOfferte If o.INSERT() Then cboLeistungenAdd.changeItem("") initDGVOfferteDetails(o.OffertenNr) + addLeistung = True End If + DGVHasChaged = True + End Sub @@ -303,8 +311,10 @@ Public Class usrCntlOfferte If loaded = True Then dgvOfferteDetails.Rows(e.RowIndex).Cells("Sachbearbeiter").Value = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME dgvOfferteDetails.Rows(e.RowIndex).Cells("Geändert am").Value = Now + DGVHasChaged = True + End If - DGVHasChaged = True + 'DGVHasChaged = True End Sub @@ -322,12 +332,16 @@ Public Class usrCntlOfferte Private Sub btnOfferteSpeichern_Click(sender As Object, e As EventArgs) Handles btnOfferteSpeichern.Click KD_ERW.AutoFakturierung = cbxAutoFakturierung.Checked KD_ERW.SAVE() + + checkPerimissionsDGVDetails() edit = False handleEditMode(edit) - checkPerimissionsDGVDetails() - If isStandard = False Then OfferteArchivieren("Geändert") + saveArchivierteOfferte() + OFFERTEBind.updateBinding() RaiseEvent OfferteChanged() + DGVHasChaged = False + End Sub Private Sub fbtnBearbeiten_Click(sender As Object, e As EventArgs) Handles fbtnBearbeiten.Click @@ -340,7 +354,6 @@ Public Class usrCntlOfferte End Sub Private Sub OfferteArchivieren(Optional Art As String = "") - If DGVHasChaged = False Then Exit Sub currentOffertArchiv = New VERAG_PROG_ALLGEMEIN.cOfferteArchiv() currentOffertArchiv.KundenNr = currentOffert.KundenNr @@ -356,7 +369,7 @@ Public Class usrCntlOfferte currentOffertArchiv.Gesperrt_Datum = currentOffert.Gesperrt_Datum currentOffertArchiv.Gesperrt_Grund = currentOffert.Gesperrt_Grund currentOffertArchiv.Art = Art - Dim ofID As Integer = currentOffertArchiv.SAVERETURNID() + ofID = currentOffertArchiv.SAVERETURNID() If ofID > 0 Then For Each row As DataRow In tmpDataTable.Rows @@ -395,18 +408,23 @@ Public Class usrCntlOfferte edit = True handleEditMode(edit) saveCurrentOffert() - OfferteArchivieren("Neuer Standard") - If SQL.doSQL("DELETE FROM Offerten where [KundenNr]='" & kdNr & "' AND [OffertenNr]='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "' ", "FMZOLL") Then + + If SQL.doSQL("DELETE FROM Offerten where [KundenNr]='" & kdNr & "' AND [OffertenNr]='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "' ", "FMZOLL") Then + isStandard = True + isNew = True currentOffert.SAVE() currentOffert.LOAD_POSITIONEN() If currentOffert.POSITIONEN.Count = 0 Then ' currentOffert.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP) End If - isStandard = True + + 'DGVHasChaged = False initDGVOfferte() RaiseEvent OfferteChanged() + saveCurrentOffert() + saveArchivierteOfferte() End If End Sub @@ -440,7 +458,7 @@ Public Class usrCntlOfferte cbxArchivierteOfferten.SelectedIndex = -1 cbxArchivierteOfferten.Items.Clear() cbxArchivierteOfferten.Visible = True - cbxArchivierteOfferten.fillWithSQL("SELECT OfID, Concat(Cast([Archiviert am] AS DATE),' ' ,Art) as Archivierungsdatum, Art FROM [tblOffertenArchiv] WHERE KundenNr='" & kdNr & "' and OffertenNr='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "'", False, "FMZOLL", True) + cbxArchivierteOfferten.fillWithSQL("SELECT OfID, CONCAT(FORMAT([Archiviert am], 'dd-MM.yyyy HH:mm'),'-',Art) as Archivierungsoffert FROM [tblOffertenArchiv] WHERE KundenNr='" & kdNr & "' and OffertenNr='" & dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value & "'", False, "FMZOLL", True) fbtnBearbeiten.Visible = False Else @@ -487,6 +505,7 @@ Public Class usrCntlOfferte loaded = False DGVHasChaged = False + With dgvOfferteDetails .Columns.Clear() @@ -611,5 +630,40 @@ Public Class usrCntlOfferte End If End Sub + Private Sub saveArchivierteOfferte(Optional forceSave As Boolean = False) + + + If isNew = False AndAlso isStandard = False Or isNew AndAlso isStandard = False Then 'Neuanlage oder Anlage über "Standardoffert laden" speichern, + If DGVHasChaged = False Then Exit Sub + End If + + If isStandard Then + If DGVHasChaged = False AndAlso isNew Then + OfferteArchivieren("Neuer Standard") + isNew = False + Exit Sub + + End If + isStandard = False + Else + + If DGVHasChaged Then + If isNew = False Then + + OfferteArchivieren("Geändert") + Exit Sub + + Else + If isNew Then + OfferteArchivieren("Neuanlage") + isNew = False + End If + + End If + End If + End If + + End Sub + End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index 21772576..8490002a 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -436,11 +436,12 @@ Public Class cOfferteArchiv End Function - Public Function SAVE() As Boolean + Public Function UPDATE() As Boolean - Dim sqlstr = " BEGIN " & getInsertCmd() & " End " + Dim sqlstr = " BEGIN " & getUpdateCmd() & " End " Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + OfID = SQL.doSQLVarListID(OfID, sqlstr, "FMZOLL", , list) + Return OfID End Function Public Function SAVERETURNID() As Integer @@ -547,24 +548,24 @@ Public Class cOfferteArchiv Return "" End Function - 'Public Function getUpdateCmd() As String - ' Try - ' Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + 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 ") + 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 + 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