Oracle Schema Notes — MARIUSM_AUTO
Reference pentru tabelele, procedurile și relațiile Oracle descoperite în debugging.
Tabele comenzi
COMENZI
| Coloană |
Tip |
Notă |
| ID_COMANDA |
NUMBER (PK) |
Auto-generated |
| COMANDA_EXTERNA |
VARCHAR2 |
Nr. comandă GoMag (ex: 481588552) |
| DATA_COMANDA |
DATE |
|
| ID_PART |
NUMBER |
FK → NOM_PARTENERI |
| PROC_DISCOUNT |
NUMBER(10,4) |
Discount procentual pe comandă (setat 0 la import) |
| STERS |
NUMBER |
Soft-delete flag |
COMENZI_ELEMENTE
| Coloană |
Tip |
Notă |
| ID_COMANDA_ELEMENT |
NUMBER (PK) |
Auto-generated |
| ID_COMANDA |
NUMBER |
FK → COMENZI |
| ID_ARTICOL |
NUMBER |
FK → NOM_ARTICOLE |
| ID_POL |
NUMBER |
FK → CRM_POLITICI_PRETURI |
| PRET |
NUMBER(14,3) |
Preț per unitate (cu/fără TVA per PRET_CU_TVA flag) |
| CANTITATE |
NUMBER(14,3) |
Cantitate (negativă pentru discount lines) |
| DISCOUNT_UNITAR |
NUMBER(20,4) |
Default 0 |
| PTVA |
NUMBER |
Procentul TVA (11, 21, etc.) |
| PRET_CU_TVA |
NUMBER(1) |
1 = prețul include TVA |
| STERS |
NUMBER |
Soft-delete flag |
Discount lines: qty negativă, pret pozitiv. Ex: qty=-1, pret=51.56 → scade 51.56 din total.
Tabele facturare
VANZARI
| Coloană |
Tip |
Notă |
| ID_VANZARE |
NUMBER (PK) |
|
| NUMAR_ACT |
NUMBER |
Număr factură (nract) |
| SERIE_ACT |
VARCHAR2 |
Serie factură |
| TIP |
NUMBER |
3=factură pe bază de comandă, 1=factură simplă |
| ID_COMANDA |
NUMBER |
FK → COMENZI (pentru TIP=3) |
| ID_PART |
NUMBER |
FK → NOM_PARTENERI |
| TOTAL_FARA_TVA |
NUMBER |
Total calculat de pack_facturare |
| TOTAL_TVA |
NUMBER |
|
| TOTAL_CU_TVA |
NUMBER |
|
| DIFTOTFTVA |
NUMBER |
Diferența față de totalul trimis de client ROAFACTUARE |
| DIFTOTTVA |
NUMBER |
|
| STERS |
NUMBER |
|
VANZARI_DETALII
| Coloană |
Tip |
Notă |
| ID_VANZARE_DET |
NUMBER (PK) |
⚠ NU id_detaliu! |
| ID_VANZARE |
NUMBER |
FK → VANZARI |
| ID_ARTICOL |
NUMBER |
FK → NOM_ARTICOLE |
| CANTITATE |
NUMBER |
|
| PRET |
NUMBER |
Preț de vânzare |
| PRET_ACHIZITIE |
NUMBER |
|
| PROC_TVAV |
NUMBER |
Coeficient TVA (1.21, 1.11, etc.) |
| ID_GESTIUNE |
NUMBER |
NULL pentru discount lines |
| CONT |
VARCHAR2 |
'371', NULL pentru discount lines |
| STERS |
NUMBER |
|
Tabele prețuri
CRM_POLITICI_PRETURI
| Coloană |
Tip |
Notă |
| ID_POL |
NUMBER (PK) |
ID politică de preț |
| PRETURI_CU_TVA |
NUMBER |
1 = prețurile includ TVA |
CRM_POLITICI_PRET_ART
| Coloană |
Tip |
Notă |
| ID_POL |
NUMBER |
FK → CRM_POLITICI_PRETURI |
| ID_ARTICOL |
NUMBER |
FK → NOM_ARTICOLE |
| PRET |
NUMBER |
Preț de listă (cu/fără TVA per PRETURI_CU_TVA din politică) |
| PROC_TVAV |
NUMBER |
Coeficient TVA |
Politici folosite: id_pol=39 (vânzare), id_pol=65 (transport).
ARTICOLE_TERTI
| Coloană |
Tip |
Notă |
| SKU |
VARCHAR2 |
SKU din magazin web (GoMag) |
| CODMAT |
VARCHAR2 |
CODMAT în ROA (FK → NOM_ARTICOLE.CODMAT) |
| CANTITATE_ROA |
NUMBER |
Conversie: 1 web unit = X ROA units |
| ACTIV |
NUMBER |
|
| STERS |
NUMBER |
|
cantitate_roa semnificații:
1 → 1:1 (unitate identică web/ROA)
0.5 → 1 web unit (50 buc) = 0.5 ROA set (100 buc). Price sync: pret_web / 0.5
10 → bax 1000buc = 10 seturi ROA (100 buc). Kit pricing activ.
22.5 → bax 2250buc = 22.5 seturi ROA (100 buc). Kit pricing activ.
Proceduri cheie
PACK_COMENZI.adauga_articol_comanda
- Lookup pret din CRM_POLITICI_PRET_ART, dar dacă V_PRET IS NOT NULL → folosește V_PRET
- NU inversează semnul prețului — V_PRET se salvează ca atare
- Check duplicat: dacă există rând cu același (id_articol, ptva, pret, sign(cantitate)) → eroare
PACK_FACTURARE flow (facturare pe bază de comandă, ntip=42)
cursor_comanda → citește COMENZI_ELEMENTE, filtrează SIGN(A.CANTITATE) * (A.CANTITATE - NVL(D.CANTITATE, 0)) > 0
cursor_gestiuni_articol → verifică stoc per articol
initializeaza_date_factura → setează sesiune facturare
adauga_articol_factura (×N) → inserează în VANZARI_DETALII_TEMP
scrie_factura2 → procesează temp, contabilizează
finalizeaza_scriere_verificare → finalizează factura
PACK_SESIUNE
nzecimale_pretv — variabilă package, setată la login ROAFACTUARE
- Inițializare:
pack_sesiune.getoptiunefirma(USER, 'PPRETV') = 2 (pe MARIUSM_AUTO)
- Nu e setată în context server-side (import comenzi) → folosim
getoptiunefirma direct
OPTIUNI (tabel configurare)
- Coloane:
VARNAME, VARVALUE (⚠ NU cod/valoare)