diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cFeiertage.vb b/VERAG_PROG_ALLGEMEIN/Classes/cFeiertage.vb index bbb4617c..4b65be23 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cFeiertage.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cFeiertage.vb @@ -76,7 +76,6 @@ Public Class cFeiertage startDate = New DateTime(year, month + 1, 1) Else startDate = New DateTime(year + 1, 1, 1) - startDate = startDate.AddDays(-1) End If If irgnoreDay Then diff --git a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmMitarbeitersuche.vb b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmMitarbeitersuche.vb index 09eb2345..d3870a1d 100644 --- a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmMitarbeitersuche.vb +++ b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmMitarbeitersuche.vb @@ -190,7 +190,15 @@ Public Class frmMitarbeitersuche If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZE_AKTENGANG", "SDL") Then btnAkten.Visible = True - If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen", "SDL") Then Button3.Visible = True = True + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen", "SDL") Then + If MA.getFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then 'MA derselben Firma bearbeiten + Button3.Visible = True + End If + End If + + If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Überstunden_auszahlen_alle", "SDL") Then + Button3.Visible = True + End If End If End Sub diff --git a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.Designer.vb b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.Designer.vb index dadc86c3..c16d77fd 100644 --- a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.Designer.vb +++ b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.Designer.vb @@ -53,6 +53,14 @@ Partial Class frmUeberstundenauszahlen Me.picDel = New System.Windows.Forms.PictureBox() Me.txtAusz50vonSaldo = New System.Windows.Forms.TextBox() Me.Panel1 = New System.Windows.Forms.Panel() + Me.txtNettoSum = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.txtAusz100Netto = New System.Windows.Forms.TextBox() + Me.txtAusz50Netto = New System.Windows.Forms.TextBox() + Me.txtAusz50vonSaldoNetto = New System.Windows.Forms.TextBox() + Me.Label10 = New System.Windows.Forms.Label() + Me.txtAuszManuell_hhmm = New System.Windows.Forms.TextBox() + Me.txtAusz_hhmm = New System.Windows.Forms.TextBox() Me.Label9 = New System.Windows.Forms.Label() Me.Label6 = New System.Windows.Forms.Label() Me.picShow = New System.Windows.Forms.PictureBox() @@ -62,20 +70,20 @@ Partial Class frmUeberstundenauszahlen Me.cbx100 = New System.Windows.Forms.CheckBox() Me.txtberAusz25 = New System.Windows.Forms.TextBox() Me.cbxoverwrite = New System.Windows.Forms.CheckBox() - Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.Label8 = New System.Windows.Forms.Label() Me.txt50x1 = New System.Windows.Forms.TextBox() Me.cbxTeilzeit = New System.Windows.Forms.CheckBox() Me.PictureBox1 = New System.Windows.Forms.PictureBox() Me.lblWarning = New System.Windows.Forms.Label() Me.Label5 = New System.Windows.Forms.Label() - Me.txtAusz_hhmm = New System.Windows.Forms.TextBox() - Me.txtAuszManuell_hhmm = New System.Windows.Forms.TextBox() + Me.txtBruttoSum = New System.Windows.Forms.TextBox() + Me.dgvUeberstunden = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.Label12 = New System.Windows.Forms.Label() CType(Me.picDel, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel1.SuspendLayout() CType(Me.picShow, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'dtpMonat @@ -205,19 +213,19 @@ Partial Class frmUeberstundenauszahlen ' 'txtAusz100 ' - Me.txtAusz100.Location = New System.Drawing.Point(217, 27) + Me.txtAusz100.Location = New System.Drawing.Point(292, 27) Me.txtAusz100.Name = "txtAusz100" Me.txtAusz100.ReadOnly = True - Me.txtAusz100.Size = New System.Drawing.Size(54, 20) + Me.txtAusz100.Size = New System.Drawing.Size(40, 20) Me.txtAusz100.TabIndex = 16 Me.txtAusz100.Text = "0" ' 'txtAusz50 ' - Me.txtAusz50.Location = New System.Drawing.Point(217, 69) + Me.txtAusz50.Location = New System.Drawing.Point(292, 69) Me.txtAusz50.Name = "txtAusz50" Me.txtAusz50.ReadOnly = True - Me.txtAusz50.Size = New System.Drawing.Size(54, 20) + Me.txtAusz50.Size = New System.Drawing.Size(40, 20) Me.txtAusz50.TabIndex = 17 Me.txtAusz50.Text = "0" ' @@ -268,26 +276,26 @@ Partial Class frmUeberstundenauszahlen ' 'txtberAusz50 ' - Me.txtberAusz50.Location = New System.Drawing.Point(309, 69) + Me.txtberAusz50.Location = New System.Drawing.Point(348, 69) Me.txtberAusz50.Name = "txtberAusz50" Me.txtberAusz50.ReadOnly = True - Me.txtberAusz50.Size = New System.Drawing.Size(54, 20) + Me.txtberAusz50.Size = New System.Drawing.Size(40, 20) Me.txtberAusz50.TabIndex = 24 Me.txtberAusz50.Text = "0" ' 'txtberAusz100 ' - Me.txtberAusz100.Location = New System.Drawing.Point(309, 27) + Me.txtberAusz100.Location = New System.Drawing.Point(348, 27) Me.txtberAusz100.Name = "txtberAusz100" Me.txtberAusz100.ReadOnly = True - Me.txtberAusz100.Size = New System.Drawing.Size(54, 20) + Me.txtberAusz100.Size = New System.Drawing.Size(40, 20) Me.txtberAusz100.TabIndex = 23 Me.txtberAusz100.Text = "0" ' 'Label1 ' Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(306, 11) + Me.Label1.Location = New System.Drawing.Point(330, 11) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(92, 13) Me.Label1.TabIndex = 25 @@ -315,7 +323,7 @@ Partial Class frmUeberstundenauszahlen ' Me.picDel.BackgroundImage = Global.VERAG_PROG_ALLGEMEIN.My.Resources.Resources.del Me.picDel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picDel.Location = New System.Drawing.Point(404, 11) + Me.picDel.Location = New System.Drawing.Point(428, 11) Me.picDel.Name = "picDel" Me.picDel.Size = New System.Drawing.Size(21, 16) Me.picDel.TabIndex = 28 @@ -323,15 +331,23 @@ Partial Class frmUeberstundenauszahlen ' 'txtAusz50vonSaldo ' - Me.txtAusz50vonSaldo.Location = New System.Drawing.Point(217, 108) + Me.txtAusz50vonSaldo.Location = New System.Drawing.Point(292, 108) Me.txtAusz50vonSaldo.Name = "txtAusz50vonSaldo" Me.txtAusz50vonSaldo.ReadOnly = True - Me.txtAusz50vonSaldo.Size = New System.Drawing.Size(49, 20) + Me.txtAusz50vonSaldo.Size = New System.Drawing.Size(40, 20) Me.txtAusz50vonSaldo.TabIndex = 29 Me.txtAusz50vonSaldo.Text = "0" ' 'Panel1 ' + Me.Panel1.Controls.Add(Me.Label12) + Me.Panel1.Controls.Add(Me.txtBruttoSum) + Me.Panel1.Controls.Add(Me.txtNettoSum) + Me.Panel1.Controls.Add(Me.Label11) + Me.Panel1.Controls.Add(Me.txtAusz100Netto) + Me.Panel1.Controls.Add(Me.txtAusz50Netto) + Me.Panel1.Controls.Add(Me.txtAusz50vonSaldoNetto) + Me.Panel1.Controls.Add(Me.Label10) Me.Panel1.Controls.Add(Me.txtAuszManuell_hhmm) Me.Panel1.Controls.Add(Me.txtAusz_hhmm) Me.Panel1.Controls.Add(Me.Label9) @@ -371,6 +387,77 @@ Partial Class frmUeberstundenauszahlen Me.Panel1.Size = New System.Drawing.Size(619, 258) Me.Panel1.TabIndex = 30 ' + 'txtNettoSum + ' + Me.txtNettoSum.Location = New System.Drawing.Point(224, 147) + Me.txtNettoSum.Name = "txtNettoSum" + Me.txtNettoSum.ReadOnly = True + Me.txtNettoSum.Size = New System.Drawing.Size(40, 20) + Me.txtNettoSum.TabIndex = 52 + Me.txtNettoSum.Text = "0" + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(229, 11) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(33, 13) + Me.Label11.TabIndex = 51 + Me.Label11.Text = "Netto" + ' + 'txtAusz100Netto + ' + Me.txtAusz100Netto.Location = New System.Drawing.Point(224, 30) + Me.txtAusz100Netto.Name = "txtAusz100Netto" + Me.txtAusz100Netto.ReadOnly = True + Me.txtAusz100Netto.Size = New System.Drawing.Size(40, 20) + Me.txtAusz100Netto.TabIndex = 50 + Me.txtAusz100Netto.Text = "0" + ' + 'txtAusz50Netto + ' + Me.txtAusz50Netto.Location = New System.Drawing.Point(224, 69) + Me.txtAusz50Netto.Name = "txtAusz50Netto" + Me.txtAusz50Netto.ReadOnly = True + Me.txtAusz50Netto.Size = New System.Drawing.Size(40, 20) + Me.txtAusz50Netto.TabIndex = 49 + Me.txtAusz50Netto.Text = "0" + ' + 'txtAusz50vonSaldoNetto + ' + Me.txtAusz50vonSaldoNetto.Location = New System.Drawing.Point(224, 108) + Me.txtAusz50vonSaldoNetto.Name = "txtAusz50vonSaldoNetto" + Me.txtAusz50vonSaldoNetto.ReadOnly = True + Me.txtAusz50vonSaldoNetto.Size = New System.Drawing.Size(40, 20) + Me.txtAusz50vonSaldoNetto.TabIndex = 48 + Me.txtAusz50vonSaldoNetto.Text = "0" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(289, 11) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(35, 13) + Me.Label10.TabIndex = 47 + Me.Label10.Text = "Brutto" + ' + 'txtAuszManuell_hhmm + ' + Me.txtAuszManuell_hhmm.Location = New System.Drawing.Point(305, 222) + Me.txtAuszManuell_hhmm.Name = "txtAuszManuell_hhmm" + Me.txtAuszManuell_hhmm.Size = New System.Drawing.Size(54, 20) + Me.txtAuszManuell_hhmm.TabIndex = 46 + Me.txtAuszManuell_hhmm.Text = "0" + Me.txtAuszManuell_hhmm.Visible = False + ' + 'txtAusz_hhmm + ' + Me.txtAusz_hhmm.Location = New System.Drawing.Point(245, 222) + Me.txtAusz_hhmm.Name = "txtAusz_hhmm" + Me.txtAusz_hhmm.Size = New System.Drawing.Size(54, 20) + Me.txtAusz_hhmm.TabIndex = 45 + Me.txtAusz_hhmm.Text = "0" + ' 'Label9 ' Me.Label9.AutoSize = True @@ -393,7 +480,7 @@ Partial Class frmUeberstundenauszahlen ' Me.picShow.BackgroundImage = Global.VERAG_PROG_ALLGEMEIN.My.Resources.Resources.today Me.picShow.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.picShow.Location = New System.Drawing.Point(431, 11) + Me.picShow.Location = New System.Drawing.Point(455, 11) Me.picShow.Name = "picShow" Me.picShow.Size = New System.Drawing.Size(21, 16) Me.picShow.TabIndex = 38 @@ -412,7 +499,7 @@ Partial Class frmUeberstundenauszahlen 'cx25 ' Me.cx25.AutoSize = True - Me.cx25.Location = New System.Drawing.Point(196, 111) + Me.cx25.Location = New System.Drawing.Point(271, 111) Me.cx25.Name = "cx25" Me.cx25.Size = New System.Drawing.Size(15, 14) Me.cx25.TabIndex = 36 @@ -421,7 +508,7 @@ Partial Class frmUeberstundenauszahlen 'cbx50 ' Me.cbx50.AutoSize = True - Me.cbx50.Location = New System.Drawing.Point(196, 72) + Me.cbx50.Location = New System.Drawing.Point(271, 72) Me.cbx50.Name = "cbx50" Me.cbx50.Size = New System.Drawing.Size(15, 14) Me.cbx50.TabIndex = 35 @@ -430,7 +517,7 @@ Partial Class frmUeberstundenauszahlen 'cbx100 ' Me.cbx100.AutoSize = True - Me.cbx100.Location = New System.Drawing.Point(196, 30) + Me.cbx100.Location = New System.Drawing.Point(271, 30) Me.cbx100.Name = "cbx100" Me.cbx100.Size = New System.Drawing.Size(15, 14) Me.cbx100.TabIndex = 32 @@ -438,10 +525,10 @@ Partial Class frmUeberstundenauszahlen ' 'txtberAusz25 ' - Me.txtberAusz25.Location = New System.Drawing.Point(309, 108) + Me.txtberAusz25.Location = New System.Drawing.Point(348, 108) Me.txtberAusz25.Name = "txtberAusz25" Me.txtberAusz25.ReadOnly = True - Me.txtberAusz25.Size = New System.Drawing.Size(54, 20) + Me.txtberAusz25.Size = New System.Drawing.Size(40, 20) Me.txtberAusz25.TabIndex = 34 Me.txtberAusz25.Text = "0" Me.txtberAusz25.Visible = False @@ -458,28 +545,14 @@ Partial Class frmUeberstundenauszahlen Me.cbxoverwrite.Text = "max. auszahlbar" Me.cbxoverwrite.UseVisualStyleBackColor = True ' - 'dgvUeberstunden - ' - Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1 - Me.dgvUeberstunden.AllowUserToAddRows = False - Me.dgvUeberstunden.AllowUserToDeleteRows = False - Me.dgvUeberstunden.BackgroundColor = System.Drawing.Color.White - Me.dgvUeberstunden.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvUeberstunden.Location = New System.Drawing.Point(381, 30) - Me.dgvUeberstunden.Name = "dgvUeberstunden" - Me.dgvUeberstunden.ReadOnly = True - Me.dgvUeberstunden.Size = New System.Drawing.Size(227, 98) - Me.dgvUeberstunden.TabIndex = 13 - Me.dgvUeberstunden.Visible = False - ' 'Label8 ' Me.Label8.AutoSize = True Me.Label8.Location = New System.Drawing.Point(247, 179) Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(56, 13) + Me.Label8.Size = New System.Drawing.Size(93, 13) Me.Label8.TabIndex = 33 - Me.Label8.Text = "Auszahlen" + Me.Label8.Text = "Auszahlen (Brutto)" ' 'txt50x1 ' @@ -528,22 +601,37 @@ Partial Class frmUeberstundenauszahlen Me.Label5.Size = New System.Drawing.Size(0, 13) Me.Label5.TabIndex = 40 ' - 'txtAusz_hhmm + 'txtBruttoSum ' - Me.txtAusz_hhmm.Location = New System.Drawing.Point(245, 222) - Me.txtAusz_hhmm.Name = "txtAusz_hhmm" - Me.txtAusz_hhmm.Size = New System.Drawing.Size(54, 20) - Me.txtAusz_hhmm.TabIndex = 45 - Me.txtAusz_hhmm.Text = "0" + Me.txtBruttoSum.Location = New System.Drawing.Point(292, 147) + Me.txtBruttoSum.Name = "txtBruttoSum" + Me.txtBruttoSum.ReadOnly = True + Me.txtBruttoSum.Size = New System.Drawing.Size(40, 20) + Me.txtBruttoSum.TabIndex = 53 + Me.txtBruttoSum.Text = "0" ' - 'txtAuszManuell_hhmm + 'dgvUeberstunden ' - Me.txtAuszManuell_hhmm.Location = New System.Drawing.Point(305, 222) - Me.txtAuszManuell_hhmm.Name = "txtAuszManuell_hhmm" - Me.txtAuszManuell_hhmm.Size = New System.Drawing.Size(54, 20) - Me.txtAuszManuell_hhmm.TabIndex = 46 - Me.txtAuszManuell_hhmm.Text = "0" - Me.txtAuszManuell_hhmm.Visible = False + Me.dgvUeberstunden.AKTUALISIERUNGS_INTERVALL = -1 + Me.dgvUeberstunden.AllowUserToAddRows = False + Me.dgvUeberstunden.AllowUserToDeleteRows = False + Me.dgvUeberstunden.BackgroundColor = System.Drawing.Color.White + Me.dgvUeberstunden.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvUeberstunden.Location = New System.Drawing.Point(422, 30) + Me.dgvUeberstunden.Name = "dgvUeberstunden" + Me.dgvUeberstunden.ReadOnly = True + Me.dgvUeberstunden.Size = New System.Drawing.Size(186, 98) + Me.dgvUeberstunden.TabIndex = 13 + Me.dgvUeberstunden.Visible = False + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(176, 150) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(42, 13) + Me.Label12.TabIndex = 54 + Me.Label12.Text = "Summe" ' 'frmUeberstundenauszahlen ' @@ -569,8 +657,8 @@ Partial Class frmUeberstundenauszahlen Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() CType(Me.picShow, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvUeberstunden, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -623,4 +711,12 @@ Partial Class frmUeberstundenauszahlen Friend WithEvents Label6 As Windows.Forms.Label Friend WithEvents txtAuszManuell_hhmm As Windows.Forms.TextBox Friend WithEvents txtAusz_hhmm As Windows.Forms.TextBox + Friend WithEvents Label10 As Windows.Forms.Label + Friend WithEvents Label11 As Windows.Forms.Label + Friend WithEvents txtAusz100Netto As Windows.Forms.TextBox + Friend WithEvents txtAusz50Netto As Windows.Forms.TextBox + Friend WithEvents txtAusz50vonSaldoNetto As Windows.Forms.TextBox + Friend WithEvents txtNettoSum As Windows.Forms.TextBox + Friend WithEvents txtBruttoSum As Windows.Forms.TextBox + Friend WithEvents Label12 As Windows.Forms.Label End Class diff --git a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb index a04bf7be..d9286f3e 100644 --- a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb +++ b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb @@ -3,11 +3,10 @@ Imports System.Globalization Imports System.Text Imports System.Threading Imports System.Windows.Forms - - +Imports DocumentFormat.OpenXml.Drawing.Diagrams Public Class frmUeberstundenauszahlen - + Dim refresh As Boolean = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim MA As cMitarbeiter = Nothing Dim timas As cTimasAPI = New cTimasAPI @@ -15,16 +14,17 @@ Public Class frmUeberstundenauszahlen Dim customFields As New DataTable Dim timeaccountdt As New DataTable Dim dtResult As New DataTable - 'Dim dtbereitsausgezahlteUE As New DataTable Dim tag As cFeiertage Dim auszahlugsdatum As New Date 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 + Dim faktor100Zuschlag As Double = 200 + Dim faktor50Zuschlag As Double = 150 + Dim ignoreFactor As Boolean = False + Dim stunden100ausz, stunden50ausz, stunden100auszbere, stunden50auszbere, stunden100bereitsausbezahl, stunden50bereitsausbezahlt, stunden25bereitsausbezahlt, mehrabeit, stundenlfdSaldo, stundenlfdSaldobere, overwrittenSum, overallSumNetto, overallSumBrutto As Double + 'Dim dtbereitsausgezahlteUE As New DataTable Sub New(mit_id) @@ -41,22 +41,9 @@ Public Class frmUeberstundenauszahlen Dim dv = New DataView(dt) dv.RowFilter = "accountid = 65 Or accountid = 69 Or accountid = 70 Or accountid = 72 Or accountid = 73 Or accountid = 1209 Or accountid = 1235 Or accountid = 1550 Or accountid = 1551 Or accountid = 1553" - '65;"01-Lfd Saldo" - '69;"10-Na 22-06" - '70;"11-Sa 00-24" - '72;"13-So 00-24" - '73;"14-FtN 00-24" - '1209;Mehrarbeit - '1235;"Überstunden 100% gesamt" - '1550;"AUSZ ÜS 100%" - '1551;"AUSZ ÜS 50%" - '1553;"AUSZ ÜS MA 25%" timeaccountdt = dv.ToTable - getAddDataFromTimas() - getUeberstunden(False) - 'getAddDataFromTimas() @@ -144,12 +131,6 @@ Public Class frmUeberstundenauszahlen dtmerged.AcceptChanges() End If - 'If (dtmerged.Columns.Contains("date")) Then - ' dtmerged.Columns.Remove("date") - ' dtmerged.AcceptChanges() - 'End If - - Dim groups = dtmerged.AsEnumerable(). GroupBy(Function(row) New With { Key .Id = row.Field(Of Integer)("accountid"), @@ -248,25 +229,76 @@ Public Class frmUeberstundenauszahlen End Sub + Private Sub txtAusz100_TextChanged(sender As Object, e As EventArgs) Handles txtAusz100.TextChanged, txtAusz50.TextChanged, txtAusz50vonSaldo.TextChanged + Dim sum As Double = 0 overwrittenSum = 0 - If cbx100.Checked AndAlso txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) >= 0 Then + Select Case sender.Name + Case "txtAusz100" + txtAusz100Netto.Text = 0 + If txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) > 0 Then + txtAusz100Netto.Text = RoundOfDigits(txtAusz100.Text * 100 / faktor100Zuschlag, 2) + Else + txtAusz100Netto.Text = 0 + End If + + Case "txtAusz50" + txtAusz50Netto.Text = 0 + + If txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text) AndAlso CDbl(txtAusz50.Text) > 0 Then + txtAusz50Netto.Text = RoundOfDigits(txtAusz50.Text * 100 / faktor50Zuschlag, 2) + Else + txtAusz50Netto.Text = 0 + + End If + + Case "txtAusz50vonSaldo" + txtAusz50vonSaldoNetto.Text = 0 + If txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text) AndAlso CDbl(txtAusz50vonSaldo.Text) > 0 Then + txtAusz50vonSaldoNetto.Text = txtAusz50vonSaldo.Text + Else + txtAusz50vonSaldoNetto.Text = 0 + + End If + + End Select + + + If cbx100.Checked AndAlso txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text) AndAlso CDbl(txtAusz100.Text) > 0 Then stunden100auszbere = CDbl(txtAusz100.Text) overwrittenSum += stunden100auszbere End If - If cbx50.Checked AndAlso txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text) AndAlso CDbl(txtAusz50.Text) >= 0 Then + If (txtAusz100.Text <> "" AndAlso IsNumeric(txtAusz100.Text)) Then + sum += CDbl(txtAusz100.Text) + + End If + + If (txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text)) Then + sum += CDbl(txtAusz50.Text) + + End If + + + If (txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text)) Then + sum += CDbl(txtAusz50vonSaldo.Text) + + End If + + If cbx50.Checked AndAlso txtAusz50.Text <> "" AndAlso IsNumeric(txtAusz50.Text) AndAlso CDbl(txtAusz50.Text) > 0 Then stunden50auszbere = CDbl(txtAusz50.Text) overwrittenSum += stunden50auszbere End If - If cx25.Checked AndAlso txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text) AndAlso CDbl(txtAusz50vonSaldo.Text) >= 0 Then + If cx25.Checked AndAlso txtAusz50vonSaldo.Text <> "" AndAlso IsNumeric(txtAusz50vonSaldo.Text) AndAlso CDbl(txtAusz50vonSaldo.Text) > 0 Then stundenlfdSaldobere = RoundOfDigits(txtAusz50vonSaldo.Text, 2) overwrittenSum += stundenlfdSaldobere End If + + If overwrittenSum > 0 Then txtAuszManuell.Text = overwrittenSum txtAusz.Visible = False @@ -281,16 +313,16 @@ Public Class frmUeberstundenauszahlen End If + If overwrittenSum > 0 Then + txtBruttoSum.Text = overwrittenSum + Else + txtBruttoSum.Text = sum + End If + End Sub Public Sub fillFields(dt As DataTable) - '69 10-Na 22-06 - '70 11-Sa 00-24 ===> 50% - '72 13-So 00-24 - '73 14-FtN 00-24 - '1209 Mehrarbeit - '1235 Überstunden 100% gesamt ===> 100% picDel.Visible = False @@ -457,6 +489,25 @@ Public Class frmUeberstundenauszahlen End Sub + Private Sub txtAusz100Netto_TextChanged(sender As Object, e As EventArgs) Handles txtAusz100Netto.TextChanged, txtAusz50Netto.TextChanged, txtAusz50vonSaldoNetto.TextChanged + + Dim sum As Double = 0 + If txtAusz100Netto.Text <> "" AndAlso txtAusz100Netto.Text >= 0 Then + sum += RoundOfDigits(CDbl(txtAusz100Netto.Text), 2) + End If + + If txtAusz50Netto.Text <> "" AndAlso txtAusz50Netto.Text >= 0 Then + sum += RoundOfDigits(CDbl(txtAusz50Netto.Text), 2) + End If + + If txtAusz50vonSaldoNetto.Text <> "" AndAlso txtAusz50vonSaldoNetto.Text >= 0 Then + sum += RoundOfDigits(CDbl(txtAusz50vonSaldoNetto.Text), 2) + End If + + txtNettoSum.Text = sum + + End Sub + Private Sub txtAusz_TextChanged(sender As Object, e As EventArgs) Handles txtAusz.TextChanged calcUeberstunden() @@ -505,31 +556,36 @@ Public Class frmUeberstundenauszahlen '1551;"AUSZ ÜS 50%" '1598; Korrektur MJ - ÜBER API ansprechen! + 'sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 100 / faktor100Zuschlag, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS! + 'sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / faktor50Zuschlag, 2) + 'sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldo.Text) * 100 / faktorTeilzeit, 2) + 'gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text)) Dim sum100, sum50, sum0, gesamt As Double - 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) + sum100 = RoundOfDigits(CDbl(txtAusz100Netto.Text), 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS! + sum50 = RoundOfDigits(CDbl(txtAusz50Netto.Text), 2) + sum0 = RoundOfDigits(CDbl(txtAusz50vonSaldoNetto.Text), 2) gesamt = IIf(overwrittenSum > 0, overwrittenSum, CDbl(txtAusz.Text)) - If faktorSamstagsarbeit = 150 AndAlso istTeilzeit Then + If faktor50Zuschlag = 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 + '29.03.2024 MÜSSEN SOFERN SICH NICHT 40Wochenstunden ERREICHEN, ALS 25% AUSBEZAHLT 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) + 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) @@ -732,17 +788,17 @@ Public Class frmUeberstundenauszahlen Dim summeAusz = CDbl(txtAusz.Text) If summeAusz <= 0 Then - txtAusz50vonSaldo.Text = "0" - txtAusz50.Text = "0" - txtAusz100.Text = "0" - txtAusz.Text = "0" + txtAusz50vonSaldo.Text = 0 + txtAusz50.Text = 0 + txtAusz100.Text = 0 + txtAusz.Text = 0 Button1.Enabled = False Exit Sub End If txt100x2.Text = stunden100auszbere txt50x15.Text = stunden50auszbere - 'txt50x1.Text = RoundOfDigits(stundenlfdSaldobere * faktorTeilzeit / 100, 2) + If stundenlfdSaldo >= summeAusz Then 'Prüfung, damit nicht zuviele ÜS ausbezahlt werden können! @@ -765,41 +821,51 @@ Public Class frmUeberstundenauszahlen End If summeAusz = RoundOfDigits(summeAusz - stunden100auszbere, 2) + 'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden100auszbere * 100 / faktor100Zuschlag, 2), 2) If summeAusz >= stunden50auszbere Then txtAusz50.Text = stunden50auszbere summeAusz = RoundOfDigits(summeAusz - stunden50auszbere, 2) + 'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden50auszbere * 100 / faktor50Zuschlag, 2), 2) ElseIf summeAusz < 0 Then txtAusz50.Text = "0" Else txtAusz50.Text = summeAusz summeAusz = RoundOfDigits(summeAusz - stunden50auszbere, 2) + 'summeAusz = RoundOfDigits(summeAusz - RoundOfDigits(stunden50auszbere * 100 / faktor50Zuschlag, 2), 2) End If + If summeAusz >= stundenlfdSaldo Then - txtAusz50vonSaldo.Text = stundenlfdSaldo - summeAusz = RoundOfDigits(summeAusz - stundenlfdSaldo, 2) + + txtAusz50vonSaldo.Text = summeAusz + ElseIf summeAusz < 0 Then txtAusz50vonSaldo.Text = "0" Else - txtAusz50vonSaldo.Text = summeAusz summeAusz = RoundOfDigits(summeAusz - stundenlfdSaldo, 2) - End If + txtAusz50vonSaldo.Text = summeAusz + End If End If + + If stundenlfdSaldo < 0 And cbxoverwrite.Checked Then txtAusz50vonSaldo.Text = 0 'Wenn Saldo negativ, dann nichts vom lfd Saldo vorschlagen! + + + If Not refresh Then refresh = Not refresh + End Sub Private Sub calxMaxauszahlbar() '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 * faktorFeiertagsarbeit / 100, 2) - stunden50auszbere = RoundOfDigits(stunden50ausz * faktorSamstagsarbeit / 100, 2) + stunden100auszbere = RoundOfDigits(stunden100ausz * faktor100Zuschlag / 100, 2) + stunden50auszbere = RoundOfDigits(stunden50ausz * faktor50Zuschlag / 100, 2) txt100x2.Text = stunden100auszbere txt50x15.Text = stunden50auszbere @@ -841,10 +907,10 @@ Public Class frmUeberstundenauszahlen If row.Item("name") = "SA-Zuschlag" Then If row.Item("value") = "true" Then - faktorSamstagsarbeit = 150 'Samstagsarbeit wir im Timas hochgerechnet + faktor50Zuschlag = 150 'Samstagsarbeit wir im Timas hochgerechnet lblMA.Text = "Mitarbeiter (mit SA-Zuschlag):" Else - faktorSamstagsarbeit = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet + faktor50Zuschlag = 100 'Samstagsarbeit wir im Timas NICHT hochgerechnet lblMA.Text = "Mitarbeiter (ohne SA-Zuschlag):" End If @@ -853,18 +919,20 @@ Public Class frmUeberstundenauszahlen 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 + + ignoreFactor = True + 'Zuschläge ohne Faktoren! - faktorSamstagsarbeit = 100 - faktorFeiertagsarbeit = 100 + faktor50Zuschlag = 100 + faktor100Zuschlag = 100 faktorTeilzeit = 100 Else Label5.Text = "" - keinenFaktor = False + ignoreFactor = False End If - cbxabwDatum.Enabled = Not keinenFaktor + cbxabwDatum.Enabled = Not ignoreFactor End If @@ -881,24 +949,4 @@ Public Class frmUeberstundenauszahlen Next End Sub - Private Function fixTime(val As String) As String - - Try - If val <> "" AndAlso IsNumeric(val) Then - Dim hours = Convert.ToInt32(val) - Dim minutes = (val Mod hours) * 60 - Return hours & ":" & minutes - Else - Return "" - End If - - - Catch ex As Exception - VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) - End Try - - End Function - - - End Class \ No newline at end of file diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Finanzonline/cFinanzOnlineWebService.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Finanzonline/cFinanzOnlineWebService.vb index d546ada2..cdaebce6 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/Finanzonline/cFinanzOnlineWebService.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/Finanzonline/cFinanzOnlineWebService.vb @@ -129,8 +129,15 @@ Public Class cFinanzOnlineWebService StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2 End Select - Dim returnInt As Integer = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6) - errorCode = returnInt + Dim returnInt As Integer + Try + + returnInt = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6) + errorCode = returnInt + Catch ex As Exception + MsgBox("Fehler im externen Webservice '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + Exit Function + End Try If returnInt = 0 Or returnInt = 1 Then