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 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() 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.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 uncheckGroupBoxes(sender, e) loadDGVBestellungen() End Sub Private Sub rbaLaCarte_CheckedChanged(sender As Object, e As EventArgs) Handles rbMenoAlt_Mo.CheckedChanged, rbMenuAlt_Di.CheckedChanged, rbMenuAlt_Do.CheckedChanged, rbMenuAlt_Mi.CheckedChanged, rbMenuAlt_Fr.CheckedChanged If rbMenoAlt_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 rbMenoAlt_Mo.Enabled = True rbMenu_Mo.Enabled = True Else rbMenoAlt_Mo.Enabled = False rbMenu_Mo.Enabled = False txtAltMo.Text = "" End If If cbDienstag.Checked Then rbMenuAlt_Di.Enabled = True rbMenu_Di.Enabled = True 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 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 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 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 uncheckGroupBoxes(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 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)) * 3 End Sub Private Sub loadMenuInfo(dt As DataTable) If dt.Rows(0).Item("MenuEssenMo") IsNot Nothing Then pbMontag.Visible = True ttMontag.SetToolTip(pbMontag, dt.Rows(0).Item("MenuEssenMo").ToString) Else pbMontag.Visible = False End If If dt.Rows(0).Item("MenuEssenDi") IsNot Nothing Then pbDienstag.Visible = True 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 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 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 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) If currentEssen.eb_montag IsNot Nothing Then cbMontag.Checked = True If currentEssen.eb_montag.ToString = "Menu" Then rbMenu_Mo.Checked = True Else rbMenoAlt_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._value = currentEssen.eb_gebaeude End Sub Private Function checkIfOrderIsPossible() As Boolean Dim isPossible As Boolean = False If dt.Rows.Count = 0 Then Return False Try Dim startMenu = Date.Parse(dt.Rows(0).Item("MenuDateVon")) Dim newTime As New TimeSpan(14, 30, 0) Dim timeToOrderLimit = startMenu.AddDays(-5) + newTime lblBestellungBis.Text = "Bestellung möglich bis: " & timeToOrderLimit.ToShortDateString & " - " & timeToOrderLimit.ToShortTimeString If Now >= timeToOrderLimit Then lblBestellungBis.ForeColor = Color.Red Return True 'zu testzwecken -> muss dann wieder auf false gesetzt werden!!!! 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 '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 End Class