diff --git a/api-v3/src/asset-master/merged-inventory-dossier.service.ts b/api-v3/src/asset-master/merged-inventory-dossier.service.ts index 7309767..a475880 100644 --- a/api-v3/src/asset-master/merged-inventory-dossier.service.ts +++ b/api-v3/src/asset-master/merged-inventory-dossier.service.ts @@ -5,6 +5,8 @@ import { InventoryMergeService } from './inventory-merge.service'; type LooseRecord = Record; +const MERGEABLE_DOSSIER_TYPES = new Set(['instalacion', 'subinstalacion']); + function dedupeById(items: T[]): T[] { const seen = new Set(); const result: T[] = []; @@ -34,6 +36,16 @@ export class MergedInventoryDossierService { ) {} async dossier(requestedAssetId: string): Promise> { + const requestedAsset = await this.assets.getById(requestedAssetId); + const requestedTypeCode = requestedAsset.type.code.trim().toLowerCase(); + + // La conciliación/fusión existe sólo para Instalaciones y Subinstalaciones. + // Los registros territoriales (Departamento, Área, Yacimiento) deben poder + // abrir su Actividad sin depender del subsistema de merge. + if (!MERGEABLE_DOSSIER_TYPES.has(requestedTypeCode)) { + return await this.assets.dossier(requestedAssetId) as Record; + } + const mergeStatus = await this.merges.status(requestedAssetId) as LooseRecord; const canonical = mergeStatus.canonical as LooseRecord; const requested = mergeStatus.requested as LooseRecord;