Files
AVISO/Aviso/UsrCntlEssensbestellungen.vb
2023-01-11 16:01:27 +01:00

595 lines
20 KiB
VB.net

Imports VERAG_PROG_ALLGEMEIN
Public Class UsrCntlessensbestellungen
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim essen As cEssensbestellung
Dim dt As New DataTable
'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 = "Menu"
Dim aLaCarte As String = "a La Carte"
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
initCBOFields()
initFields()
cbxGebäude.changeItem("")
essen = New cEssensbestellung()
btnSave.Enabled = False
End Sub
Sub New(storniert As Boolean, abgerechnet As Boolean, menutitle As String)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Me.CheckBox1.Checked = storniert
Me.CheckBox2.Checked = abgerechnet
Me.CheckBox3.Checked = essen.eb_gesendet
dt = SQL.loadDgvBySql("Select Top 1 * from (Select (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, * FROM tblEBMenu) kwDate where kwDate = '" & menutitle & "'", "AVISO", 100, True)
loadMenuInfo(dt)
essen = New cEssensbestellung()
cbxGebäude.Text = essen.eb_gebaeude.ToString
txtAnmerkung.Text = If(essen.eb_anmerkung IsNot Nothing, essen.eb_anmerkung.ToString, "")
End Sub
Sub New(bestellung As cEssensbestellung)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
initCBOFields()
essen = bestellung
Dim menutitle = bestellung.eb_kw.ToString()
Me.CheckBox1.Checked = essen.eb_storniert
Me.CheckBox2.Checked = essen.eb_abgerechnet
Me.CheckBox3.Checked = essen.eb_gesendet
dt = SQL.loadDgvBySql("Select Top 1 * from (Select (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, * FROM tblEBMenu) kwDate where kwDate = '" & menutitle & "'", "AVISO", 100, True)
loadMenuInfo(dt)
cbxGebäude.changeItem(essen.eb_gebaeude)
cbxMitarbeiter.changeItem(essen.eb_mitid)
cbxAbteilung.changeItem(essen.eb_abteilung)
cbxMenu.changeItem(essen.eb_kw)
cbxMitarbeiter.Enabled = False
cbxMenu.Enabled = False
cbxAbteilung.Enabled = False
txtAnmerkung.Text = If(essen.eb_anmerkung IsNot Nothing, essen.eb_anmerkung.ToString, "")
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 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 CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged
If CheckBox1.Checked Or CheckBox2.Checked Or CheckBox3.Checked Then
MyPanel1.Enabled = False
cbxGebäude.Enabled = False
cbxMenu.Enabled = False
cbxAbteilung.Enabled = False
cbxMitarbeiter.Enabled = False
txtAnmerkung.Enabled = False
Else
MyPanel1.Enabled = True
cbxGebäude.Enabled = True
'cbxMenu.Enabled = True
'cbxAbteilung.Enabled = True
'cbxMitarbeiter.Enabled = True
'txtAnmerkung.Enabled = True
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnSave.Click
If cbxGebäude._value = "" Then
MsgBox("Bitte Gebäude für die Essensbestellung angeben!")
Exit Sub
End If
essen = New cEssensbestellung(cbxMenu._value, cbxMitarbeiter._value, cbxGebäude._value, cbxAbteilung._value, cbxMitarbeiter.Text, txtAnmerkung.Text)
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 = cbxGebäude._value
If CheckBox1.Checked = False Then
essen.eb_abgerechnet = False
essen.eb_abgerechnet_am = DBNull.Value
End If
If CheckBox2.Checked = False Then
essen.eb_storniert = False
essen.eb_storniert_am = DBNull.Value
End If
If CheckBox3.Checked = False Then
essen.eb_gesendet = False
essen.eb_gesendet_am = DBNull.Value
End If
If essen.SAVE() Then
End If
End Sub
Private Sub loadMenuInfo(dt As DataTable)
If dt.Rows(0).Item("MenuEssenMo") IsNot Nothing Then
rbMenu_montag.Text = menu
txtMenu_montag.Text = dt.Rows(0).Item("MenuEssenMo").ToString
End If
If dt.Rows(0).Item("MenuEssenDi") IsNot Nothing Then
rbMenu_dienstag.Text = menu
txtMenu_dienstag.Text = dt.Rows(0).Item("MenuEssenDi").ToString()
End If
If dt.Rows(0).Item("MenuEssenMi") IsNot Nothing Then
rbMenu_mittwoch.Text = menu
txtMenu_mittwoch.Text = dt.Rows(0).Item("MenuEssenMi").ToString()
End If
If dt.Rows(0).Item("MenuEssenDo") IsNot Nothing Then
rbMenu_donnerstag.Text = menu
txtMenu_donnerstag.Text = dt.Rows(0).Item("MenuEssenDo").ToString()
End If
If dt.Rows(0).Item("MenuEssenFr") IsNot Nothing Then
rbMenu__freitag.Text = menu
txtMenu_freitag.Text = dt.Rows(0).Item("MenuEssenFr").ToString()
End If
End Sub
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 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
Private Sub UsrCntlessensbestellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
initPanelFields()
End Sub
Private Sub initFields()
cbxMitarbeiter.Enabled = True
cbxMenu.Enabled = True
cbxAbteilung.Enabled = True
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
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
loadMenuInfo(dt)
btnSave.Enabled = True
Else
btnSave.Enabled = False
End If
uncheckGroupBoxesAndRadioButtons(sender, e)
End Sub
Private Sub cbxMitarbeiter_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxMitarbeiter.SelectedValueChanged
If cbxMitarbeiter._value Is "" Then
cbxAbteilung.changeItem("")
cbxGebäude.changeItem("")
cbxMenu.changeItem("")
txtAnmerkung.Text = ""
Else
cbxAbteilung.changeItem(New cMitarbeiter(cbxMitarbeiter._value).mit_abteilung)
uncheckGroupBoxesAndRadioButtons(sender, e)
End If
End Sub
Private Sub initPanelFields()
If essen.eb_montag IsNot Nothing Then
cb_montag.Checked = True
If essen.eb_montag.ToString = menu Then
rbMenu_montag.Checked = True
Else
rbMenuAlt_montag.Checked = True
If essen.eb_montag IsNot Nothing Then txtAlt_montag.Text = essen.eb_montag.ToString
End If
Else
cb_montag.Checked = False
End If
If essen.eb_dienstag IsNot Nothing Then
cb_dienstag.Checked = True
If essen.eb_dienstag.ToString = menu Then
rbMenu_dienstag.Checked = True
Else
rbMenuAlt_dienstag.Checked = True
If essen.eb_dienstag IsNot Nothing Then txtAlt_dienstag.Text = essen.eb_dienstag.ToString
End If
Else
cb_dienstag.Checked = False
End If
If essen.eb_mittwoch IsNot Nothing Then
cb_mittwoch.Checked = True
If essen.eb_mittwoch.ToString = menu Then
rbMenu_mittwoch.Checked = True
Else
rbMenuAlt_mittwoch.Checked = True
If essen.eb_mittwoch IsNot Nothing Then txtAlt_mittwoch.Text = essen.eb_mittwoch.ToString
End If
Else
cb_mittwoch.Checked = False
End If
If essen.eb_donnerstag IsNot Nothing Then
cbdonnerstag.Checked = True
If essen.eb_donnerstag.ToString = menu Then
rbMenu_donnerstag.Checked = True
Else
rbMenuAlt_donnerstag.Checked = True
If essen.eb_donnerstag IsNot Nothing Then txtAlt_donnerstag.Text = essen.eb_donnerstag.ToString
End If
Else
cb_mittwoch.Checked = False
End If
If essen.eb_freitag IsNot Nothing Then
cb_freitag.Checked = True
If essen.eb_freitag.ToString = menu Then
rbMenu__freitag.Checked = True
Else
rbMenuAlt_freitag.Checked = True
If essen.eb_freitag IsNot Nothing Then txtAlt_donnerstag.Text = essen.eb_freitag.ToString
End If
Else
cb_freitag.Checked = False
End If
End Sub
Private Sub initCBOFields()
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()
cbxMitarbeiter.fillWithSQL("SELECT top 100 [mit_id], ([mit_vname] + ' ' + [mit_nname]) as name FROM [tblMitarbeiter] where [mit_ChatBenutzer] = 1 AND [mit_pseudoUser] = 0 AND [mit_gekuendigt] = 0 AND (CAse when mit_firma = 'ALL' Then mit_FirmaHaupt else mit_firma END ) = 'VERAG' AND mit_niederlassung = 'SUB' order by name ", False, "ADMIN", True)
cbxAbteilung.fillWithSQL("SELECT [abt_kuerzel], [abt_bezeichnung] from [tblAbteilungen] ", False, "ADMIN", True,, "")
cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frontoffice", "Frontoffice"))
cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Asfinag", "Asfinag"))
cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verag Verrechnung", "Verag Verrechnung"))
cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Maut", "Maut"))
cbxGebäude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
End Sub
End Class