Compare commits

...

3 Commits

Author SHA1 Message Date
Claude Agent
6c72be5f86 fix: add ROOT_PATH prefix to missing SKUs CSV export URL for IIS proxy
The export CSV button used a hardcoded /api/validate/missing-skus-csv path,
bypassing the IIS /gomag reverse proxy prefix. Also add changelog comments
to PACK_COMENZI and PACK_FACTURARE for the duplicate CODMAT discrimination.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:37:11 +00:00
Claude Agent
9a545617c2 chore: add version comments (20.03.2026) to pack_comenzi and pack_facturare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:37:09 +00:00
Claude Agent
95565af4cd fix: discriminare pe PRET+SIGN(CANTITATE) pentru duplicate CODMAT pe comanda
Permite articole duplicate cu preturi diferite pe aceeasi comanda (kit + direct
cu acelasi CODMAT) si articol + retur la acelasi pret. Cheia de unicitate devine
(ID_COMANDA, ID_ARTICOL, PTVA, PRET, SIGN(CANTITATE)).

Modificari in 8 locuri: duplicate check (pack_comenzi), cursor_comanda factura/aviz,
cursor_lucrare ambele ramuri, adauga_articol_lucrare_pret, adauga_articol_factura,
inchide_comanda. Zero signatura schimbata, zero schema change, zero VFP impact.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:32:55 +00:00
3 changed files with 27 additions and 11 deletions

View File

@@ -241,7 +241,7 @@ function openMapModal(sku, productName) {
}
function exportMissingCsv() {
window.location.href = '/api/validate/missing-skus-csv';
window.location.href = (window.ROOT_PATH || '') + '/api/validate/missing-skus-csv';
}
</script>

View File

