Files
comun/docs/tipuri_documente_facturare.md

7.1 KiB

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.mdTIP_INCASARE si celelalte coloane 0 vs NULL din view-uri.