Essensbestellungen

This commit is contained in:
2024-06-11 15:03:45 +02:00
parent 27a93ad90f
commit 978884cd2b
8 changed files with 140 additions and 57 deletions

View File

@@ -1,7 +1,4 @@

Imports System.Data.SqlTypes
Imports System.Timers
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmEssensbestellungenAdministration
@@ -47,7 +44,7 @@ Public Class frmEssensbestellungenAdministration
Private Sub loadBestellungen()
Dim SQLString As String = "SELECT [eb_mitid] , [eb_mitname] ,[eb_firma] , [eb_kw] , [eb_gebaeude],[eb_abteilung],[eb_montag],[eb_dienstag],[eb_mittwoch],
Dim SQLString As String = "SELECT [eb_mitid] , [eb_mitname] ,[eb_firma] , [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 "
@@ -622,7 +619,7 @@ Public Class frmEssensbestellungenAdministration
Case "Excel"
SDL.cProgramFunctions.genExcelFromDT_NEW(generateDTBestellungen(True))
SDL.cProgramFunctions.genExcelFromDT_NEW(generateDTBestellungen(True),,,,,, True)
End Select
@@ -642,10 +639,11 @@ Public Class frmEssensbestellungenAdministration
sqlWhere &= " And (eb_firma = 'VERAG' OR eb_firma = 'IMEX' OR eb_firma = 'FRONTOFFICE')"
End If
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, [eb_firma] as Firma
FROM
[tblEssensbestellungen] WHERE eb_kw = '" & cbxMailKW._value & "' AND eb_gebaeude = '" & cbxMailGebäude._value & "' AND ISNULL(eb_storniert,1)=0 " & sqlWhere & " Order by eb_datum"
Dim SQLStringBEstellungen As String = ""
SQLStringBEstellungen = "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, [eb_firma] as Firma, eb_MenuID
FROM [tblEssensbestellungen] left join tblEBMenu on tblEBMenu.MenuID = eb_MenuID
WHERE eb_kw = '" & cbxMailKW._value & "' AND eb_gebaeude = '" & cbxMailGebäude._value & "' AND ISNULL(eb_storniert,1)=0 " & sqlWhere & " Order by eb_datum"
dtBestellungen = SQL.loadDgvBySql(SQLStringBEstellungen, "AVISO", 100, True)
@@ -656,6 +654,8 @@ Public Class frmEssensbestellungenAdministration
End If
Dim uniqueMenusMontag = dtBestellungen.AsEnumerable() _
.GroupBy(Function(row) _
New With
@@ -722,26 +722,47 @@ Public Class frmEssensbestellungenAdministration
resultFreitag &= IIf(el.Key.Freitag <> "", String.Format("{1}x {0}, " & vbNewLine, el.Key.Freitag, el.Count()), "")
Next
If exportToExcel AndAlso cbxMenudrucken.Checked Then
Dim displayView = New DataView(dtBestellungen, "eb_MenuID is not null", "eb_MenuID", DataViewRowState.CurrentRows)
Dim distinctDT_CSV As DataTable = displayView.ToTable(True, "eb_MenuID")
Dim dtMenu As DataTable
If distinctDT_CSV.Rows.Count > 0 Then
Dim SQLMenu As String = "SELECT MenuEssenMo, MenuEssenDi, MenuEssenMi, MenuEssenDo, MenuEssenFr FROM [tblEBMenu] WHERE menuID='" & distinctDT_CSV.Rows(0).Item("eb_MenuID") & "'"
dtMenu = SQL.loadDgvBySql(SQLMenu, "AVISO", 100, True)
If dtMenu.Rows.Count = 1 Then
Dim menuRow As DataRow = dtBestellungen.NewRow
menuRow("ID") = "0"
menuRow("KW") = "-"
menuRow("Name") = "MENU"
menuRow("Gebaeude") = "-"
menuRow("Abteilung") = "-"
menuRow("Anmerkung") = DBNull.Value
menuRow("Datum") = DBNull.Value
menuRow("Storniert") = DBNull.Value
menuRow("Firma") = DBNull.Value
menuRow("Montag") = setLineBreaks(dtMenu.Rows(0).Item("MenuEssenMo"))
menuRow("Dienstag") = setLineBreaks(dtMenu.Rows(0).Item("MenuEssenDi"))
menuRow("Mittwoch") = setLineBreaks(dtMenu.Rows(0).Item("MenuEssenMi"))
menuRow("Donnerstag") = setLineBreaks(dtMenu.Rows(0).Item("MenuEssenDo"))
menuRow("Freitag") = setLineBreaks(dtMenu.Rows(0).Item("MenuEssenFr"))
menuRow("eb_MenuID") = ""
dtBestellungen.Rows.InsertAt(menuRow, 0)
End If
End If
'Dim SQLStringMenues As String = "SELECT TOP (1) [MenuEssenMoDate] as Montag
' ,[MenuEssenDiDate] as Dienstag
' ,[MenuEssenMiDate] as Mittwoch
' ,[MenuEssenDoDate] as Donnerstag
' ,[MenuEssenFrDate] as Freitag
' FROM
' [tblEBMenu] WHERE eb_kw = '" & cbxMailKW._value & "' AND eb_gebaeude = '" & cbxMailGebäude._value & "' AND ISNULL(eb_storniert,1)=0 " & sqlWhere & " Order by eb_datum"
'Dim dtMenu = SQL.loadDgvBySql(SQLStringMenues, "AVISO", 100, True)
End If
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
@@ -752,17 +773,22 @@ Public Class frmEssensbestellungenAdministration
R("Mittwoch") = String.Join(" ", resultMittwoch)
R("Donnerstag") = String.Join(" ", resultDonnerstag)
R("Freitag") = String.Join(" ", resultFreitag)
R("eb_MenuID") = ""
dtBestellungen.Rows.Add(R)
' MessageBox.Show(String.Join(Environment.NewLine, result))
If exportToExcel Then
dtBestellungen.Columns.Remove("ID")
dtBestellungen.Columns.Remove("Datum")
dtBestellungen.Columns.Remove("Storniert")
dtBestellungen.Columns.Remove("Gebaeude")
dtBestellungen.Columns.Remove("Abteilung")
End If
dtBestellungen.Columns.Remove("eb_MenuID")
Return dtBestellungen
@@ -1004,4 +1030,31 @@ Public Class frmEssensbestellungenAdministration
'End Sub
Private Function setLineBreaks(s As String) As String
s.Trim()
Dim startIndex = 0
Dim EndINdex = 19
For index As Integer = 20 * (s.Length \ 19) To 0 Step -20
s = ReplaceFirst(s, " ", vbNewLine, startIndex + 5, 19)
startIndex = startIndex + 19
Next
Return s
End Function
Private Function ReplaceFirst(text As String, search As String, replace As String, startIndex As Integer, EndIndex As Integer) As String
Dim pos As Integer = text.IndexOf(search, startIndex, IIf(startIndex + EndIndex > text.Length - 1, text.Length - startIndex - 1, EndIndex))
If (pos < 0) Then Return text
Return text.Substring(0, pos) + replace + text.Substring(pos + search.Length)
End Function
End Class