Advertisement
Guest User

ViewWorkerPayroll

a guest
Jan 26th, 2020
109
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
Advertisement