Files
lcbp3/specs/09-history/2025-12-13-schema-v160-document-number-fixes.md
admin ec35521258
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
251213:1509 Docunment Number Businee Rule not correct
2025-12-13 15:09:01 +07:00

3.3 KiB

Schema v1.6.0 Migration & Document Number Fixes (2025-12-13)

Task Summary

This session focused on completing the migration to Schema v1.6.0 (Correspondence/RFA shared PK) and resolving critical bugs in the Document Numbering system.

Status

  • Schema Migration: Completed (Backend & Frontend)
  • Document Numbering:
    • Preview Fixed (Recipient Code resolution)
    • Creation Fixed (Source data mapping)
    • Update Logic Fixed (Auto-regeneration on Draft edit)

Walkthrough & Changes

1. Correspondence Module

  • New Entity: CorrespondenceRecipient to handle multiple recipients (TO/CC).
  • Entity Update: Correspondence now has a recipients relation.
  • Entity Update: CorrespondenceRevision renamed title to subject, added body, remarks, dueDate, schemaVersion.
  • Service Update: create method now saves recipients and maps new revision fields.
  • DTO Update: CreateCorrespondenceDto updated to support proper fields.

2. RFA Module

  • Shared Primary Key: Rfa entity now shares PK with Correspondence.
  • Revision Update: RfaRevision removed correspondenceId (access via rfa.correspondence.id), renamed title to subject, added new fields.
  • Item Update: RfaItem FK column renamed to rfa_revision_id.
  • Service Update: Only RfaService logic updated to handle shared PK and new field mappings. findAll query updated to join via rfa.correspondence.

3. Frontend Adaptation

  • Type Definitions: Updated CorrespondenceRevision and RFA types to match schema v1.6.0.
  • Form Components:
    • CorrespondenceForm: Renamed title to subject, added body, remarks, dueDate.
    • RFAForm: Renamed title to subject, added body, remarks.
  • List & Detail Views: Updated accessor keys (title -> subject) and added display sections for new fields (Body, Remarks) in Detail views.
  • DTOs: Updated CreateCorrespondenceDto and CreateRFADto to include new fields.

Bug Fixes & Refinements (Session 2)

Document Number Preview

  • Issue: Preview showed -- for recipient code.
  • Fix:
    • Implemented customTokens support in DocumentNumberingService.
    • updated CorrespondenceService.previewNextNumber to manually resolve recipient code from OrganizationRepository.

Correspondence Creation

  • Issue: Generated document number used incorrect placeholder.
  • Fix: Updated create method to extract recipient from recipients array instead of legacy details field.

Edit Page Loading

  • Issue: "Failed to load" error on Edit page.
  • Fix: Corrected TypeORM relation path in CorrespondenceService.findOne from recipients.organization to properties recipients.recipientOrganization.

Document Number Auto-Update

  • Feature: Automatically regenerate document number when editing a Draft.
  • Implementation: logic added to update method to re-calculate number if type, discipline, project, or recipient changes.

Verification Results

  • Backend Tests: correspondence.service.spec.ts passed.
  • Frontend Tests: All 9 suites (113 tests) passed.
  • Manual Verification: Verified Preview, Creation, and Edit flows.

Future Tasks

  • Data Cleanup: Migration script to fix existing document numbers with missing recipient codes (e.g., คคง.--0001-2568 -> คคง.-XYZ-0001-2568).