hr_lite 0.21.2 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +54 -2
  4. data/app/assets/javascripts/hr_lite/confirm.js +18 -3
  5. data/app/assets/javascripts/hr_lite/geo_punch.js +1 -1
  6. data/app/assets/javascripts/hr_lite/nav.js +17 -0
  7. data/app/assets/javascripts/hr_lite/select_filter.js +46 -0
  8. data/app/assets/stylesheets/hr_lite/hr_lite.css +223 -83
  9. data/app/controllers/hr_lite/admin/assets_controller.rb +1 -1
  10. data/app/controllers/hr_lite/admin/attendances_controller.rb +31 -0
  11. data/app/controllers/hr_lite/approvals_controller.rb +1 -12
  12. data/app/controllers/hr_lite/attendance_controller.rb +7 -0
  13. data/app/controllers/hr_lite/holidays_controller.rb +1 -0
  14. data/app/controllers/hr_lite/home_controller.rb +40 -3
  15. data/app/controllers/hr_lite/hr_requests_controller.rb +1 -1
  16. data/app/controllers/hr_lite/leave_requests_controller.rb +13 -2
  17. data/app/controllers/hr_lite/regularization_requests_controller.rb +10 -2
  18. data/app/controllers/hr_lite/tax_declarations_controller.rb +4 -0
  19. data/app/helpers/hr_lite/application_helper.rb +43 -30
  20. data/app/jobs/hr_lite/attendance_close_job.rb +6 -1
  21. data/app/models/hr_lite/approval.rb +5 -0
  22. data/app/models/hr_lite/attendance_record.rb +26 -0
  23. data/app/models/hr_lite/employee_profile.rb +1 -0
  24. data/app/models/hr_lite/hr_request.rb +2 -1
  25. data/app/models/hr_lite/office_location.rb +12 -0
  26. data/app/models/hr_lite/regularization_request.rb +10 -4
  27. data/app/services/hr_lite/attendance_puncher.rb +8 -3
  28. data/app/views/hr_lite/admin/assets/index.html.erb +3 -2
  29. data/app/views/hr_lite/admin/assets/new.html.erb +6 -2
  30. data/app/views/hr_lite/admin/attendances/index.html.erb +37 -6
  31. data/app/views/hr_lite/admin/attendances/show.html.erb +11 -7
  32. data/app/views/hr_lite/admin/attendances/week.html.erb +42 -0
  33. data/app/views/hr_lite/admin/checklists/index.html.erb +1 -1
  34. data/app/views/hr_lite/admin/comp_off_requests/index.html.erb +2 -2
  35. data/app/views/hr_lite/admin/comp_off_requests/show.html.erb +2 -2
  36. data/app/views/hr_lite/admin/documents/index.html.erb +1 -1
  37. data/app/views/hr_lite/admin/employees/_form.html.erb +15 -7
  38. data/app/views/hr_lite/admin/employees/show.html.erb +5 -5
  39. data/app/views/hr_lite/admin/expenses/index.html.erb +2 -2
  40. data/app/views/hr_lite/admin/leave_balances/index.html.erb +3 -3
  41. data/app/views/hr_lite/admin/leave_requests/index.html.erb +2 -2
  42. data/app/views/hr_lite/admin/leave_requests/show.html.erb +4 -6
  43. data/app/views/hr_lite/admin/loans/new.html.erb +2 -1
  44. data/app/views/hr_lite/admin/overview/index.html.erb +3 -3
  45. data/app/views/hr_lite/admin/regularization_requests/index.html.erb +1 -1
  46. data/app/views/hr_lite/admin/shared/_approvals_tabs.html.erb +6 -5
  47. data/app/views/hr_lite/appraisals/show.html.erb +3 -3
  48. data/app/views/hr_lite/approvals/index.html.erb +1 -1
  49. data/app/views/hr_lite/attendance/_month_grid.html.erb +21 -26
  50. data/app/views/hr_lite/attendance/_punch_card.html.erb +29 -7
  51. data/app/views/hr_lite/attendance/show.html.erb +36 -7
  52. data/app/views/hr_lite/benefits/index.html.erb +1 -1
  53. data/app/views/hr_lite/calendar/show.html.erb +29 -22
  54. data/app/views/hr_lite/comp_off_requests/index.html.erb +3 -3
  55. data/app/views/hr_lite/comp_off_requests/new.html.erb +3 -2
  56. data/app/views/hr_lite/documents/index.html.erb +32 -30
  57. data/app/views/hr_lite/employee_profiles/show.html.erb +2 -2
  58. data/app/views/hr_lite/expenses/index.html.erb +17 -35
  59. data/app/views/hr_lite/expenses/new.html.erb +11 -6
  60. data/app/views/hr_lite/holidays/_next_holiday.html.erb +11 -8
  61. data/app/views/hr_lite/holidays/index.html.erb +6 -6
  62. data/app/views/hr_lite/home/index.html.erb +29 -19
  63. data/app/views/hr_lite/hr_requests/index.html.erb +7 -24
  64. data/app/views/hr_lite/hr_requests/new.html.erb +7 -5
  65. data/app/views/hr_lite/hr_requests/show.html.erb +4 -0
  66. data/app/views/hr_lite/kudos/index.html.erb +4 -3
  67. data/app/views/hr_lite/leave_balances/index.html.erb +14 -5
  68. data/app/views/hr_lite/leave_requests/_balance_chips.html.erb +5 -3
  69. data/app/views/hr_lite/leave_requests/_out_list.html.erb +16 -0
  70. data/app/views/hr_lite/leave_requests/index.html.erb +8 -21
  71. data/app/views/hr_lite/leave_requests/new.html.erb +22 -9
  72. data/app/views/hr_lite/leave_requests/show.html.erb +3 -5
  73. data/app/views/hr_lite/loans/index.html.erb +18 -20
  74. data/app/views/hr_lite/policies/index.html.erb +1 -1
  75. data/app/views/hr_lite/regularization_requests/index.html.erb +2 -2
  76. data/app/views/hr_lite/regularization_requests/new.html.erb +11 -8
  77. data/app/views/hr_lite/resignations/show.html.erb +1 -1
  78. data/app/views/hr_lite/salary_slips/_slip_detail.html.erb +9 -3
  79. data/app/views/hr_lite/salary_slips/index.html.erb +48 -44
  80. data/app/views/hr_lite/shared/_bell.html.erb +1 -1
  81. data/app/views/hr_lite/shared/_form_errors.html.erb +1 -1
  82. data/app/views/hr_lite/tax_declarations/show.html.erb +24 -19
  83. data/app/views/hr_lite/team/show.html.erb +2 -2
  84. data/app/views/layouts/hr_lite/application.html.erb +24 -8
  85. data/config/routes.rb +3 -1
  86. data/lib/hr_lite/configuration.rb +16 -2
  87. data/lib/hr_lite/notifications.rb +1 -0
  88. data/lib/hr_lite/version.rb +1 -1
  89. metadata +4 -1
