# Tipurile de document din facturare (`VANZARI.TIP`) si seturile de contare (`ID_SET`)

Referinta pentru toata suita ROA: `PACK_FACTURARE` e in `COMUN`, iar `VANZARI.TIP` e citit de
view-urile `FACT_VFACTURI` / `FACT_VFACTURI2`, de gridul principal de listare si de retiparire.

**Surse** (nu presupuneri):

- perechile `(lnIdSet, tnTip)` — comentariul din antetul `PACK_FACTURARE` (`:80-125` in exportul
  `all_source`), singurul loc care le documenteaza impreuna;
- eticheta afisata — `CASE a.tip` din coloana `EXPLICATIE` a celor doua view-uri, citit din sursa
  live de pe `MARIUSM_AUTO` (06.08.2026);
- restul — cod, marcat ca atare.

`ID_SET` e setul de formule contabile (`XSETS.ID_SET`, ajunge in `ACT.ID_SET`), pus in variabila de
pachet `pack_facturare.nid_set` din `initializeaza_date_factura` (`:1864`). **Regula generala: setul
"cu scadere din gestiune" e cel de baza + 10.**

## Facturi

| `ID_SET` | cu scadere | `TIP` | Document | `EXPLICATIE` afisat |
|---|---|---|---|---|
| 25000 | 25010 | 1 | pe baza de lista de preturi | `POLITICA PRETURI` |
| 25001 | 25011 | 2 | pe baza de contracte | `CONTRACT` |
| 25002 | 25012 | 3 | pe baza de comenzi | `COMANDA` |
| 25003 | 25013 | 4 | pe baza de avize | `FACT. DIN AVIZ` |
| 25004 | 25014 | 5 | lista de preturi in valuta | `POLITICA PRETURI - INVOICE` |
| 25005 | 25015 | 6 | contract in valuta | `CONTRACT - VALUTA` |
| 25006 | — | 7 | credit note | `CREDIT NOTE` |
| 25007 | 25017 | 8 | retur factura in lei | `RETUR FACTURA IN LEI` |
| 25008 | 25018 | 9 | retur factura in valuta | `RETUR INVOICE` |
| 25009 | 25019 | 10 | factura fiscala in valuta | `POLITICA PRETURI - FACTURA VALUTA` |
| 25042 | 25052 | 43 | bon fiscal (ROARETAIL, colectate de la magazine) | `BONURI FISCALE MAGAZINE` |
| 25043 | — | 44 | factura hotel | `HOTEL` |
| 25044 | 25054 | 45 | factura restaurant | `RESTAURANT` |
| 25045 | 25055 | **46** | **nota de plata restaurant** | **nicio ramura** |
| 25047 | 25057 | 48 | factura marfa custodie **cu** descarcare K | `FACT. CUSTODIE CU DESCARCARE PE BAZA DE K` |
| 25048 | 25058 | 49 | factura marfa custodie **fara** descarcare K | `FACT. CUSTODIE FARA DESCARCARE PE BAZA DE K` |
| 25051 | 25061 | 52 | pe baza de contract, factura fiscala in valuta | `CONTRACT - FACTURA VALUTA` |
| 50100 | 25060 | 51 | factura ROAACNPRO | `COMERCIAL-FACTURARE` |

## Avize de expeditie

| `ID_SET` | cu scadere | `TIP` | Document | `EXPLICATIE` afisat |
|---|---|---|---|---|
| 25020 | 25030 | 21 | catre clienti, **din comanda** | `AVIZ PE BAZA DE COMANDA` |
| 25021 | 25031 | 22 | catre clienti, din lista de preturi | `AVIZ DIN POLITICA DE PRETURI` |
| 25022 | 25032 | 23 | transfer catre subunitati, din lista | `TRANSFER` |
| 25023 | 25033 | 24 | aviz de retur | `AVIZ DE RETUR` |
| 25024 | 25034 | 25 | transfer catre subunitati, **din comanda** | `TRANSFER PE BAZA DE COMANDA` |
| 25025 | 25035 | 26 | catre clienti, din contract | `AVIZ PE BAZA DE CONTRACT` |
| 25026 | 25036 | 27 | transfer catre subunitati, **pe baza de lucrare** | `TRANSFER PE BAZA DE LUCRARE` |
| 25027 | 25037 | 28 | catre clienti debitori, **din comanda** | `CLIENTI DEBITORI - COMANDA` |
| 25028 | 25038 | 29 | catre clienti debitori, din lista | `CLIENTI DEBITORI - POLITICA PRETURI` |
| 25029 | 25039 | 30 | transfer catre subunitati, pe baza de NIR | `AVIZ PE BAZA DE NIR` |
| 25040 | 25050 | 41 | retur transfer catre subunitati, lista de pret | `RETUR TRANSFER` |
| 25041 | 25051 | 42 | catre clienti **custodie, din comanda** | `CLIENTI IN CUSTODIE - COMANDA` |
| 25046 | 25056 | **47** | catre clienti **custodie, din comanda, pentru descarcare cu K** | `CLIENTI IN CUSTODIE - COMANDA (K)` |
| 25049 | 25059 | 50 | *in lucru* — retur de la clienti custodie | nicio ramura |

