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