diff --git a/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts b/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts index cb1c4c5..d1d7418 100644 --- a/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts +++ b/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts @@ -302,6 +302,12 @@ export class InspectionVisitLifecycleService { message: 'Definí Área/Yacimiento, Operadora, Inspector responsable y fecha de inicio antes de planificar', }); } + if (!visit.checklistGeneratedAt || visit.checklistGeneration < 1) { + throw new BadRequestException({ + code: 'INSPECTION_CHECKLIST_REQUIRED', + message: 'Generá el checklist automático antes de confirmar la planificación', + }); + } const [relation] = await manager.query(` SELECT 1 FROM area_company_relations diff --git a/api-v3/test/unit/mobile-inspector-integration.test.ts b/api-v3/test/unit/mobile-inspector-integration.test.ts index 7a970bc..b08e035 100644 --- a/api-v3/test/unit/mobile-inspector-integration.test.ts +++ b/api-v3/test/unit/mobile-inspector-integration.test.ts @@ -23,7 +23,7 @@ test('D5.1/F4 applies the mobile-inspector policy to every field operation', asy assert.equal(policyCalls(acts), 3); assert.equal(policyCalls(findings), 2); assert.equal(policyCalls(evidence), 1); - assert.equal(policyCalls(closing), 7); + assert.equal(policyCalls(closing), 6); assert.match(evidence, /purpose === InspectionEvidencePurpose\.OBSERVATION/); });