Add optional IS_PERSOANA_JURIDICA parameter to PACK_IMPORT_PARTENERI

- Add p_is_persoana_juridica parameter to cauta_sau_creeaza_partener function
- Enable explicit person type detection from GoMag orders data
- Maintain backward compatibility with NULL default value
- Priority logic: explicit parameter > CNP auto-detection
- Improve accuracy when CNP is not available for individuals
- Support 1=persoana juridica, 0=persoana fizica, NULL=auto-detect

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-10 00:08:51 +03:00
parent ae9fc2c3d3
commit 4d712642c1

View File

@@ -69,6 +69,7 @@ CREATE OR REPLACE PACKAGE PACK_IMPORT_PARTENERI AS
* @param p_adresa Adresa in format: "JUD:Bucuresti;BUCURESTI;Str.Victoriei;10"
* @param p_telefon Numar de telefon
* @param p_email Adresa de email
* @param p_is_persoana_juridica 1=persoana juridica, 0=persoana fizica, NULL=auto-detect prin CNP
* @return ID_PART al partenerului gasit sau creat
*/
FUNCTION cauta_sau_creeaza_partener(
@@ -76,7 +77,8 @@ CREATE OR REPLACE PACKAGE PACK_IMPORT_PARTENERI AS
p_denumire IN VARCHAR2,
p_adresa IN VARCHAR2 DEFAULT NULL,
p_telefon IN VARCHAR2 DEFAULT NULL,
p_email IN VARCHAR2 DEFAULT NULL
p_email IN VARCHAR2 DEFAULT NULL,
p_is_persoana_juridica IN NUMBER DEFAULT NULL
) RETURN NUMBER;
/**
@@ -512,7 +514,8 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS
p_denumire IN VARCHAR2,
p_adresa IN VARCHAR2 DEFAULT NULL,
p_telefon IN VARCHAR2 DEFAULT NULL,
p_email IN VARCHAR2 DEFAULT NULL
p_email IN VARCHAR2 DEFAULT NULL,
p_is_persoana_juridica IN NUMBER DEFAULT NULL
) RETURN NUMBER IS
v_id_part NUMBER;
@@ -573,7 +576,14 @@ CREATE OR REPLACE PACKAGE BODY PACK_IMPORT_PARTENERI AS
-- pINFO('Nu s-a gasit partener existent. Se creeaza unul nou...', 'IMPORT_PARTENERI');
-- Verifica tipul partenerului
v_este_persoana_fizica := este_persoana_fizica(v_cod_fiscal_curat);
-- Prioritate: parametru explicit > detectie prin CNP
IF p_is_persoana_juridica IS NOT NULL THEN
-- Foloseste informatia explicita din GoMag orders
v_este_persoana_fizica := CASE WHEN p_is_persoana_juridica = 1 THEN 0 ELSE 1 END;
ELSE
-- Auto-detect prin CNP (comportament original)
v_este_persoana_fizica := este_persoana_fizica(v_cod_fiscal_curat);
END IF;
IF v_este_persoana_fizica = 1 THEN
-- pINFO('Detectata persoana fizica (CUI 13 cifre)', 'IMPORT_PARTENERI');