fix: NULL SUMA in PACK_FACTURARE for discount lines + SKU enrichment fallback

PACK_FACTURARE: use PTVA from COMENZI_ELEMENTE (NVL2) in adauga_articol_factura
instead of fetching PROC_TVAV from price list, fixing NULL SUMA for discount
lines with multiple TVA rates (11%, 21%).

sync.py: broaden direct SKU enrichment to all unmapped SKUs regardless of
mapping_status, fixing stale status edge cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-03-20 22:32:28 +00:00
parent 3fabe3f4b1
commit 5addeb08bd
2 changed files with 12 additions and 11 deletions

View File

@@ -11,6 +11,8 @@ CREATE OR REPLACE PACKAGE "PACK_FACTURARE" is
-- descarca_gestiune - tva adaos
-- 20.03.2026 - duplicate CODMAT pe comanda: PRET in GROUP BY/JOIN (cursor_comanda, cursor_lucrare, inchide_comanda, adauga_articol_*)
-- 20.03.2026 - SIGN() fix for negative quantity (discount) lines in cursor_comanda and inchide_comanda
-- 20.03.2026 - Fix NULL SUMA in adauga_articol_factura: use PTVA from COMENZI_ELEMENTE for discount lines (NVL2)
cnume_program VARCHAR(30) := 'ROAFACTURARE';
@@ -3007,7 +3009,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
NVL(C.UM, '') AS UM,
C.IN_STOC AS GESTIONABIL,
A.CANTITATE - NVL(D.CANTITATE, 0) AS CANTITATE,
B.PROC_TVAV,
NVL2(A.PTVA, 1+A.PTVA/100, B.PROC_TVAV) AS PROC_TVAV,
A.PRET_CU_TVA AS PRETURI_CU_TVA,
E.CURS,
E.MULTIPLICATOR,
@@ -3055,7 +3057,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON A.ID_VALUTA = F.ID_VALUTA
WHERE A.STERS = 0
AND A.ID_COMANDA = V_ID_COMANDA
AND A.CANTITATE - NVL(D.CANTITATE, 0) > 0
AND SIGN(A.CANTITATE) * (A.CANTITATE - NVL(D.CANTITATE, 0)) > 0
ORDER BY C.DENUMIRE;
ELSE
-- aviz
@@ -3094,7 +3096,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
NVL(C.UM, '') AS UM,
C.IN_STOC AS GESTIONABIL,
A.CANTITATE - NVL(D.CANTITATE, 0) AS CANTITATE,
B.PROC_TVAV,
NVL2(A.PTVA, 1+A.PTVA/100, B.PROC_TVAV) AS PROC_TVAV,
A.PRET_CU_TVA AS PRETURI_CU_TVA,
E.CURS,
E.MULTIPLICATOR,
@@ -5032,7 +5034,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
V_ID_COMANDA := to_number(pack_facturare.clistaid);
SELECT A.PRET,
C.PROC_TVAV,
NVL2(A.PTVA, ROUND((A.PTVA + 100) / 100, 2), C.PROC_TVAV),
C.ID_VALUTA,
B.PRETURI_CU_TVA,
D.IN_STOC
@@ -5792,7 +5794,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
AND A.PRET = C.PRET
WHERE A.STERS = 0
AND A.ID_COMANDA = to_number(pack_facturare.clistaid)
AND A.CANTITATE > NVL(C.CANTITATE, 0) + NVL(B.CANTITATE, 0);
AND SIGN(A.CANTITATE) * A.CANTITATE > SIGN(A.CANTITATE) * (NVL(C.CANTITATE, 0) + NVL(B.CANTITATE, 0));
END inchide_comanda;
-------------------------------------------------------------------