Imports VERAG_PROG_ALLGEMEIN Public Class frmReferenzenSicherheiten 'Dim REF As New VERAG_PROG_ALLGEMEIN.cAufschubKonten Dim writepermission As Boolean Sub New(writepermission As Boolean) InitializeComponent() Me.writepermission = writepermission End Sub Private Sub Warenorte_Load(sender As Object, e As EventArgs) Handles MyBase.Load If Not writepermission Then btnSave.Enabled = False btnDelete.Enabled = False btnAdd.Enabled = False For Each c As Control In mainPanel.Controls If TypeOf c Is MyTextBox Then Dim mytxtb As MyTextBox = c mytxtb.ReadOnly = True ElseIf TypeOf c Is TextBox Then Dim txtb As TextBox = c txtb.ReadOnly = True ElseIf TypeOf c Is CheckBox Then Dim cbx As CheckBox = c cbx.Enabled = False ElseIf TypeOf c Is MyComboBox Then Dim mycbx As MyComboBox = c mycbx.Enabled = False ElseIf TypeOf c Is GroupBox Then Dim gb As GroupBox = c gb.Enabled = False End If Next End If initDGVWarenort() cbxFirma.fillWithSQL("SELECT [Firma_id],[Firma_Bez] FROM [tblFirma] ", False, "FMZOLL", True) End Sub Private Sub initDGVWarenort(Optional firma As Integer = 0) lblWarning.Text = "" Dim SQLString As String = "SELECT [brgakto_id],[brgakto_betrag],[brgakto_gs_standort],[brgakto_gs_zollsatz],[brgakto_gs_aktSaldo],[brgakto_gs_ustEnabled],[brgakto_gs_ust],[brgakto_gs_ATR],[brgakto_firmaID] FROM [tblBrgAufschubKonten] WHERE brgakto_gs_standort is not null" Dim SQLWHere = "" If firma <> 0 Then SQLWHere = " AND brgakto_firmaID = " & firma End If dgvWarenorteNew.SET_SQL(SQLString & SQLWHere, "ADMIN", ,) dgvWarenorteNew.LOAD() If dgvWarenorteNew.Columns.Count < 1 Then Exit Sub With dgvWarenorteNew If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub .MultiSelect = False .RowHeadersVisible = False .ReadOnly = True .SelectionMode = DataGridViewSelectionMode.FullRowSelect .Columns("brgakto_id").Visible = False .Columns("brgakto_gs_standort").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("brgakto_gs_standort").HeaderText = "Standort" .Columns("brgakto_betrag").Visible = False .Columns("brgakto_gs_aktSaldo").Visible = False .Columns("brgakto_gs_ustEnabled").Visible = False .Columns("brgakto_gs_zollsatz").Visible = False .Columns("brgakto_gs_ust").Visible = False .Columns("brgakto_gs_ATR").Visible = False .Columns("brgakto_firmaID").HeaderText = "Firma" .Columns("brgakto_firmaID").Width = 150 End With For Each row As DataGridViewRow In dgvWarenorteNew.Rows If row.Cells("brgakto_firmaID").Value IsNot DBNull.Value AndAlso row.Cells("brgakto_firmaID").Value <> 0 Then If CInt(row.Cells("brgakto_firmaID").Value) > 0 Then Dim tmpFirma = New VERAG_PROG_ALLGEMEIN.cFirmen(row.Cells("brgakto_firmaID").Value) 'row.Cells("brgakto_firmaID").Value = tmpFirma.Firma_Bez.ToString End If End If Next initdgvDetails() End Sub Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click If checkIfFirmaIsFilled(True) = False Then Exit Sub Dim input = InputBox("Bitte geben Sie die Bezeichnung des neuen Referenz ein:", "Referenz anlegen") If input <> "" Then If checkNameIsValid(input) Then Dim REF As New VERAG_PROG_ALLGEMEIN.cAufschubKonten(input, CInt(cbxFirma._value)) REF.brgakto_gs_ust = 0 REF.brgakto_betrag = 0 REF.brgakto_gs_ustEnabled = False REF.brgakto_gs_zollsatz = 0 REF.brgakto_gs_ATR = False If REF.SAVE() Then initDGVWarenort(cbxFirma._value) End If Else MsgBox("Es existiert bereits eine Referenz " & input & " für die Firma " & cbxFirma._value) End If Else MsgBox("Keine Bezeichnung angegeben!") End If End Sub Private Sub initdgvDetails() If dgvWarenorteNew.Rows.Count = 1 OrElse dgvWarenorteNew.SelectedRows.Count = 1 Then Dim gsid As Integer = 0 If dgvWarenorteNew.Rows.Count = 1 Then gsid = dgvWarenorteNew.Rows(0).Cells.Item("brgakto_id").Value ElseIf dgvWarenorteNew.SelectedRows.Count = 1 Then gsid = dgvWarenorteNew.SelectedRows(0).Cells.Item("brgakto_id").Value End If If gsid > 0 Then Dim SQLStringREF As String = "SELECT [brgarefb_gsid],[brgarefb_refbetrag],[brgarefb_gueltig_ab],[brgarefb_gueltig_bis],[brgarefb_gs_aktiv] FROM [tblBrgAufschubReferenzberaege] WHERE brgarefb_gsid = " & gsid & " order by brgarefb_gueltig_ab, brgarefb_gueltig_bis" MyDatagridview1.SET_SQL(SQLStringREF, "ADMIN", ,) MyDatagridview1.LOAD() With MyDatagridview1 If .RowCount = 0 Then Exit Sub .ReadOnly = True .SelectionMode = DataGridViewSelectionMode.FullRowSelect .Columns("brgarefb_gsid").Visible = False .Columns("brgarefb_refbetrag").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("brgarefb_refbetrag").HeaderText = "Ref-Betrag" .Columns("brgarefb_gs_aktiv").Visible = False .Columns("brgarefb_gueltig_ab").HeaderText = "Gültig ab" .Columns("brgarefb_gueltig_ab").Width = 75 .Columns("brgarefb_gueltig_bis").HeaderText = "Gültig bis" .Columns("brgarefb_gueltig_bis").Width = 75 End With End If End If End Sub 'Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click ' If dgvWarenorteNew.SelectedRows.Count > 0 Then ' Dim Warenort As New cWarenorte(dgvWarenorteNew.SelectedRows(0).Cells("wo_id").Value) ' If vbYes = MsgBox("Möchten Sie diesen Warenort " & Warenort.wo_warenort & " in " & Warenort.wo_firma & " wirklich löschen?", vbYesNo) Then ' Warenort.deleteWarenort(Warenort.wo_id) ' initDGVWarenort(cbxFirma._value) ' End If ' End If 'End Sub Private Function checkNameIsValid(name As String) As Boolean If dgvWarenorteNew.Rows.Count = 0 Then Return True If checkIfFirmaIsFilled(False) = False Then Return False For Each row As DataGridViewRow In dgvWarenorteNew.Rows If Not IsDBNull(row.Cells("brgakto_gs_standort").Value) AndAlso Not IsDBNull(row.Cells("brgakto_firmaID").Value) Then If row.Cells("brgakto_gs_standort").Value.ToLower = name.ToLower AndAlso row.Cells("brgakto_firmaID").Value = cbxFirma._value Then Return False End If End If Next Return True End Function Private Sub dgvWarenorteNew_SelectionChanged(sender As Object, e As EventArgs) Handles dgvWarenorteNew.SelectionChanged If dgvWarenorteNew.SelectedRows.Count < 1 Then mainPanel.Enabled = False Exit Sub Else mainPanel.Enabled = True End If Dim REF = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(CInt(dgvWarenorteNew.SelectedRows(0).Cells("brgakto_id").Value)) txtStandort.Text = REF.brgakto_gs_standort txtReferenzwert.Text = REF.getReferenzbetrag(Now()) cbxATR.Checked = REF.brgakto_gs_ATR txtUst.Text = REF.brgakto_gs_ust cbxUst.Checked = REF.brgakto_gs_ustEnabled txtSaldo.Text = REF.brgakto_gs_aktSaldo txtZollsatz.Text = REF.brgakto_gs_zollsatz initdgvDetails() End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click checkIfFirmaIsFilled(False) Dim REF_NEW As New VERAG_PROG_ALLGEMEIN.cAufschubKonten(CInt(dgvWarenorteNew.SelectedRows(0).Cells("brgakto_id").Value)) If checkFields() = False Then Exit Sub REF_NEW.brgakto_gs_standort = txtStandort.Text REF_NEW.brgakto_betrag = txtReferenzwert.Text REF_NEW.brgakto_gs_ATR = cbxATR.Checked REF_NEW.brgakto_gs_ustEnabled = cbxUst.Checked REF_NEW.brgakto_gs_ust = txtUst.Text REF_NEW.brgakto_gs_zollsatz = txtZollsatz.Text REF_NEW.SAVE() dgvWarenorteNew.GetOrder() initDGVWarenort(IIf(cbxFirma._value = "", 0, cbxFirma._value)) dgvWarenorteNew.SetOrder() End Sub Private Sub cbxFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxFirma.SelectedValueChanged dgvWarenorteNew.GetOrder() initDGVWarenort(IIf(cbxFirma._value = "", 0, cbxFirma._value)) dgvWarenorteNew.SetOrder() End Sub Private Function checkIfFirmaIsFilled(initialSave As Boolean, Optional setWarning As Boolean = True) Dim firmaLeer As Boolean = String.IsNullOrEmpty(cbxFirma._value) Dim gridFirmaLeer As Boolean = dgvWarenorteNew.SelectedRows(0).Cells("brgakto_firmaID").Value Is DBNull.Value OrElse dgvWarenorteNew.SelectedRows(0).Cells("brgakto_firmaID").Value Is Nothing OrElse dgvWarenorteNew.SelectedRows(0).Cells("brgakto_firmaID").Value.ToString() = "" If firmaLeer AndAlso (gridFirmaLeer OrElse initialSave) Then lblWarning.Text = If(setWarning, "Bitte Firma auswählen!", "") Return False End If lblWarning.Text = "" Return True End Function Private Function checkFields() As Boolean If txtStandort.TextLength > 50 Then lblWarning.Text = "Standort darf max 50 Zeichen besitzen!" Return False ElseIf txtReferenzwert.TextLength > 50 Then lblWarning.Text = "REF-Wert darf max 50 Zeichen besitzen!" Return False ElseIf txtZollsatz.TextLength > 60 Then lblWarning.Text = "Zollsatz darf max 60 Zeichen besitzen!" Return False ElseIf txtUst.TextLength > 50 Then lblWarning.Text = "Ust darf max 50 Zeichen besitzen!" Return False End If lblWarning.Text = "" Return True End Function End Class