Imports VERAG_PROG_ALLGEMEIN Public Class frmEssensbestellungen Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim essen As New cEssensbestellung() Dim dt As New DataTable Dim ttMontag, ttDienstag, ttMittwoch, ttDonnerstag, ttFreitag As New ToolTip() '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" Private Sub frmEssensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load 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() txtMA.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME txtAbteilung.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG loadDGVBestellungen() cbxGebauede.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frontoffice", "Frontoffice")) cbxGebauede.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Asfinag", "Asfinag")) cbxGebauede.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verag Verrechnung", "Verag Verrechnung")) cbxGebauede.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Maut", "Maut")) cbxGebauede.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) cbxGebauede.changeItem("") btnSave.Enabled = False End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click If cbxGebauede._value = "" Then MsgBox("Bitte Gebäude für die Essensbestellung angeben!") Exit Sub End If essen = New cEssensbestellung(cbxMenu._value, cAllgemein.USRID, cbxGebauede._value, cAllgemein.ABTEILUNG, cAllgemein.MITARBEITER.mit_vname & " " & cAllgemein.MITARBEITER.mit_nname, txtAnmerkung) 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 = cbxGebauede._value essen.eb_anmerkung = txtAnmerkung.Text essen.SAVE() loadDGVBestellungen() 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 lblDatum.Text = "Datum: " lblBestellungBis.Text = "" loadDGVBestellungen() 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 If checkIfOrderIsPossible() Then MyPanel1.Enabled = True Else MyPanel1.Enabled = False End If lblDatum.Text = "Datum: " & CDate(dt.Rows(0).Item("MenuDateVon")).ToString("dd.MM.yyyy") & " - " & CDate(dt.Rows(0).Item("MenuDateBis")).ToString("dd.MM.yyyy") loadMenuInfo(dt) btnSave.Enabled = True Else btnSave.Enabled = False End If uncheckGroupBoxesAndRadioButtons(sender, e) loadDGVBestellungen() 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 loadDGVBestellungen() Dim SQLWhere As String = "" If cbxMenu._value IsNot "" Then SQLWhere = " AND [eb_kw] = '" & cbxMenu._value.ToString & "'" Dim SQLString As String = "SELECT [eb_kw], [eb_mitid] , [eb_gebaeude],[eb_abteilung],[eb_montag],[eb_dienstag],[eb_mittwoch],[eb_donnerstag] ,[eb_freitag],[eb_preis], [eb_mitname], [eb_datum], [eb_anmerkung] FROM [tblEssensbestellungen] where [eb_mitid] = '" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "'" & SQLWhere & " order by [eb_kw]" dgvBestellungen.SET_SQL(SQLString, "AVISO", ,) dgvBestellungen.LOAD() If dgvBestellungen.Columns.Count < 1 Then Exit Sub With dgvBestellungen .RowHeadersWidth = 10 .Columns("eb_kw").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("eb_kw").HeaderText = "KW" .Columns("eb_mitid").Visible = False .Columns("eb_mitname").Visible = False .Columns("eb_datum").Visible = False .Columns("eb_abteilung").Visible = False .Columns("eb_montag").Width = 80 .Columns("eb_montag").HeaderText = "Montag" .Columns("eb_montag").Width = 80 .Columns("eb_dienstag").HeaderText = "Dienstag" .Columns("eb_dienstag").Width = 80 .Columns("eb_mittwoch").HeaderText = "Mittwoch" .Columns("eb_mittwoch").Width = 80 .Columns("eb_donnerstag").HeaderText = "Donnerstag" .Columns("eb_donnerstag").Width = 80 .Columns("eb_freitag").HeaderText = "Freitag" .Columns("eb_freitag").Width = 80 .Columns("eb_gebaeude").HeaderText = "Gebäude" .Columns("eb_gebaeude").Width = 80 .Columns("eb_preis").HeaderText = "Preis" .Columns("eb_preis").Width = 40 .Columns("eb_preis").DefaultCellStyle.Format = "N" .Columns("eb_anmerkung").HeaderText = "Anm" .Columns("eb_anmerkung").Width = 80 End With 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 loadMenuInfo(dt As DataTable) If dt.Rows(0).Item("MenuEssenMo") IsNot Nothing Then 'pbMontag.Visible = True rbMenu_montag.Text = menu txtMenu_montag.Text = dt.Rows(0).Item("MenuEssenMo").ToString ttMontag.SetToolTip(pb_montag, dt.Rows(0).Item("MenuEssenMo").ToString) Else pb_montag.Visible = False txtMenu_montag.Text = "" End If If dt.Rows(0).Item("MenuEssenDi") IsNot Nothing Then 'pbDienstag.Visible = True rbMenu_dienstag.Text = menu txtMenu_dienstag.Text = dt.Rows(0).Item("MenuEssenDi").ToString() ttDienstag.SetToolTip(pb_dienstag, dt.Rows(0).Item("MenuEssenDi").ToString) Else pb_dienstag.Visible = False End If If dt.Rows(0).Item("MenuEssenMi") IsNot Nothing Then 'pbMittwoch.Visible = True rbMenu_mittwoch.Text = menu txtMenu_mittwoch.Text = dt.Rows(0).Item("MenuEssenMi").ToString() ttMittwoch.SetToolTip(pb_mittwoch, dt.Rows(0).Item("MenuEssenMi").ToString) Else pb_mittwoch.Visible = False End If If dt.Rows(0).Item("MenuEssenDo") IsNot Nothing Then 'pbDonnerstag.Visible = True rbMenu_donnerstag.Text = menu txtMenu_donnerstag.Text = dt.Rows(0).Item("MenuEssenDo").ToString() ttDonnerstag.SetToolTip(pb_donnerstag, dt.Rows(0).Item("MenuEssenDo").ToString) Else pb_donnerstag.Visible = False End If If dt.Rows(0).Item("MenuEssenFr") IsNot Nothing Then 'pbFreitag.Visible = True rbMenu__freitag.Text = menu txtMenu_freitag.Text = dt.Rows(0).Item("MenuEssenFr").ToString() ttFreitag.SetToolTip(pb_freitag, dt.Rows(0).Item("MenuEssenFr").ToString) Else pb_freitag.Visible = False End If End Sub Private Sub dgvBestellungen_Click(sender As Object, e As EventArgs) Handles dgvBestellungen.Click If dgvBestellungen.Rows.Count = 0 Then Exit Sub Dim currentEssen As New cEssensbestellung(dgvBestellungen.CurrentRow.Cells("eb_kw").Value, dgvBestellungen.CurrentRow.Cells("eb_mitid").Value, dgvBestellungen.CurrentRow.Cells("eb_gebaeude").Value, dgvBestellungen.CurrentRow.Cells("eb_abteilung").Value, dgvBestellungen.CurrentRow.Cells("eb_mitname").Value, dgvBestellungen.CurrentRow.Cells("eb_anmerkung").Value) cbxMenu.changeItem(currentEssen.eb_kw) If currentEssen.eb_montag IsNot Nothing Then cb_montag.Checked = True If currentEssen.eb_montag.ToString = "Menu" Then rbMenu_montag.Checked = True Else rbMenuAlt_montag.Checked = True If currentEssen.eb_montag IsNot Nothing Then txtAlt_montag.Text = currentEssen.eb_montag.ToString End If Else cb_montag.Checked = False End If If currentEssen.eb_dienstag IsNot Nothing Then cb_dienstag.Checked = True If currentEssen.eb_dienstag.ToString = "Menu" Then rbMenu_dienstag.Checked = True Else rbMenuAlt_dienstag.Checked = True If currentEssen.eb_dienstag IsNot Nothing Then txtAlt_dienstag.Text = currentEssen.eb_dienstag.ToString End If Else cb_dienstag.Checked = False End If If currentEssen.eb_mittwoch IsNot Nothing Then cb_mittwoch.Checked = True If currentEssen.eb_mittwoch.ToString = "Menu" Then rbMenu_mittwoch.Checked = True Else rbMenuAlt_mittwoch.Checked = True If currentEssen.eb_mittwoch IsNot Nothing Then txtAlt_mittwoch.Text = currentEssen.eb_mittwoch.ToString End If Else cb_mittwoch.Checked = False End If If currentEssen.eb_donnerstag IsNot Nothing Then cbdonnerstag.Checked = True If currentEssen.eb_donnerstag.ToString = "Menu" Then rbMenu_donnerstag.Checked = True Else rbMenuAlt_donnerstag.Checked = True If currentEssen.eb_donnerstag IsNot Nothing Then txtAlt_donnerstag.Text = currentEssen.eb_donnerstag.ToString End If Else cb_mittwoch.Checked = False End If If currentEssen.eb_freitag IsNot Nothing Then cb_freitag.Checked = True If currentEssen.eb_freitag.ToString = "Menu" Then rbMenu__freitag.Checked = True Else rbMenuAlt_freitag.Checked = True If currentEssen.eb_freitag IsNot Nothing Then txtAlt_donnerstag.Text = currentEssen.eb_freitag.ToString End If Else cb_freitag.Checked = False End If cbxGebauede.Text = currentEssen.eb_gebaeude txtAnmerkung.Text = currentEssen.eb_anmerkung End Sub Private Sub ToolTipInfoMo_Draw(sender As Object, e As DrawToolTipEventArgs) Handles ToolTipInfoMo.Draw, ToolTipInfoDi.Draw, ToolTipInfoMi.Draw, ToolTipInfoDo.Draw, ToolTipInfoFr.Draw e.DrawBackground() e.DrawBorder() e.Graphics.DrawString(e.ToolTipText, Me.ToolTipFont, Brushes.Black, e.Bounds) End Sub Private Sub ToolTipInfoMo_Popup(sender As Object, e As PopupEventArgs) Handles ToolTipInfoMo.Popup e.ToolTipSize = TextRenderer.MeasureText(Me.ToolTipInfoMo.GetToolTip(e.AssociatedControl), Me.ToolTipFont) End Sub Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click Dim webAddress As String = "http://www.highway-118.de/speisekarte/speisekarte.html" Process.Start(webAddress) End Sub Private Function checkIfOrderIsPossible() As Boolean If dt.Rows.Count = 0 Then Return False Try Dim startMenu = Date.Parse(dt.Rows(0).Item("MenuDateVon")) Dim tageBisBestellende = 10000 '-5 If tageBisBestellende > 0 Then lblTest.Text = "Zu Testzwecken darf aktuell " & tageBisBestellende & " Tage im Nachhinein bestellt werden!" Else lblTest.Text = "" End If Dim newTime As New TimeSpan(14, 30, 0) Dim timeToOrderLimit = startMenu.AddDays(tageBisBestellende) + newTime lblBestellungBis.Text = "Bestellung möglich bis: " & timeToOrderLimit.ToShortDateString & " - " & timeToOrderLimit.ToShortTimeString If Now >= timeToOrderLimit Then lblBestellungBis.ForeColor = Color.Red Return False Else lblBestellungBis.ForeColor = Color.Black Return True End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Function 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 Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'If cbxMenu._value Is Nothing Then Exit Sub 'Process.Start("\\YM5T001348\Gastro\FTPUpload\Menues\" & cbxMenu._value & ".pdf") End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click cbxMenu.changeItem("") 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 End Class