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:
@@ -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
|
||||
@@ -333,38 +334,21 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS
|
||||
|
||||
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
|
||||
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;
|
||||
|
||||
-- pINFO('Gasit partener cu denumirea ' || v_denumire_curata || ': ID_PART=' || v_id_part, 'IMPORT_PARTENERI');
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user