Implement error handling system for PACK_IMPORT_COMENZI similar to PACK_JSON

- Add g_last_error package variable for VFP orchestrator integration
- Replace immediate pINFO logging with error storage for deferred logging
- Implement get_last_error() and clear_error() functions matching PACK_JSON pattern
- Update Oracle 10g compatibility for PACK_JSON regex patterns
- Enhance PACK_COMENZI with OUT parameter version for ID_COMANDA return

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-09 23:57:26 +03:00
parent dc91372760
commit 0b9814114d
3 changed files with 171 additions and 59 deletions

View File

@@ -33,6 +33,22 @@ create or replace package PACK_COMENZI is
V_COMANDA_EXTERNA in varchar2,
V_ID_CTR IN NUMBER);
-- Versiune overloaded care returneaza ID_COMANDA prin OUT parameter
procedure adauga_comanda(V_NR_COMANDA IN VARCHAR2,
V_DATA_COMANDA IN DATE,
V_ID IN NUMBER,
V_DATA_LIVRARE IN DATE,
V_PROC_DISCOUNT IN NUMBER,
V_INTERNA IN NUMBER,
V_ID_UTIL IN NUMBER,
V_ID_SECTIE IN NUMBER,
V_ID_ADRESA_FACTURARE in NUMBER,
V_ID_ADRESA_LIVRARE in NUMBER,
V_ID_CODCLIENT in number,
V_COMANDA_EXTERNA in varchar2,
V_ID_CTR IN NUMBER,
V_ID_COMANDA OUT NUMBER);
procedure modifica_comanda(V_ID_COMANDA IN NUMBER,
V_NR_COMANDA IN VARCHAR2,
V_DATA_COMANDA IN DATE,
@@ -227,7 +243,6 @@ create or replace package PACK_COMENZI is
tnIdVanzare OUT VANZARI.ID_VANZARE%TYPE);
end PACK_COMENZI;
/
create or replace package body PACK_COMENZI is
-- ultima eroare atribuita : COM-001
@@ -352,6 +367,30 @@ create or replace package body PACK_COMENZI is
V_ID_CODCLIENT in number,
V_COMANDA_EXTERNA in varchar2,
V_ID_CTR IN NUMBER) is
V_ID_COMANDA NUMBER;
begin
-- Wrapper pentru compatibilitate - apeleaza versiunea cu OUT parameter
adauga_comanda(V_NR_COMANDA, V_DATA_COMANDA, V_ID, V_DATA_LIVRARE, V_PROC_DISCOUNT,
V_INTERNA, V_ID_UTIL, V_ID_SECTIE, V_ID_ADRESA_FACTURARE,
V_ID_ADRESA_LIVRARE, V_ID_CODCLIENT, V_COMANDA_EXTERNA, V_ID_CTR,
V_ID_COMANDA);
end adauga_comanda;
-- Versiune overloaded care returneaza ID_COMANDA prin OUT parameter (IMPLEMENTAREA PRINCIPALA)
procedure adauga_comanda(V_NR_COMANDA IN VARCHAR2,
V_DATA_COMANDA IN DATE,
V_ID IN NUMBER,
V_DATA_LIVRARE IN DATE,
V_PROC_DISCOUNT IN NUMBER,
V_INTERNA IN NUMBER,
V_ID_UTIL IN NUMBER,
V_ID_SECTIE IN NUMBER,
V_ID_ADRESA_FACTURARE in NUMBER,
V_ID_ADRESA_LIVRARE in NUMBER,
V_ID_CODCLIENT in number,
V_COMANDA_EXTERNA in varchar2,
V_ID_CTR IN NUMBER,
V_ID_COMANDA OUT NUMBER) is
V_NR_INREGISTRARI NUMBER(10);
V_NESTERS NUMBER(1) := 0;
V_ID_PART NOM_PARTENERI.ID_PART%TYPE;
@@ -362,7 +401,7 @@ create or replace package body PACK_COMENZI is
V_ID_ADRESA_LIVRARE1 NUMBER(10);
V_ID_CODCLIENT1 comenzi.id_codclient%TYPE;
V_COMANDA_EXTERNA1 comenzi.COMANDA_EXTERNA%TYPE;
V_ID_SUCURSALA NOM_SECTII.ID_SUCURSALA%TYPE;
begin
SELECT COUNT(*)
INTO V_NR_INREGISTRARI
@@ -433,8 +472,8 @@ create or replace package body PACK_COMENZI is
V_COMANDA_EXTERNA1 := '';
END CASE;
--dbms_output.put_line(V_ID_SECTIE);
--dbms_output.put_line(V_ID_SECTIE2);
SELECT MAX(ID_SUCURSALA) INTO V_ID_SUCURSALA FROM NOM_SECTII WHERE ID_SECTIE = V_ID_SECTIE;
INSERT INTO COMENZI
(NR_COMANDA,
DATA_COMANDA,
@@ -452,7 +491,7 @@ create or replace package body PACK_COMENZI is
COMANDA_EXTERNA,
ID_SUCURSALA,
ID_CTR)
SELECT V_NR_COMANDA,
VALUES( V_NR_COMANDA,
V_DATA_COMANDA,
V_ID_GESTIUNE,
V_ID_PART,
@@ -466,10 +505,9 @@ create or replace package body PACK_COMENZI is
V_ID_CODCLIENT1,
V_PROC_DISCOUNT,
V_COMANDA_EXTERNA1,
ID_SUCURSALA,
V_ID_CTR
FROM NOM_SECTII
WHERE ID_SECTIE = V_ID_SECTIE;
V_ID_SUCURSALA,
V_ID_CTR)
RETURNING ID_COMANDA INTO V_ID_COMANDA;
end adauga_comanda;
----------------------------------------------------------------------------------
procedure modifica_comanda(V_ID_COMANDA IN NUMBER,