## Tipuri negative

Nu apar in comentariul din pachet; luate din `CASE`-ul `EXPLICATIE`. Vin din alte produse sau din
fluxuri valorice.

| `TIP` | `EXPLICATIE` afisat | Observatii |
|---|---|---|
| -1 | `MATERII PRIME SI MATERIALE` | |
| -2 | `PRODUSE` | |
| -3 | `MARFURI LA PRET DE ACHIZITIE` | |
| -4 | `MARFURI LA PRET DE VANZARE` | |
| -6 | `RETUR TRANSFER DIN GESTIUNE VALORICA` | ROAGEST; `ID_SET` 236/240/241/242 |
| -7 | `AVIZ DE RETUR - VALORIC` | |
| -8 | `FACTURA DE RETUR - VALORICA` | |
| -9 | `PROTOCOL CU TVA - AVIZ EXPEDITIE` | |
| -10 | `SPONSORIZARE - AVIZ EXPEDITIE` | |
| -11 | `MARFURI LA PRET DE ACHIZITIE *` | |
| -12 | `DEVIZE AUTO` | **ROAAUTO**, `factureaza_deviz` din `oproceduri_devize.prg` |
| -13 | `RETUR MARFA IN CUSTODIE` | |

## Seturile de tipuri folosite in cod (unde conteaza incadrarea)

| Set | Unde | Ce face |
|---|---|---|
| `{3, 21, 28, 42, 47}` | `initializeaza_date_factura` (`:1888-1894`) | populeaza `pack_facturare.nid_comanda` din `clistaid` |
| `+ {27}` | `scrie_avize_lucrare:5859` | suprascrie `nid_comanda` prin cursor pe `COMENZI` legat de `ID_LUCRARE` |
| `{3, 21, 27, 28, 42, 46}` | `ALTELE` in ambele view-uri | afiseaza **comanda** (`nr_comanda/data`) |
| `{4, 24, 8, 9}` | `ALTELE` in ambele view-uri | afiseaza **avizul** |
| `{23, 25, 27, 30, 41, -6}` | `CLIENT` in ambele view-uri | afiseaza gestiunea, nu partenerul |
| `{23, 25, 27, 30, 41}` si `-6` | `scrie_in_vanzari` (disc `:13530-13540`) | `lnIdGestiune` explicit, nu `min()` din detalii |

## Capcane confirmate

1. **`46` vs `47` in `ALTELE`.** Lista din view contine `46` (nota de plata restaurant, document
   care n-are comanda) si **nu contine** `47` (aviz custodie din comanda, care are). Pachetul
   populeaza `nid_comanda` pentru `47`, nu pentru `46`. `CASE`-ul `EXPLICATIE` din acelasi view are
   ramura pentru `47` si **nu** are pentru `46` — deci cele doua `CASE`-uri din acelasi view se
   contrazic pe aceste doua cifre. Decizia lui Marius (06.08.2026): **se adauga `47`, `46` ramane
   asa cum a fost scris.**
2. **Efect vizibil pe `46`, azi**: ramura fiind luata fara ca documentul sa aiba comanda,
   `f.nr_comanda || '/' || to_char(f.data_comanda, ...)` da un **`/`** singur in coloana "Altele",
   nu gol. Nu s-a observat pe date pentru ca niciun client verificat nu foloseste modulul de
   restaurant (0 documente `tip=46` si pe `MARIUSM_AUTO`, si pe `VENDING`).
3. **`ID_SET` 25051 apare de doua ori** in comentariul din pachet: ca set "cu scadere" pentru
   `tip=42` si ca set de baza pentru `tip=52`. Coliziune in documentatie, neverificata pe
   `XSETS` — de lamurit inainte de a te baza pe ea.
4. **`tip=51`**: comentariul spune "factura ROAACNPRO", eticheta afisata e `COMERCIAL-FACTURARE`.
   Acelasi lucru, doua denumiri; eticheta din view e cea confirmata de constantele VFP curente
   (`ofacturare_comun.vc2:3654,3657`).
5. **`tip=50`** e marcat "in lucru" in comentariu si n-are ramura de eticheta — de tratat ca
   neterminat, nu ca tip valid.
6. **Comentariul nu e cod.** E singura documentare a perechilor `(ID_SET, TIP)`, dar poate fi ramas
   in urma. Inainte de a te baza pe o linie din el pentru o modificare, confirm-o pe cod
   (`initializeaza_date_factura`, `CASE`-urile din view-uri) sau pe `XSETS`.

## Legaturi

- `scripturi-migrare-db.md` — sursa de referinta pentru DDL e `MARIUSM_AUTO`, nu o schema de client.
- `conventie_null_vfp.md` — `TIP_INCASARE` si celelalte coloane `0` vs `NULL` din view-uri.
