Essensbestellungen
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
Imports System.Web.UI.HtmlControls
|
||||
|
||||
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 = Now.ToShortDateString
|
||||
btnMonat.Text = MONAT.ToString("MMMM")
|
||||
@@ -19,11 +21,7 @@ Public Class frmEssensbestellungenAdministration
|
||||
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.fillWithSQL("SELECT DISTINCT(eb_gebaeude) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
||||
cboGebaeude.changeItem("")
|
||||
|
||||
cboAbteilung.fillWithSQL("SELECT DISTINCT(eb_abteilung) FROM [tblEssensbestellungen]", False, "AVISO", True)
|
||||
@@ -31,6 +29,13 @@ Public Class frmEssensbestellungenAdministration
|
||||
|
||||
cbKW.fillWithSQL("SELECT DISTINCT(eb_kw) FROM [tblEssensbestellungen]", 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
|
||||
@@ -304,12 +309,12 @@ Public Class frmEssensbestellungenAdministration
|
||||
End Select
|
||||
|
||||
|
||||
Case "An Higway 118 schicken"
|
||||
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()
|
||||
generateEMailforHighway(sender, e)
|
||||
Else
|
||||
Exit Sub
|
||||
End If
|
||||
@@ -317,7 +322,7 @@ Public Class frmEssensbestellungenAdministration
|
||||
|
||||
If vbYes = MsgBox("Möchten Sie diese " & dgvBestellungen.SelectedRows.Count & " Essensbestellungen abschicken", vbYesNoCancel) Then
|
||||
bestellungenSenden(True)
|
||||
generateEMailforHighway()
|
||||
generateEMailforHighway(sender, e)
|
||||
Else
|
||||
Exit Sub
|
||||
End If
|
||||
@@ -399,77 +404,116 @@ Public Class frmEssensbestellungenAdministration
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub generateEMailforHighway()
|
||||
Private Sub generateEMailforHighway(sender As Object, e As EventArgs)
|
||||
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Try
|
||||
Dim kw As String = ""
|
||||
Dim gebaeude As String = ""
|
||||
Dim TextHTMLtable = ""
|
||||
|
||||
Dim outl As New Outlook.Application
|
||||
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
Mail = outl.CreateItem(0)
|
||||
|
||||
Mail.Subject = "Essensbestellung: "
|
||||
Else
|
||||
For Each row In dgvBestellungen.SelectedRows
|
||||
|
||||
Dim DETextHTML = ""
|
||||
DETextHTML &= "Hallo,<br>"
|
||||
DETextHTML &= "<br>"
|
||||
DETextHTML &= "Anbei ist die Essensbestellung für .<br>"
|
||||
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>"
|
||||
|
||||
Dim TextHTMLtable = ""
|
||||
Next
|
||||
|
||||
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>"
|
||||
End If
|
||||
|
||||
lblWarning.Text = ""
|
||||
|
||||
Dim outl As New Outlook.Application
|
||||
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
|
||||
|
||||
|
||||
Dim cnt = 1
|
||||
For Each row In dgvBestellungen.SelectedRows
|
||||
Mail = outl.CreateItem(0)
|
||||
|
||||
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
|
||||
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 = ""
|
||||
Dim EndTextHTML = ""
|
||||
|
||||
EndTextHTML &= "<br>"
|
||||
EndTextHTML &= "<br>"
|
||||
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>"
|
||||
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()
|
||||
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
|
||||
|
||||
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
|
||||
If cbKW._value Is Nothing Or cbKW._value = "" 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 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
|
||||
|
||||
@@ -480,7 +524,145 @@ Public Class frmEssensbestellungenAdministration
|
||||
|
||||
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
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("{0} {1}x ", el.Key.Montag, el.Count()), "")
|
||||
Next
|
||||
|
||||
For Each el In uniqueMenusDienstag
|
||||
resultDienstag &= IIf(el.Key.Dienstag <> "", String.Format("{0} {1}x ", el.Key.Dienstag, el.Count()), "")
|
||||
Next
|
||||
|
||||
For Each el In uniqueMenusMittwoch
|
||||
resultMittwoch &= IIf(el.Key.Mittwoch <> "", String.Format("{0} {1}x ", el.Key.Mittwoch, el.Count()), "")
|
||||
Next
|
||||
|
||||
For Each el In uniqueMenusDonnerstag
|
||||
resultDonnerstag &= IIf(el.Key.Donnerstag <> "", String.Format("{0} {1}x ", el.Key.Donnerstag, el.Count()), "")
|
||||
Next
|
||||
For Each el In uniqueMenusFreitag
|
||||
resultFreitag &= IIf(el.Key.Freitag <> "", String.Format("{0} {1}x ", el.Key.Freitag, el.Count()), "")
|
||||
Next
|
||||
|
||||
|
||||
Dim R As DataRow = dtBestellungen.NewRow
|
||||
R("ID") = 0
|
||||
R("KW") = "-"
|
||||
R("Name") = "-"
|
||||
R("KW") = "Summe"
|
||||
R("Gebaeude") = "-"
|
||||
R("Name") = "-"
|
||||
R("Gebaeude") = "-"
|
||||
R("Abteilung") = "-"
|
||||
R("Datum") = DateTime.Now()
|
||||
R("Storniert") = True
|
||||
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))
|
||||
|
||||
If dtBestellungen.Rows.Count = 0 Then
|
||||
lblWarning.Text = "keine Datensätze vorhanden"
|
||||
Me.Cursor = Cursors.Default
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
Return dtBestellungen
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user