Mitarbeiter, StartOptions, etc.

This commit is contained in:
2025-11-05 16:59:40 +01:00
parent 7d12e603ad
commit 1a8fea634e
3 changed files with 143 additions and 48 deletions

View File

@@ -155,6 +155,7 @@ Public Class frmMitarbDetails
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FO")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FO"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG AG", "VERAG AG")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG AG", "VERAG AG"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CS", "VERAG CS"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG GMBH", "VERAG GMBH")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG GMBH", "VERAG GMBH"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG UNISPED Ltd", "VERAG UNISPED LIMITED")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG UNISPED Ltd", "VERAG UNISPED LIMITED"))
cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CUSTOMS LOGISTICS Ltd", "VERAG CL LIMITED")) cbxClientTimas.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG CUSTOMS LOGISTICS Ltd", "VERAG CL LIMITED"))
@@ -1452,70 +1453,152 @@ Public Class frmMitarbDetails
Private Sub datEinstiegsdatum_ValueChanged(sender As Object, e As EventArgs) Handles datEinstiegsdatum.ValueChanged, cbUrlaubInStund.CheckedChanged, txtUrlaubsabsp.TextChanged, cboDaysPerWeek.SelectedIndexChanged Private Sub datEinstiegsdatum_ValueChanged(sender As Object, e As EventArgs) Handles datEinstiegsdatum.ValueChanged, cbUrlaubInStund.CheckedChanged, txtUrlaubsabsp.TextChanged, cboDaysPerWeek.SelectedIndexChanged
If cbxEinsteigsDat.Checked And mitarbeiter.mit_einstiegsdatum <> "" Then If cbxEinsteigsDat.Checked AndAlso Not String.IsNullOrWhiteSpace(mitarbeiter.mit_einstiegsdatum) Then
If CDate(mitarbeiter.mit_einstiegsdatum).ToShortDateString >= DateTime.Parse("01/01/2000") Then Dim einstiegsdat As Date
If Date.TryParse(mitarbeiter.mit_einstiegsdatum, einstiegsdat) AndAlso einstiegsdat >= #01/01/2000# Then
' Prüfen, ob Arbeitszeit und Arbeitstage korrekt eingegeben wurden
If Not String.IsNullOrWhiteSpace(txtWoStd.Text) AndAlso IsNumeric(txtWoStd.Text) AndAlso Not String.IsNullOrWhiteSpace(cboDaysPerWeek.Text) AndAlso IsNumeric(cboDaysPerWeek.Text) Then
If txtWoStd.Text <> "" AndAlso IsNumeric(txtWoStd.Text) AndAlso cboDaysPerWeek.Text <> "" AndAlso IsNumeric(cboDaysPerWeek.Text) Then ' Ende des Jahres oder ggf. Kündigungsdatum
Dim einstiegsdat As Date = CDate(mitarbeiter.mit_einstiegsdatum) Dim endOfCurrentYear As Date = New DateTime(einstiegsdat.Year, 12, 31)
Dim span As TimeSpan = endOfCurrentYear - einstiegsdat
Dim endOfCurrentYear = New DateTime(einstiegsdat.Year, 12, 31) If cbxGekuendigt.Checked AndAlso Not String.IsNullOrWhiteSpace(mitarbeiter.mit_kuendigungsdatum) Then
Dim span = endOfCurrentYear - einstiegsdat Dim kuendigungsdatum As Date
If Date.TryParse(mitarbeiter.mit_kuendigungsdatum, kuendigungsdatum) AndAlso kuendigungsdatum >= #01/01/2000# Then
If cbxGekuendigt.Checked AndAlso mitarbeiter.mit_kuendigungsdatum <> "" AndAlso CDate(mitarbeiter.mit_kuendigungsdatum).ToShortDateString >= DateTime.Parse("01/01/2000") Then span = kuendigungsdatum - einstiegsdat
Dim kuendigungsdatum As Date = CDate(mitarbeiter.mit_kuendigungsdatum) End If
span = kuendigungsdatum - einstiegsdat
End If End If
Dim days As Double = span.TotalDays Dim days As Double = span.TotalDays
Dim uansp As Double = 0 Dim uansp As Double = 0
Dim aliquU As Double = 0 Dim aliquU As Double = 0
calcUrlaubsabspruch(cbUrlaubInStund.Checked, uansp) ' Urlaubsanspruch berechnen
calcUrlaubsabspruchNew(cbUrlaubInStund.Checked, uansp)
If days > 0 AndAlso uansp > 0 Then If days > 0 AndAlso uansp > 0 Then
If IsNumeric(txtUrlaubsabsp.Text) Then uansp = txtUrlaubsabsp.Text If IsNumeric(txtUrlaubsabsp.Text) Then
If Not cbUrlaubInStund.Checked Then uansp = CDbl(txtUrlaubsabsp.Text)
aliquU = Math.Round((uansp / 365) * span.TotalDays, 2, MidpointRounding.AwayFromZero)
txtaliquUA.Text = aliquU
lblHoursOrDays2.Text = "D"
Else
aliquU = Math.Round((uansp / 365) * span.TotalDays, 2, MidpointRounding.AwayFromZero)
txtaliquUA.Text = aliquU
lblHoursOrDays2.Text = "H"
End If End If
' aliquoter Urlaubsanspruch
aliquU = Math.Round((uansp / 365) * days, 2, MidpointRounding.AwayFromZero)
txtaliquUA.Text = aliquU.ToString("0.00")
lblHoursOrDays2.Text = If(cbUrlaubInStund.Checked, "H", "D")
End If End If
End If End If
End If End If
End If End If
End Sub End Sub
Private Sub calcUrlaubsabspruch(UrlaubInStunden As Boolean, ByRef urlaubsabspruch As Double) Private Sub calcUrlaubsabspruch(UrlaubInStunden As Boolean, ByRef urlaubsabspruch As Double)
If Not UrlaubInStunden Then
If cboDaysPerWeek.SelectedItem <> "" Then urlaubsabspruch = 0 ' sicherstellen, dass immer ein Wert zurückgegeben wird
If Not cbabwJahresurlaub.Checked Then
urlaubsabspruch = 5 * cboDaysPerWeek.SelectedItem Dim daysPerWeek As Double = 0
End If Dim wochenstunden As Double = 0
' Tage pro Woche validieren
If cboDaysPerWeek.SelectedItem IsNot Nothing AndAlso IsNumeric(cboDaysPerWeek.SelectedItem) Then
daysPerWeek = CDbl(cboDaysPerWeek.SelectedItem)
End If
' Wochenstunden validieren
If IsNumeric(txtWoStd.Text) Then
wochenstunden = CDbl(txtWoStd.Text)
End If
' Wenn keine gültigen Werte, abbrechen
If daysPerWeek <= 0 Then Exit Sub
' Jahresurlaub nur berechnen, wenn nicht "abgewählter Jahresurlaub"
If Not cbabwJahresurlaub.Checked Then
If Not UrlaubInStunden Then
' Urlaub in Tagen
urlaubsabspruch = 5 * daysPerWeek
lblHoursOrDays1.Text = "D" lblHoursOrDays1.Text = "D"
End If Else
Else ' Urlaub in Stunden
If cboDaysPerWeek.SelectedItem <> "" AndAlso IsNumeric(txtWoStd.Text) AndAlso txtWoStd.Text > 0 Then If wochenstunden > 0 Then
If Not cbabwJahresurlaub.Checked Then urlaubsabspruch = (wochenstunden / daysPerWeek) * 5
urlaubsabspruch = (txtWoStd.Text / cboDaysPerWeek.SelectedItem) * cboDaysPerWeek.SelectedItem * 5 lblHoursOrDays1.Text = "H"
End If End If
lblHoursOrDays1.Text = "H"
End If End If
End If End If
txtUrlaubsabsp.Text = urlaubsabspruch
' Ergebnis anzeigen
txtUrlaubsabsp.Text = urlaubsabspruch.ToString("0.00")
'If Not UrlaubInStunden Then
' If cboDaysPerWeek.SelectedItem <> "" Then
' If Not cbabwJahresurlaub.Checked Then
' urlaubsabspruch = 5 * cboDaysPerWeek.SelectedItem
' End If
' lblHoursOrDays1.Text = "D"
' End If
'Else
' If cboDaysPerWeek.SelectedItem <> "" AndAlso IsNumeric(txtWoStd.Text) AndAlso txtWoStd.Text > 0 Then
' If Not cbabwJahresurlaub.Checked Then
' urlaubsabspruch = (txtWoStd.Text / cboDaysPerWeek.SelectedItem) * cboDaysPerWeek.SelectedItem * 5
' End If
' lblHoursOrDays1.Text = "H"
' End If
'End If
'txtUrlaubsabsp.Text = urlaubsabspruch
End Sub End Sub
Private Sub calcUrlaubsabspruchNew(UrlaubInStunden As Boolean, ByRef urlaubsabspruch As Double)
Dim tageProWoche As Double = 0
Dim wochenstunden As Double = 0
' Eingaben validieren
If cboDaysPerWeek.SelectedItem IsNot Nothing AndAlso IsNumeric(cboDaysPerWeek.SelectedItem) Then
tageProWoche = CDbl(cboDaysPerWeek.SelectedItem)
End If
If IsNumeric(txtWoStd.Text) Then
wochenstunden = CDbl(txtWoStd.Text)
End If
' Nur berechnen, wenn Jahresurlaub nicht manuell abgewählt wurde
If Not cbabwJahresurlaub.Checked Then
urlaubsabspruch = BerechneUrlaubsanspruch(tageProWoche, wochenstunden, UrlaubInStunden)
Else
urlaubsabspruch = 0
End If
' UI aktualisieren
txtUrlaubsabsp.Text = urlaubsabspruch.ToString("0.00")
lblHoursOrDays1.Text = If(UrlaubInStunden, "H", "D")
End Sub
Public Function BerechneUrlaubsanspruch(tageProWoche As Double, wochenstunden As Double, urlaubInStunden As Boolean) As Double
' Sicherheitsprüfungen
If tageProWoche <= 0 Then Return 0
If urlaubInStunden AndAlso wochenstunden <= 0 Then Return 0
Dim anspruch As Double = 0
If Not urlaubInStunden Then
' Urlaub in Tagen
anspruch = 5 * tageProWoche
Else
' Urlaub in Stunden: durchschnittliche Tagesarbeitszeit * 5
anspruch = (wochenstunden / tageProWoche) * 5
End If
Return Math.Round(anspruch, 2, MidpointRounding.AwayFromZero)
End Function
Private Sub TabControl2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl2.SelectedIndexChanged Private Sub TabControl2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl2.SelectedIndexChanged
If TabControl2.SelectedIndex = 2 Then If TabControl2.SelectedIndex = 2 Then
Try Try

