Files
AVISO/Aviso/frmEssensbestellungen.vb
2022-11-30 10:24:58 +01:00

446 lines
15 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
Private Sub frmEssensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cbxMenu.fillWithSQL("SELECT Distinct (MenuDateVon), MenuTitel from tblEBMenu where MenuDateVon >= GETDATE() order by MenuDateVon desc", True, "AVISO", True)
lblGebaeude.Text = "Gebäude: "
lblAbteilung.Text = "Abteilung: " & 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("")
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
dt.Clear()
dt = SQL.loadDgvBySql("SELECT * FROM tblEBMenu where [MenuDateVon] = '" & 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
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_gebaeude").Visible = False
.Columns("eb_abteilung").Visible = False
.Columns("eb_montag").Width = 100
.Columns("eb_montag").HeaderText = "Montag"
.Columns("eb_montag").Width = 100
.Columns("eb_dienstag").HeaderText = "Dienstag"
.Columns("eb_dienstag").Width = 100
.Columns("eb_mittwoch").HeaderText = "Mittwoch"
.Columns("eb_mittwoch").Width = 100
.Columns("eb_donnerstag").HeaderText = "Donnerstag"
.Columns("eb_donnerstag").Width = 100
.Columns("eb_freitag").HeaderText = "Freitag"
.Columns("eb_freitag").Width = 100
.Columns("eb_preis").HeaderText = "Preis"
.Columns("eb_preis").Width = 40
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
Dim ttMontag As New ToolTip()
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
Dim ttDienstag As New ToolTip()
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
Dim ttMittwoch As New ToolTip()
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
Dim ttDonnerstag As New ToolTip()
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
Dim ttFreitag As New ToolTip()
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
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
End Class