Imports VERAG_PROG_ALLGEMEIN Public Class UsrCntlessensbestellungen Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim essen As cEssensbestellung Dim dt As New DataTable 'Dim arrayWeekdays() As String = {"montag", "dienstag", "mittwoch", "donerstag", "freitag"} Private ToolTipFont As New Font("Courier New", 12) Dim preisProMahlzeit As Double = 3 Dim menu As String = "Menu" Dim aLaCarte As String = "a La Carte" Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. initCBOFields() cbxGebäude.changeItem("") essen = New cEssensbestellung() btnSave.Enabled = False End Sub Sub New(storniert As Boolean, abgerechnet As Boolean, menutitle As String) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. Me.CheckBox1.Checked = storniert Me.CheckBox2.Checked = abgerechnet Me.CheckBox3.Checked = essen.eb_gesendet dt = SQL.loadDgvBySql("Select Top 1 * from (Select (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, * FROM tblEBMenu) kwDate where kwDate = '" & menutitle & "'", "AVISO", 100, True) loadMenuInfo(dt) essen = New cEssensbestellung() cbxGebäude.Text = essen.eb_gebaeude.ToString txtAnmerkung.Text = If(essen.eb_anmerkung IsNot Nothing, essen.eb_anmerkung.ToString, "") End Sub Sub New(bestellung As cEssensbestellung) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. initCBOFields() essen = bestellung Dim menutitle = bestellung.eb_kw.ToString() Me.CheckBox1.Checked = essen.eb_storniert Me.CheckBox2.Checked = essen.eb_abgerechnet Me.CheckBox3.Checked = essen.eb_gesendet dt = SQL.loadDgvBySql("Select Top 1 * from (Select (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, * FROM tblEBMenu) kwDate where kwDate = '" & menutitle & "'", "AVISO", 100, True) loadMenuInfo(dt) cbxGebäude.changeItem(essen.eb_gebaeude) cbxMitarbeiter.changeItem(essen.eb_mitid) cbxAbteilung.changeItem(essen.eb_abteilung) cbxMenu.changeItem(essen.eb_kw) cbxMitarbeiter.Enabled = False cbxMenu.Enabled = False cbxAbteilung.Enabled = False txtAnmerkung.Text = If(essen.eb_anmerkung IsNot Nothing, essen.eb_anmerkung.ToString, "") End Sub Private Sub rbaLaCarte_CheckedChanged(sender As Object, e As EventArgs) Handles rbMenuAlt_montag.CheckedChanged, rbMenuAlt_dienstag.CheckedChanged, rbMenuAlt_donnerstag.CheckedChanged, rbMenuAlt_mittwoch.CheckedChanged, rbMenuAlt_freitag.CheckedChanged If rbMenuAlt_montag.Checked Then txtAlt_montag.Visible = True Else txtAlt_montag.Visible = False End If If rbMenuAlt_dienstag.Checked Then txtAlt_dienstag.Visible = True Else txtAlt_dienstag.Visible = False End If If rbMenuAlt_mittwoch.Checked Then txtAlt_mittwoch.Visible = True Else txtAlt_mittwoch.Visible = False End If If rbMenuAlt_donnerstag.Checked Then txtAlt_donnerstag.Visible = True Else txtAlt_donnerstag.Visible = False End If If rbMenuAlt_freitag.Checked Then txtAlt_freitag.Visible = True Else txtAlt_freitag.Visible = False End If countChecks() End Sub Private Sub cbFields_CheckedChanged(sender As Object, e As EventArgs) Handles cb_montag.CheckedChanged, cb_dienstag.CheckedChanged, cb_mittwoch.CheckedChanged, cbdonnerstag.CheckedChanged, cb_freitag.CheckedChanged If cb_montag.Checked Then rbMenuAlt_montag.Enabled = True rbMenu_montag.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxMontag) Then rbMenu_montag.Checked = True End If Else rbMenuAlt_montag.Enabled = False rbMenu_montag.Enabled = False txtAlt_montag.Text = "" End If If cb_dienstag.Checked Then rbMenuAlt_dienstag.Enabled = True rbMenu_dienstag.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxDienstag) Then rbMenu_dienstag.Checked = True End If Else rbMenu_dienstag.Enabled = False rbMenuAlt_dienstag.Enabled = False txtAlt_dienstag.Text = "" End If If cb_mittwoch.Checked Then rbMenuAlt_mittwoch.Enabled = True rbMenu_mittwoch.Enabled = True If checkIfGroupBoxIsSetFirstTime(Mittwoch) Then rbMenu_mittwoch.Checked = True End If Else rbMenu_mittwoch.Enabled = False rbMenuAlt_mittwoch.Enabled = False txtAlt_mittwoch.Text = "" End If If cbdonnerstag.Checked Then rbMenuAlt_donnerstag.Enabled = True rbMenu_donnerstag.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxDonnerstag) Then rbMenu_donnerstag.Checked = True End If Else rbMenu_donnerstag.Enabled = False rbMenuAlt_donnerstag.Enabled = False txtAlt_donnerstag.Text = "" End If If cb_freitag.Checked Then rbMenuAlt_freitag.Enabled = True rbMenu__freitag.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxFreitag) Then rbMenu__freitag.Checked = True End If Else rbMenu__freitag.Enabled = False rbMenuAlt_freitag.Enabled = False txtAlt_freitag.Text = "" End If countChecks() End Sub Private Sub uncheckGroupBoxesAndRadioButtons(sender, e) For Each gb As Control In MyPanel1.Controls If TypeOf gb Is GroupBox Then For Each c As Control In gb.Controls If TypeOf c Is CheckBox Then Dim checkbox As CheckBox = c checkbox.Checked = False End If If TypeOf c Is RadioButton Then Dim radiobutton As RadioButton = c radiobutton.Checked = False End If Next End If Next cbFields_CheckedChanged(sender, e) End Sub Private Sub countChecks() Dim countMenus As Integer Dim countlaCarte As Integer countMenus = 0 countlaCarte = 0 For Each gb As Control In MyPanel1.Controls If TypeOf gb Is GroupBox Then For Each c As Control In gb.Controls If c.Text.ToLower.StartsWith("menu") AndAlso TypeOf c Is VERAG_PROG_ALLGEMEIN.MyRadioButton AndAlso c.Enabled = True Then Dim rb As VERAG_PROG_ALLGEMEIN.MyRadioButton = c If rb.Checked Then countMenus = countMenus + 1 End If If c.Text.ToLower.StartsWith("a la carte") AndAlso TypeOf c Is VERAG_PROG_ALLGEMEIN.MyRadioButton AndAlso c.Enabled = True Then Dim rb As VERAG_PROG_ALLGEMEIN.MyRadioButton = c If rb.Checked Then countlaCarte = countlaCarte + 1 End If Next End If Next txtAnzahlMenu.Text = countMenus.ToString() txtAnzahlLaCart.Text = countlaCarte.ToString txtPreis.Text = (CDbl(countlaCarte) + CDbl(countMenus)) * preisProMahlzeit End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged If CheckBox1.Checked Or CheckBox2.Checked Or CheckBox3.Checked Then MyPanel1.Enabled = False cbxGebäude.Enabled = False cbxMenu.Enabled = False cbxAbteilung.Enabled = False cbxMitarbeiter.Enabled = False txtAnmerkung.Enabled = False Else MyPanel1.Enabled = True cbxGebäude.Enabled = True cbxMenu.Enabled = True cbxAbteilung.Enabled = True cbxMitarbeiter.Enabled = True txtAnmerkung.Enabled = True End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnSave.Click If cbxGebäude._value = "" Then MsgBox("Bitte Gebäude für die Essensbestellung angeben!") Exit Sub End If essen = New cEssensbestellung(cbxMenu._value, cbxMitarbeiter._value, cbxGebäude._value, cbxAbteilung._value, cbxMitarbeiter.Text, txtAnmerkung.Text) If cb_montag.Checked Then If rbMenu_montag.Checked Then essen.eb_montag = menu setWarning(False) Else If txtAlt_montag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_montag = txtAlt_montag.Text.ToString setWarning(False) Else setWarning(True) Exit Sub End If End If setWarning(False) Else essen.eb_montag = Nothing End If If cb_dienstag.Checked Then If rbMenu_dienstag.Checked Then essen.eb_dienstag = menu setWarning(False) Else If txtAlt_dienstag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_dienstag = txtAlt_dienstag.Text.ToString setWarning(False) Else setWarning(True) Exit Sub End If End If setWarning(False) Else essen.eb_dienstag = Nothing End If If cb_mittwoch.Checked Then If rbMenu_mittwoch.Checked Then essen.eb_mittwoch = menu setWarning(False) Else If txtAlt_mittwoch.Text.ToString.Replace(" ", "") <> "" Then essen.eb_mittwoch = txtAlt_mittwoch.Text.ToString setWarning(False) Else setWarning(True) Exit Sub End If End If setWarning(False) Else essen.eb_mittwoch = Nothing End If If cbdonnerstag.Checked Then If rbMenu_donnerstag.Checked Then essen.eb_donnerstag = menu setWarning(False) Else If txtAlt_donnerstag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_donnerstag = txtAlt_donnerstag.Text.ToString setWarning(False) Else setWarning(True) Exit Sub End If End If setWarning(False) Else essen.eb_donnerstag = Nothing End If If cb_freitag.Checked Then If rbMenu__freitag.Checked Then essen.eb_freitag = menu setWarning(False) Else If txtAlt_freitag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_freitag = txtAlt_freitag.Text.ToString setWarning(False) Else setWarning(True) Exit Sub End If End If setWarning(False) Else essen.eb_freitag = Nothing End If If txtPreis.Text IsNot "" Then essen.eb_preis = CDbl(txtPreis.Text) End If essen.eb_datum = CDate(dt.Rows(0).Item("MenuDateVon")) essen.eb_gebaeude = cbxGebäude._value If CheckBox1.Checked = False Then essen.eb_abgerechnet = False essen.eb_abgerechnet_am = DBNull.Value End If If CheckBox2.Checked = False Then essen.eb_storniert = False essen.eb_storniert_am = DBNull.Value End If If CheckBox3.Checked = False Then essen.eb_gesendet = False essen.eb_gesendet_am = DBNull.Value End If If essen.SAVE() Then End If End Sub Private Sub loadMenuInfo(dt As DataTable) If dt.Rows(0).Item("MenuEssenMo") IsNot Nothing Then rbMenu_montag.Text = menu txtMenu_montag.Text = dt.Rows(0).Item("MenuEssenMo").ToString End If If dt.Rows(0).Item("MenuEssenDi") IsNot Nothing Then rbMenu_dienstag.Text = menu txtMenu_dienstag.Text = dt.Rows(0).Item("MenuEssenDi").ToString() End If If dt.Rows(0).Item("MenuEssenMi") IsNot Nothing Then rbMenu_mittwoch.Text = menu txtMenu_mittwoch.Text = dt.Rows(0).Item("MenuEssenMi").ToString() End If If dt.Rows(0).Item("MenuEssenDo") IsNot Nothing Then rbMenu_donnerstag.Text = menu txtMenu_donnerstag.Text = dt.Rows(0).Item("MenuEssenDo").ToString() End If If dt.Rows(0).Item("MenuEssenFr") IsNot Nothing Then rbMenu__freitag.Text = menu txtMenu_freitag.Text = dt.Rows(0).Item("MenuEssenFr").ToString() End If End Sub Private Sub rbMenu_Mo_Click(sender As Object, e As EventArgs) Handles rbMenu_montag.Click, rbMenu_dienstag.Click, rbMenu_mittwoch.Click, rbMenu_donnerstag.Click, rbMenu__freitag.Click countChecks() End Sub Private Function checkIfGroupBoxIsSetFirstTime(gb As GroupBox) For Each c As Control In gb.Controls If TypeOf c Is RadioButton Then Dim radioButton As RadioButton = c If radioButton.Checked = True Then Return False End If End If Next Return True End Function Private Sub setWarning(warning As Boolean) If warning Then lblWarning.Text = "Bezeichnung für A la carte fehlt" Else lblWarning.Text = "" End If End Sub Private Sub UsrCntlessensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load initFields() initPanelFields() End Sub Private Sub initFields() cbxMitarbeiter.Enabled = True cbxMenu.Enabled = True cbxAbteilung.Enabled = True End Sub Private Sub cbxMenu_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxMenu.SelectedValueChanged If cbxMenu._value Is Nothing Or cbxMenu._value = "" Then 'Button1.Visible = False btnSave.Enabled = False For Each comp As System.ComponentModel.Component In Me.components.Components If TypeOf comp Is ToolTip Then Dim tip = DirectCast(comp, ToolTip) tip.RemoveAll() End If Next Exit Sub End If btnSave.Enabled = True 'Button1.Visible = True dt.Clear() dt = SQL.loadDgvBySql("SELECT Top 1 * from (SELECT (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, * FROM tblEBMenu) kwDate where kwDate = '" & cbxMenu._value & "'", "AVISO", 100, True) If dt.Rows.Count > 0 Then loadMenuInfo(dt) btnSave.Enabled = True Else btnSave.Enabled = False End If uncheckGroupBoxesAndRadioButtons(sender, e) End Sub Private Sub cbxMitarbeiter_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxMitarbeiter.SelectedValueChanged If cbxMitarbeiter._value Is "" Then cbxAbteilung.changeItem("") cbxGebäude.changeItem("") cbxMenu.changeItem("") txtAnmerkung.Text = "" Else cbxAbteilung.changeItem(New cMitarbeiter(cbxMitarbeiter._value).mit_abteilung) uncheckGroupBoxesAndRadioButtons(sender, e) End If End Sub Private Sub initPanelFields() If essen.eb_montag IsNot Nothing Then cb_montag.Checked = True If essen.eb_montag.ToString = menu Then rbMenu_montag.Checked = True Else rbMenuAlt_montag.Checked = True If essen.eb_montag IsNot Nothing Then txtAlt_montag.Text = essen.eb_montag.ToString End If Else cb_montag.Checked = False End If If essen.eb_dienstag IsNot Nothing Then cb_dienstag.Checked = True If essen.eb_dienstag.ToString = menu Then rbMenu_dienstag.Checked = True Else rbMenuAlt_dienstag.Checked = True If essen.eb_dienstag IsNot Nothing Then txtAlt_dienstag.Text = essen.eb_dienstag.ToString End If Else cb_dienstag.Checked = False End If If essen.eb_mittwoch IsNot Nothing Then cb_mittwoch.Checked = True If essen.eb_mittwoch.ToString = menu Then rbMenu_mittwoch.Checked = True Else rbMenuAlt_mittwoch.Checked = True If essen.eb_mittwoch IsNot Nothing Then txtAlt_mittwoch.Text = essen.eb_mittwoch.ToString End If Else cb_mittwoch.Checked = False End If If essen.eb_donnerstag IsNot Nothing Then cbdonnerstag.Checked = True If essen.eb_donnerstag.ToString = menu Then rbMenu_donnerstag.Checked = True Else rbMenuAlt_donnerstag.Checked = True If essen.eb_donnerstag IsNot Nothing Then txtAlt_donnerstag.Text = essen.eb_donnerstag.ToString End If Else cb_mittwoch.Checked = False End If If essen.eb_freitag IsNot Nothing Then cb_freitag.Checked = True If essen.eb_freitag.ToString = menu Then rbMenu__freitag.Checked = True Else rbMenuAlt_freitag.Checked = True If essen.eb_freitag IsNot Nothing Then txtAlt_donnerstag.Text = essen.eb_freitag.ToString End If Else cb_freitag.Checked = False End If End Sub Private Sub initCBOFields() cbxMenu.fillWithSQL("SELECT Distinct Top 10 (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)), MenuDateVon from tblEBMenu order by MenuDateVon desc", True, "AVISO", True) '/ where MenuDateVon >= GETDATE() cbxMitarbeiter.fillWithSQL("SELECT top 100 [mit_id], ([mit_vname] + ' ' + [mit_nname]) as name FROM [tblMitarbeiter] where [mit_ChatBenutzer] = 1 AND [mit_pseudoUser] = 0 AND [mit_gekuendigt] = 0 AND (CAse when mit_firma = 'ALL' Then mit_FirmaHaupt else mit_firma END ) = 'VERAG' AND mit_niederlassung = 'SUB' order by name ", False, "ADMIN", True) cbxAbteilung.fillWithSQL("SELECT [abt_kuerzel], [abt_bezeichnung] from [tblAbteilungen] ", False, "ADMIN", True,, "") cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frontoffice", "Frontoffice")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Asfinag", "Asfinag")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verag Verrechnung", "Verag Verrechnung")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Maut", "Maut")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) End Sub End Class