SDL Jetzt erst recht!
This commit is contained in:
313
SDL/kunden/usrCntlOfferte.vb
Normal file
313
SDL/kunden/usrCntlOfferte.vb
Normal file
@@ -0,0 +1,313 @@
|
||||
Public Class c
|
||||
|
||||
Dim FUNC As New cProgramFunctions
|
||||
Public kdNr As Integer = -1
|
||||
Dim SQL As New SQL
|
||||
|
||||
Public Event OfferteChanged()
|
||||
|
||||
|
||||
Dim OFFERTEBind As cEasyBinding
|
||||
Dim table
|
||||
Public BIND_DB = "FMZOLL"
|
||||
|
||||
Dim loaded = False
|
||||
|
||||
Sub New()
|
||||
InitializeComponent()
|
||||
End Sub
|
||||
|
||||
Sub New(kdNr)
|
||||
InitializeComponent()
|
||||
Me.kdNr = kdNr
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub init(kdNr)
|
||||
Me.kdNr = kdNr
|
||||
initDGVOfferte()
|
||||
End Sub
|
||||
Sub initDGVOfferte()
|
||||
dgvOfferteDetails.Columns.Clear()
|
||||
|
||||
With dgvOfferte
|
||||
.DataSource = SQL.loadDgvBySql("SELECT Offerten.OffertenNr, cast(Offerten.OffertenNr as varchar(3)) + ' - ' + Offertenstamm.OffertenBez as OffertenBez ,Offerten.Besonderheiten FROM Offerten inner join Offertenstamm on [Offerten].OffertenNr=Offertenstamm.OffertenNr WHERE Offerten.KundenNr='" & kdNr & "' ORDER BY Offerten.OffertenNr ", "FMZOLL")
|
||||
.Columns("OffertenNr").Visible = False
|
||||
.Columns("Besonderheiten").Visible = False
|
||||
' .Columns("OffertenNr").HeaderText = "Nr"
|
||||
.Columns("OffertenBez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
||||
.Columns("OffertenBez").HeaderText = "Bezeichnung"
|
||||
End With
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Sub initDGVOfferteDetails(OffertenNr)
|
||||
loaded = False
|
||||
With dgvOfferteDetails
|
||||
'.Columns.Clear()
|
||||
|
||||
Try
|
||||
OFFERTEBind = New cEasyBinding(BIND_DB)
|
||||
OFFERTEBind.initBinding(" SELECT [LeistungsNr],[LeistungsBez],[BerechnungsartNr],[Preis],[Anzahl],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],[Eingegeben am],[Geändert am],[Sachbearbeiter],[PreisänderungProzent],[PreisAlt],[Preisänderung],KundenNr,OffertenNr " &
|
||||
" FROM [Offertenpositionen] " &
|
||||
" WHERE KundenNr='" & kdNr & "' and OffertenNr='" & OffertenNr & "' ORDER BY LeistungsNr, Preis DESC", "Offertenpositionen")
|
||||
For Each c As DataColumn In OFFERTEBind.bindingdataTable.Columns
|
||||
If c.ColumnName = "SSMA_TimeStamp" Then
|
||||
OFFERTEBind.bindingdataTable.Columns.Remove(c)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
' KASSENBind.initBinding("SELECT * FROM " & table & "", table)
|
||||
|
||||
.DataSource = OFFERTEBind.bindingdataTable
|
||||
' DataGridView.AutoSize = True
|
||||
' OFFERTEBind.bindingdataTable.PrimaryKey = {OFFERTEBind.bindingdataTable.Columns("KundenNr"), OFFERTEBind.bindingdataTable.Columns("LeistungsNr"), OFFERTEBind.bindingdataTable.Columns("LeistungsNr"), OFFERTEBind.bindingdataTable.Columns("LeistungsBez")}
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
|
||||
|
||||
'.DataSource = SQL.loadDgvBySql(" SELECT [LeistungsNr],[LeistungsBez],[BerechnungsartNr],[Preis],[Anzahl],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],[Eingegeben am],[Geändert am],[Sachbearbeiter],[PreisänderungProzent],[PreisAlt],[Preisänderung] " &
|
||||
' " FROM [Offertenpositionen] " &
|
||||
' " WHERE KundenNr='" & kdNr & "' and OffertenNr='" & OffertenNr & "' ORDER BY LeistungsNr ", "FMZOLL")
|
||||
|
||||
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") Then
|
||||
c.ReadOnly = False
|
||||
Else
|
||||
c.ReadOnly = True
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
.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("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("Sachbearbeiter").Visible = False
|
||||
' .Columns("Geändert 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
|
||||
' .Columns("OffertenBez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
||||
' .Columns("OffertenBez").HeaderText = "Bezeichnung"
|
||||
loaded = True
|
||||
End With
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Private Sub dgvOfferteDetails_SelectionChanged(sender As Object, e As EventArgs) Handles dgvOfferte.SelectionChanged
|
||||
If dgvOfferte.RowCount > 0 Then
|
||||
rtbBesonderheiten.Text = cSqlDb.checkNullStr(dgvOfferte.Rows(0).Cells("Besonderheiten").Value)
|
||||
Else
|
||||
rtbBesonderheiten.Text = ""
|
||||
End If
|
||||
|
||||
|
||||
If dgvOfferte.SelectedRows.Count > 0 Then
|
||||
initDGVOfferteDetails(dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Private Sub usrCntlOfferte_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
init(kdNr)
|
||||
|
||||
' 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
|
||||
FlatButton1.Visible = False
|
||||
dgvOfferte.ReadOnly = True
|
||||
Else
|
||||
dgvOfferteDetails.AllowUserToAddRows = True
|
||||
dgvOfferteDetails.AllowUserToDeleteRows = True
|
||||
dgvOfferteDetails.RowHeadersVisible = True
|
||||
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_LOESCHEN", "SDL") Then
|
||||
FlatButton3.Visible = True
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'AddHandler OFFERTEBind.bindingdataTable.ColumnChanged, Sub(ev As EventArgs, change As DataColumnChangeEventArgs)
|
||||
' ' If change.Column.ColumnName=""
|
||||
' 'Dim r_index = dgvOfferteDetails.Rows.IndexOf(change.Row)
|
||||
' 'Dim c_index = dgvOfferteDetails.Columns.IndexOf(change.Column.ColumnName)
|
||||
' 'dgvOfferteDetails.Rows(change.Row)
|
||||
|
||||
' End Sub
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click
|
||||
Dim f As New frmOffertenBearbeiten(kdNr)
|
||||
If f.ShowDialog() = DialogResult.OK Then
|
||||
initDGVOfferte()
|
||||
RaiseEvent OfferteChanged()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.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," &
|
||||
" [Offertenstamm].[OffertenNr],[OffertenBez] FROM Offertenstamm "
|
||||
|
||||
For Each r As DataRow In SQL.loadDgvBySql(SQLsrt, "FMZOLL").Rows
|
||||
If Not CBool(r("vorhanden")) Then
|
||||
Dim i As New ToolStripMenuItem
|
||||
i.Text = r("OffertenNr") & " - " & r("OffertenBez")
|
||||
i.Name = "tsmiOffertNr_" & r("OffertenNr")
|
||||
i.Tag = r("OffertenNr")
|
||||
cntxtAddSdl.Items.Add(i)
|
||||
' If s.Sperre <> 0 Then i.Enabled = False : i.Text = i.Text & " (gesperrt)"
|
||||
AddHandler i.Click, AddressOf AddOffert_Click
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
|
||||
btn.ContextMenuStrip = cntxtAddSdl
|
||||
' cntxtAddSdl
|
||||
Dim ptLowerLeft As New Point(sender.width, sender.Height)
|
||||
ptLowerLeft = sender.PointToScreen(ptLowerLeft)
|
||||
ptLowerLeft.X -= sender.width
|
||||
cntxtAddSdl.Show(ptLowerLeft)
|
||||
End Sub
|
||||
|
||||
Private Sub AddOffert_Click(sender As Object, e As EventArgs) Handles DToolStripMenuItem.Click
|
||||
If sender.name.contains("tsmiOffertNr_") Then
|
||||
' MsgBox(sender.name.ToString.Replace("tsmiSDLNr_", ""))
|
||||
Dim OffertenNr As String = sender.tag
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnOfferteSpeichern.Click
|
||||
OFFERTEBind.updateBinding()
|
||||
RaiseEvent OfferteChanged()
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
lblLeistunAddErr.Visible = False
|
||||
lblLeistunAddErr2.Visible = False
|
||||
Label3.Visible = False
|
||||
|
||||
If dgvOfferte.SelectedRows.Count <> 1 Then
|
||||
Label3.Visible = True
|
||||
End If
|
||||
'Fehlerprüfung:
|
||||
'-------
|
||||
If cboLeistungenAdd._value = "" Then lblLeistunAddErr.Visible = True : Exit Sub
|
||||
If LeistungsBezexists(cboLeistungenAdd._value, MyTextBox1.Text, dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value) Then lblLeistunAddErr2.Visible = True : Exit Sub
|
||||
'-------
|
||||
|
||||
Dim l As New VERAG_PROG_ALLGEMEIN.cLeistungen(cboLeistungenAdd._value)
|
||||
Dim o As New VERAG_PROG_ALLGEMEIN.cOffertPosition
|
||||
o.KundenNr = kdNr
|
||||
o.LeistungsNr = l.LeistungsNr
|
||||
o.LeistungsBez = MyTextBox1.Text
|
||||
o.OffertenNr = dgvOfferte.SelectedRows(0).Cells("OffertenNr").Value
|
||||
'o.Preis=l.preis
|
||||
o.BerechnungsartNr = l.BerechnungsartNr
|
||||
'o.Anzahl = l.m
|
||||
'o.BGebLeistungsNr = l.BGebUStV
|
||||
'o.BGebProzent = l.XXXXXXXXXX
|
||||
'o.BGebMinBetrag = l.XXXXXXXXXX
|
||||
o.Eingegeben_am = Now
|
||||
'o.Geändert_am = l.XXXXXXXXXX
|
||||
o.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
||||
'o.Preisänderung = l.Preissperre
|
||||
'o.PreisänderungProzent = l.XXXXXXXXXX
|
||||
'o.PreisAlt = l.XXXXXXXXXX
|
||||
If o.INSERT() Then
|
||||
cboLeistungenAdd.changeItem("")
|
||||
initDGVOfferteDetails(o.OffertenNr)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Function LeistungsBezexists(LeistungsNr, LeistungsBez, OffertenNr)
|
||||
Return (SQL.getValueTxtBySql("SELECT COUNT(*) From Offertenpositionen WHERE LeistungsNr='" & LeistungsNr & "' AND LeistungsBez='" & LeistungsBez & "' AND OffertenNr='" & OffertenNr & "' AND KundenNr='" & kdNr & "'", "FMZOLL") > 0)
|
||||
End Function
|
||||
|
||||
Private Sub cboLeistungenAdd_KeyDown(sender As Object, e As KeyEventArgs) Handles cboLeistungenAdd.KeyDown, MyTextBox1.KeyDown
|
||||
If e.KeyCode = Keys.Return Then
|
||||
Button2.PerformClick()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub cboLeistungenAdd_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboLeistungenAdd.SelectedIndexChanged
|
||||
If cboLeistungenAdd._value <> "" Then
|
||||
MyTextBox1.Text = cboLeistungenAdd.Text.ToString.Replace(cboLeistungenAdd._value & " - ", "").Trim()
|
||||
Else
|
||||
MyTextBox1.Text = ""
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub dgvOfferteDetails_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgvOfferteDetails.CellValueChanged
|
||||
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
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub FlatButton3_Click(sender As Object, e As EventArgs) Handles FlatButton3.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
|
||||
initDGVOfferte()
|
||||
RaiseEvent OfferteChanged()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user