572 lines
27 KiB
VB.net
572 lines
27 KiB
VB.net
Imports System.Data.SqlClient
|
|
|
|
Public Class usrCntlDienstplan
|
|
|
|
Private bindingMA As New BindingSource
|
|
Private dataAdapterMA As New SqlDataAdapter
|
|
|
|
Dim SQLDienst As New cDienstplan
|
|
Dim niederlassung = ""
|
|
|
|
Private Sub btnDienstplan_Click(sender As Object, e As EventArgs)
|
|
frmDienstplan.Show()
|
|
End Sub
|
|
|
|
'Sub getNiederlassung()
|
|
' If tbcntr.TabPages.Count = 0 Then Exit Sub
|
|
' niederlassung = tbcntr.SelectedTab.Name.Replace("tb", "")
|
|
' End Sub
|
|
|
|
Private Sub usrCntlDienstplan_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
' getNiederlassung()
|
|
|
|
' If frmLogin.USRID <> 4 Then
|
|
' tbcntr.SelectedIndex = 0
|
|
'tbcntr.Enabled = False
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ADMIN" Then
|
|
btnAuswertung.Visible = True
|
|
Button5.Visible = True
|
|
cbxAuswertungPDF.Visible = True
|
|
End If
|
|
|
|
initNiederlassungen(True)
|
|
' tbcntr.SelectedIndex = 0
|
|
|
|
|
|
' getNiederlassung()
|
|
Me.dgvMA.DataSource = Me.bindingMA
|
|
initMABinding()
|
|
|
|
|
|
cboMonat.Items.Clear()
|
|
For i = 1 To 12
|
|
cboMonat.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(CDate("01." & i & "." & Now.Year).ToString("MMMM"), i))
|
|
Next
|
|
cboMonat.changeItem(Now.Month)
|
|
numJahr.Value = Now.Year
|
|
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DP_Bearbeiten", Me.FindForm) Then
|
|
Panel3.Enabled = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub tbFirmen_TabIndexChanged(sender As Object, e As EventArgs) Handles tbFirmen.SelectedIndexChanged
|
|
initNiederlassungen()
|
|
End Sub
|
|
|
|
Sub initNiederlassungen(Optional start = False)
|
|
MyFlowLayoutPanel1.Controls.Clear()
|
|
If tbFirmen.TabPages.Count = 0 Then Exit Sub
|
|
If tbFirmen.SelectedIndex < 0 Then Exit Sub
|
|
Dim s As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim dt As DataTable = s.loadDgvBySql("SELECT [dpset_id],[dpset_niederlassung] FROM [tblDienstSettings] WHERE dpset_firma='" & tbFirmen.SelectedTab.Text & "' order by dpset_reihenfolge ", "ADMIN")
|
|
For Each r As DataRow In dt.Rows
|
|
' Dim d As New TabPage()
|
|
' d.Text = r("dpset_niederlassung")
|
|
' d.Name = "tb" & r("dpset_niederlassung")
|
|
|
|
|
|
Dim b As New Button
|
|
b.Size = New Size(70, 36)
|
|
b.Text = r("dpset_niederlassung")
|
|
b.Name = "tb" & r("dpset_niederlassung")
|
|
b.FlatStyle = FlatStyle.Flat
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardDP IsNot Nothing Then
|
|
If b.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardDP Then
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
AddHandler b.Click, Sub()
|
|
initButtons(b.Text)
|
|
End Sub
|
|
MyFlowLayoutPanel1.Controls.Add(b)
|
|
Next
|
|
Dim initDone = False
|
|
|
|
If start Then
|
|
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", Me.FindForm) And Not VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma = "ALLE" Then
|
|
'tbFirmen.Enabled = False
|
|
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma <> "ATILLA" And VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma2 <> "ATILLA" Then tbFirmen.TabPages.Remove(tbAtilla2)
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma <> "IMEX" And VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma2 <> "IMEX" Then tbFirmen.TabPages.Remove(tbImex)
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma <> "VERAG" And VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma2 <> "VERAG" Then tbFirmen.TabPages.Remove(tbVerag)
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma <> "FRONTOFFICE" And VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma2 <> "FRONTOFFICE" Then tbFirmen.TabPages.Remove(tbFrontOffice)
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma <> "AMBAR" And VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma2 <> "AMBAR" Then tbFirmen.TabPages.Remove(tbAMBAR)
|
|
|
|
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma
|
|
Case "ATILLA" : tbFirmen.SelectedTab = tbAtilla2
|
|
Case "IMEX" : tbFirmen.SelectedTab = tbImex
|
|
Case "VERAG" : tbFirmen.SelectedTab = tbVerag
|
|
Case "FRONTOFFICE" : tbFirmen.SelectedTab = tbFrontOffice
|
|
Case "AMBAR" : tbFirmen.SelectedTab = tbAMBAR
|
|
' Case "ALLE" : tbFirmen.SelectedTab = tbVerag : tbFirmen.Enabled = True
|
|
Case Else : tbFirmen.SelectedTab = tbVerag
|
|
End Select
|
|
End If
|
|
''Einschränkung DP Firma:
|
|
'If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma IsNot Nothing Then
|
|
' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma
|
|
' Case "ATILLA" : tbFirmen.SelectedTab = tbAtilla2
|
|
' Case "IMEX" : tbFirmen.SelectedTab = tbImex
|
|
' Case "VERAG" : tbFirmen.SelectedTab = tbVerag
|
|
' Case "FRONTOFFICE" : tbFirmen.SelectedTab = tbFrontOffice
|
|
' ' Case "ALLE" : tbFirmen.SelectedTab = tbVerag : tbFirmen.Enabled = True
|
|
' Case Else : tbFirmen.SelectedTab = tbVerag
|
|
' End Select
|
|
' If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", Me.FindForm) And Not VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma = "ALLE" Then tbFirmen.Enabled = False
|
|
'End If
|
|
|
|
'Wenn zusätzlich eingeschränkt auf NL:
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardDP IsNot Nothing AndAlso VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardDP <> "" Then
|
|
initButtons(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardDP)
|
|
initDone = True
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", Me.FindForm) And Not VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_DpUserStandardFirma = "ALLE" Then
|
|
For Each b As Button In MyFlowLayoutPanel1.Controls
|
|
b.Enabled = False
|
|
tbFirmen.Enabled = False
|
|
Next
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
If Not initDone Then
|
|
If MyFlowLayoutPanel1.Controls.Count > 0 Then
|
|
initButtons(DirectCast(MyFlowLayoutPanel1.Controls(0), Button).Text)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub initButtons(s)
|
|
For Each b As Button In MyFlowLayoutPanel1.Controls
|
|
If b.Text = s Then
|
|
b.BackColor = Color.SteelBlue
|
|
b.ForeColor = Color.White
|
|
Else
|
|
b.BackColor = Color.White
|
|
b.ForeColor = Color.Black
|
|
End If
|
|
Next
|
|
niederlassung = s
|
|
initMABinding()
|
|
End Sub
|
|
|
|
|
|
Public Sub initMABinding()
|
|
|
|
|
|
Dim sqlstr As String = " SELECT dstma_id,dstma_mitId,dstma_kuerzel,mit_nname + ' ' + mit_vname, dstma_abteilung,dstma_funktion,dstma_arbvh,dstma_wochenStunden,dstma_stammSchicht,dstma_farbe,dstma_reihenfolge FROM tblDienstMitarb,tblMitarbeiter WHERE mit_id=dstma_mitId and mit_gekuendigt =" & If(cbxGekAnzeigen.Checked, 1, 0) & " and dstma_inaktiv =" & If(cbxInaktiv.Checked, 1, 0) & " AND dstma_niederlassung='" & niederlassung & "' ORDER BY dstma_kuerzel"
|
|
' dgvLKW.DataSource = bindingSDL
|
|
|
|
|
|
Dim d As New SqlDataAdapter()
|
|
Try
|
|
Dim connectionString As String = My.Resources.connStringAdmin
|
|
|
|
'Dim sqlstr As String = "SELECT top 200 * FROM SDL " 'WHERE KundenNr=" & kdNr & " "
|
|
'If TextBox11.Text <> "" Then sqlstr &= " AND KfzKennzeichen LIKE '" & TextBox11.Text & "%'" 'Suchparam
|
|
'Dim filter As String = getFilter()
|
|
'If filter <> "" Then sqlstr &= " AND " & filter
|
|
' MsgBox(sqlstr)
|
|
Me.dataAdapterMA = New SqlDataAdapter(sqlstr, connectionString)
|
|
Catch ex As SqlException
|
|
MessageBox.Show("Der Connection-String kann nicht verarbeitet werden. Wenden Sie sich an den Programmbetreuer.")
|
|
End Try
|
|
Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapterMA)
|
|
Dim table As New DataTable()
|
|
Me.dataAdapterMA.Fill(table)
|
|
' table.Columns("KundenNr").DefaultValue = kdNr
|
|
table.Locale = System.Globalization.CultureInfo.InvariantCulture
|
|
'bindingSDL.Clear()
|
|
dgvMA.DataBindings.Clear()
|
|
bindingMA.DataSource = table
|
|
initAllg()
|
|
End Sub
|
|
|
|
Sub initAllg()
|
|
With dgvMA
|
|
If .ColumnCount <= 0 Then Exit Sub
|
|
.RowTemplate.Height = 20
|
|
.AllowUserToOrderColumns = False
|
|
.AllowUserToResizeRows = False
|
|
.AllowUserToAddRows = False
|
|
.Columns(0).Visible = False
|
|
.Columns(1).Visible = False
|
|
|
|
.Columns(2).HeaderText = "Kürzel"
|
|
.Columns(3).HeaderText = "Name"
|
|
.Columns(3).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
|
|
.Columns(4).HeaderText = "Abteilung"
|
|
.Columns(5).HeaderText = "Funktion"
|
|
.Columns(6).HeaderText = "Arbeitsverhältnis"
|
|
.Columns(7).HeaderText = "Wochenstunden"
|
|
.Columns(8).HeaderText = "Stamm-Schicht"
|
|
.Columns(10).HeaderText = "Reihenf."
|
|
.Columns(9).Visible = False
|
|
'.AutoGenerateColumns = False '??HM:::
|
|
End With
|
|
|
|
End Sub
|
|
|
|
Private Sub Button64_Click(sender As Object, e As EventArgs) Handles Button64.Click
|
|
'MsgBox(niederlassung)
|
|
Dim frmDiestAddMa As New frmDiestAddMa
|
|
frmDiestAddMa.niederlassung = niederlassung
|
|
frmDiestAddMa.Show()
|
|
|
|
AddHandler frmDiestAddMa.FormClosing, AddressOf initMABinding
|
|
End Sub
|
|
|
|
|
|
Private Sub btnDienstplan_Click_1(sender As Object, e As EventArgs) Handles btnDienstplan.Click
|
|
Dim frmDienstplanVariabel As New frmDienstplanVariabel(niederlassung)
|
|
frmDienstplanVariabel.Show()
|
|
Exit Sub
|
|
If niederlassung = "ATILLA" Then : frmDienstplanATILLA.niederlassung = niederlassung : frmDienstplanATILLA.Show()
|
|
ElseIf niederlassung = "WAI" Then : frmDienstplanVariabel.niederlassung = niederlassung : frmDienstplanVariabel.Show()
|
|
ElseIf niederlassung = "SBG" Then : frmDienstplanVariabel.niederlassung = niederlassung : frmDienstplanVariabel.Show()
|
|
ElseIf niederlassung = "NKD" Then : frmDienstplanVariabel.niederlassung = niederlassung : frmDienstplanVariabel.Show()
|
|
ElseIf niederlassung = "SUB" Then : frmDienstplan.niederlassung = niederlassung : frmDienstplan.Show()
|
|
ElseIf niederlassung = "VERR" Then : frmDienstplanVariabel.niederlassung = niederlassung : frmDienstplanVariabel.Show()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub dgvMA_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvMA.CellDoubleClick
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DP_Bearbeiten", Me.FindForm) Then
|
|
|
|
frmDiestAddMa.MA_ID = dgvMA.CurrentRow.Cells(0).Value
|
|
frmDiestAddMa.niederlassung = niederlassung
|
|
frmDiestAddMa.Show()
|
|
AddHandler frmDiestAddMa.FormClosing, AddressOf initMABinding
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button65_Click(sender As Object, e As EventArgs) Handles Button65.Click
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", Me.FindForm) Then
|
|
MsgBox("Nur Administratoren können einen Eintrag löschen!")
|
|
Else
|
|
Dim sql As New cDienstplan
|
|
If vbYes = MsgBox("Möchten Sie den Mitarbeiter " & dgvMA.CurrentRow.Cells(2).Value & " wirklich aus dem Dienstplan löschen?", vbYesNoCancel) Then
|
|
' sql.delDienstNichtAnwesend2(dgvMA.CurrentRow.Cells(0).Value)
|
|
sql.delDienstNichtAnwesend_ByMaID(dgvMA.CurrentRow.Cells(0).Value)
|
|
sql.delDienstNichtAnwesendKW_ByMaID(dgvMA.CurrentRow.Cells(0).Value)
|
|
sql.delDstEintraegeAllMaId(dgvMA.CurrentRow.Cells(0).Value)
|
|
sql.delDienstTeilzeit(dgvMA.CurrentRow.Cells(0).Value)
|
|
sql.delDienstMitarbeiter(dgvMA.CurrentRow.Cells(0).Value)
|
|
initMABinding()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub dgvMA_Paint(sender As Object, e As PaintEventArgs) Handles dgvMA.Paint
|
|
For Each r As DataGridViewRow In dgvMA.Rows
|
|
Try : r.DefaultCellStyle.ForeColor = ColorTranslator.FromHtml(r.Cells(9).Value) : Catch : End Try
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub tbcntr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxGekAnzeigen.CheckedChanged
|
|
' getNiederlassung()
|
|
initMABinding()
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
Dim f As New frmSchichtenZeiten
|
|
f.niederlassung = niederlassung
|
|
f.ShowDialog(Me)
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
Dim frmUrlaubsplaner As New frmUrlaubsplaner
|
|
frmUrlaubsplaner.niederlassung = niederlassung
|
|
frmUrlaubsplaner.Show()
|
|
End Sub
|
|
|
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
|
|
Dim f As New frmDienstEinstellungen
|
|
f.niederlassung = niederlassung
|
|
f.ShowDialog(Me)
|
|
End Sub
|
|
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs)
|
|
frmDienstplanVariabel.niederlassung = niederlassung : frmDienstplanVariabel.Show()
|
|
End Sub
|
|
|
|
Private Sub btnAuswertung_Click(sender As Object, e As EventArgs) Handles btnAuswertung.Click
|
|
If dgvMA.SelectedRows.Count = 0 Then
|
|
Exit Sub
|
|
End If
|
|
Dim pdfPath = ""
|
|
If cbxAuswertungPDF.Checked Then
|
|
Dim fd As New FolderBrowserDialog
|
|
If fd.ShowDialog = DialogResult.OK Then
|
|
pdfPath = fd.SelectedPath
|
|
End If
|
|
End If
|
|
For Each r In dgvMA.SelectedRows
|
|
genMonatsauswertungMA(r.Cells("dstma_id").Value, True, cbxAuswertungPDF.Checked, pdfPath)
|
|
Next
|
|
End Sub
|
|
|
|
Sub genMonatsauswertungMA(dstMaID, groupKW, Optional pdfExport = False, Optional pdfPfad = "")
|
|
Dim displayFilter = False
|
|
|
|
Dim vonDat = CDate("01." & cboMonat._value & "." & numJahr.Value)
|
|
Dim bisDat = vonDat.AddMonths(1).AddDays(-1)
|
|
Dim sqlstr As String = ""
|
|
sqlstr &= " SELECT * ,datepart(ISO_WEEK,dstetr_datum) as KW FROM [tblDienstplanEintraege] "
|
|
sqlstr &= " where dstetr_datum between '" & vonDat.ToShortDateString & "' and '" & bisDat.ToShortDateString & "' "
|
|
sqlstr &= " and dstetr_dstmaId='" & dstMaID & "' "
|
|
sqlstr &= " ORDER BY dstetr_datum ASC "
|
|
|
|
Dim MA_DST As cDienstMA = SQLDienst.getDstMAByDstMaId(dstMaID)
|
|
Dim MA As New VERAG_PROG_ALLGEMEIN.cMitarbeiter(MA_DST.dstma_mitId)
|
|
|
|
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "ADMIN")
|
|
'DataGridView.DataSource = dt
|
|
|
|
|
|
Dim print As New frmPrintLayout
|
|
print.Text = "Monatsauswertung"
|
|
|
|
Dim rpt As New rptDienstplanMaMonatsbericht
|
|
|
|
rpt.DataSource = dt
|
|
If groupKW Then rpt.GroupHeader1.DataField = "KW"
|
|
|
|
rpt.txtMonat.Text = cboMonat.Text & " " & numJahr.Value
|
|
rpt.txtMAName.Text = MA.mit_vname & " " & MA.mit_nname
|
|
rpt.txtZeitraum.Text = vonDat.ToShortDateString & " - " & bisDat.ToShortDateString
|
|
|
|
Dim sum = 0
|
|
|
|
'rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
|
|
' rpt.lblDat.Text = Now.ToLongDateString
|
|
|
|
|
|
Dim sumBetragLand As Double = 0
|
|
|
|
|
|
Dim sumA As Integer = 0
|
|
Dim sumU As Integer = 0
|
|
Dim sumK As Integer = 0
|
|
Dim sumS As Integer = 0
|
|
Dim sumUeStd As Double = 0
|
|
Dim datumKW = Now
|
|
|
|
Dim tatStdSum As Double = 0
|
|
|
|
Dim cPF As New cProgramFunctions
|
|
Dim FT As New cFeiertage
|
|
|
|
AddHandler rpt.Detail.Format, Sub()
|
|
|
|
If Not IsDBNull(rpt.Fields.Item("dstetr_datum").Value) Then
|
|
'MsgBox(rpt.Fields.Item("dstetr_datum").Value)
|
|
datumKW = CDate(rpt.Fields.Item("dstetr_datum").Value).ToShortDateString
|
|
End If
|
|
|
|
|
|
Select Case datumKW.DayOfWeek
|
|
Case 6 : rpt.Detail.BackColor = Color.FromArgb(240, 240, 240)
|
|
Case 0 : rpt.Detail.BackColor = Color.FromArgb(220, 220, 220)
|
|
Case Else : rpt.Detail.BackColor = Color.White
|
|
End Select
|
|
|
|
rpt.txtTag.ForeColor = Color.Black
|
|
If FT.isFeiertag(datumKW) Or datumKW.ToString("dd.MM.") = "31.12." Or datumKW.ToString("dd.MM.") = "24.12." Or datumKW.DayOfWeek = 0 Then 'Feiertag oder 1/2 Tag
|
|
rpt.txtTag.ForeColor = Color.Red
|
|
rpt.Detail.BackColor = Color.FromArgb(220, 220, 220)
|
|
End If
|
|
|
|
Dim datum = Now
|
|
If Not IsDBNull(rpt.Fields.Item("dstetr_datum").Value) Then
|
|
datum = CDate(rpt.Fields.Item("dstetr_datum").Value).ToShortDateString
|
|
rpt.txtTag.Text = datum.ToString("ddd")
|
|
rpt.txtDatum.Text = datum.ToShortDateString
|
|
Else
|
|
rpt.txtTag.Text = ""
|
|
rpt.txtDatum.Text = ""
|
|
End If
|
|
Dim von = isDbnullEmpty(rpt.Fields.Item("dstetr_von").Value, "")
|
|
Dim bis = isDbnullEmpty(rpt.Fields.Item("dstetr_bis").Value, "")
|
|
|
|
|
|
rpt.txtArbeitstag.Text = ""
|
|
rpt.txtUrl.Text = ""
|
|
rpt.txtSonst.Text = ""
|
|
rpt.txtKS.Text = ""
|
|
|
|
Dim benutzerschicht = True
|
|
Dim arbeit = False
|
|
Dim art = isDbnullEmpty(rpt.Fields.Item("dstetr_art").Value, "")
|
|
|
|
|
|
Select Case art
|
|
Case "FREI", "" 'NIX
|
|
Case "KS" : rpt.txtKS.Text = "K" : sumK += 1
|
|
Case "URL" : rpt.txtUrl.Text = "U" : sumU += 1
|
|
Case "DR", "SONST", "BS" : rpt.txtSonst.Text = "S" : sumS += 1
|
|
Case "ZA"
|
|
Case Else
|
|
If benutzerschicht Then rpt.txtArbeitstag.Text = "A" : arbeit = True : sumA += 1
|
|
End Select
|
|
|
|
|
|
rpt.txtVonBis.Text = ""
|
|
If arbeit Then
|
|
If von <> "" Or bis <> "" Then
|
|
rpt.txtVonBis.Text = von
|
|
rpt.txtVonBis.Text &= " - "
|
|
rpt.txtVonBis.Text &= bis
|
|
End If
|
|
rpt.txtPause.Text = isDbnullEmpty(rpt.Fields.Item("dstetr_pause").Value, "")
|
|
Else
|
|
rpt.txtPause.Text = ""
|
|
'rpt.txtUeberstd.Text = ""
|
|
End If
|
|
|
|
|
|
Dim tatStd As Double = 0
|
|
If arbeit Then
|
|
tatStd = SQLDienst.getDstStunden(MA_DST.dstma_id, datum, datum, niederlassung)
|
|
tatStdSum += tatStd
|
|
End If
|
|
|
|
If tatStd = 0 Then
|
|
rpt.txtStd.Text = ""
|
|
Else
|
|
rpt.txtStd.Text = CDbl(tatStd).ToString("N2")
|
|
End If
|
|
|
|
|
|
|
|
rpt.txtBemerkung.Text = ""
|
|
|
|
' sumUeStd += ueStd
|
|
' sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
|
|
' sumAnz += CDbl(rpt.Fields.Item("Anzahl").Value)
|
|
End Sub
|
|
|
|
AddHandler rpt.GroupHeader1.Format, Sub()
|
|
sumA = 0
|
|
sumU = 0
|
|
sumK = 0
|
|
sumS = 0
|
|
sumUeStd = 0
|
|
|
|
Dim datum = Now
|
|
If Not IsDBNull(rpt.Fields.Item("dstetr_datum").Value) Then
|
|
datum = CDate(rpt.Fields.Item("dstetr_datum").Value).ToShortDateString
|
|
End If
|
|
|
|
If groupKW Then
|
|
rpt.lblKW.Text = "KW " & cPF.getKW(datum)
|
|
Else
|
|
rpt.lblKW.Text = vonDat.ToString("MMM ") & vonDat.Year
|
|
End If
|
|
|
|
End Sub
|
|
|
|
AddHandler rpt.GroupFooter1.Format, Sub()
|
|
|
|
|
|
' datumKW = datumKW.AddDays(-1)
|
|
rpt.txtSumA.Text = sumA
|
|
rpt.txtSumU.Text = sumU
|
|
rpt.txtSumK.Text = sumK
|
|
rpt.txtSumS.Text = sumS
|
|
' rpt.txtSumWoStunden.Text = CDbl(sumUeStd).ToString("N2")
|
|
|
|
'Zuerst den montag der aktueellen Woche lt. Datum ermitteln:
|
|
Dim datumMO As Date = cPF.GetWeekStartDate(cPF.DateToWeek(datumKW).Substring(4, 2), cPF.DateToWeek(datumKW).Substring(0, 4))
|
|
|
|
'Aktuelle Woche und Jahr anhand des Montages ermitteln:
|
|
Dim aktWoche = cPF.DateToWeek(datumMO).Substring(4, 2)
|
|
Dim aktJahr = cPF.DateToWeek(datumMO).Substring(0, 4)
|
|
Dim SCHICHT = cPF.getSchicht(aktWoche, aktJahr)
|
|
|
|
Dim STD_LIST = cDienstMitarbAbweichendeWochenstunden.GET_STD_LIST(datumMO)
|
|
|
|
' MsgBox(sollStd)
|
|
|
|
If groupKW Then
|
|
Dim sollStd As Double = cPF.getWochenstunden(STD_LIST, MA_DST.dstma_wochenStunden, datumMO, SCHICHT, MA_DST.dstma_mitId, MA_DST.dstma_muster, MA_DST.dstma_WEStdRegelAZ, MA_DST.dstma_arbvh, niederlassung, MA_DST.dstma_TzFeiertageStd)
|
|
Dim tatStd As Double = SQLDienst.getDstStunden(MA_DST.dstma_id, datumMO, datumMO.AddDays(6), niederlassung)
|
|
|
|
rpt.txtSumWoStunden.Text = CDbl(tatStd).ToString("N2")
|
|
rpt.txtWoStd.Text = CDbl(sollStd * -1).ToString("N2")
|
|
rpt.txtUeStd.Text = CDbl(tatStd - sollStd).ToString("N2")
|
|
Else
|
|
' Dim sollStd As Double = cPF.getWochenstunden(STD_LIST, MA_DST.dstma_wochenStunden, datumMO, SCHICHT, MA_DST.dstma_mitId, MA_DST.dstma_muster, MA_DST.dstma_WEStdRegelAZ, MA_DST.dstma_arbvh, niederlassung, MA_DST.dstma_TzFeiertageStd)
|
|
|
|
rpt.txtSumWoStunden.Text = CDbl(tatStdSum).ToString("N2")
|
|
' rpt.txtWoStd.Text = CDbl(sollStd * -1).ToString("N2")
|
|
' rpt.txtUeStd.Text = CDbl(tatStd - sollStd).ToString("N2")
|
|
rpt.txtWoStd.Text = ""
|
|
rpt.txtUeStd.Text = ""
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
If pdfExport Then
|
|
rpt.Run()
|
|
Dim tmpPath = pdfPfad
|
|
If tmpPath = "" Then
|
|
tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(MA.mit_vname & " " & MA.mit_nname, ".pdf", , False)
|
|
Else
|
|
tmpPath &= "\" & MA.mit_vname & " " & MA.mit_nname & ".pdf"
|
|
End If
|
|
|
|
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
|
|
p.NeverEmbedFonts = ""
|
|
p.Export(rpt.Document, tmpPath)
|
|
|
|
Else
|
|
print.Viewer.LoadDocument(rpt)
|
|
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
|
|
print.Show()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Function CalendarWeek(aktWoche As Object, aktJahr As Object) As Date
|
|
Throw New NotImplementedException()
|
|
End Function
|
|
|
|
Function isDbnullEmpty(o As Object, return_value As Object) As String
|
|
If IsDBNull(o) Then : isDbnullEmpty = return_value
|
|
ElseIf IsNothing(o) Then : isDbnullEmpty = return_value
|
|
Else : isDbnullEmpty = o
|
|
End If
|
|
End Function
|
|
|
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
|
If dgvMA.SelectedRows.Count = 0 Then
|
|
Exit Sub
|
|
End If
|
|
Dim pdfPath = ""
|
|
If cbxAuswertungPDF.Checked Then
|
|
Dim fd As New FolderBrowserDialog
|
|
If fd.ShowDialog = DialogResult.OK Then
|
|
pdfPath = fd.SelectedPath
|
|
End If
|
|
End If
|
|
For Each r In dgvMA.SelectedRows
|
|
genMonatsauswertungMA(r.Cells("dstma_id").Value, False, cbxAuswertungPDF.Checked, pdfPath)
|
|
Next
|
|
|
|
End Sub
|
|
End Class
|