730 lines
27 KiB
VB.net
730 lines
27 KiB
VB.net
|
|
Imports System.Timers
|
|
Imports Microsoft.Office.Interop
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmEssensbestellungenAdministration
|
|
|
|
Dim dt As DataTable
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
Private Sub frmEssensbestellungenAdministration_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
lblWarning.Text = ""
|
|
txtBestellDat.Text = Date.Parse("01.01.2001")
|
|
txtBestellDatBis.Text = Today.AddDays(7).ToShortDateString
|
|
btnMonat.Text = MONAT.ToString("MMMM")
|
|
btnJahr.Text = JAHR.Year
|
|
|
|
txtMitarbeiter.Text = ""
|
|
cboGebaeude.changeItem("")
|
|
cboAbteilung.changeItem("")
|
|
cbxStornos.Checked = False
|
|
cbxAbgerechnet.Checked = False
|
|
|
|
cboGebaeude.fillWithSQL("SELECT DISTINCT(eb_gebaeude) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
|
cboGebaeude.changeItem("")
|
|
|
|
cboAbteilung.fillWithSQL("SELECT DISTINCT(eb_abteilung) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
|
cboAbteilung.changeItem("")
|
|
|
|
cbKW.fillWithSQL("SELECT DISTINCT(eb_kw) FROM [tblEssensbestellungen] ORDER BY eb_kw desc", False, "AVISO", True)
|
|
|
|
|
|
cbxMailKW.fillWithSQL("SELECT DISTINCT(eb_kw) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
|
cbxMailKW.changeItem("")
|
|
|
|
cbxMailGebäude.changeItem("")
|
|
cbxMailGebäude.fillWithSQL("SELECT DISTINCT(eb_gebaeude) 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()
|
|
|
|
|
|
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").Width = 80
|
|
.Columns("eb_mitid").HeaderText = "MID"
|
|
.Columns("eb_mitid").Width = 40
|
|
.Columns("eb_mitname").HeaderText = "Mitarbeiter"
|
|
.Columns("eb_mitname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.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 = 100
|
|
.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_storniert_am").Width = 80
|
|
.Columns("eb_abgerechnet_am").HeaderText = "Abgerechnet am"
|
|
.Columns("eb_abgerechnet_am").Width = 80
|
|
.Columns("eb_gesendet_am").HeaderText = "Gesendet am"
|
|
.Columns("eb_gesendet_am").Width = 80
|
|
.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_gesendet").Value) Then
|
|
If row.Cells("eb_gesendet").Value Then row.DefaultCellStyle.BackColor = Color.LightYellow
|
|
End If
|
|
|
|
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
|
|
cbKW.changeItem("")
|
|
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
|
|
|
|
If dgvBestellungen.SelectedRows.Count < 1 Then Exit Sub
|
|
|
|
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 + 40
|
|
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 "abrechnen"
|
|
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 "markierte Bestellungen per Mail senden"
|
|
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(sender, e)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
Case Else
|
|
|
|
If vbYes = MsgBox("Möchten Sie diese " & dgvBestellungen.SelectedRows.Count & " Essensbestellungen abschicken", vbYesNoCancel) Then
|
|
bestellungenSenden(True)
|
|
generateEMailforHighway(sender, e)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
End Select
|
|
|
|
|
|
End Select
|
|
loadBestellungen()
|
|
|
|
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
|
|
|
|
dgvBestellungen.SetOrder()
|
|
bestellung.SAVE()
|
|
dgvBestellungen.LOAD()
|
|
dgvBestellungen.GetOrder()
|
|
|
|
|
|
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.LOAD()
|
|
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.LOAD()
|
|
dgvBestellungen.GetOrder()
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub generateEMailforHighway(sender As Object, e As EventArgs)
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Try
|
|
Dim kw As String = ""
|
|
Dim gebaeude As String = ""
|
|
Dim TextHTMLtable = ""
|
|
|
|
TextHTMLtable &= "<table border=1>"
|
|
TextHTMLtable &= "<tr><td>Mitarbeiter</td><td>Montag</td><td>Dienstag</td><td>Mittwoch</td><td>Donnerstag</td><td>Freitag</td><td>Gebäude</td><td>Anmerkung</td></tr>"
|
|
|
|
If sender.Text = "Email" Then
|
|
|
|
Dim dtBestellungenMail = generateDTBestellungen()
|
|
kw = cbxMailKW._value
|
|
gebaeude = cbxMailGebäude._value
|
|
If dtBestellungenMail.Rows.Count = 0 Then
|
|
Me.Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
For Each row As DataRow In dtBestellungenMail.Rows
|
|
|
|
TextHTMLtable &= "<tr>"
|
|
TextHTMLtable &= "<td><b>" & row("Name") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Montag") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Dienstag") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Mittwoch") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Donnerstag") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Freitag") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Gebaeude") & "</b></td>"
|
|
TextHTMLtable &= "<td><b>" & row("Anmerkung") & "</b></td>"
|
|
TextHTMLtable &= "</tr>"
|
|
|
|
If row("ID") <> 0 Then
|
|
Dim bestellung As New cEssensbestellung(row("KW"), row("ID"))
|
|
|
|
bestellung.eb_gesendet = True
|
|
bestellung.eb_gesendet_am = Now
|
|
bestellung.SAVE()
|
|
End If
|
|
Next
|
|
|
|
dgvBestellungen.LOAD()
|
|
|
|
Else
|
|
If dgvBestellungen.SelectedRows.Count = 0 Then
|
|
lblWarning.Text = "keine Bestellungen markiert!"
|
|
Me.Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
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 &= "<td><b>" & row.Cells("eb_anmerkung").Value & "</b></td>"
|
|
TextHTMLtable &= "</tr>"
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
|
|
lblWarning.Text = ""
|
|
|
|
Dim outl As New Outlook.Application
|
|
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
|
|
|
|
|
|
Mail = outl.CreateItem(0)
|
|
Mail.To = "info@highway-118.de; service@highway-118.de"
|
|
|
|
|
|
Mail.Subject = "Essensbestellung: " & IIf(kw <> "", kw, "") & " " & IIf(gebaeude <> "", gebaeude, "")
|
|
|
|
Dim DETextHTML = ""
|
|
DETextHTML &= "Hallo,<br>"
|
|
DETextHTML &= "<br>"
|
|
DETextHTML &= "Anbei ist die Essensbestellung " & IIf(kw <> "", "für " & kw, "") & ".<br>"
|
|
|
|
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", cAllgemein.FIRMA_ID, True, True) & "</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 Or cbKW._value = "" Then Exit Sub
|
|
|
|
If dt IsNot Nothing Then
|
|
dt.Clear()
|
|
End If
|
|
|
|
dt = SQL.loadDgvBySql("SELECT Top 1 * from (SELECT (REPLACE(MenuTitel,'Wochenkarte ','')) + ' - ' + Convert(varchar, Year(MenuDateVon)) as kwDate, MenuDateVon, MenuDateBis FROM tblEBMenu) kwDate where kwDate = '" & cbKW._value & "'", "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
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
|
|
lblWarning.Text = ""
|
|
|
|
If cbxMailKW._value = "" Then
|
|
lblWarning.Text = "Kalenderwoche auswählen!"
|
|
Exit Sub
|
|
End If
|
|
|
|
If cbxMailGebäude._value = "" Then
|
|
lblWarning.Text = "Gebäude auswählen!"
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
Select Case sender.Text
|
|
|
|
Case "Email"
|
|
|
|
generateEMailforHighway(sender, e)
|
|
|
|
Case "Excel"
|
|
|
|
SDL.cProgramFunctions.genExcelFromDT_NEW(generateDTBestellungen())
|
|
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
|
|
Private Function generateDTBestellungen() As DataTable
|
|
|
|
|
|
Dim dtBestellungen As DataTable
|
|
|
|
Dim SQLStringBEstellungen As String = "SELECT [eb_mitname] as Name ,[eb_mitid] as ID , [eb_kw] as KW , [eb_gebaeude] as Gebaeude ,[eb_abteilung] as Abteilung ,[eb_montag] As Montag ,[eb_dienstag] As Dienstag,[eb_mittwoch] As Mittwoch,
|
|
[eb_donnerstag] As Donnerstag ,[eb_freitag] as Freitag, [eb_anmerkung] as Anmerkung ,[eb_datum] as Datum , [eb_storniert] as Storniert
|
|
FROM
|
|
[tblEssensbestellungen] WHERE eb_kw = '" & cbxMailKW._value & "' AND eb_gebaeude = '" & cbxMailGebäude._value & "' AND ISNULL(eb_storniert,1)=0 Order by eb_datum"
|
|
|
|
dtBestellungen = SQL.loadDgvBySql(SQLStringBEstellungen, "AVISO", 100, True)
|
|
|
|
If dtBestellungen.Rows.Count = 0 Then
|
|
lblWarning.Text = "Keine Bestellungen vorhanden!"
|
|
Me.Cursor = Cursors.Default
|
|
Return dtBestellungen
|
|
End If
|
|
|
|
|
|
Dim uniqueMenusMontag = dtBestellungen.AsEnumerable() _
|
|
.GroupBy(Function(row) _
|
|
New With
|
|
{
|
|
Key .Montag = row.Field(Of String)("Montag")
|
|
}
|
|
)
|
|
|
|
|
|
Dim uniqueMenusDienstag = dtBestellungen.AsEnumerable() _
|
|
.GroupBy(Function(row) _
|
|
New With
|
|
{
|
|
Key .Dienstag = row.Field(Of String)("Dienstag")
|
|
}
|
|
)
|
|
|
|
Dim uniqueMenusMittwoch = dtBestellungen.AsEnumerable() _
|
|
.GroupBy(Function(row) _
|
|
New With
|
|
{
|
|
Key .Mittwoch = row.Field(Of String)("Mittwoch")
|
|
}
|
|
)
|
|
|
|
|
|
Dim uniqueMenusDonnerstag = dtBestellungen.AsEnumerable() _
|
|
.GroupBy(Function(row) _
|
|
New With
|
|
{
|
|
Key .Donnerstag = row.Field(Of String)("Donnerstag")
|
|
}
|
|
)
|
|
|
|
Dim uniqueMenusFreitag = dtBestellungen.AsEnumerable() _
|
|
.GroupBy(Function(row) _
|
|
New With
|
|
{
|
|
Key .Freitag = row.Field(Of String)("Freitag")
|
|
}
|
|
)
|
|
|
|
|
|
|
|
Dim resultMontag, resultDienstag, resultMittwoch, resultDonnerstag, resultFreitag As String
|
|
|
|
|
|
For Each el In uniqueMenusMontag
|
|
resultMontag &= IIf(el.Key.Montag <> "", String.Format("{1}x {0}, ", el.Key.Montag, el.Count()), "")
|
|
Next
|
|
|
|
For Each el In uniqueMenusDienstag
|
|
resultDienstag &= IIf(el.Key.Dienstag <> "", String.Format("{1}x {0}, ", el.Key.Dienstag, el.Count()), "")
|
|
Next
|
|
|
|
For Each el In uniqueMenusMittwoch
|
|
resultMittwoch &= IIf(el.Key.Mittwoch <> "", String.Format("{1}x {0}, ", el.Key.Mittwoch, el.Count()), "")
|
|
Next
|
|
|
|
For Each el In uniqueMenusDonnerstag
|
|
resultDonnerstag &= IIf(el.Key.Donnerstag <> "", String.Format("{1}x {0}, ", el.Key.Donnerstag, el.Count()), "")
|
|
Next
|
|
For Each el In uniqueMenusFreitag
|
|
resultFreitag &= IIf(el.Key.Freitag <> "", String.Format("{1}x {0}, ", el.Key.Freitag, el.Count()), "")
|
|
Next
|
|
|
|
|
|
Dim R As DataRow = dtBestellungen.NewRow
|
|
R("ID") = "0"
|
|
R("KW") = "-"
|
|
R("Name") = "SUMME"
|
|
R("Gebaeude") = "-"
|
|
R("Name") = DBNull.Value
|
|
R("Abteilung") = "-"
|
|
R("Anmerkung") = DBNull.Value
|
|
R("Datum") = DBNull.Value
|
|
R("Storniert") = DBNull.Value
|
|
R("Montag") = String.Join(" ", resultMontag)
|
|
R("Dienstag") = String.Join(" ", resultDienstag)
|
|
R("Mittwoch") = String.Join(" ", resultMittwoch)
|
|
R("Donnerstag") = String.Join(" ", resultDonnerstag)
|
|
R("Freitag") = String.Join(" ", resultFreitag)
|
|
dtBestellungen.Rows.Add(R)
|
|
|
|
' MessageBox.Show(String.Join(Environment.NewLine, result))
|
|
|
|
Return dtBestellungen
|
|
|
|
End Function
|
|
|
|
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click
|
|
|
|
|
|
Using UserControl1 As UsrCntlessensbestellungen = New UsrCntlessensbestellungen()
|
|
Using tmpForm As Form = New Form()
|
|
tmpForm.Width = UserControl1.Width
|
|
tmpForm.Height = UserControl1.Height + 60
|
|
tmpForm.Text = "NEUE BESTELLUNG"
|
|
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 dgvBestellungen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvBestellungen.SelectionChanged
|
|
lblWarning.Text = ""
|
|
|
|
Dim countSumme As Double = 0
|
|
|
|
If dgvBestellungen.SelectedRows.Count > 0 Then
|
|
|
|
For i As Integer = 0 To dgvBestellungen.SelectedRows.Count - 1
|
|
countSumme += CDbl(dgvBestellungen.SelectedRows(i).Cells("eb_preis").Value)
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
txtMarkierteDS._value = countSumme.ToString
|
|
End Sub
|
|
End Class |