Spec (docs/reviewing/master-data.md):
- M1: Remove margin from stored product fields (it's a derived frontend value)
- M2: Clarify posting window only restricts transaction dates, not master data
- M5: Document AccountFormulaManager::delete() as archive, not physical delete
Code:
- C1: Fix CompanySettingManager property typo (company_id → companyId) —
prevented PHP 8.4 dynamic property fatal on all posting window operations
- C2: Fix WarehouseManager::deleteWarehouse() guard — was comparing
warehouse_name (string) against warehouse id column (no-op); now correctly
blocks on storage rows and active stock rows
- M3: Remove hard-delete of td_rack_log in deleteStorage() — retain rack
history consistent with soft-delete philosophy elsewhere
- M4: Add reference guards to ChartOfAccounts::delete() (blocks on GL items,
formula items, product account mappings) and DepartmentManager::delete()
(blocks on GL items)
- M6: Fix CompanySettingManager::handle() partial update — only upsert keys
present in the request, not all allowed keys defaulted
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>