486 lines
18 KiB
VB.net
486 lines
18 KiB
VB.net
Imports System.Web.UI.HtmlControls
|
|
Imports Microsoft.Office.Interop
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmEssensbestellungenAdministration
|
|
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
Private Sub frmEssensbestellungenAdministration_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
txtBestellDat.Text = Date.Parse("01.01.2001")
|
|
txtBestellDatBis.Text = Now.ToShortDateString
|
|
btnMonat.Text = MONAT.ToString("MMMM")
|
|
btnJahr.Text = JAHR.Year
|
|
|
|
txtMitarbeiter.Text = ""
|
|
cboGebaeude.changeItem("")
|
|
cboAbteilung.changeItem("")
|
|
cbxStornos.Checked = False
|
|
cbxAbgerechnet.Checked = False
|
|
|
|
cboGebaeude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frontoffice", "Frontoffice"))
|
|
cboGebaeude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Asfinag", "Asfinag"))
|
|
cboGebaeude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Verag Verrechnung", "Verag Verrechnung"))
|
|
cboGebaeude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Maut", "Maut"))
|
|
cboGebaeude.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
|
|
cboGebaeude.changeItem("")
|
|
|
|
cboAbteilung.fillWithSQL("SELECT DISTINCT(eb_abteilung) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
|
cboAbteilung.changeItem("")
|
|
|
|
cbKW.fillWithSQL("SELECT DISTINCT(eb_kw) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
|
|
|
loadBestellungen()
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub loadBestellungen()
|
|
|
|
|
|
Dim SQLString As String = "SELECT [eb_mitid] , [eb_mitname] , [eb_kw] , [eb_gebaeude],[eb_abteilung],[eb_montag],[eb_dienstag],[eb_mittwoch],
|
|
[eb_donnerstag] ,[eb_freitag],[eb_datum],[eb_preis], [eb_anmerkung],[eb_storniert],[eb_storniert_am],[eb_abgerechnet],[eb_abgerechnet_am], [eb_gesendet], [eb_gesendet_am]
|
|
FROM
|
|
[tblEssensbestellungen] WHERE 1=1"
|
|
|
|
dgvBestellungen.SET_SQL(SQLString & bestellungenWhereClause() & " Order by eb_datum, eb_mitid", "AVISO", ,)
|
|
dgvBestellungen.LOAD()
|
|
|
|
|
|
If dgvBestellungen.Columns.Count < 1 Then Exit Sub
|
|
|
|
With dgvBestellungen
|
|
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
|
|
.RowHeadersVisible = False
|
|
.ReadOnly = True
|
|
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
|
|
|
|
.RowHeadersWidth = 10
|
|
.Columns("eb_kw").HeaderText = "KW"
|
|
.Columns("eb_kw").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("eb_mitid").HeaderText = "MID"
|
|
.Columns("eb_mitid").Width = 40
|
|
.Columns("eb_mitname").HeaderText = "Mitarbeiter"
|
|
.Columns("eb_abteilung").Visible = False
|
|
.Columns("eb_datum").Width = 80
|
|
.Columns("eb_datum").HeaderText = "Datum"
|
|
.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"
|
|
.Columns("eb_storniert_am").HeaderText = "Storniert am"
|
|
.Columns("eb_abgerechnet_am").HeaderText = "Abgerechnet am"
|
|
.Columns("eb_gesendet_am").HeaderText = "Gesendet am"
|
|
.Columns("eb_storniert").Visible = False
|
|
.Columns("eb_abgerechnet").Visible = False
|
|
.Columns("eb_gesendet").Visible = False
|
|
.Columns("eb_anmerkung").HeaderText = "Anmerkung"
|
|
End With
|
|
|
|
|
|
For Each row As DataGridViewRow In dgvBestellungen.Rows
|
|
If Not IsDBNull(row.Cells("eb_storniert").Value) Then
|
|
If row.Cells("eb_storniert").Value Then
|
|
row.DefaultCellStyle.BackColor = Color.IndianRed
|
|
End If
|
|
End If
|
|
If Not IsDBNull(row.Cells("eb_abgerechnet").Value) Then
|
|
If row.Cells("eb_abgerechnet").Value Then row.DefaultCellStyle.BackColor = Color.LightGreen
|
|
End If
|
|
|
|
Next
|
|
|
|
txtAnzahlDS.Text = dgvBestellungen.Rows.Count
|
|
calcSumme()
|
|
|
|
End Sub
|
|
|
|
Private Function bestellungenWhereClause() As String
|
|
|
|
Dim SQLwhere = ""
|
|
|
|
If cboGebaeude._value IsNot "" Then SQLwhere &= " AND [eb_gebaeude] = '" & cboGebaeude._value.ToString & "'"
|
|
If cboAbteilung._value IsNot "" Then SQLwhere &= " AND [eb_abteilung] = '" & cboAbteilung._value.ToString & "'"
|
|
If txtMitarbeiter.Text <> "" Then SQLwhere &= " AND [eb_mitname] like '%" & txtMitarbeiter.Text & "%'"
|
|
If cbxStornos.Checked Then
|
|
SQLwhere &= " AND [eb_storniert] = '1'"
|
|
Else
|
|
SQLwhere &= " AND ISNULL([eb_storniert],0) = '0'"
|
|
End If
|
|
|
|
If cbxAbgerechnet.Checked Then
|
|
SQLwhere &= " AND [eb_abgerechnet] = '1'"
|
|
Else
|
|
SQLwhere &= " AND ISNULL([eb_abgerechnet],0) = '0'"
|
|
End If
|
|
|
|
If cbxNichtAbgeschickt.Checked Then
|
|
SQLwhere &= " AND ISNULL([eb_gesendet],0) = '0'"
|
|
Else
|
|
'SQLwhere &= " AND [eb_gesendet] = '1'"
|
|
End If
|
|
|
|
If txtBestellDat._value <> Nothing AndAlso txtBestellDatBis._value <> Nothing Then
|
|
SQLwhere &= " AND [eb_datum] BETWEEN '" & txtBestellDat._value & "' AND '" & txtBestellDatBis._value & "'"
|
|
End If
|
|
|
|
Return SQLwhere
|
|
|
|
End Function
|
|
|
|
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
|
|
txtBestellDat._value = CDate(sender.value).ToShortDateString
|
|
End Sub
|
|
|
|
Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged
|
|
txtBestellDatBis._value = CDate(sender.value).ToShortDateString
|
|
End Sub
|
|
|
|
Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click
|
|
initBtns("Monat")
|
|
End Sub
|
|
|
|
Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year)
|
|
|
|
|
|
Dim JAHR As Date = CDate("01.01." & Now.Year)
|
|
|
|
Sub initBtns(MonatJahr)
|
|
btnMonat.Text = MONAT.ToString("MMMM")
|
|
btnJahr.Text = JAHR.Year
|
|
Select Case MonatJahr
|
|
Case "Monat"
|
|
DateTimePicker1.Value = MONAT
|
|
DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1)
|
|
Case "Jahr"
|
|
DateTimePicker1.Value = JAHR
|
|
DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1)
|
|
Case ""
|
|
DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year)
|
|
DateTimePicker2.Value = Now
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click
|
|
initBtns("Jahr")
|
|
End Sub
|
|
|
|
Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click
|
|
MONAT = MONAT.AddMonths(1)
|
|
initBtns("Monat")
|
|
End Sub
|
|
|
|
Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click
|
|
MONAT = MONAT.AddMonths(-1)
|
|
initBtns("Monat")
|
|
End Sub
|
|
|
|
Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click
|
|
JAHR = JAHR.AddYears(1)
|
|
initBtns("Jahr")
|
|
End Sub
|
|
|
|
Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click
|
|
JAHR = JAHR.AddYears(-1)
|
|
initBtns("Jahr")
|
|
End Sub
|
|
|
|
Private Sub txtMitarbeiter_KeyDown(sender As Object, e As KeyEventArgs) Handles txtMitarbeiter.KeyDown
|
|
If e.KeyCode = Keys.Enter Then
|
|
|
|
Me.loadBestellungen()
|
|
e.Handled = True
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click, cbxAbgerechnet.CheckedChanged, cbxStornos.CheckedChanged, cbxNichtAbgeschickt.CheckedChanged
|
|
loadBestellungen()
|
|
End Sub
|
|
|
|
Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click
|
|
|
|
txtMitarbeiter.Text = ""
|
|
cboGebaeude.changeItem("")
|
|
cboAbteilung.changeItem("")
|
|
cbxStornos.Checked = False
|
|
cbxAbgerechnet.Checked = False
|
|
txtBestellDat.Text = Date.Parse("01.01.2001")
|
|
txtBestellDatBis.Text = Now.ToShortDateString
|
|
Me.btnSuche.PerformClick()
|
|
|
|
End Sub
|
|
|
|
Private Sub calcSumme()
|
|
|
|
Dim countSumme As Double = 0
|
|
|
|
|
|
For i As Integer = 0 To dgvBestellungen.Rows.Count - 1
|
|
countSumme += CDbl(dgvBestellungen.Rows(i).Cells("eb_preis").Value)
|
|
|
|
Next
|
|
|
|
txtSumme._value = countSumme.ToString
|
|
|
|
End Sub
|
|
|
|
Private Sub BearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BearbeitenToolStripMenuItem.Click
|
|
|
|
Dim bestellung As New cEssensbestellung(dgvBestellungen.SelectedRows(0).Cells("eb_kw").Value, dgvBestellungen.SelectedRows(0).Cells("eb_mitid").Value)
|
|
|
|
Using UserControl1 As UsrCntlessensbestellungen = New UsrCntlessensbestellungen(bestellung)
|
|
Using tmpForm As Form = New Form()
|
|
tmpForm.Width = UserControl1.Width
|
|
tmpForm.Height = UserControl1.Height
|
|
tmpForm.Text = bestellung.eb_kw.ToString & " - " & bestellung.eb_mitname.ToString
|
|
tmpForm.StartPosition = tmpForm.StartPosition.CenterParent
|
|
tmpForm.Controls.Add(UserControl1)
|
|
If tmpForm.ShowDialog() = DialogResult.OK Then
|
|
dgvBestellungen.SetOrder()
|
|
loadBestellungen()
|
|
dgvBestellungen.GetOrder()
|
|
End If
|
|
|
|
End Using
|
|
End Using
|
|
End Sub
|
|
|
|
Private Sub AbgerechnetToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbgerechnetToolStripMenuItem.Click, StornierenToolStripMenuItem.Click, AnHigway118SchickenToolStripMenuItem.Click
|
|
If dgvBestellungen.SelectedRows.Count = 0 Then Exit Sub
|
|
|
|
Select Case sender.Text
|
|
Case "abgerechnet"
|
|
Select Case dgvBestellungen.SelectedRows.Count
|
|
Case 1
|
|
If vbYes = MsgBox("Möchten Sie die Essensbestellung '" & dgvBestellungen.SelectedRows(0).Cells("eb_kw").Value & " von Mitarbeiter " & dgvBestellungen.SelectedRows(0).Cells("eb_mitname").Value & " abrechnen", vbYesNoCancel) Then
|
|
bestellungenAbrechnen(True)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
Case Else
|
|
If vbYes = MsgBox("Möchten Sie diese " & dgvBestellungen.SelectedRows.Count & " Essensbestellungen abrechnen", vbYesNoCancel) Then
|
|
bestellungenAbrechnen(True)
|
|
Else
|
|
Exit Sub
|
|
|
|
End If
|
|
|
|
|
|
End Select
|
|
|
|
|
|
Case "stornieren"
|
|
Select Case dgvBestellungen.SelectedRows.Count
|
|
Case 1
|
|
If vbYes = MsgBox("Möchten Sie die Essensbestellung '" & dgvBestellungen.SelectedRows(0).Cells("eb_kw").Value & " von Mitarbeiter " & dgvBestellungen.SelectedRows(0).Cells("eb_mitname").Value & " wirklich stornieren", vbYesNoCancel) Then
|
|
bestellungenStornieren(True)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
Case Else
|
|
|
|
If vbYes = MsgBox("Möchten Sie diese " & dgvBestellungen.SelectedRows.Count & " Essensbestellungen wirklich stornieren", vbYesNoCancel) Then
|
|
bestellungenStornieren(True)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
End Select
|
|
|
|
|
|
Case "An Higway 118 schicken"
|
|
Select Case dgvBestellungen.SelectedRows.Count
|
|
Case 1
|
|
If vbYes = MsgBox("Möchten Sie die Essensbestellung '" & dgvBestellungen.SelectedRows(0).Cells("eb_kw").Value & " von Mitarbeiter " & dgvBestellungen.SelectedRows(0).Cells("eb_mitname").Value & " abschicken?", vbYesNoCancel) Then
|
|
bestellungenSenden(True)
|
|
generateEMailforHighway()
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
Case Else
|
|
|
|
If vbYes = MsgBox("Möchten Sie diese " & dgvBestellungen.SelectedRows.Count & " Essensbestellungen abschicken", vbYesNoCancel) Then
|
|
bestellungenSenden(True)
|
|
generateEMailforHighway()
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
End Select
|
|
|
|
|
|
End Select
|
|
|
|
|
|
End Sub
|
|
Private Sub bestellungenStornieren(stornieren As Boolean)
|
|
|
|
|
|
For Each row As DataGridViewRow In dgvBestellungen.SelectedRows
|
|
|
|
Dim bestellung As New cEssensbestellung(dgvBestellungen.CurrentRow.Cells("eb_kw").Value, dgvBestellungen.CurrentRow.Cells("eb_mitid").Value)
|
|
|
|
bestellung.eb_storniert = True
|
|
If stornieren Then
|
|
bestellung.eb_storniert_am = Now
|
|
Else
|
|
bestellung.eb_storniert_am = DBNull.Value
|
|
|
|
End If
|
|
|
|
bestellung.SAVE()
|
|
|
|
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub bestellungenAbrechnen(abrechnen As Boolean)
|
|
|
|
|
|
For Each row As DataGridViewRow In dgvBestellungen.SelectedRows
|
|
|
|
Dim bestellung As New cEssensbestellung(dgvBestellungen.CurrentRow.Cells("eb_kw").Value, dgvBestellungen.CurrentRow.Cells("eb_mitid").Value)
|
|
|
|
bestellung.eb_abgerechnet = abrechnen
|
|
If abrechnen Then
|
|
bestellung.eb_abgerechnet_am = Now
|
|
Else
|
|
bestellung.eb_abgerechnet_am = DBNull.Value
|
|
|
|
End If
|
|
|
|
dgvBestellungen.SetOrder()
|
|
bestellung.SAVE()
|
|
dgvBestellungen.GetOrder()
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub bestellungenSenden(senden As Boolean)
|
|
|
|
|
|
For Each row As DataGridViewRow In dgvBestellungen.SelectedRows
|
|
|
|
Dim bestellung As New cEssensbestellung(dgvBestellungen.CurrentRow.Cells("eb_kw").Value, dgvBestellungen.CurrentRow.Cells("eb_mitid").Value)
|
|
|
|
bestellung.eb_gesendet = senden
|
|
If senden Then
|
|
bestellung.eb_gesendet_am = Now
|
|
Else
|
|
bestellung.eb_gesendet_am = DBNull.Value
|
|
|
|
End If
|
|
|
|
dgvBestellungen.SetOrder()
|
|
bestellung.SAVE()
|
|
dgvBestellungen.GetOrder()
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub generateEMailforHighway()
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Try
|
|
|
|
Dim outl As New Outlook.Application
|
|
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
|
|
|
|
|
|
Mail = outl.CreateItem(0)
|
|
|
|
Mail.Subject = "Essensbestellung: "
|
|
|
|
Dim DETextHTML = ""
|
|
DETextHTML &= "Hallo,<br>"
|
|
DETextHTML &= "<br>"
|
|
DETextHTML &= "Anbei ist die Essensbestellung für .<br>"
|
|
|
|
Dim TextHTMLtable = ""
|
|
|
|
TextHTMLtable &= "<table border=1>"
|
|
TextHTMLtable &= "<tr><td>KW </td><td>Montag</td><td>Dienstag</td><td>Mittwoch</td><td>Donnerstag</td><td>Freitag</td><td>Gebäude</td></tr>"
|
|
|
|
|
|
Dim cnt = 1
|
|
For Each row In dgvBestellungen.SelectedRows
|
|
|
|
TextHTMLtable &= "<tr>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_mitname").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_montag").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_dienstag").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_mittwoch").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_donnerstag").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_freitag").Value & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row.Cells("eb_gebaeude").Value & "</b></td>"
|
|
TextHTMLtable &= "</tr>"
|
|
|
|
Next
|
|
|
|
TextHTMLtable &= "</table>"
|
|
|
|
Dim EndTextHTML = ""
|
|
|
|
EndTextHTML &= "<br>"
|
|
EndTextHTML &= "<br>"
|
|
EndTextHTML &= "Bitte um kurze Bestätigung nach Erhalt der Mail, danke. <br>"
|
|
EndTextHTML &= "<br>"
|
|
EndTextHTML &= "Mit freundlichen Grüßen/Best regards<br>"
|
|
EndTextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
|
|
EndTextHTML &= "<br>"
|
|
|
|
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial;font-size:15px;"">" & DETextHTML & TextHTMLtable & EndTextHTML & SDL.cFakturierung.getSignature("DE") & "</div>"
|
|
Mail.Display()
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
|
|
End Try
|
|
|
|
|
|
Me.Cursor = Cursors.Default
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub cbKW_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbKW.SelectedValueChanged
|
|
|
|
If cbKW._value Is Nothing Then Exit Sub
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql("SELECT Top 1 * FROM tblEBMenu where [MenuTitel] = '" & cbKW._value & "' order by MenuDateVon desc", "AVISO", 100, True)
|
|
|
|
If dt.Rows.Count > 0 Then
|
|
|
|
txtBestellDat.Text = CDate(dt.Rows(0).Item("MenuDateVon")).ToString("dd.MM.yyyy")
|
|
txtBestellDatBis.Text = CDate(dt.Rows(0).Item("MenuDateBis")).ToString("dd.MM.yyyy")
|
|
btnSuche.PerformClick()
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
End Class |