@@ -4,6 +4,8 @@ create or replace package PACK_COMENZI is
-- Created : 18/08/2006
-- Purpose :
-- 20.03.2026 - duplicate CODMAT pe comanda: discriminare pe PRET + SIGN(CANTITATE)
id_comanda COMENZI.ID_COMANDA%TYPE;
procedure adauga_masina(V_ID_MODEL_MASINA IN NUMBER,
@@ -785,6 +787,8 @@ create or replace package body PACK_COMENZI is
WHERE ID_COMANDA = V_ID_COMANDA
AND ID_ARTICOL = V_ID_ARTICOL
AND NVL(PTVA,0) = NVL(V_PTVA,0)
AND PRET = V_PRET2
AND SIGN(CANTITATE) = SIGN(V_CANTITATE)
AND STERS = 0;
IF V_NR_INREG > 0 THEN

View File

@@ -10,6 +10,8 @@ CREATE OR REPLACE PACKAGE "PACK_FACTURARE" is
-- nTipIncasare: scrie_incsare2
-- descarca_gestiune - tva adaos
-- 20.03.2026 - duplicate CODMAT pe comanda: PRET in GROUP BY/JOIN (cursor_comanda, cursor_lucrare, inchide_comanda, adauga_articol_*)
cnume_program VARCHAR(30) := 'ROAFACTURARE';
TYPE cursor_facturare IS REF CURSOR;
@@ -3034,15 +3036,15 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON B.ID_POL = G.ID_POL
LEFT JOIN NOM_ARTICOLE C
ON A.ID_ARTICOL = C.ID_ARTICOL
LEFT JOIN (SELECT B1.ID_ARTICOL, SUM(B1.CANTITATE) AS CANTITATE
LEFT JOIN (SELECT B1.ID_ARTICOL, B1.PRET, SUM(B1.CANTITATE) AS CANTITATE
FROM VANZARI A1
LEFT JOIN VANZARI_DETALII B1
ON A1.ID_VANZARE = B1.ID_VANZARE
AND B1.STERS = 0
WHERE A1.STERS = 0
AND A1.ID_COMANDA = V_ID_COMANDA
GROUP BY B1.ID_ARTICOL) D
ON A.ID_ARTICOL = D.ID_ARTICOL
GROUP BY B1.ID_ARTICOL, B1.PRET) D
ON A.ID_ARTICOL = D.ID_ARTICOL AND A.PRET = D.PRET
LEFT JOIN (SELECT ID_VALUTA, CURS, MULTIPLICATOR
FROM CURS
WHERE DATA <= V_DATA_CURS
@@ -3121,15 +3123,15 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON B.ID_POL = G.ID_POL
LEFT JOIN NOM_ARTICOLE C
ON A.ID_ARTICOL = C.ID_ARTICOL
LEFT JOIN (SELECT B1.ID_ARTICOL, SUM(B1.CANTITATE) AS CANTITATE
LEFT JOIN (SELECT B1.ID_ARTICOL, B1.PRET, SUM(B1.CANTITATE) AS CANTITATE
FROM VANZARI A1
LEFT JOIN VANZARI_DETALII B1
ON A1.ID_VANZARE = B1.ID_VANZARE
AND B1.STERS = 0
WHERE A1.STERS = 0
AND A1.ID_COMANDA = V_ID_COMANDA
GROUP BY B1.ID_ARTICOL) D
ON A.ID_ARTICOL = D.ID_ARTICOL
GROUP BY B1.ID_ARTICOL, B1.PRET) D
ON A.ID_ARTICOL = D.ID_ARTICOL AND A.PRET = D.PRET
LEFT JOIN (SELECT ID_VALUTA, CURS, MULTIPLICATOR
FROM CURS
WHERE DATA <= V_DATA_CURS
@@ -3362,15 +3364,17 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON A.ID_ARTICOL = C.ID_ARTICOL
LEFT JOIN (SELECT B1.ID_ARTICOL,
A1.ID_COMANDA,
B1.PRET,
SUM(B1.CANTITATE) AS CANTITATE
FROM VANZARI A1
LEFT JOIN VANZARI_DETALII B1
ON A1.ID_VANZARE = B1.ID_VANZARE
AND B1.STERS = 0
WHERE A1.STERS = 0
GROUP BY B1.ID_ARTICOL, A1.ID_COMANDA) D
GROUP BY B1.ID_ARTICOL, A1.ID_COMANDA, B1.PRET) D
ON A.ID_ARTICOL = D.ID_ARTICOL
AND A.ID_COMANDA = D.ID_COMANDA
AND A.PRET = D.PRET
LEFT JOIN (SELECT ID_ARTICOL,
SUM(CANTS + CANT - CANTE) AS CANT_STOC,
CONT
@@ -3510,15 +3514,17 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON A.ID_ARTICOL = C.ID_ARTICOL
LEFT JOIN (SELECT B1.ID_ARTICOL,
A1.ID_COMANDA,
B1.PRET,
SUM(B1.CANTITATE) AS CANTITATE
FROM VANZARI A1
LEFT JOIN VANZARI_DETALII B1
ON A1.ID_VANZARE = B1.ID_VANZARE
AND B1.STERS = 0
WHERE A1.STERS = 0
GROUP BY B1.ID_ARTICOL, A1.ID_COMANDA) D
GROUP BY B1.ID_ARTICOL, A1.ID_COMANDA, B1.PRET) D
ON A.ID_ARTICOL = D.ID_ARTICOL
AND A.ID_COMANDA = D.ID_COMANDA
AND A.PRET = D.PRET
LEFT JOIN (SELECT ID_ARTICOL,
SUM(CANTS + CANT - CANTE) AS CANT_STOC,
CONT
@@ -4867,6 +4873,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
WHERE A.ID_COMANDA = V_ID_COMANDA
AND A.ID_ARTICOL = V_ID_ARTICOL
AND A.ID_POL = V_ID_POL
AND A.PRET = V_PRETIN
AND A.STERS = 0;
EXCEPTION
WHEN TOO_MANY_ROWS THEN
@@ -5044,6 +5051,7 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
ON A.ID_ARTICOL = D.ID_ARTICOL
WHERE A.ID_COMANDA = V_ID_COMANDA
AND A.ID_ARTICOL = V_ID_ARTICOL
AND A.PRET = V_PRET_TEMP
AND A.STERS = 0;
WHEN pack_facturare.ntip = 4 THEN
@@ -5758,15 +5766,18 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
LEFT JOIN (SELECT ID_ARTICOL,
ID_POL,
ID_VALUTA,
PRET,
SUM(CANTITATE) AS CANTITATE
FROM VANZARI_DETALII_TEMP
GROUP BY ID_ARTICOL, ID_POL, ID_VALUTA) B
GROUP BY ID_ARTICOL, ID_POL, ID_VALUTA, PRET) B
ON A.ID_ARTICOL = B.ID_ARTICOL
AND A.ID_POL = B.ID_POL
AND A.ID_VALUTA = B.ID_VALUTA
AND A.PRET = B.PRET
LEFT JOIN (SELECT B.ID_ARTICOL,
B.ID_POL,
B.ID_VALUTA,
B.PRET,
SUM(B.CANTITATE) AS CANTITATE
FROM VANZARI A
LEFT JOIN VANZARI_DETALII B
@@ -5774,10 +5785,11 @@ CREATE OR REPLACE PACKAGE BODY "PACK_FACTURARE" is
AND B.STERS = 0
WHERE A.ID_COMANDA = to_number(pack_facturare.clistaid)
AND A.STERS = 0
GROUP BY B.ID_ARTICOL, B.ID_POL, B.ID_VALUTA) C
GROUP BY B.ID_ARTICOL, B.ID_POL, B.ID_VALUTA, B.PRET) C
ON A.ID_ARTICOL = C.ID_ARTICOL
AND A.ID_POL = C.ID_POL
AND A.ID_VALUTA = C.ID_VALUTA
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);