Files
lcbp3/specs/09-history/2025-12-23-document-numbering-form-refactoring.md
admin 7db6a003db
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251223:1649 On going update to 1.7.0: Refoctory drawing Module & document number Module
2025-12-23 16:49:16 +07:00

2.5 KiB

Session History - 2025-12-23: Document Numbering Form Refactoring

Objective

Refactor and debug the "Test Number Generation" (Template Tester) form to support real API validation and master data integration.

Key Changes

1. Frontend Refactoring (template-tester.tsx)

  • Master Data Integration: Replaced manual text inputs with Select components for Originator, Recipient, Document Type, and Discipline.
  • Dynamic Data Hook:
    • Integrated useOrganizations, useCorrespondenceTypes, and useDisciplines.
    • Fixed empty Discipline list by adding useContracts to fetch active contracts for the project and deriving contractId dynamically.
  • API Integration: Switched from mock generateTestNumber to backend previewNumber endpoint.
  • UI Enhancements:
    • Added "Default (All Types)" and "None" options to dropdowns.
    • Improved error feedback with a visible error card if generation fails.
  • Type Safety:
    • Resolved multiple lint errors (Unexpected any, missing properties).
    • Updated SearchOrganizationDto in organization.dto.ts to include isActive.

2. Backend API Harmonization

  • DTO Updates:
    • Refactored PreviewNumberDto to use originatorId and typeId (aligned with frontend naming).
    • Added @Type(() => Number) and @IsInt() to ensure proper payload transformation.
  • Service Logic:
    • Fixed CounterService mapping to correctly use the entity property originatorId instead of the DTO naming originatorOrganizationId in WHERE clauses and creation logic.
    • Updated DocumentNumberingController to map the new DTO properties.

3. Troubleshooting & Reversion

  • Issue: "Format Preview" was reported as missing.
  • Action: Attempted a property rename from formatTemplate to formatString across the frontend based on database column naming.
  • Result: This caused the entire Document Numbering page to fail (UI became empty) because the backend entity still uses the property name formatTemplate.
  • Resolution: Reverted all renaming changes back to formatTemplate. The initial "missing" issue was resolved by ensuring proper prop passing and data loading.

Status

  • Test Generation Form: Fully functional and integrated with real master data.
  • Preview API: Validated and working with correct database mapping.
  • Next Steps: Monitor for any further data-specific generation errors (e.g., Template format parsing).

Reference Task: TASK-FE-017-document-numbering-refactor.md