630 lines
25 KiB
VB.net
630 lines
25 KiB
VB.net
|
|
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
|
|
|
|
Public Class usrCntlIDSPreise
|
|
|
|
Dim FUNC As New cProgramFunctions
|
|
Dim SQL As New SQL
|
|
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 currentOffertArchiv As VERAG_PROG_ALLGEMEIN.cOfferteArchiv
|
|
Dim edit As Boolean
|
|
Dim DGVHasChaged = False
|
|
Dim isStandard
|
|
Dim loaded = False
|
|
Dim isNew = False
|
|
Dim addLeistung = False
|
|
Dim ofID As Integer
|
|
Dim isVerag360 As Boolean = False
|
|
|
|
Sub New()
|
|
InitializeComponent()
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Public Sub init(Optional _isVerag360 As Boolean = False)
|
|
initDGVOfferte()
|
|
edit = False
|
|
handleEditMode(edit)
|
|
isVerag360 = _isVerag360
|
|
|
|
End Sub
|
|
Sub initDGVOfferte()
|
|
dgvOfferteDetails.Columns.Clear()
|
|
|
|
|
|
With dgvIDS
|
|
.DataSource = SQL.loadDgvBySql("SELECT OutletCountry, Lieferland_ISO2 FROM [VERAG].[dbo].[tbl_IDS_Länder] ORDER BY OutletCountry", "FMZOLL")
|
|
|
|
.Columns("Lieferland_ISO2").HeaderText = "Land"
|
|
.Columns("OutletCountry").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("OutletCountry").HeaderText = "Bezeichnung"
|
|
End With
|
|
|
|
End Sub
|
|
|
|
|
|
Sub initDGVOfferteDetails(OffertenNr)
|
|
loaded = False
|
|
Try
|
|
|
|
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 [Offertenpositionen] " &
|
|
" Where 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
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
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)
|
|
|
|
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("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"
|
|
|
|
.Columns("PreisänderungProzent").Visible = False
|
|
.Columns("PreisAlt").Visible = False
|
|
.Columns("Preisänderung").Visible = False
|
|
|
|
loaded = True
|
|
End With
|
|
|
|
DGVHasChaged = False
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub dgvOfferteDetails_SelectionChanged(sender As Object, e As EventArgs) Handles dgvIDS.SelectionChanged
|
|
Try
|
|
|
|
|
|
checkPermissions()
|
|
|
|
If dgvIDS.SelectedRows.Count > 0 Then
|
|
initDGVOfferteDetails(dgvIDS.SelectedRows(0).Cells("OffertenNr").Value)
|
|
End If
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub usrCntlOfferte_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
init(isVerag360)
|
|
|
|
' sbLeistungAdd.initSearchBox(Me.FindForm, " [Code] ,[LeistungsNr],[LeistungsBez] FROM [Leistungen]", {"LeistungsNr", "LeistungsBez"}, " ", "LeistungsNr", "LeistungsNr", , "FMZOLL", , 400, 200)
|
|
cboLeistungenAdd.fillWithSQL("SELECT [LeistungsNr],Replace([LeistungsBez],'P.P./', '') FROM [Leistungen] ORDER BY LeistungsNr", , "FMZOLL", True)
|
|
|
|
checkPermissions()
|
|
|
|
|
|
'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 btnAddLeistung_Click(sender As Object, e As EventArgs) Handles btnAddLeistung.Click
|
|
|
|
Try
|
|
|
|
Dim SQLsrt = " SELECT (select case when COUNT(*)>0 then 1 else 0 end FROM Offertenpositionen where [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
|
|
|
|
|
|
|
|
btnAddLeistung.ContextMenuStrip = cntxtAddSdl
|
|
' cntxtAddSdl
|
|
Dim ptLowerLeft As New Point(sender.width, sender.Height)
|
|
ptLowerLeft = sender.PointToScreen(ptLowerLeft)
|
|
ptLowerLeft.X -= sender.width
|
|
cntxtAddSdl.Show(ptLowerLeft)
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
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 btnHinzufuegen_Click_1(sender As Object, e As EventArgs) Handles btnHinzufuegen.Click
|
|
|
|
Try
|
|
|
|
|
|
If edit = False Then
|
|
MsgBox("Bitte vorher in den Editiermodus wechseln")
|
|
Exit Sub
|
|
End If
|
|
lblLeistunAddErr.Visible = False
|
|
lblLeistunAddErr2.Visible = False
|
|
Label3.Visible = False
|
|
|
|
If dgvIDS.SelectedRows.Count <> 1 Then
|
|
Label3.Visible = True
|
|
End If
|
|
'Fehlerprüfung:
|
|
'-------
|
|
If cboLeistungenAdd._value = "" Then lblLeistunAddErr.Visible = True : Exit Sub
|
|
'-------
|
|
|
|
Dim l As New VERAG_PROG_ALLGEMEIN.cLeistungen(cboLeistungenAdd._value)
|
|
Dim o As New VERAG_PROG_ALLGEMEIN.cOffertPosition
|
|
o.LeistungsNr = l.LeistungsNr
|
|
o.LeistungsBez = MyTextBox1.Text
|
|
o.OffertenNr = dgvIDS.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)
|
|
addLeistung = True
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub cboLeistungenAdd_KeyDown(sender As Object, e As KeyEventArgs) Handles cboLeistungenAdd.KeyDown, MyTextBox1.KeyDown
|
|
If e.KeyCode = Keys.Return Then
|
|
btnHinzufuegen.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
|
|
Try
|
|
|
|
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
|
|
'saveCurrentOffert()
|
|
If isNew Then
|
|
currentOffert.Art = "Neuanlage"
|
|
Else
|
|
currentOffert.Art = "Geändert"
|
|
End If
|
|
currentOffert.SAVE()
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub btnDeleteOfferte_Click(sender As Object, e As EventArgs) Handles btnDeleteOfferte.Click
|
|
Try
|
|
|
|
If dgvIDS.SelectedRows.Count = 1 Then
|
|
If vbYes = MsgBox("Möchten Sie das Offert '" & dgvIDS.SelectedRows(0).Cells("OffertenBez").Value & "' wirklich löschen", vbYesNoCancel) Then
|
|
saveCurrentOffert()
|
|
currentOffert.Art = "Offert gelöscht"
|
|
currentOffert.SAVE()
|
|
OfferteArchivieren()
|
|
If SQL.doSQL("DELETE FROM Offerten where [OffertenNr]='" & dgvIDS.SelectedRows(0).Cells("OffertenNr").Value & "' ", "FMZOLL") Then
|
|
initDGVOfferte()
|
|
RaiseEvent OfferteChanged()
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub btnOfferteSpeichern_Click(sender As Object, e As EventArgs) Handles btnOfferteSpeichern.Click
|
|
Try
|
|
|
|
checkPerimissionsDGVDetails()
|
|
edit = False
|
|
handleEditMode(edit)
|
|
saveToArchive()
|
|
|
|
OFFERTEBind.updateBinding()
|
|
RaiseEvent OfferteChanged()
|
|
DGVHasChaged = False
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub btnOffertbearbeiten_Click(sender As Object, e As EventArgs)
|
|
|
|
edit = True
|
|
handleEditMode(edit)
|
|
checkPerimissionsDGVDetails()
|
|
saveCurrentOffert()
|
|
|
|
End Sub
|
|
|
|
Private Sub OfferteArchivieren(Optional Art As String = "")
|
|
|
|
Try
|
|
|
|
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
|
|
currentOffertArchiv.Art = currentOffert.Art
|
|
ofID = currentOffertArchiv.SAVERETURNID()
|
|
|
|
If ofID > 0 Then
|
|
For Each row As DataRow In tmpDataTable.Rows
|
|
If tmpDataTable.Rows.Count = 0 Then Exit Sub
|
|
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 = currentOffertArchiv.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.INSERT()
|
|
Next
|
|
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub cbxArchivierteOfferten_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
|
|
checkPerimissionsDGVDetails()
|
|
|
|
End Sub
|
|
|
|
Private Sub cbxArchivierteOffertenAnzeigen_CheckedChanged(sender As Object, e As EventArgs)
|
|
|
|
If dgvIDS.SelectedRows.Count = 0 Then Exit Sub
|
|
|
|
initDGVOfferteDetails(dgvIDS.SelectedRows(0).Cells("OffertenNr").Value)
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub checkPerimissionsDGVDetails()
|
|
|
|
Try
|
|
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
|
|
dgvOfferteDetails.AllowUserToDeleteRows = False
|
|
Else
|
|
|
|
For Each c As DataGridViewColumn In .Columns
|
|
|
|
If isVerag360 Then
|
|
If (c.Name = "Preis" Or c.Name = "LeistungsBez" Or c.Name = "Anzahl" Or c.Name = "BerechnungsartNr" Or c.Name = "BerechnungsartPosInkludiert" Or c.Name = "BGebLeistungsNr" Or c.Name = "BGebProzent" Or c.Name = "BGebMinBetrag" Or c.Name = "Land" Or c.Name = "VZ" Or c.Name = "RMC" Or c.Name = "Fremd") Then
|
|
If edit Then
|
|
c.ReadOnly = False
|
|
handleEditMode(edit)
|
|
Else
|
|
c.ReadOnly = True
|
|
handleEditMode(edit)
|
|
End If
|
|
Else
|
|
c.ReadOnly = True
|
|
|
|
End If
|
|
Else
|
|
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
|
|
handleEditMode(edit)
|
|
End If
|
|
Else
|
|
c.ReadOnly = True
|
|
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
dgvOfferteDetails.AllowUserToDeleteRows = edit
|
|
End If
|
|
|
|
End With
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub saveCurrentOffert()
|
|
Try
|
|
|
|
|
|
dgvIDS.Enabled = False
|
|
'currentOffert = New VERAG_PROG_ALLGEMEIN.cOfferte(kdNr, dgvIDS.SelectedRows(0).Cells("OffertenNr").Value, False)
|
|
Dim orgDataTable As DataTable = dgvOfferteDetails.DataSource
|
|
tmpDataTable = orgDataTable.Copy
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub checkPermissions()
|
|
|
|
|
|
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_BEARBEITEN", "SDL") Then
|
|
pnlEdit.Visible = False
|
|
btnCreateOffert.Visible = False
|
|
dgvIDS.ReadOnly = True
|
|
|
|
Else
|
|
dgvOfferteDetails.AllowUserToAddRows = True
|
|
dgvOfferteDetails.AllowUserToDeleteRows = True
|
|
dgvOfferteDetails.RowHeadersVisible = True
|
|
|
|
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_LOESCHEN", "SDL") Then
|
|
btnDeleteOfferte.Visible = True
|
|
End If
|
|
End If
|
|
|
|
|
|
If dgvIDS.SelectedRows.Count = 0 Then
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub handleEditMode(isInEditMode As Boolean)
|
|
|
|
If isInEditMode Then
|
|
|
|
dgvIDS.Enabled = False
|
|
dgvOfferteDetails.ReadOnly = False
|
|
btnOfferteSpeichern.Enabled = True
|
|
Else
|
|
|
|
dgvIDS.Enabled = True
|
|
dgvOfferteDetails.ReadOnly = True
|
|
btnOfferteSpeichern.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub saveToArchive()
|
|
Try
|
|
|
|
|
|
|
|
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 isNew Then
|
|
OfferteArchivieren()
|
|
isNew = False
|
|
|
|
End If
|
|
isStandard = False
|
|
Else
|
|
|
|
If DGVHasChaged Then
|
|
If isNew = False Then
|
|
OfferteArchivieren()
|
|
Exit Sub
|
|
|
|
Else
|
|
If isNew Then
|
|
OfferteArchivieren()
|
|
isNew = False
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvOfferteDetails_UserDeletingRow(sender As Object, e As DataGridViewRowCancelEventArgs) Handles dgvOfferteDetails.UserDeletingRow
|
|
DGVHasChaged = True
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs)
|
|
cProgramFunctions.genExcelFromDGV_NEW(dgvOfferteDetails, True)
|
|
End Sub
|
|
|
|
Private Sub dgvOfferteDetails_KeyUp(sender As Object, e As KeyEventArgs) Handles dgvOfferteDetails.KeyUp
|
|
If e.KeyCode = Keys.Tab Then
|
|
|
|
|
|
dgvOfferteDetails.CurrentCell = GetNextCell(dgvOfferteDetails.CurrentCell)
|
|
e.Handled = True
|
|
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Function GetNextCell(currentCell As DataGridViewCell) As DataGridViewCell
|
|
|
|
Dim i As Integer = 0
|
|
Dim nextCell As DataGridViewCell = currentCell
|
|
Dim j = 0
|
|
Do
|
|
Dim nextCellIndex As Integer = (nextCell.ColumnIndex + j) Mod dgvOfferteDetails.ColumnCount
|
|
Dim nextRowIndex As Integer = If(nextCellIndex = 0, (nextCell.RowIndex + 1) Mod dgvOfferteDetails.RowCount, nextCell.RowIndex)
|
|
lblOffert.Text = "C" & nextCellIndex & "R" & nextRowIndex & "RO" & IIf(nextCell.[ReadOnly], "1", "0") & "H" & IIf(Not nextCell.Visible, "1", "0")
|
|
nextCell = dgvOfferteDetails.Rows(nextRowIndex).Cells(nextCellIndex)
|
|
i += 1
|
|
j = 1
|
|
Loop While (i < (dgvOfferteDetails.RowCount * dgvOfferteDetails.ColumnCount) AndAlso (nextCell.[ReadOnly]) Or i < (dgvOfferteDetails.RowCount * dgvOfferteDetails.ColumnCount) AndAlso Not nextCell.Visible)
|
|
|
|
Return nextCell
|
|
|
|
End Function
|
|
|
|
End Class
|