feat: configurable invoice line sorting via RF_SORTARE_COMANDA option
cursor_comanda in PACK_FACTURARE now reads RF_SORTARE_COMANDA from OPTIUNI: 1=alphabetical (default, existing behavior), 0=original web order (by ID_COMANDA_ELEMENT). 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_FACTURARE" is
|
||||
-- 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)
|
||||
-- 23.03.2026 - Optiune sortare articole pe factura: RF_SORTARE_COMANDA (1=alfabetic, 0=ordine comanda) in cursor_comanda
|
||||
|
||||
cnume_program VARCHAR(30) := 'ROAFACTURARE';
|
||||
|
||||
@@ -2939,6 +2940,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
|
||||
V_ID_COMANDA COMENZI.ID_COMANDA%TYPE;
|
||||
V_NR_INREGISTRARI NUMBER(10);
|
||||
V_NR_INREGISTRARI_TOT NUMBER(10);
|
||||
V_TIP_SORTARE NUMBER(1) := NVL(pack_sesiune.getOptiuneFirma('RF_SORTARE_COMANDA'), 1);
|
||||
BEGIN
|
||||
pack_facturare.initializeaza_facturare(V_ID_UTIL);
|
||||
V_ID_COMANDA := TO_NUMBER(V_LISTAID);
|
||||
@@ -3058,7 +3060,8 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
|
||||
WHERE A.STERS = 0
|
||||
AND A.ID_COMANDA = V_ID_COMANDA
|
||||
AND SIGN(A.CANTITATE) * (A.CANTITATE - NVL(D.CANTITATE, 0)) > 0
|
||||
ORDER BY C.DENUMIRE;
|
||||
ORDER BY CASE WHEN V_TIP_SORTARE = 1 THEN C.DENUMIRE END ASC,
|
||||
CASE WHEN V_TIP_SORTARE = 0 THEN A.ID_COMANDA_ELEMENT END ASC;
|
||||
ELSE
|
||||
-- aviz
|
||||
OPEN V_CURSOR FOR
|
||||
@@ -3145,7 +3148,8 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
|
||||
WHERE A.STERS = 0
|
||||
AND A.ID_COMANDA = V_ID_COMANDA
|
||||
AND SIGN(A.CANTITATE) * (A.CANTITATE - NVL(D.CANTITATE, 0)) > 0
|
||||
ORDER BY C.DENUMIRE;
|
||||
ORDER BY CASE WHEN V_TIP_SORTARE = 1 THEN C.DENUMIRE END ASC,
|
||||
CASE WHEN V_TIP_SORTARE = 0 THEN A.ID_COMANDA_ELEMENT END ASC;
|
||||
END IF;
|
||||
END cursor_comanda;
|
||||
-------------------------------------------------------------------
|
||||
|
||||
1179
api/database-scripts/09_pack_sesiune.pck
Normal file
1179
api/database-scripts/09_pack_sesiune.pck
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user