Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports MySql.Data.MySqlClient
- Public Class frmViewWorkerRecords
- ' declaring variables
- Private getQuery As String = Nothing
- Private getCommand As MySqlCommand
- Private getReader As MySqlDataReader
- Private getDay As Date = Nothing
- Private getWorkingHours As Decimal = Nothing
- Private getStartingTimeIN As Integer = Nothing
- Private getEndingTimeOUT As Integer = Nothing
- Private getTimeInFormat As DateTime = Nothing
- Private getTimeOutFormat As DateTime = Nothing
- Private getOverTimeHours As Decimal = Nothing
- Private getLateTimeHOurs As Integer = Nothing
- Private getStartingOvertime As Integer = 17
- Private getEndingOvertime As Integer = Nothing
- Private getStartingLateTime As Integer = 8
- Private getEndingLateTime As Integer = Nothing
- Private getTimeInAMHours As Integer = Nothing
- Private getTimeOutAMHours As Integer = Nothing
- Private getTimeInPMHours As Integer = Nothing
- Private getTimeOutPMHours As Integer = Nothing
- Private lateSummary As Decimal = 0
- Private iWorkingHours = 0, iLate = 0, iOverTime As Integer = 0
- Public workerID As Integer = 0
- Public sDate As Date
- Public eDate As Date
- Function ReturnAmIn(ByVal timeSeconds As Integer) As Integer
- Dim temp As Integer = 0
- If timeSeconds < 32460 Then '09:01:00
- temp = 32400 ' 08:30:00
- End If
- If timeSeconds < 30660 Then '08:31:00
- temp = 30600 ' 08:30:00
- End If
- If timeSeconds < 29460 Then '08:11:00
- temp = 28800 '8:00:00
- End If
- timeSeconds = temp
- Return timeSeconds
- End Function
- Function ReturnBreakOut(ByVal timeSeconds As Integer) As Integer
- If timeSeconds > 43200 Then '12:00:00
- timeSeconds = 43200 ' 12:00:00
- End If
- Return timeSeconds
- End Function
- Function ReturnBreakIn(ByVal timeSeconds As Integer) As Integer
- If timeSeconds < 47460 Then '13:11:00
- timeSeconds = 46800 ' 13:00:00
- End If
- Return timeSeconds
- End Function
- Function ReturnPmOut(ByVal timeSeconds As Integer) As Integer
- If timeSeconds > 61199 And timeSeconds < 64799 Then ' 16:59:59 18:01:00.
- timeSeconds = 61200 ' 5PM
- End If
- 'If getTimeOutPMHours > 64799 And getTimeOutPMHours < 65700 Then 'HERO? 6pm to 6:30pm
- ' timeSeconds = 64800 ' reset to 6PM
- 'End If
- Return timeSeconds
- End Function
- Function ReturnHalfAfterNoonIn(ByVal timeSeconds As Integer) As Integer
- If timeSeconds > 39600 And timeSeconds < 47460 Then '11:00:00 13:11:00
- timeSeconds = 46800 ' 13:00:00
- End If
- Return timeSeconds
- End Function
- Function ReturnHalfAfterNoonOut(ByVal timeSeconds As Integer) As Integer
- If timeSeconds > 39600 And timeSeconds < 47460 Then '11:00:00 13:11:00
- timeSeconds = 46800 ' 13:00:00
- End If
- Return timeSeconds
- End Function
- Function ReturnHalfAmOut(ByVal timeSeconds As Integer) As Integer
- If timeSeconds < 46800 Then 'less than 10Am
- timeSeconds = 43200 ' 12:00:00
- End If
- If timeSeconds > 46800 And timeSeconds < 64800 Then
- timeSeconds = 61200 ' 5PM
- End If
- Return timeSeconds
- End Function
- ' get the worker's details
- Private Sub ViewWorkerRecords()
- getQuery = "SELECT TIME_TO_SEC(`AM_IN`)'cAMIN',TIME_TO_SEC(`AM_OUT`)'cAMOUT',TIME_TO_SEC(`PM_IN`)'cPMIN',TIME_TO_SEC(`PM_OUT`)'cPMOUT', coalesce(TIME_TO_SEC(`OverTime`),0)'cOverTime', `AM_IN`, `AM_OUT`, `PM_IN`, `PM_OUT`, `spdate`, `OverTime` FROM dtr, worker WHERE worker.worker_id ='" & _
- workerID & "' AND dtr.worker_id ='" & workerID & "' AND dtr.spdate BETWEEN '" & Format(sDate.ToString("yyyy-MM-dd")) & "' AND '" & Format(eDate.ToString("yyyy-MM-dd")) & "' ORDER BY dtr.spdate"
- getCommand = New MySqlCommand(getQuery, MySQLConnection)
- getReader = getCommand.ExecuteReader
- Dim temp4 As Integer = 0
- While getReader.Read
- temp4 += 1
- ' getting the time in and time out of the worker
- getTimeInAMHours = If(IsDBNull(getReader.Item("cAMIN")) = True, 0, getReader.Item("cAMIN"))
- getTimeOutAMHours = If(IsDBNull(getReader.Item("cAMOUT")) = True, 0, getReader.Item("cAMOUT"))
- getTimeInPMHours = If(IsDBNull(getReader.Item("cPMIN")) = True, 0, getReader.Item("cPMIN"))
- getTimeOutPMHours = If(IsDBNull(getReader.Item("cPMOUT")) = True, 0, getReader.Item("cPMOUT"))
- getTimeInAMHours = If(IsDBNull(getReader.Item("cAMIN")) = True, 0, getReader.Item("cAMIN"))
- getTimeOutAMHours = If(IsDBNull(getReader.Item("cAMOUT")) = True, 0, getReader.Item("cAMOUT"))
- getTimeInPMHours = If(IsDBNull(getReader.Item("cPMIN")) = True, 0, getReader.Item("cPMIN"))
- getTimeOutPMHours = If(IsDBNull(getReader.Item("cPMOUT")) = True, 0, getReader.Item("cPMOUT"))
- Console.Write(" AMIN:" & getTimeInAMHours)
- Console.Write(" AMOUT:" & getTimeOutAMHours)
- Console.Write(" PMIN:" & getTimeInPMHours)
- Console.Write(" PMOUT:" & getTimeOutPMHours)
- If getTimeInAMHours <> 0 And getTimeOutAMHours <> 0 Then
- 'VALID
- If getTimeInPMHours = 0 Then
- 'HALF DAY
- Console.WriteLine("HALF DAY!")
- If getTimeInAMHours < 36000 Then
- 'HALF DAY MORNING
- getTimeInAMHours = ReturnAmIn(getTimeInAMHours)
- Else
- 'HALFDAY AFTERNOON
- getTimeInAMHours = ReturnHalfAfterNoonIn(getTimeInAMHours)
- End If
- getTimeOutAMHours = ReturnHalfAmOut(getTimeOutAMHours)
- Else
- 'WHOLE DAY
- getTimeInAMHours = ReturnAmIn(getTimeInAMHours)
- getTimeOutAMHours = ReturnBreakOut(getTimeOutAMHours)
- getTimeInPMHours = ReturnBreakIn(getTimeInPMHours)
- getTimeOutPMHours = ReturnPmOut(getTimeOutPMHours)
- End If
- If getTimeInAMHours < 36000 Then
- iLate = If(getTimeInAMHours = 0, 0, If(getTimeInAMHours > 28799, getTimeInAMHours - 28800, 0)) + If(getTimeInPMHours = 0, 0, If(getTimeInPMHours > 46799, getTimeInPMHours - 46800, 0))
- Else
- iLate = getTimeInAMHours - 46800
- End If
- lateSummary += iLate
- ' If getTimeInPMHours <> 0 Then
- ' 'For earylOut
- ' iLate = If(getTimeInAMHours = 0, 0, If(getTimeInAMHours > 32399, getTimeInAMHours - 28800, 0)) + If(getTimeInPMHours = 0, 0, If(getTimeInPMHours > 46799, getTimeInPMHours - 46800, 0))
- ' lateSummary += iLate
- 'Else
- ' iLate = getTimeInAMHours - 39600
- ' lateSummary += iLate
- 'End If
- iWorkingHours = (getTimeOutAMHours - getTimeInAMHours) + (getTimeOutPMHours - getTimeInPMHours)
- getWorkingHours += If(iWorkingHours > 28800, 28800, iWorkingHours)
- iOverTime = If(iWorkingHours > 28800, iWorkingHours - 28800, 0) 'if working hours > 8hours then OT yan
- getOverTimeHours += iOverTime
- Else
- iWorkingHours = 0
- getWorkingHours += 0
- iOverTime = 0
- getOverTimeHours += 0
- End If
- Console.WriteLine("AMIN:" & getTimeInAMHours)
- Console.WriteLine("AMOUT:" & getTimeOutAMHours)
- Console.WriteLine("PMIN:" & getTimeInPMHours)
- Console.WriteLine("PMOUT:" & getTimeOutPMHours)
- Console.WriteLine("lateSummary:" & lateSummary)
- Console.WriteLine("getWorkingHours:" & getWorkingHours)
- Console.WriteLine("Overtime:" & getOverTimeHours)
- With ListView1.Items.Add(Format(getReader.Item("spdate"), "MMM dd, yyyy"))
- .SubItems.Add(If(IsDBNull(getReader.Item("cAMIN")) = True, "-", Convert.ToDateTime(getReader.Item("AM_IN").ToString).ToString("hh:mm:ss tt")))
- .SubItems.Add(If(IsDBNull(getReader.Item("cAMOUT")) = True, "-", Convert.ToDateTime(getReader.Item("AM_OUT").ToString).ToString("hh:mm:ss tt")))
- .SubItems.Add(If(IsDBNull(getReader.Item("cPMIN")) = True, "-", Convert.ToDateTime(getReader.Item("PM_IN").ToString).ToString("hh:mm:ss tt")))
- .SubItems.Add(If(IsDBNull(getReader.Item("cPMOUT")) = True, "-", Convert.ToDateTime(getReader.Item("PM_OUT").ToString).ToString("hh:mm:ss tt")))
- .SubItems.Add(FormatNumber(iLate / 3600))
- .SubItems.Add(FormatNumber(If(iWorkingHours > 28800, 28800, iWorkingHours) / 3600))
- .SubItems.Add(FormatNumber(iOverTime / 3600))
- End With
- ' set to nothing
- getStartingTimeIN = Nothing
- getEndingTimeOUT = Nothing
- getLateTimeHOurs = Nothing
- iWorkingHours = 0
- iLate = 0
- iOverTime = 0
- End While
- getReader.Close()
- txtTotalLateHours.Text = Decimal.Round(lateSummary / 3600, 2).ToString("f2")
- txtTotalOverTimeHours.Text = Decimal.Round(getOverTimeHours / 3600, 2).ToString("f2")
- txtTotalWorkHours.Text = Decimal.Round(getWorkingHours / 3600, 2).ToString("f2")
- End Sub
- Private Sub frmViewWorkerRecords_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Try
- ViewWorkerRecords()
- Catch ex As Exception
- End Try
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement