Guest User

ViewWorkerPayroll

a guest
Jan 26th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.31 KB | None | 0 0
  1. Imports MySql.Data.MySqlClient
  2.  
  3. Public Class frmViewWorkerRecords
  4. ' declaring variables
  5. Private getQuery As String = Nothing
  6. Private getCommand As MySqlCommand
  7. Private getReader As MySqlDataReader
  8. Private getDay As Date = Nothing
  9. Private getWorkingHours As Decimal = Nothing
  10. Private getStartingTimeIN As Integer = Nothing
  11. Private getEndingTimeOUT As Integer = Nothing
  12. Private getTimeInFormat As DateTime = Nothing
  13. Private getTimeOutFormat As DateTime = Nothing
  14. Private getOverTimeHours As Decimal = Nothing
  15. Private getLateTimeHOurs As Integer = Nothing
  16. Private getStartingOvertime As Integer = 17
  17. Private getEndingOvertime As Integer = Nothing
  18. Private getStartingLateTime As Integer = 8
  19. Private getEndingLateTime As Integer = Nothing
  20. Private getTimeInAMHours As Integer = Nothing
  21. Private getTimeOutAMHours As Integer = Nothing
  22. Private getTimeInPMHours As Integer = Nothing
  23. Private getTimeOutPMHours As Integer = Nothing
  24. Private lateSummary As Decimal = 0
  25. Private iWorkingHours = 0, iLate = 0, iOverTime As Integer = 0
  26.  
  27. Public workerID As Integer = 0
  28. Public sDate As Date
  29. Public eDate As Date
  30.  
  31. ' get the worker's details
  32. Private Sub ViewWorkerRecords()
  33.  
  34. 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 ='" & _
  35. 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"
  36. getCommand = New MySqlCommand(getQuery, MySQLConnection)
  37. getReader = getCommand.ExecuteReader
  38. Dim temp4 As Integer = 0
  39.  
  40. While getReader.Read
  41. temp4 += 1
  42. ' getting the time in and time out of the worker
  43. getTimeInAMHours = If(IsDBNull(getReader.Item("cAMIN")) = True, 0, getReader.Item("cAMIN"))
  44. getTimeOutAMHours = If(IsDBNull(getReader.Item("cAMOUT")) = True, 0, getReader.Item("cAMOUT"))
  45. getTimeInPMHours = If(IsDBNull(getReader.Item("cPMIN")) = True, 0, getReader.Item("cPMIN"))
  46. getTimeOutPMHours = If(IsDBNull(getReader.Item("cPMOUT")) = True, 0, getReader.Item("cPMOUT"))
  47.  
  48. If getTimeInAMHours <> 0 Then
  49. If getTimeInAMHours < 22140 Then 'EarlyBird to 6:09:00
  50. getTimeInAMHours = 21600 'who cares? reset to 6am
  51. End If
  52.  
  53. If getTimeInAMHours > 22140 And getTimeInAMHours < 23401 Then ' 6:09:01 to 6:30:01
  54. getTimeInAMHours = 23400 ' reset to 6:30 am
  55. End If
  56.  
  57. If getTimeInAMHours > 23401 And getTimeInAMHours < 25201 Then ' 6:30:01 to 7:00:01
  58. getTimeInAMHours = 25200 ' reset to 7:00 am
  59. End If
  60. End If
  61.  
  62. If getTimeOutAMHours > 43200 Then 'HERO?
  63. getTimeOutAMHours = 43200 ' reset to 12PM
  64. End If
  65.  
  66. If getTimeOutPMHours <> 0 Then
  67. If getTimeInPMHours < 46800 Then 'EarlyBird
  68. getTimeInPMHours = 46800 'who cares? reset to 1pm
  69. End If
  70.  
  71. If getTimeOutPMHours > 53999 And getTimeOutPMHours < 57600 Then 'HERO? 14.59 to 16
  72. getTimeOutPMHours = 54000 ' reset to 3PM
  73. End If
  74.  
  75. If getTimeOutPMHours > 64799 And getTimeOutPMHours < 65700 Then 'HERO? 6pm to 6:30pm
  76. getTimeOutPMHours = 64800 ' reset to 6PM
  77. End If
  78. End If
  79.  
  80. 'For earylOut
  81. iLate = If(getTimeInAMHours = 0, 0, If(getTimeInAMHours > 21599, getTimeInAMHours - 21600, 0)) + If(getTimeInPMHours = 0, 0, If(getTimeInPMHours > 21599, getTimeInPMHours - 46800, 0))
  82. lateSummary += iLate
  83. Console.WriteLine("lateSummary:" & lateSummary)
  84.  
  85.  
  86. iWorkingHours = (getTimeOutAMHours - getTimeInAMHours) + (getTimeOutPMHours - getTimeInPMHours)
  87. getWorkingHours += If(iWorkingHours > 28800, 28800, iWorkingHours)
  88. Console.WriteLine("getWorkingHours:" & getWorkingHours)
  89.  
  90.  
  91. iOverTime = If(iWorkingHours > 28800, iWorkingHours - 28800, 0) 'if working hours > 8hours then OT yan
  92. getOverTimeHours += iOverTime
  93. Console.WriteLine("Overtime:" & getOverTimeHours)
  94.  
  95.  
  96. With ListView1.Items.Add(Format(getReader.Item("spdate"), "MMM dd, yyyy"))
  97.  
  98. .SubItems.Add(If(IsDBNull(getReader.Item("cAMIN")) = True, "-", Convert.ToDateTime(getReader.Item("AM_IN").ToString).ToString("hh:mm:ss tt")))
  99. .SubItems.Add(If(IsDBNull(getReader.Item("cAMOUT")) = True, "-", Convert.ToDateTime(getReader.Item("AM_OUT").ToString).ToString("hh:mm:ss tt")))
  100. .SubItems.Add(If(IsDBNull(getReader.Item("cPMIN")) = True, "-", Convert.ToDateTime(getReader.Item("PM_IN").ToString).ToString("hh:mm:ss tt")))
  101. .SubItems.Add(If(IsDBNull(getReader.Item("cPMOUT")) = True, "-", Convert.ToDateTime(getReader.Item("PM_OUT").ToString).ToString("hh:mm:ss tt")))
  102. .SubItems.Add(FormatNumber(iLate / 3600))
  103. .SubItems.Add(FormatNumber(If(iWorkingHours > 28800, 28800, iWorkingHours) / 3600))
  104. .SubItems.Add(FormatNumber(iOverTime / 3600))
  105.  
  106. End With
  107. ' set to nothing
  108. getStartingTimeIN = Nothing
  109. getEndingTimeOUT = Nothing
  110. getLateTimeHOurs = Nothing
  111.  
  112.  
  113. iWorkingHours = 0
  114. iLate = 0
  115. iOverTime = 0
  116.  
  117. End While
  118.  
  119. getReader.Close()
  120.  
  121. txtTotalLateHours.Text = Decimal.Round(lateSummary / 3600, 2).ToString("f2")
  122. txtTotalOverTimeHours.Text = Decimal.Round(getOverTimeHours / 3600, 2).ToString("f2")
  123. txtTotalWorkHours.Text = Decimal.Round(getWorkingHours / 3600, 2).ToString("f2")
  124.  
  125. End Sub
  126.  
  127. Private Sub frmViewWorkerRecords_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  128. Try
  129. ViewWorkerRecords()
  130. Catch ex As Exception
  131.  
  132. End Try
  133. End Sub
  134. End Class
Advertisement
Add Comment
Please, Sign In to add comment