Imports System.Windows.Documents 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 = "Menü" Dim alacarte As String = "A La Carte" Dim outdated As Boolean = True Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. initCBOFields() initFields() 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 cbxAlt_montag.Visible = True Else cbxAlt_montag.Visible = False 'txtAlt_montag.Visible = False End If If rbMenuAlt_dienstag.Checked Then cbxAlt_dienstag.Visible = True 'txtAlt_dienstag.Visible = True Else cbxAlt_dienstag.Visible = False 'txtAlt_dienstag.Visible = False End If If rbMenuAlt_mittwoch.Checked Then cbxAlt_mittwoch.Visible = True 'txtAlt_mittwoch.Visible = True Else cbxAlt_mittwoch.Visible = False 'txtAlt_mittwoch.Visible = False End If If rbMenuAlt_donnerstag.Checked Then cbxAlt_donnerstag.Visible = True 'txtAlt_donnerstag.Visible = True Else cbxAlt_donnerstag.Visible = False 'txtAlt_donnerstag.Visible = False End If If rbMenuAlt_freitag.Checked Then cbxAlt_freitag.Visible = True 'txtAlt_freitag.Visible = True Else cbxAlt_freitag.Visible = False '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 Dim countKebab As Integer countMenus = 0 countlaCarte = 0 countKebab = 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.ToLower) AndAlso TypeOf c Is VERAG_PROG_ALLGEMEIN.MyRadioButton AndAlso (c.Enabled = True Or outdated = True And MyPanel1.Enabled = False) Then Dim rb As VERAG_PROG_ALLGEMEIN.MyRadioButton = c If rb.Checked Then countMenus = countMenus + 1 End If If c.Text.ToLower.StartsWith(alacarte.ToLower) AndAlso TypeOf c Is VERAG_PROG_ALLGEMEIN.MyRadioButton AndAlso (c.Enabled = True Or outdated = True And MyPanel1.Enabled = False) Then Dim rb As VERAG_PROG_ALLGEMEIN.MyRadioButton = c If rb.Checked Then countlaCarte = countlaCarte + 1 End If If TypeOf c Is VERAG_PROG_ALLGEMEIN.MyComboBox AndAlso (c.Enabled = True Or outdated = True And MyPanel1.Enabled = False) Then Dim cbx As VERAG_PROG_ALLGEMEIN.MyComboBox = c If cbx.Visible = True AndAlso cbx.SelectedItem IsNot Nothing Then countKebab = countKebab + 1 countlaCarte = countlaCarte - 1 End If End If Next End If Next txtAnzahlMenu.Text = countMenus.ToString() txtAnzahlLaCart.Text = countlaCarte.ToString txtAnzahlKeb.Text = countKebab.ToString If dt.Rows.Count < 1 Then Exit Sub If CDate(dt.Rows(0).Item("MenuDateVon")).ToString("dd.MM.yyyy") >= DateTime.Parse("01/06/2024") Then txtPreis.Text = (CDbl(countKebab) + CDbl(countMenus)) * 3 + CDbl(countlaCarte) * 5 Else txtPreis.Text = (CDbl(countlaCarte) + CDbl(countMenus) + CDbl(countKebab)) * preisProMahlzeit End If 'IIf(bestellung.eb_storniert, preisProMahlzeit * 0, preisProMahlzeit * 1) End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.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 Dim mitarbeiter As New cMitarbeiter(cbxMitarbeiter._value) Dim menuDate = cbxMenu.SelectedItem.ToString.Replace(cbxMenu.SelectedItem.Value & " - ", "") Dim MenuID As String = SQL.getValueTxtBySql("select MenuID from tblEBMenu where MenuDateVon = '" & menuDate & "'", "AVISO") 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) ElseIf rbMenuAlt_montag.Checked Then If cbxAlt_montag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_montag = cbxAlt_montag.Text.ToString 'txtAlt_montag 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) ElseIf rbMenuAlt_dienstag.Checked Then If cbxAlt_dienstag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_dienstag = cbxAlt_dienstag.Text.ToString '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) ElseIf rbMenuAlt_mittwoch.Checked Then If cbxAlt_mittwoch.Text.ToString.Replace(" ", "") <> "" Then essen.eb_mittwoch = cbxAlt_mittwoch.Text.ToString '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) ElseIf rbMenuAlt_donnerstag.Checked Then If cbxAlt_donnerstag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_donnerstag = cbxAlt_donnerstag.Text.ToString '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) ElseIf rbMenuAlt_freitag.Checked Then If cbxAlt_freitag.Text.ToString.Replace(" ", "") <> "" Then essen.eb_freitag = cbxAlt_freitag.Text.ToString '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 essen.eb_firma = mitarbeiter.getFirma 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 essen.eb_MenuID = MenuID If essen.SAVE() Then btnSave.DialogResult = DialogResult.OK 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" 'btnSave.DialogResult = DialogResult.None Else lblWarning.Text = "" End If End Sub Private Sub UsrCntlessensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load 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 cbxAlt_montag.changeItem(essen.eb_montag) If cbxAlt_montag.SelectedValue = Nothing Then cbxAlt_montag.Text = essen.eb_montag.ToString End If 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 cbxAlt_dienstag.changeItem(essen.eb_dienstag) If cbxAlt_dienstag.SelectedValue = Nothing Then cbxAlt_dienstag.Text = essen.eb_dienstag.ToString End If 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 cbxAlt_mittwoch.changeItem(essen.eb_mittwoch) If cbxAlt_mittwoch.SelectedValue = Nothing Then cbxAlt_mittwoch.Text = essen.eb_mittwoch.ToString End If 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 cbxAlt_donnerstag.changeItem(essen.eb_donnerstag) If cbxAlt_donnerstag.SelectedValue = Nothing Then cbxAlt_donnerstag.Text = essen.eb_donnerstag.ToString End If End If Else cbdonnerstag.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 cbxAlt_freitag.changeItem(essen.eb_freitag) If cbxAlt_freitag.SelectedValue = Nothing Then cbxAlt_freitag.Text = essen.eb_freitag.ToString End If End If Else cb_freitag.Checked = False End If End Sub Private Sub initCBOFields() cbxMitarbeiter.DropDownWidth = 200 'cbxMenu.fillWithSQL("SELECT Distinct Top 50 (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)), MenuDateVon from tblEBMenu order by MenuDateVon desc", False, "AVISO", True) cbxMenu.fillWithSQL("SELECT Distinct Top 50 (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)), MenuDateVon from tblEBMenu order by MenuDateVon desc", True, "AVISO", True) '/ where MenuDateVon >= GETDATE() '/ where MenuDateVon >= GETDATE() Dim sqlMA = "SELECT [mit_id], ([mit_vname] + ' ' + [mit_nname]) + ' (' + mit_firma +')' as name FROM [tblMitarbeiter] " sqlMA &= "where [mit_ChatBenutzer] = 1 AND [mit_pseudoUser] = 0 AND [mit_gekuendigt] = 0 AND mit_niederlassung = 'SUB'" If cAllgemein.MITARBEITER.getFirma = "UNISPED" Then sqlMA &= " And mit_firma = '" & cAllgemein.MITARBEITER.getFirma & "' " Else sqlMA &= " And ((Case When mit_firma = 'ALL' Then mit_FirmaHaupt else mit_firma END ) = 'VERAG' OR mit_firma = 'IMEX' OR mit_firma = 'FRONTOFFICE') Or mit_id = 144 " End If sqlMA &= "order by name" cbxMitarbeiter.fillWithSQL(sqlMA, 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("Suben West", "Suben West")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verag VERR", "Verag VERR")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Maut", "Maut")) cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) Dim list As New List(Of MyListItem) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Kebap", "Kebap")) list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Dürüm", "Dürüm")) 'list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cbxAlt_montag.Items.AddRange(list.ToArray()) cbxAlt_dienstag.Items.AddRange(list.ToArray()) cbxAlt_mittwoch.Items.AddRange(list.ToArray()) cbxAlt_donnerstag.Items.AddRange(list.ToArray()) cbxAlt_freitag.Items.AddRange(list.ToArray()) End Sub Private Sub cbxAlt_montag_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxAlt_montag.SelectedValueChanged, cbxAlt_dienstag.SelectedValueChanged, cbxAlt_mittwoch.SelectedValueChanged, cbxAlt_donnerstag.SelectedValueChanged, cbxAlt_freitag.SelectedValueChanged, cbxAlt_montag.TextChanged, cbxAlt_dienstag.TextChanged, cbxAlt_mittwoch.TextChanged, cbxAlt_donnerstag.TextChanged, cbxAlt_freitag.TextChanged countChecks() End Sub End Class