fix(partners): exclude soft-deleted parteneri in denumire lookup

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) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-04-15 09:08:44 +00:00
parent db60d955bf
commit 5cdd919226

View File

@@ -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 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 -- 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) -- 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 -- CONSTANTS
@@ -330,41 +331,24 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS
IF p_denumire IS NULL THEN IF p_denumire IS NULL THEN
RETURN NULL; RETURN NULL;
END IF; END IF;
v_denumire_curata := curata_text_cautare(p_denumire); v_denumire_curata := curata_text_cautare(p_denumire);
-- pINFO('Cautare partener dupa denumire: ' || v_denumire_curata, 'IMPORT_PARTENERI'); -- Cautare in NOM_PARTENERI - exclude sters=1, prioritizeaza active (inactiv=0)
-- Cautare in NOM_PARTENERI
BEGIN BEGIN
SELECT id_part SELECT id_part INTO v_id_part FROM (
INTO v_id_part SELECT id_part
FROM nom_parteneri FROM nom_parteneri
WHERE UPPER(TRIM(denumire)) = v_denumire_curata WHERE UPPER(TRIM(denumire)) = v_denumire_curata
AND ROWNUM = 1; -- In caz de duplicate, luam primul AND NVL(sters, 0) = 0
ORDER BY NVL(inactiv, 0) ASC, id_part DESC
-- pINFO('Gasit partener cu denumirea ' || v_denumire_curata || ': ID_PART=' || v_id_part, 'IMPORT_PARTENERI'); ) WHERE ROWNUM = 1;
RETURN v_id_part; RETURN v_id_part;
EXCEPTION EXCEPTION
WHEN NO_DATA_FOUND THEN WHEN NO_DATA_FOUND THEN
-- pINFO('Nu s-a gasit partener cu denumirea: ' || v_denumire_curata, 'IMPORT_PARTENERI');
RETURN NULL; 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; END;
EXCEPTION EXCEPTION