fix: align F4 Act code constraint with generated codes
This commit is contained in:
+34
-2
@@ -4,8 +4,9 @@ import { MigrationInterface, QueryRunner } from 'typeorm';
|
|||||||
* Alinea las restricciones físicas heredadas de D5 con el ciclo documental F4.
|
* Alinea las restricciones físicas heredadas de D5 con el ciclo documental F4.
|
||||||
*
|
*
|
||||||
* F4 incorpora estados LOCKED/SEALED para Actas y WORKING/OFFICIALIZED para INF.
|
* F4 incorpora estados LOCKED/SEALED para Actas y WORKING/OFFICIALIZED para INF.
|
||||||
* Las migraciones históricas conservaban CHECKs y triggers de READY/CLOSED/FROZEN,
|
* También usa el código visible ACT-NNNNN-DD-MM-YY. Las migraciones históricas
|
||||||
* por lo que el servicio podía compilar pero PostgreSQL rechazaba las transiciones.
|
* conservaban CHECKs, triggers y el formato ACTA-YYYY-NNNNNN de D5, por lo que
|
||||||
|
* el servicio podía compilar pero PostgreSQL rechazaba las transiciones nuevas.
|
||||||
*/
|
*/
|
||||||
export class F4AlignDocumentLifecycleConstraints1790000600000 implements MigrationInterface {
|
export class F4AlignDocumentLifecycleConstraints1790000600000 implements MigrationInterface {
|
||||||
name = 'F4AlignDocumentLifecycleConstraints1790000600000';
|
name = 'F4AlignDocumentLifecycleConstraints1790000600000';
|
||||||
@@ -33,6 +34,19 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
|||||||
)
|
)
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// Conservamos los códigos históricos ACTA-* ya emitidos y habilitamos el
|
||||||
|
// formato F4 realmente generado por InspectionActsService.
|
||||||
|
await queryRunner.query(`
|
||||||
|
ALTER TABLE inspection_acts
|
||||||
|
DROP CONSTRAINT IF EXISTS chk_inspection_acts_code
|
||||||
|
`);
|
||||||
|
await queryRunner.query(`
|
||||||
|
ALTER TABLE inspection_acts
|
||||||
|
ADD CONSTRAINT chk_inspection_acts_code CHECK (
|
||||||
|
code ~ '^(ACTA-[0-9]{4}-[0-9]{6}|ACT-[0-9]{5}-[0-9]{2}-[0-9]{2}-[0-9]{2})$'
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
ALTER TABLE inspection_act_versions
|
ALTER TABLE inspection_act_versions
|
||||||
DROP CONSTRAINT IF EXISTS chk_inspection_act_versions_event
|
DROP CONSTRAINT IF EXISTS chk_inspection_act_versions_event
|
||||||
@@ -111,6 +125,24 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
|||||||
$$
|
$$
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// Los códigos F4 se traducen antes de convertir SEALED a CLOSED, porque una vez
|
||||||
|
// restaurada la guarda D5 una fila CLOSED ya no puede modificarse.
|
||||||
|
await queryRunner.query(`
|
||||||
|
UPDATE inspection_acts
|
||||||
|
SET code='ACTA-' || act_year::text || '-' || LPAD(act_number::text, 6, '0')
|
||||||
|
WHERE code ~ '^ACT-[0-9]{5}-[0-9]{2}-[0-9]{2}-[0-9]{2}$'
|
||||||
|
`);
|
||||||
|
await queryRunner.query(`
|
||||||
|
ALTER TABLE inspection_acts
|
||||||
|
DROP CONSTRAINT IF EXISTS chk_inspection_acts_code
|
||||||
|
`);
|
||||||
|
await queryRunner.query(`
|
||||||
|
ALTER TABLE inspection_acts
|
||||||
|
ADD CONSTRAINT chk_inspection_acts_code CHECK (
|
||||||
|
code ~ '^ACTA-[0-9]{4}-[0-9]{6}$'
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
// El contrato D5 no conoce los estados F4. Reducimos las representaciones
|
// El contrato D5 no conoce los estados F4. Reducimos las representaciones
|
||||||
// nuevas a sus equivalentes históricos antes de restaurar sus CHECKs.
|
// nuevas a sus equivalentes históricos antes de restaurar sus CHECKs.
|
||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
|
|||||||
Reference in New Issue
Block a user