68aaa132ee9b7abf1992036b3c867f7ae52bdede
is_open + crosses_midnight fields; employee_id optional (open shifts); company_id computed w/ env.company fallback; drop hard one-per-day UNIQUE (allow split + open). Overnight math in planned_hours/_check_schedule_times/ scheduled_times. _get_fclk_day_plan resolves multiple posted rows into ONE work-window so penalties/overtime/absence stay correct. Migration drops the old constraint defensively. Tests for overnight, window, open shifts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
Odoo 19 custom modules
Languages
Python
72%
JavaScript
17.4%
HTML
8%
SCSS
1%
CSS
0.8%
Other
0.5%