@@ -14,9 +14,11 @@ module HrLite
14
14
  # the HR shell; nil (default) shows nothing.
15
15
  :notifications,
16
16
  # e.g. 6 — default probation for new hires (admin edits per employee)
17
- :probation_months
17
+ :probation_months,
18
+ # true = a punch without GPS is refused (default: recorded and flagged)
19
+ :require_punch_location
18
20
 
19
- attr_reader :leave_year_start_month, :slip_release_day, :self_regularization
21
+ attr_reader :leave_year_start_month, :slip_release_day, :self_regularization, :work_hours
20
22
 
21
23
  # Misconfiguration must fail at boot, not as production 500s on every
22
24
  # balance screen. Accepts "7" (ENV-friendly) and validates 1..12.
@@ -47,6 +49,16 @@ module HrLite
47
49
  @self_regularization = value
48
50
  end
49
51
 
52
+ # nil = no hours rule. { day: 8, probation_day: 9, week: 40 } = a closed
53
+ # Mon–Fri punch short of its day's hours is closed as a half day, and a
54
+ # week under `week` hours (pro rata for holidays and leave) is flagged.
55
+ def work_hours=(value)
56
+ ok = value.nil? || (value.is_a?(Hash) && %i[day probation_day week].all? { |k| value[k].is_a?(Numeric) && value[k].positive? })
57
+ raise ArgumentError, "work_hours must be nil or { day:, probation_day:, week: } (positive numbers), got #{value.inspect}" unless ok
58
+
59
+ @work_hours = value
60
+ end
61
+
50
62
  # 0.1.0 pre-release name for public_url_base; kept as an alias so early
