From 5cdd919226c5aa349cec9afbc0c4279948ffb2d7 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Wed, 15 Apr 2026 09:08:44 +0000 Subject: [PATCH] fix(partners): exclude soft-deleted parteneri in denumire lookup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cauta_partener_dupa_denumire nu filtra sters=0, deci importul PF putea lega comanda la un partener sters=1 (bug GoMag #484668145 — RADULESCU ANA MARIA, id_part=21946). Adaugat NVL(sters,0)=0 si ORDER BY inactiv ASC pentru a prefera parteneri activi, in linie cu cauta_partener_dupa_cod_fiscal. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../05_pack_import_parteneri.pck | 42 ++++++------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/api/database-scripts/05_pack_import_parteneri.pck b/api/database-scripts/05_pack_import_parteneri.pck index c928227..8bbcb07 100644 --- a/api/database-scripts/05_pack_import_parteneri.pck +++ b/api/database-scripts/05_pack_import_parteneri.pck @@ -13,6 +13,7 @@ CREATE OR REPLACE PACKAGE PACK_IMPORT_PARTENERI AS -- 07.04.2026 - fix duplicate: normalize localitate + resolve id_localitate inainte de TIER 1 (match pe id_loc) -- 07.04.2026 - fix localitate necunoscuta: SOUNDEX fuzzy match (TIER L2) + pastreaza judetul in L3 -- 08.04.2026 - fix parser: inserare virgule in strada inainte de comma-split (sc/ap/et nu se extrageau fara virgula) + -- 15.04.2026 - fix cauta_partener_dupa_denumire: exclude sters=1, prioritizeaza inactiv=0 (bug GoMag #484668145) -- ==================================================================== -- CONSTANTS @@ -330,41 +331,24 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS IF p_denumire IS NULL THEN RETURN NULL; END IF; - + v_denumire_curata := curata_text_cautare(p_denumire); - - -- pINFO('Cautare partener dupa denumire: ' || v_denumire_curata, 'IMPORT_PARTENERI'); - - -- Cautare in NOM_PARTENERI + + -- Cautare in NOM_PARTENERI - exclude sters=1, prioritizeaza active (inactiv=0) BEGIN - SELECT id_part - INTO v_id_part - FROM nom_parteneri - WHERE UPPER(TRIM(denumire)) = v_denumire_curata - AND ROWNUM = 1; -- In caz de duplicate, luam primul - - -- pINFO('Gasit partener cu denumirea ' || v_denumire_curata || ': ID_PART=' || v_id_part, 'IMPORT_PARTENERI'); + SELECT id_part INTO v_id_part FROM ( + SELECT id_part + FROM nom_parteneri + WHERE UPPER(TRIM(denumire)) = v_denumire_curata + AND NVL(sters, 0) = 0 + ORDER BY NVL(inactiv, 0) ASC, id_part DESC + ) WHERE ROWNUM = 1; + RETURN v_id_part; - + EXCEPTION WHEN NO_DATA_FOUND THEN - -- pINFO('Nu s-a gasit partener cu denumirea: ' || v_denumire_curata, 'IMPORT_PARTENERI'); RETURN NULL; - - WHEN TOO_MANY_ROWS THEN - -- Luam primul gasit - SELECT id_part - INTO v_id_part - FROM (SELECT id_part - FROM nom_parteneri - WHERE UPPER(TRIM(denumire)) = v_denumire_curata - ORDER BY id_part) - WHERE ROWNUM = 1; - - pINFO('WARNING: Multiple parteneri cu aceeasi denumire ' || - v_denumire_curata || '. Selectat ID_PART=' || v_id_part, - 'IMPORT_PARTENERI'); - RETURN v_id_part; END; EXCEPTION