taks-d.2.1
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Task D.2 Billing Customer + Project Parties
|
||||
|
||||
## Scope delivered
|
||||
|
||||
- Kept the main CRM field named `Billing Customer` on enquiry and quotation forms/detail pages.
|
||||
- Added a separate `Project Parties` model for enquiries and aligned quotation related customers to the same business concept.
|
||||
- Added `remark` support on quotation project parties and introduced enquiry project-party persistence.
|
||||
- Switched role sourcing to the shared master-option category `crm_project_party_role`.
|
||||
- Added compatibility mapping so legacy quotation roles such as `owner` and `billing` still render correctly.
|
||||
|
||||
## Data model
|
||||
|
||||
- Added `crm_enquiry_customers` for enquiry project parties.
|
||||
- Added `remark` column to `crm_quotation_customers`.
|
||||
- Generated migration `drizzle/0010_calm_wendell_rand.sql`.
|
||||
|
||||
## Server behavior
|
||||
|
||||
- Enquiry create/update now sync `Project Parties` transactionally.
|
||||
- Quotation create/update now sync `Project Parties` transactionally.
|
||||
- Billing customer is auto-added as a `billing_customer` project party during sync.
|
||||
- Duplicate `customerId + roleCode` combinations are de-duplicated during main form sync and rejected in quotation detail CRUD.
|
||||
- Quotation project-party reads normalize legacy role codes to current shared role options.
|
||||
|
||||
## UI changes
|
||||
|
||||
- Enquiry form now has `Billing Customer` plus a `Project Parties` editor.
|
||||
- Enquiry detail now shows `Billing Customer` and `Project Parties` separately.
|
||||
- Quotation form now has `Billing Customer` plus a `Project Parties` editor.
|
||||
- Quotation detail overview separates `Billing Customer` and `Project Parties`.
|
||||
- Quotation customer tab is relabeled to `Project Parties`, shows role clearly, and supports remark editing.
|
||||
|
||||
## Verification
|
||||
|
||||
- `npx tsc --noEmit` passes.
|
||||
- `npm run lint` still fails because of pre-existing repo issues outside this task, including:
|
||||
- `src/components/ui/input-group.tsx`
|
||||
- `src/features/chat/components/message-composer.tsx`
|
||||
- `src/components/forms/demo-form.tsx`
|
||||
Reference in New Issue
Block a user