Files
ADMIN/UID/Dienstplan/usrCntlAuswertungAuslastungMA.vb
2019-08-08 12:44:50 +02:00

104 lines
3.8 KiB
VB.net

Public Class usrCntlAuswertungAuslastungMA
Dim cDIENST As New cDienstplan
Dim cPF As New cProgramFunctions
Public SETTINGS As cDienstSettings
Dim von As Integer = 6
Dim bis As Integer = 21
Dim bottomSpacing As Integer = 12
Dim montag As Date = Now
Dim niederlassung As String = ""
Dim maAnz As Integer = 0
Dim loaded = False
Public Sub init(montag As Date, niederlassung As String)
' Me.niederlassung = niederlassung
' lbl_Std_Mo.Text = getStd(montag).ToString("F1")
' lbl_Std_Di.Text = getStd(montag.AddDays(1)).ToString("F1")
' initPnl(pnlMo)
Me.montag = montag
Me.niederlassung = niederlassung
SETTINGS = New cDienstSettings(niederlassung)
von = SETTINGS.dpset_WoAuslVon
bis = SETTINGS.dpset_WoAuslBis
Me.maAnz = cDIENST.getValueTxtBySql("SELECT COUNT(*) FROM [tblDienstMitarb] where dstma_niederlassung='" & niederlassung & "'", "ADMIN")
loaded = True
Me.Refresh()
End Sub
Sub initPnl(pnl As Panel, datum As Date)
If Not loaded Then Exit Sub
Dim intervallAnz = bis - von + 1
Dim intervallBreite = pnl.Width / intervallAnz
Dim img As Image = New Bitmap(pnl.Width, pnl.Height)
Dim g As Graphics = pnl.CreateGraphics
Dim left = 0
'For t = 0 To 6
Dim list As List(Of cDienstEintrag) = cDIENST.getDienstEintragListBenSchicht(datum, niederlassung)
If list IsNot Nothing Then
For i = von To bis
Dim anz As Integer = 0
For Each l In list
Dim timeVon As TimeSpan = TimeSpan.Parse(i & ":00")
Dim timeVonDB As TimeSpan = TimeSpan.Parse(l.dstetr_von)
Dim timeBis As TimeSpan = TimeSpan.Parse(IIf((i + 1) = 24, "00", (i + 1)) & ":00")
Dim timeBisDB As TimeSpan = TimeSpan.Parse(l.dstetr_bis)
' MsgBox(timeVon.TotalMinutes & " _ " & timeVonDB.TotalMinutes)
If timeVonDB <= timeVon And timeBisDB >= timeBis Then
anz += 1
End If
Next
Dim height = anz * ((pnl.Height - bottomSpacing) / maAnz)
g.FillRectangle(Brushes.Brown, New Rectangle(left, pnl.Height - height - bottomSpacing, intervallBreite - 1, height))
' g.DrawRectangle(Pens.Gray, New Rectangle(left, pnl.Height - height - bottomSpacing, intervallBreite, height))
If i Mod 2 = 0 Then g.DrawString(i.ToString("00."), New Font(Me.Font.FontFamily, 7), Brushes.Brown, New Point(left, pnl.Height - bottomSpacing + 1))
left += intervallBreite
Next
End If
'Next
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs)
init(CDate("23.01.2017"), "WAI")
End Sub
Private Sub pnlMo_Paint(sender As Object, e As PaintEventArgs) Handles pnlMo.Paint
initPnl(sender, montag.AddDays(0))
End Sub
Private Sub pnlDi_Paint(sender As Object, e As PaintEventArgs) Handles pnlDi.Paint
initPnl(sender, montag.AddDays(1))
End Sub
Private Sub pnlMi_Paint(sender As Object, e As PaintEventArgs) Handles pnlMi.Paint
initPnl(sender, montag.AddDays(2))
End Sub
Private Sub pnlDo_Paint(sender As Object, e As PaintEventArgs) Handles pnlDo.Paint
initPnl(sender, montag.AddDays(3))
End Sub
Private Sub pnlFr_Paint(sender As Object, e As PaintEventArgs) Handles pnlFr.Paint
initPnl(sender, montag.AddDays(4))
End Sub
Private Sub pnlSa_Paint(sender As Object, e As PaintEventArgs) Handles pnlSa.Paint
initPnl(sender, montag.AddDays(5))
End Sub
Private Sub pnlSo_Paint(sender As Object, e As PaintEventArgs) Handles pnlSo.Paint
initPnl(sender, montag.AddDays(6))
End Sub
End Class