diff --git a/SDL/frmEssensbestellungenAdministration.Designer.vb b/SDL/frmEssensbestellungenAdministration.Designer.vb index df5c6e87..629461e2 100644 --- a/SDL/frmEssensbestellungenAdministration.Designer.vb +++ b/SDL/frmEssensbestellungenAdministration.Designer.vb @@ -28,6 +28,7 @@ Partial Class frmEssensbestellungenAdministration Me.Label4 = New System.Windows.Forms.Label() Me.Label22 = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() + Me.cbxCurrenyear = New System.Windows.Forms.CheckBox() Me.cbxAlleAnzeigen = New System.Windows.Forms.CheckBox() Me.lblBestellungBis = New System.Windows.Forms.Label() Me.btnBestelllimit = New System.Windows.Forms.Button() @@ -82,7 +83,6 @@ Partial Class frmEssensbestellungenAdministration Me.lblWarning = New System.Windows.Forms.Label() Me.Button2 = New System.Windows.Forms.Button() Me.Label9 = New System.Windows.Forms.Label() - Me.cbxCurrenyear = New System.Windows.Forms.CheckBox() Me.pnlTop.SuspendLayout() Me.Panel1.SuspendLayout() Me.ContextMenuStrip1.SuspendLayout() @@ -163,6 +163,17 @@ Partial Class frmEssensbestellungenAdministration Me.Panel1.Size = New System.Drawing.Size(1242, 106) 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 ' Me.cbxAlleAnzeigen.AutoSize = True @@ -825,17 +836,6 @@ Partial Class frmEssensbestellungenAdministration Me.Label9.Text = "Gesamtbetrag" 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 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) diff --git a/SDL/frmEssensbestellungenAdministration.vb b/SDL/frmEssensbestellungenAdministration.vb index 4930b39c..af538765 100644 --- a/SDL/frmEssensbestellungenAdministration.vb +++ b/SDL/frmEssensbestellungenAdministration.vb @@ -68,7 +68,10 @@ Public Class frmEssensbestellungenAdministration .Columns("eb_kw").HeaderText = "KW" .Columns("eb_kw").Width = 80 .Columns("eb_mitid").HeaderText = "MID" + .Columns("eb_mitid").HeaderText = "MID" .Columns("eb_mitid").Width = 40 + .Columns("eb_mitid").HeaderText = "MID" + .Columns("eb_mitid").Visible = False .Columns("eb_mitname").HeaderText = "Mitarbeiter" .Columns("eb_mitname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("eb_abteilung").Visible = False @@ -636,7 +639,7 @@ Public Class frmEssensbestellungenAdministration If cAllgemein.MITARBEITER.getFirma = "UNISPED" Then sqlWhere &= " And eb_firma = '" & cAllgemein.MITARBEITER.getFirma & "' " 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 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 - ,[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 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) + 'Dim dtMenu = SQL.loadDgvBySql(SQLStringMenues, "AVISO", 100, True) @@ -947,6 +950,7 @@ Public Class frmEssensbestellungenAdministration End Sub + 'Private Sub cbxCurrenyear_CheckedChanged(sender As Object, e As EventArgs) Handles cbxCurrenyear.CheckedChanged ' changeYear() 'End Sub diff --git a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb index eca0990a..1ff5c156 100644 --- a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb +++ b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb @@ -19,7 +19,9 @@ Public Class frmUeberstundenauszahlen Dim maxUberstundenpruefung As Boolean = True Dim istTeilzeit As Boolean = False Dim faktorTeilzeit As Double = 100 + Dim faktorFeiertagsarbeit As Double = 200 Dim faktorSamstagsarbeit As Double = 150 + Dim keinenFaktor As Boolean = False 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%" timeaccountdt = dv.ToTable + getAddDataFromTimas() + getUeberstunden(False) - getAddDataFromTimas() + 'getAddDataFromTimas() End Sub @@ -90,14 +94,6 @@ Public Class frmUeberstundenauszahlen enddate = (dtpBis.Value) 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 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) @@ -449,16 +445,29 @@ Public Class frmUeberstundenauszahlen 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) sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2) 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 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(IIf(Not istTeilzeit, sum50 + sum0, sum50) & "x 50% ÜS: " & CDbl(txtAusz50.Text) + IIf(Not istTeilzeit, CDbl(txtAusz50vonSaldo.Text), 0) & vbNewLine) - If istTeilzeit Then txtAusgabe.Append(sum0 & "x 25% ÜS: " & CDbl(txtAusz50vonSaldo.Text) & vbNewLine) + If Not istTeilzeit Then + 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) Dim aksAuszahlung As MsgBoxResult = MsgBox(txtAusgabe.ToString, vbYesNo) @@ -483,24 +492,35 @@ Public Class frmUeberstundenauszahlen dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) 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 - Dim row = dtsetEntries.NewRow - row.Item("accountid") = 1553 - row.Item("value") = sum0.ToString.Replace(",", ".") - dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) - End If + 'ANMERKUNG -> TZ-Mitarbeiter bekommt die Stunden, die am SA gearbeitet wurden, auch als 25% ausgezahlt! + If (sum50 > 0 Or sum0 > 0) And istTeilzeit Then + Dim row = dtsetEntries.NewRow + row.Item("accountid") = 1553 + row.Item("value") = (sum50 + sum0).ToString.Replace(",", ".") + dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) + 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 row.Item("accountid") = 1598 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")) - ues.uest_deleted = True - ues.uest_lastChanged = Now() - ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME - ues.SAVE() + + If ues.hasEntry Then + ues.uest_deleted = True + ues.uest_lastChanged = Now() + ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + ues.SAVE() + End If MsgBox("Erfolgreich aus Timas zurückgesetzt!") - picDel.Visible = False - Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB - getUeberstunden(cbxabwDatum.Checked) + picDel.Visible = False + Thread.Sleep(1000) 'warten bis Eintrag in Timas-DB + getUeberstunden(cbxabwDatum.Checked) + + End If End If - End If - End Sub Public Function RoundOfDigits(ByVal Value As Decimal, ByVal Digits As Integer) As Decimal @@ -626,9 +649,11 @@ Public Class frmUeberstundenauszahlen If istTeilzeit Then 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! Else lbllfdSaldo.Text = "lfd Saldo" + Label4.Text = "Überstunden 50% (Sa)" faktorTeilzeit = 100 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 keinFaktor (also keine hochgerechneten 100% und 50%, dann kann nur monatsweiiße ausbezahlt werden (weil + 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) txt100x2.Text = stunden100auszbere @@ -755,17 +782,28 @@ Public Class frmUeberstundenauszahlen faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):" Else - lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):" faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet + lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):" + End If End If If row.Item("name") = "ÜS werden nicht auf lfd. Saldo hinzugezählt" Then If row.Item("value") = "true" Then Label5.Text = "ÜS werden nicht auf lfd. Saldo hinzugezählt!" + keinenFaktor = True + 'Zuschläge ohne Faktoren! + faktorSamstagsarbeit = 100 + faktorFeiertagsarbeit = 100 + faktorTeilzeit = 100 + Else Label5.Text = "" + keinenFaktor = False End If + + cbxabwDatum.Enabled = Not keinenFaktor + End If If row.Item("name") = "Automatisch auszahlen" Then