Files
AVISO/Aviso/frmEssensbestellungen.vb
2022-12-30 16:08:53 +01:00

560 lines
19 KiB
VB.net

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