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() Private ToolTipFont As New Font("Courier New", 12) Dim preisProMahlzeit As Double = 3 Dim menu As String = "Menü:" Private Sub frmEssensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load cbxMenu.fillWithSQL("SELECT Distinct Top 10 (MenuTitel), 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) If cbMontag.Checked Then If rbMenu_Mo.Checked Then essen.eb_montag = "Menu" Else essen.eb_montag = txtAltMo.Text.ToString End If Else essen.eb_montag = Nothing End If If cbDienstag.Checked Then If rbMenu_Di.Checked Then essen.eb_dienstag = "Menu" Else essen.eb_dienstag = txtAltDi.Text.ToString End If Else essen.eb_dienstag = Nothing End If If cbMittwoch.Checked Then If rbMenu_Mi.Checked Then essen.eb_mittwoch = "Menu" Else essen.eb_mittwoch = txtAltMi.Text.ToString End If Else essen.eb_mittwoch = Nothing End If If cbDonnerstag.Checked Then If rbMenu_Do.Checked Then essen.eb_donnerstag = "Menu" Else essen.eb_donnerstag = txtAltDo.Text.ToString End If Else essen.eb_donnerstag = Nothing End If If cbFreitag.Checked Then If rbMenu_Fr.Checked Then essen.eb_freitag = "Menu" Else essen.eb_freitag = txtAltFr.Text.ToString End If 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.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 tblEBMenu where [MenuTitel] = '" & cbxMenu._value & "' order by MenuDateVon desc", "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_Mo.CheckedChanged, rbMenuAlt_Di.CheckedChanged, rbMenuAlt_Do.CheckedChanged, rbMenuAlt_Mi.CheckedChanged, rbMenuAlt_Fr.CheckedChanged If rbMenuAlt_Mo.Checked Then txtAltMo.Visible = True Else txtAltMo.Visible = False End If If rbMenuAlt_Di.Checked Then txtAltDi.Visible = True Else txtAltDi.Visible = False End If If rbMenuAlt_Mi.Checked Then txtAltMi.Visible = True Else txtAltMi.Visible = False End If If rbMenuAlt_Do.Checked Then txtAltDo.Visible = True Else txtAltDo.Visible = False End If If rbMenuAlt_Fr.Checked Then txtAltFr.Visible = True Else txtAltFr.Visible = False End If countChecks() End Sub Private Sub cbFields_CheckedChanged(sender As Object, e As EventArgs) Handles cbMontag.CheckedChanged, cbDienstag.CheckedChanged, cbMittwoch.CheckedChanged, cbDonnerstag.CheckedChanged, cbFreitag.CheckedChanged If cbMontag.Checked Then rbMenuAlt_Mo.Enabled = True rbMenu_Mo.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxMontag) Then rbMenu_Mo.Checked = True End If Else rbMenuAlt_Mo.Enabled = False rbMenu_Mo.Enabled = False txtAltMo.Text = "" End If If cbDienstag.Checked Then rbMenuAlt_Di.Enabled = True rbMenu_Di.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxDienstag) Then rbMenu_Di.Checked = True End If Else rbMenu_Di.Enabled = False rbMenuAlt_Di.Enabled = False txtAltDi.Text = "" End If If cbMittwoch.Checked Then rbMenuAlt_Mi.Enabled = True rbMenu_Mi.Enabled = True If checkIfGroupBoxIsSetFirstTime(Mittwoch) Then rbMenu_Mi.Checked = True End If Else rbMenu_Mi.Enabled = False rbMenuAlt_Mi.Enabled = False txtAltMi.Text = "" End If If cbDonnerstag.Checked Then rbMenuAlt_Do.Enabled = True rbMenu_Do.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxDonnerstag) Then rbMenu_Do.Checked = True End If Else rbMenu_Do.Enabled = False rbMenuAlt_Do.Enabled = False txtAltDo.Text = "" End If If cbFreitag.Checked Then rbMenuAlt_Fr.Enabled = True rbMenu_Fr.Enabled = True If checkIfGroupBoxIsSetFirstTime(GroupBoxFreitag) Then rbMenu_Fr.Checked = True End If Else rbMenu_Fr.Enabled = False rbMenuAlt_Fr.Enabled = False txtAltFr.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] 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_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" 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("menü") 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_Mo.Text = menu txtMenuMo.Text = dt.Rows(0).Item("MenuEssenMo").ToString ttMontag.SetToolTip(pbMontag, dt.Rows(0).Item("MenuEssenMo").ToString) Else pbMontag.Visible = False txtMenuMo.Text = "" End If If dt.Rows(0).Item("MenuEssenDi") IsNot Nothing Then 'pbDienstag.Visible = True rbMenu_Di.Text = menu txtMenuDi.Text = dt.Rows(0).Item("MenuEssenDi").ToString() ttDienstag.SetToolTip(pbDienstag, dt.Rows(0).Item("MenuEssenDi").ToString) Else pbDienstag.Visible = False End If If dt.Rows(0).Item("MenuEssenMi") IsNot Nothing Then 'pbMittwoch.Visible = True rbMenu_Mi.Text = menu txtMenuMi.Text = dt.Rows(0).Item("MenuEssenMi").ToString() ttMittwoch.SetToolTip(pbMittwoch, dt.Rows(0).Item("MenuEssenMi").ToString) Else pbMittwoch.Visible = False End If If dt.Rows(0).Item("MenuEssenDo") IsNot Nothing Then 'pbDonnerstag.Visible = True rbMenu_Do.Text = menu txtMenuDo.Text = dt.Rows(0).Item("MenuEssenDo").ToString() ttDonnerstag.SetToolTip(pbDonnerstag, dt.Rows(0).Item("MenuEssenDo").ToString) Else pbDonnerstag.Visible = False End If If dt.Rows(0).Item("MenuEssenFr") IsNot Nothing Then 'pbFreitag.Visible = True rbMenu_Fr.Text = menu txtMenuFr.Text = dt.Rows(0).Item("MenuEssenFr").ToString() ttFreitag.SetToolTip(pbFreitag, dt.Rows(0).Item("MenuEssenFr").ToString) Else pbFreitag.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) cbxMenu.changeItem(currentEssen.eb_kw) If currentEssen.eb_montag IsNot Nothing Then cbMontag.Checked = True If currentEssen.eb_montag.ToString = "Menu" Then rbMenu_Mo.Checked = True Else rbMenuAlt_Mo.Checked = True If currentEssen.eb_montag IsNot Nothing Then txtAltMo.Text = currentEssen.eb_montag.ToString End If Else cbMontag.Checked = False End If If currentEssen.eb_dienstag IsNot Nothing Then cbDienstag.Checked = True If currentEssen.eb_dienstag.ToString = "Menu" Then rbMenu_Di.Checked = True Else rbMenuAlt_Di.Checked = True If currentEssen.eb_dienstag IsNot Nothing Then txtAltDi.Text = currentEssen.eb_dienstag.ToString End If Else cbDienstag.Checked = False End If If currentEssen.eb_mittwoch IsNot Nothing Then cbMittwoch.Checked = True If currentEssen.eb_mittwoch.ToString = "Menu" Then rbMenu_Mi.Checked = True Else rbMenuAlt_Mi.Checked = True If currentEssen.eb_mittwoch IsNot Nothing Then txtAltMi.Text = currentEssen.eb_mittwoch.ToString End If Else cbMittwoch.Checked = False End If If currentEssen.eb_donnerstag IsNot Nothing Then cbDonnerstag.Checked = True If currentEssen.eb_donnerstag.ToString = "Menu" Then rbMenu_Do.Checked = True Else rbMenuAlt_Do.Checked = True If currentEssen.eb_donnerstag IsNot Nothing Then txtAltDo.Text = currentEssen.eb_donnerstag.ToString End If Else cbMittwoch.Checked = False End If If currentEssen.eb_freitag IsNot Nothing Then cbFreitag.Checked = True If currentEssen.eb_freitag.ToString = "Menu" Then rbMenu_Fr.Checked = True Else rbMenuAlt_Fr.Checked = True If currentEssen.eb_freitag IsNot Nothing Then txtAltDo.Text = currentEssen.eb_freitag.ToString End If Else cbFreitag.Checked = False End If cbxGebauede.Text = currentEssen.eb_gebaeude 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 = 50 '-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_Mo.Click, rbMenu_Di.Click, rbMenu_Mi.Click, rbMenu_Do.Click, rbMenu_Fr.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 End Class