Essenbestellungen, Ueberstunden

This commit is contained in:
2024-03-25 08:52:07 +01:00
parent 585f5cbf75
commit 826e83bf5d
3 changed files with 100 additions and 58 deletions

View File

@@ -28,6 +28,7 @@ Partial Class frmEssensbestellungenAdministration
Me.Label4 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label()
Me.Label22 = New System.Windows.Forms.Label() Me.Label22 = New System.Windows.Forms.Label()
Me.Panel1 = New System.Windows.Forms.Panel() Me.Panel1 = New System.Windows.Forms.Panel()
Me.cbxCurrenyear = New System.Windows.Forms.CheckBox()
Me.cbxAlleAnzeigen = New System.Windows.Forms.CheckBox() Me.cbxAlleAnzeigen = New System.Windows.Forms.CheckBox()
Me.lblBestellungBis = New System.Windows.Forms.Label() Me.lblBestellungBis = New System.Windows.Forms.Label()
Me.btnBestelllimit = New System.Windows.Forms.Button() Me.btnBestelllimit = New System.Windows.Forms.Button()
@@ -82,7 +83,6 @@ Partial Class frmEssensbestellungenAdministration
Me.lblWarning = New System.Windows.Forms.Label() Me.lblWarning = New System.Windows.Forms.Label()
Me.Button2 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button()
Me.Label9 = New System.Windows.Forms.Label() Me.Label9 = New System.Windows.Forms.Label()
Me.cbxCurrenyear = New System.Windows.Forms.CheckBox()
Me.pnlTop.SuspendLayout() Me.pnlTop.SuspendLayout()
Me.Panel1.SuspendLayout() Me.Panel1.SuspendLayout()
Me.ContextMenuStrip1.SuspendLayout() Me.ContextMenuStrip1.SuspendLayout()
@@ -163,6 +163,17 @@ Partial Class frmEssensbestellungenAdministration
Me.Panel1.Size = New System.Drawing.Size(1242, 106) Me.Panel1.Size = New System.Drawing.Size(1242, 106)
Me.Panel1.TabIndex = 2 Me.Panel1.TabIndex = 2
' '
'cbxCurrenyear
'
Me.cbxCurrenyear.AutoSize = True
Me.cbxCurrenyear.Checked = True
Me.cbxCurrenyear.CheckState = System.Windows.Forms.CheckState.Checked
Me.cbxCurrenyear.Location = New System.Drawing.Point(296, 12)
Me.cbxCurrenyear.Name = "cbxCurrenyear"
Me.cbxCurrenyear.Size = New System.Drawing.Size(15, 14)
Me.cbxCurrenyear.TabIndex = 73
Me.cbxCurrenyear.UseVisualStyleBackColor = True
'
'cbxAlleAnzeigen 'cbxAlleAnzeigen
' '
Me.cbxAlleAnzeigen.AutoSize = True Me.cbxAlleAnzeigen.AutoSize = True
@@ -825,17 +836,6 @@ Partial Class frmEssensbestellungenAdministration
Me.Label9.Text = "Gesamtbetrag" Me.Label9.Text = "Gesamtbetrag"
Me.Label9.TextAlign = System.Drawing.ContentAlignment.TopRight Me.Label9.TextAlign = System.Drawing.ContentAlignment.TopRight
' '
'cbxCurrenyear
'
Me.cbxCurrenyear.AutoSize = True
Me.cbxCurrenyear.Checked = True
Me.cbxCurrenyear.CheckState = System.Windows.Forms.CheckState.Checked
Me.cbxCurrenyear.Location = New System.Drawing.Point(296, 12)
Me.cbxCurrenyear.Name = "cbxCurrenyear"
Me.cbxCurrenyear.Size = New System.Drawing.Size(15, 14)
Me.cbxCurrenyear.TabIndex = 73
Me.cbxCurrenyear.UseVisualStyleBackColor = True
'
'frmEssensbestellungenAdministration 'frmEssensbestellungenAdministration
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -68,7 +68,10 @@ Public Class frmEssensbestellungenAdministration
.Columns("eb_kw").HeaderText = "KW" .Columns("eb_kw").HeaderText = "KW"
.Columns("eb_kw").Width = 80 .Columns("eb_kw").Width = 80
.Columns("eb_mitid").HeaderText = "MID" .Columns("eb_mitid").HeaderText = "MID"
.Columns("eb_mitid").HeaderText = "MID"
.Columns("eb_mitid").Width = 40 .Columns("eb_mitid").Width = 40
.Columns("eb_mitid").HeaderText = "MID"
.Columns("eb_mitid").Visible = False
.Columns("eb_mitname").HeaderText = "Mitarbeiter" .Columns("eb_mitname").HeaderText = "Mitarbeiter"
.Columns("eb_mitname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("eb_mitname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("eb_abteilung").Visible = False .Columns("eb_abteilung").Visible = False
@@ -636,7 +639,7 @@ Public Class frmEssensbestellungenAdministration
If cAllgemein.MITARBEITER.getFirma = "UNISPED" Then If cAllgemein.MITARBEITER.getFirma = "UNISPED" Then
sqlWhere &= " And eb_firma = '" & cAllgemein.MITARBEITER.getFirma & "' " sqlWhere &= " And eb_firma = '" & cAllgemein.MITARBEITER.getFirma & "' "
Else Else
sqlWhere &= " And eb_firma = 'VERAG' OR eb_firma = 'IMEX' OR eb_firma = 'FRONTOFFICE'" sqlWhere &= " And (eb_firma = 'VERAG' OR eb_firma = 'IMEX' OR eb_firma = 'FRONTOFFICE')"
End If 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, 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,
@@ -721,15 +724,15 @@ Public Class frmEssensbestellungenAdministration
Dim SQLStringMenues As String = "SELECT TOP (1) [MenuEssenMoDate] as Montag 'Dim SQLStringMenues As String = "SELECT TOP (1) [MenuEssenMoDate] as Montag
,[MenuEssenDiDate] as Dienstag ' ,[MenuEssenDiDate] as Dienstag
,[MenuEssenMiDate] as Mittwoch ' ,[MenuEssenMiDate] as Mittwoch
,[MenuEssenDoDate] as Donnerstag ' ,[MenuEssenDoDate] as Donnerstag
,[MenuEssenFrDate] as Freitag ' ,[MenuEssenFrDate] as Freitag
FROM ' FROM
[tblEBMenu] WHERE eb_kw = '" & cbxMailKW._value & "' AND eb_gebaeude = '" & cbxMailGebäude._value & "' AND ISNULL(eb_storniert,1)=0 " & sqlWhere & " Order by eb_datum" ' [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) 'Dim dtMenu = SQL.loadDgvBySql(SQLStringMenues, "AVISO", 100, True)
@@ -947,6 +950,7 @@ Public Class frmEssensbestellungenAdministration
End Sub End Sub
'Private Sub cbxCurrenyear_CheckedChanged(sender As Object, e As EventArgs) Handles cbxCurrenyear.CheckedChanged 'Private Sub cbxCurrenyear_CheckedChanged(sender As Object, e As EventArgs) Handles cbxCurrenyear.CheckedChanged
' changeYear() ' changeYear()
'End Sub 'End Sub

View File

@@ -19,7 +19,9 @@ Public Class frmUeberstundenauszahlen
Dim maxUberstundenpruefung As Boolean = True Dim maxUberstundenpruefung As Boolean = True
Dim istTeilzeit As Boolean = False Dim istTeilzeit As Boolean = False
Dim faktorTeilzeit As Double = 100 Dim faktorTeilzeit As Double = 100
Dim faktorFeiertagsarbeit As Double = 200
Dim faktorSamstagsarbeit As Double = 150 Dim faktorSamstagsarbeit As Double = 150
Dim keinenFaktor As Boolean = False
Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum As Double Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum As Double
@@ -49,9 +51,11 @@ Public Class frmUeberstundenauszahlen
'1553;"AUSZ ÜS MA 25%" '1553;"AUSZ ÜS MA 25%"
timeaccountdt = dv.ToTable timeaccountdt = dv.ToTable
getAddDataFromTimas()
getUeberstunden(False) getUeberstunden(False)
getAddDataFromTimas() 'getAddDataFromTimas()
End Sub End Sub
@@ -90,14 +94,6 @@ Public Class frmUeberstundenauszahlen
enddate = (dtpBis.Value) enddate = (dtpBis.Value)
auszahlugsdatum = tag.GetLastyDayYInxMonth(enddate.DayOfWeek, enddate.Month, enddate.Year, True) 'Endmonat des Enddates auszahlugsdatum = tag.GetLastyDayYInxMonth(enddate.DayOfWeek, enddate.Month, enddate.Year, True) 'Endmonat des Enddates
'Dim bereitsgezahlteueberstunden = "select sum(isnull(uest_100,0)) as ue100 , sum(isnull(uest_50,0)) as ue50, sum(isnull(uest_25,0)) as ue25, sum(isnull(uest_0,0)) as ue0
'FROM [ADMIN].[dbo].[tblUeberstunden]
'where uest_date between '" & startdate & "' and '" & enddate & "' and uest_deleted = 0 and uest_maId = " & MA.mit_id & "
'group by uest_maId"
'dtbereitsausgezahlteUE.Clear()
'dtbereitsausgezahlteUE = SQL.loadDgvBySql(bereitsgezahlteueberstunden, "ADMIN", 100, True)
Else Else
startdate = tag.GetFirstyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True) startdate = tag.GetFirstyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True)
enddate = tag.GetLastyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True) enddate = tag.GetLastyDayYInxMonth(DateTime.Parse(dtpMonat.Value).DayOfWeek, DateTime.Parse(dtpMonat.Value).Month, DateTime.Parse(dtpMonat.Value).Year, True)
@@ -449,16 +445,29 @@ Public Class frmUeberstundenauszahlen
Dim sum100, sum50, sum0, gesamt As Double Dim sum100, sum50, sum0, gesamt As Double
sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / 200, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS! sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / faktorFeiertagsarbeit, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS!
sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / faktorSamstagsarbeit, 2) sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / faktorSamstagsarbeit, 2)
sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2) sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2)
gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text)) gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text))
If faktorSamstagsarbeit = 150 AndAlso istTeilzeit Then
'Besprechung mit RESI ob Teilzeitmitarbeiter 50% ausgezahlt bekommen oder diese umgerechnet in 25% werden!
MsgBox("Die Konstellation SA-Zuschlag und Teilzeitmitarbeiter ist noch nicht umgesetzt!")
Exit Sub
End If
Dim txtAusgabe As New StringBuilder Dim txtAusgabe As New StringBuilder
txtAusgabe.Append("Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " auszahlen?" & vbNewLine) txtAusgabe.Append("Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " auszahlen?" & vbNewLine)
txtAusgabe.Append(sum100 & "x 100% ÜS :" & txtAusz100.Text & vbNewLine) txtAusgabe.Append(sum100 & "x 100% ÜS :" & txtAusz100.Text & vbNewLine)
txtAusgabe.Append(IIf(Not istTeilzeit, sum50 + sum0, sum50) & "x 50% ÜS: " & CDbl(txtAusz50.Text) + IIf(Not istTeilzeit, CDbl(txtAusz50vonSaldo.Text), 0) & vbNewLine) If Not istTeilzeit Then
If istTeilzeit Then txtAusgabe.Append(sum0 & "x 25% ÜS: " & CDbl(txtAusz50vonSaldo.Text) & vbNewLine) txtAusgabe.Append(sum50 + sum0 & "x 50% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine)
Else
txtAusgabe.Append(sum50 + sum0 & "x 25% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine)
End If
txtAusgabe.Append("ÜS gesamt: " & gesamt) txtAusgabe.Append("ÜS gesamt: " & gesamt)
Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo) Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo)
@@ -483,24 +492,35 @@ Public Class frmUeberstundenauszahlen
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If End If
If istTeilzeit Then
If sum50 > 0 Then
Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1551
row.Item("value") = sum50.ToString.Replace(",", ".")
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If
If sum0 > 0 Then 'ANMERKUNG -> TZ-Mitarbeiter bekommt die Stunden, die am SA gearbeitet wurden, auch als 25% ausgezahlt!
Dim row = dtsetEntries.NewRow If (sum50 > 0 Or sum0 > 0) And istTeilzeit Then
row.Item("accountid") = 1553 Dim row = dtsetEntries.NewRow
row.Item("value") = sum0.ToString.Replace(",", ".") row.Item("accountid") = 1553
dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) row.Item("value") = (sum50 + sum0).ToString.Replace(",", ".")
End If dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
End If End If
If gesamt > 0 Then 'vom ldf Saldo, ev. über API Möglich monatliche Korrektur direkt zu befüllen, dann muss dieser If Zweig überarbeitet werden!!!!!!!!!!!!!! 'If istTeilzeit Then
' If sum50 > 0 Then
' Dim row = dtsetEntries.NewRow
' row.Item("accountid") = 1551
' row.Item("value") = sum50.ToString.Replace(",", ".")
' dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
' End If
' If sum0 > 0 Then
' Dim row = dtsetEntries.NewRow
' row.Item("accountid") = 1553
' row.Item("value") = sum0.ToString.Replace(",", ".")
' dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count)
' End If
'End If
If gesamt > 0 Then
Dim row = dtsetEntries.NewRow Dim row = dtsetEntries.NewRow
row.Item("accountid") = 1598 row.Item("accountid") = 1598
row.Item("value") = gesamt.ToString.Replace(",", ".") * (-1) row.Item("value") = gesamt.ToString.Replace(",", ".") * (-1)
@@ -601,20 +621,23 @@ Public Class frmUeberstundenauszahlen
Dim ues As New cUeberstunden(MA.mit_id, auszahlugsdatum.ToString("dd/MM/yyyy")) Dim ues As New cUeberstunden(MA.mit_id, auszahlugsdatum.ToString("dd/MM/yyyy"))
ues.uest_deleted = True
ues.uest_lastChanged = Now() If ues.hasEntry Then
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME ues.uest_deleted = True
ues.SAVE() ues.uest_lastChanged = Now()
ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
ues.SAVE()
End If
MsgBox("Erfolgreich aus Timas zurückgesetzt!") MsgBox("Erfolgreich aus Timas zurückgesetzt!")
picDel.Visible = False picDel.Visible = False
Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB
getUeberstunden(cbxabwDatum.Checked) getUeberstunden(cbxabwDatum.Checked)
End If
End If End If
End If
End Sub End Sub
Public Function RoundOfDigits(ByVal Value As Decimal, ByVal Digits As Integer) As Decimal Public Function RoundOfDigits(ByVal Value As Decimal, ByVal Digits As Integer) As Decimal
@@ -626,9 +649,11 @@ Public Class frmUeberstundenauszahlen
If istTeilzeit Then If istTeilzeit Then
lbllfdSaldo.Text = "Mehrarbeit 25% (nur Teilzeit-MA)" lbllfdSaldo.Text = "Mehrarbeit 25% (nur Teilzeit-MA)"
Label4.Text = "Überstunden 50% (Sa) - werden als 25% ausbezahlt!"
faktorTeilzeit = 100 ' werden Zeitlich nicht hochgerechnet, sondern nur mit aufschlag ausbezahlt, somit keine Hochrechnung um Faktor! faktorTeilzeit = 100 ' werden Zeitlich nicht hochgerechnet, sondern nur mit aufschlag ausbezahlt, somit keine Hochrechnung um Faktor!
Else Else
lbllfdSaldo.Text = "lfd Saldo" lbllfdSaldo.Text = "lfd Saldo"
Label4.Text = "Überstunden 50% (Sa)"
faktorTeilzeit = 100 faktorTeilzeit = 100
End If End If
@@ -707,9 +732,11 @@ Public Class frmUeberstundenauszahlen
'wenn berechneter Saldo negativ, dann ist im Regelfall das aktuelle MOnat noch nicht abgeschlossen!, daher anstatt den berechneten Saldo in overallBalance laden! 'wenn berechneter Saldo negativ, dann ist im Regelfall das aktuelle MOnat noch nicht abgeschlossen!, daher anstatt den berechneten Saldo in overallBalance laden!
'wenn keinFaktor (also keine hochgerechneten 100% und 50%, dann kann nur monatsweiiße ausbezahlt werden (weil
txtlfdSaldo.Text = timas.getTimeSaldo(MA.mit_timasId, "", "overallBalance") txtlfdSaldo.Text = timas.getTimeSaldo(MA.mit_timasId, "", "overallBalance")
stunden100auszbere = RoundOfDigits(stunden100ausz * 2, 2) stunden100auszbere = RoundOfDigits(stunden100ausz * faktorFeiertagsarbeit / 100, 2)
stunden50auszbere = RoundOfDigits(stunden50ausz * faktorSamstagsarbeit / 100, 2) stunden50auszbere = RoundOfDigits(stunden50ausz * faktorSamstagsarbeit / 100, 2)
txt100x2.Text = stunden100auszbere txt100x2.Text = stunden100auszbere
@@ -755,17 +782,28 @@ Public Class frmUeberstundenauszahlen
faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet
lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):" lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):"
Else Else
lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):"
faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet
lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):"
End If End If
End If End If
If row.Item("name") = "ÜS werden nicht auf lfd. Saldo hinzugezählt" Then If row.Item("name") = "ÜS werden nicht auf lfd. Saldo hinzugezählt" Then
If row.Item("value") = "true" Then If row.Item("value") = "true" Then
Label5.Text = "ÜS werden nicht auf lfd. Saldo hinzugezählt!" Label5.Text = "ÜS werden nicht auf lfd. Saldo hinzugezählt!"
keinenFaktor = True
'Zuschläge ohne Faktoren!
faktorSamstagsarbeit = 100
faktorFeiertagsarbeit = 100
faktorTeilzeit = 100
Else Else
Label5.Text = "" Label5.Text = ""
keinenFaktor = False
End If End If
cbxabwDatum.Enabled = Not keinenFaktor
End If End If
If row.Item("name") = "Automatisch auszahlen" Then If row.Item("name") = "Automatisch auszahlen" Then