51
63
  # adopters' initializers don't break.
52
64
  alias_method :mail_link_base, :public_url_base
@@ -89,6 +101,8 @@ module HrLite
89
101
  @leave_year_start_month = 1 # 1 = calendar year; 7 = July–June leave year
90
102
  @slip_release_day = nil # e.g. 10 = slips open on the 10th of the next month
91
103
  @self_regularization = nil # e.g. { within_days: 2, per_week: 2 } — employees fix their own missed punch
104
+ @require_punch_location = false
105
+ @work_hours = nil # e.g. { day: 8, probation_day: 9, week: 40 } — short days close as half days
92
106
 
93
107
  # Leadership onboarding/offboarding. onboard_user must return a saved
94
108
  # user record (default: create on user_class with whatever of
@@ -20,6 +20,7 @@ module HrLite
20
20
  "attendance.regularized" => { bell: true, email: true, leadership_email: true, leadership_bell: false },
21
21
  "attendance.missed_check_in" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
22
22
  "attendance.missed_check_out" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
23
+ "attendance.short_day" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
23
24
  "payroll.finalized" => { bell: false, email: false, leadership_email: true, leadership_bell: true },
24
25
  "payroll.published" => { bell: true, email: true, leadership_email: true, leadership_bell: false },
25
26
  "kudos.mentioned" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
@@ -1,3 +1,3 @@
1
1
  module HrLite
2
- VERSION = "0.21.2"
2
+ VERSION = "0.22.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hr_lite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.2
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kshitiz sinha
@@ -69,6 +69,7 @@ files:
69
69
  - app/assets/javascripts/hr_lite/mention.js
70
70
  - app/assets/javascripts/hr_lite/nav.js
71
71
  - app/assets/javascripts/hr_lite/print.js
72
+ - app/assets/javascripts/hr_lite/select_filter.js
72
73
  - app/assets/stylesheets/hr_lite/application.css
73
74
  - app/assets/stylesheets/hr_lite/hr_lite.css
74
75
  - app/controllers/hr_lite/admin/appraisals_controller.rb
@@ -219,6 +220,7 @@ files:
219
220
  - app/views/hr_lite/admin/assets/new.html.erb
220
221
  - app/views/hr_lite/admin/attendances/index.html.erb
221
222
  - app/views/hr_lite/admin/attendances/show.html.erb
223
+ - app/views/hr_lite/admin/attendances/week.html.erb
222
224
  - app/views/hr_lite/admin/audit_logs/index.html.erb
223
225
  - app/views/hr_lite/admin/benefits/index.html.erb
224
226
  - app/views/hr_lite/admin/benefits/new.html.erb
@@ -314,6 +316,7 @@ files:
314
316
  - app/views/hr_lite/kudos/index.html.erb
315
317
  - app/views/hr_lite/leave_balances/index.html.erb
316
318
  - app/views/hr_lite/leave_requests/_balance_chips.html.erb
319
+ - app/views/hr_lite/leave_requests/_out_list.html.erb
317
320
  - app/views/hr_lite/leave_requests/index.html.erb
318
321
  - app/views/hr_lite/leave_requests/new.html.erb
319
322
  - app/views/hr_lite/leave_requests/show.html.erb