fix(inventory): count only installation and subinstallation instances

This commit is contained in:
2026-09-08 19:07:50 -03:00
parent 88d43b7414
commit afbece7d70
@@ -15,7 +15,7 @@ export class F5InventoryPhysicalInstance1790087100000 implements MigrationInterf
`); `);
await queryRunner.query(` await queryRunner.query(`
COMMENT ON COLUMN assets.is_inventory_instance IS 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(` await queryRunner.query(`
@@ -24,24 +24,21 @@ export class F5InventoryPhysicalInstance1790087100000 implements MigrationInterf
LANGUAGE plpgsql LANGUAGE plpgsql
AS $$ AS $$
DECLARE DECLARE
role_value varchar;
type_code varchar; type_code varchar;
BEGIN BEGIN
SELECT operational_role, lower(code) SELECT lower(code)
INTO role_value, type_code INTO type_code
FROM asset_types FROM asset_types
WHERE id = NEW.asset_type_id; WHERE id = NEW.asset_type_id;
NEW.is_inventory_instance := NEW.is_inventory_instance := COALESCE(type_code, '') IN ('instalacion', 'subinstalacion');
role_value = 'GENERIC'
AND COALESCE(type_code, '') NOT IN ('area', 'yacimiento', 'empresa', 'company');
RETURN NEW; RETURN NEW;
END; END;
$$ $$
`); `);
await queryRunner.query(` await queryRunner.query(`
CREATE TRIGGER trg_assets_classify_inventory_instance 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() FOR EACH ROW EXECUTE FUNCTION classify_new_asset_inventory_instance()
`); `);
} }