Commit graph

10 commits

Author SHA1 Message Date
Adam Moussa
6ad952c498
Remove shift count column from pay email, update footer text (#15)
- Remove the Shifts column from the Bonus Pay Summary email table (fixes #14)
- Change footer from "After-Hours Shift Manager" to "Sea Haven Industries" (fixes #13)
- Update README with pay report email section
2026-04-08 13:22:28 -04:00
Adam Moussa
9e2eab6953 DM pay reports to admin, rename email to Bonus Pay Summary
- Pay summary sent as DM to designated user instead of channel
- Email shows only per-person totals, no shift breakdown
- Renamed email subject/header to "Bonus Pay Summary"
2026-04-07 19:07:44 -04:00
Adam Moussa
65d35281b2 Fix DynamoDB float error — use Decimal for pay records 2026-04-07 18:59:52 -04:00
Adam Moussa
f8ceb1dc83 Add force flag to weekly post handler for manual testing 2026-04-07 18:58:03 -04:00
Adam Moussa
9deb8bf251 Email weekly pay summary to payroll via SES on Mondays
Sends an HTML pay summary email to configured payroll recipients
alongside the existing Slack post. Uses SES with noreply@seahaven.com
as sender. Recipients configured via PAYROLL_RECIPIENTS env var
(set to adam@seahaven.com for testing, switch to payroll@seahaven.com
for production).

Closes #3
2026-04-07 18:54:19 -04:00
Adam Moussa
7eb0443866 Add weekend day shifts and exclude fallback ext from pay
Saturdays and Sundays now have two shift slots: a day shift (8am–5pm)
and the existing after-hours shift. Extension 100 (fallback) is
excluded from pay calculations. Pickup buttons and schedule display
updated to handle both shift types.
2026-04-07 18:22:56 -04:00
Adam Moussa
1399be7e74 Support per-person shift pay rates
Each roster entry can now have its own shift_rate, falling back to the
global CONFIG rate when not set. Pay breakdowns show individual rates
per shift and per-person totals.
2026-04-07 18:12:32 -04:00
Adam Moussa
d569621c72 Add weekly pay calculation with configurable flat rate
Calculates after-hours pay per shift using a configurable rate stored
in DynamoDB CONFIG. Pay summaries are computed on Monday mornings for
the previous week, stored in DynamoDB (PK=PAY), and posted to Slack.
Adds /oncall pay command for on-demand viewing.

Closes #2
2026-04-07 18:09:19 -04:00
Adam Moussa
3a51b52ffc Extend schedule display to show 2 full weeks
Anchors to the current week's Monday and shows 14 consecutive days.
Updates /oncall next to jump forward by 2 weeks accordingly.

Closes #1
2026-04-07 18:01:10 -04:00
Adam Moussa
4d0cdb5cfb Initial commit: after-hours shift manager Slack bot
Slack Bolt app on Lambda for managing on-call shifts. Employees can
pick up, drop, and swap shifts via /oncall commands. Changes update
3CX ring group 800 routing in real time for same-day shifts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 18:32:32 -04:00