View File

@@ -623,6 +623,10 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL")
frmStartOptions.moveFile_DateBack(fileNamePath, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name)
dgvEinarbeitung.Refresh()
ElseIf (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'EasyTrip IT Rechnungen ElseIf (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'EasyTrip IT Rechnungen
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath)) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath))
@@ -693,8 +697,11 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers
End If End If
End If frmStartOptions.moveFile_DateBack(fileNamePath, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name)
dgvEinarbeitung.Refresh()
End If
End If End If

View File

@@ -661,6 +661,7 @@ Public Class frmStartOptions
Dim totalPages = 0 Dim totalPages = 0
Dim batchrequestNr = 0 Dim batchrequestNr = 0
Dim counTrans As Integer = 0 Dim counTrans As Integer = 0
Dim pages As String = ""
Dim savedTrans As Integer = 0 Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now()) Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb) MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
@@ -672,6 +673,7 @@ Public Class frmStartOptions
closeMe() closeMe()
Exit Sub Exit Sub
Else Else
pages = "1"
counTrans += dt.Rows.Count counTrans += dt.Rows.Count
End If End If
If totalPages > 1 Then If totalPages > 1 Then
@@ -686,9 +688,10 @@ Public Class frmStartOptions
counTrans += dt.Rows.Count counTrans += dt.Rows.Count
End If End If
i = i + 1 i = i + 1
pages &= " " & i
Next Next
End If End If
API.UPDTAE_OK(,, PARAM & " Batch-Nr: " & batchrequestNr & "-" & totalPages) API.UPDTAE_OK(,, PARAM & " Batch-Nr: " & batchrequestNr & "-" & totalPages & " Transactions: " & counTrans & " Pages: " & pages)
MDMEinarb.ds_count += savedTrans MDMEinarb.ds_count += savedTrans
MDMEinarb.ds_total += counTrans MDMEinarb.ds_total += counTrans
@@ -3184,7 +3187,7 @@ Public Class frmStartOptions
Function getUID_Pruefung(maxAnz As Integer, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1000) As Boolean Function getUID_Pruefung(maxAnz As Integer, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1000) As Boolean
getUID_Pruefung(maxAnz, "VERAG", "UID Prüfung VERAG", "as@verag.ag;ih@verag.ag;kb@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs) getUID_Pruefung(maxAnz, "VERAG", "UID Prüfung VERAG", "as@verag.ag;kb@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs, True)
getUID_Pruefung(maxAnz, "IMEX", "UID Prüfung IMEX", "Viktoria.Leirich@imex-group.at;as@verag.ag;kb@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs) getUID_Pruefung(maxAnz, "IMEX", "UID Prüfung IMEX", "Viktoria.Leirich@imex-group.at;as@verag.ag;kb@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs)
getUID_Pruefung(maxAnz, "AMBAR", "UID Prüfung AMBAR", "as@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs) getUID_Pruefung(maxAnz, "AMBAR", "UID Prüfung AMBAR", "as@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs)
getUID_Pruefung(maxAnz, "UNISPED", "UID Prüfung UNISPED", "al@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs) getUID_Pruefung(maxAnz, "UNISPED", "UID Prüfung UNISPED", "al@verag.ag", "al@verag.ag",,, True, finanzOnline, veroegerungMs)
@@ -3349,7 +3352,7 @@ Public Class frmStartOptions
If setKundenvermerk Then If setKundenvermerk Then
For Each r As DataRow In dt.Rows For Each r As DataRow In dt.Rows
If r("Ergebnis") = "UNGÜLTIG" Then If Not IsDBNull(r("Ergebnis")) AndAlso r("Ergebnis") = "UNGÜLTIG" Then
Dim kunde As cKunde = New cKunde(r("kdNr")) Dim kunde As cKunde = New cKunde(r("kdNr"))
Dim KdFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(kunde.FilialenNr) Dim KdFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(kunde.FilialenNr)
If KdFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then If KdFirma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Then
@@ -3377,15 +3380,15 @@ Public Class frmStartOptions
If updateFIBU Then If updateFIBU Then
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim firma_id As String = "" Dim firma_id As String = ""
Dim vermerkNew As String = "UID Nr." & r("UstIdKz") & r("UstIdnr") & " ungültig" Dim vermerkNew As String = "UID Nr. " & r("UstIdKz") & r("UstIdnr") & " ungültig (" & Now().ToShortDateString & ")"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG" : firma_id = "'1', '11'" Case "VERAG" : firma_id = "'1', '11', '7'"
Case "ATILLA" : firma_id = "'7'" 'Case "ATILLA" : firma_id = "'7'" 'ATILLA UND VERAG haben selben Kundenstamm!!!
End Select End Select
If firma_id <> "" Then SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET [c_homepage]='" & vermerkNew & "',[c_text2] = isnull([c_ustidnr],''), [c_ustidnr] = '', c_manipulator = 'AUTO', dt_manipulation = Getdate() where i_konto='" & kunde.KundenNr & "' AND i_firm_refid in (" & firma_id & ")", "FIBU") If firma_id <> "" Then SQL.doSQL("UPDATE [FIBU2].dbo.fibu_konto SET [c_homepage]='" & vermerkNew & "',[c_text2] = isnull([c_ustidnr],''), [c_ustidnr] = '', c_manipulator = 'AUTO', dt_manipulation = Getdate() where i_konto='" & kunde.KundenNr & "' AND i_firm_refid in (" & firma_id & ")", "FIBU")
End If End If
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : kunde.FiBuSchnittstelle = True : kunde.SAVE() 'IMEX-Kunden sollen neu in DVO exportiert werden! Case "IMEX" : kunde.FiBuSchnittstelle = True : kunde.SAVE() 'IMEX-Kunden sollen neu in DVO exportiert werden!
End Select End Select
@@ -5123,14 +5126,14 @@ Public Class frmStartOptions
Else Else
Dim totalPages = 0 Dim totalPages = 0
Dim batchrequestNr = 0 Dim batchrequestNr = 0
Dim pages As String = ""
Dim counTrans As Integer = 0 Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0 Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now()) Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
MDMEinarb.setInvoicingDate(Now(), MDMEinarb) MDMEinarb.setInvoicingDate(Now(), MDMEinarb)
fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, cbxOnlyBilledTransactions.Checked, savedTrans) fehler = mse.getNewestTransactions(token, dt, batchrequestNr, totalPages, 0, cbxOnlyBilledTransactions.Checked, savedTrans)
pages = "0"
If fehler <> "" Then If fehler <> "" Then
MsgBox(fehler) MsgBox(fehler)
Me.Visible = True Me.Visible = True
@@ -5150,6 +5153,7 @@ Public Class frmStartOptions
End If End If
i = i + 1 i = i + 1
pages &= " " & i
Next Next
@@ -5294,7 +5298,7 @@ Public Class frmStartOptions
Dim token = mse.createJWT(fehler) Dim token = mse.createJWT(fehler)
Dim transactions As New DataTable Dim transactions As New DataTable
Dim invoice As New DataTable Dim invoice As New DataTable
Dim pages As String = ""
Dim counTrans As Integer = 0 Dim counTrans As Integer = 0
Dim savedTrans As Integer = 0 Dim savedTrans As Integer = 0
Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now()) Dim MDMEinarb As New cMDMEinarbeitung("MSE", Now())
@@ -5316,6 +5320,7 @@ Public Class frmStartOptions
fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, 1, savedTrans) fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, 1, savedTrans)
pages = "1"
If fehler <> "" Then If fehler <> "" Then
MsgBox(fehler) MsgBox(fehler)
Me.Visible = True Me.Visible = True
@@ -5339,13 +5344,13 @@ Public Class frmStartOptions
Else Else
counTrans += transactions.Rows.Count counTrans += transactions.Rows.Count
pages &= " " & i
End If End If
Next Next
End If End If
MsgBox("DONE") MsgBox("DONE" & " Transactions: " & counTrans & " Pages: " & pages)
MDMEinarb.ds_count += savedTrans MDMEinarb.ds_count += savedTrans
MDMEinarb.ds_total += counTrans MDMEinarb.ds_total += counTrans