From afbece7d7048e752db6e68cb1befa31fc6112d66 Mon Sep 17 00:00:00 2001 From: enlineawork Date: Tue, 8 Sep 2026 19:07:50 -0300 Subject: [PATCH] fix(inventory): count only installation and subinstallation instances --- .../1790087100000-f5-inventory-physical-instance.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/api-v3/src/database/migrations/1790087100000-f5-inventory-physical-instance.ts b/api-v3/src/database/migrations/1790087100000-f5-inventory-physical-instance.ts index ef48643..30a4098 100644 --- a/api-v3/src/database/migrations/1790087100000-f5-inventory-physical-instance.ts +++ b/api-v3/src/database/migrations/1790087100000-f5-inventory-physical-instance.ts @@ -15,7 +15,7 @@ export class F5InventoryPhysicalInstance1790087100000 implements MigrationInterf `); await queryRunner.query(` COMMENT ON COLUMN assets.is_inventory_instance IS - 'True only for a concrete Inventory instance. Company, Area, Yacimiento and historical/context records remain structural.' + 'True only for a concrete Instalacion/Subinstalacion instance. Empresa, Area and Yacimiento are structural/context masters.' `); await queryRunner.query(` @@ -24,24 +24,21 @@ export class F5InventoryPhysicalInstance1790087100000 implements MigrationInterf LANGUAGE plpgsql AS $$ DECLARE - role_value varchar; type_code varchar; BEGIN - SELECT operational_role, lower(code) - INTO role_value, type_code + SELECT lower(code) + INTO type_code FROM asset_types WHERE id = NEW.asset_type_id; - NEW.is_inventory_instance := - role_value = 'GENERIC' - AND COALESCE(type_code, '') NOT IN ('area', 'yacimiento', 'empresa', 'company'); + NEW.is_inventory_instance := COALESCE(type_code, '') IN ('instalacion', 'subinstalacion'); RETURN NEW; END; $$ `); await queryRunner.query(` CREATE TRIGGER trg_assets_classify_inventory_instance - BEFORE INSERT ON assets + BEFORE INSERT OR UPDATE OF asset_type_id ON assets FOR EACH ROW EXECUTE FUNCTION classify_new_asset_inventory_instance() `); }