Actions
Feature #669
open
NP
HR owns subsidy rules; Canteen employee-meals + settings become read-only
Feature #669:
HR owns subsidy rules; Canteen employee-meals + settings become read-only
Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
10/29/2026
Due date:
% Done:
0%
Estimated time:
Resolved By:
Description
Moved subsidy-rule ownership from Canteen to HR per product decision (navigate: HR > People > Subsidy rules):
- HR: new People section page, full CRUD (SubsidyRule entity, service, controller, internal cross-module controller for canteen to read, portal page/modal/queries/nav item, 21 new backend tests).
- One-time data copy: 8 existing canteen.subsidy_rules rows copied into hr.subsidy_rules (tagged migration:canteen-subsidy-rules-2026-10-29), canteen table then dropped -- copy-then-retire, per explicit decision.
- shared-kernel: IHrServiceContract gains GetSubsidyRulesAsync (default-bodied for additivity, matches GetTrainingSessionsForEmployeeAsync precedent).
- Canteen: Employee-meals subsidy panel and Settings > Subsidy tab become read-only, sourced from a cached HrSubsidyRuleDirectory (5-min TTL, tenant-qualified key) instead of local writes; EmployeeCardResolver rewired off the cached directory; local SaveSubsidyRuleAsync/ArchiveSubsidyRuleAsync removed.
Live-pricing-critical path: POS resolves a subsidy rule per employee sale, synchronously, unlocked, multiple times per transaction -- resolve-once-trust-for-the-sale semantics preserved across the rewiring.
NP Updated by Navya P. 15 days ago
- Status changed from In Progress to Resolved
- Resolved By set to Navya P.
Resolved across 3 repos:
- nuvita-hr cb3aaa8 (feat/canteen-employee-read) -- new People > Subsidy rules CRUD page.
- nuvita-shared-kernel fe4411b (feat/canteen-dietary-order-http-client) -- IHrServiceContract.GetSubsidyRulesAsync.
- nuvita-canteen-management c84bba0 (integration/canteen-v1) -- read-only switch, canteen.subsidy_rules dropped.
Backend 1050/1052 (2 pre-existing unrelated failures), frontend 570/570, HR backend 1239/1239, HR frontend 771/773 (2 pre-existing unrelated). Data copy (8 rows) verified before the drop.
Actions