Date, ore și bani
Cum arată pe fir o zi, un moment și o sumă, unde contează ora României și cum se calculează TVA-ul pe facturi.
Pe scurt
| Ce | Forma pe fir | Exemplu |
|---|---|---|
| Zi | AAAA-LL-ZZ | 2026-11-11 |
| Lună (evidență) | AAAA-LL | 2026-11 |
| Moment | ISO 8601 cu fus orar | 2026-11-11T10:24:05.000Z |
| Sumă (meniu, prețuri) | text cu exact două zecimale, în lei | "30.00" |
| Sumă (finanțe, evidență) | text cu exact două zecimale | "4635.00" |
| Monedă (finanțe, facturi) | RON, EUR sau USD | "RON" |
| Cotă TVA pe factură | 0, 11 sau 21 | 21 |
Zile și momente
- O zi este o dată calendaristică fără oră:
AAAA-LL-ZZ. - Un moment este ISO 8601 cu fus orar. Schemele acceptă orice decalaj (
Z,+02:00,+03:00); serverul scrie de regulă în UTC, cuZla final. - Excepție: lista de rapoarte (
GET /v1/rapoarte) dă momentul fișierului cu decalajul orei României (+02:00iarna,+03:00vara).
Citește momentele ca momente, nu ca text: compară-le după ce le transformi în dată, ca un +03:00 și un Z să fie tratate corect.
Ora României și UTC
Serverul rulează pe UTC. Tot ce înseamnă „azi” pentru restaurant se calculează însă pe ora României (Europe/Bucharest), cu trecerea la ora de vară făcută automat.
| Unde | Ce înseamnă „ziua” |
|---|---|
| Ofertele | data de azi la București |
| Evidența zilnică | ziua României, nu ziua UTC |
Sarcinile programate
Codul platformei pune ora României pe fiecare sarcină cu oră fixă. Ce rulează de fapt pe serverul platformei s-a citit pe 12.11.2026 și e în Ce rulează în fundal.
| Sarcină | În cod | Pe server |
|---|---|---|
| Evidența zilnică | în fiecare zi, la 06:10 ora României | nu e instalată |
| Facturile din SPV (ANAF) | de luni până sâmbătă, la 08:30 ora României | o sincronizare SPV zilnică, la 03:00 ora României |
| Statisticile complete ale rețelelor sociale | în fiecare zi, la 03:20 ora României | instalată, dar oprită |
| Sincronizarea registrului cu FGO | la minutul 07 și 37 al fiecărei ore | nu e instalată |
Bani
Sumele se trimit ca text cu exact două zecimale, cu punct: "30.00", "2.50". Nu sunt bani întregi (nu 3000) și nu sunt numere zecimale (nu 30.0).
Motivul: în baza de date sumele sunt numeric, iar textul trece neschimbat de la bază la pagină, fără rotunjirile unui număr cu virgulă mobilă.
| Tip | Forma | Plaja |
|---|---|---|
| Sumă financiară | ^\d{1,12}\.\d{2}$ | până la 12 cifre înainte de punct |
| Sumă din evidență | ca suma financiară, dar mai mare ca zero | — |
{ "pret": "30.00" } // corect
{ "pret": "30" } // 400: lipsesc zecimalele
{ "pret": 30.0 } // 400: număr, nu textNu toate modulele folosesc textul. Liniile facturilor și ale documentelor fiscale primesc cantitate și pret ca numere JSON, iar prețul poate avea cel mult 4 zecimale. Verifică schema rutei în referința API.
TVA pe facturi
Ciornele de factură și proformă (facturi-documente) au TVA pe fiecare linie:
- cota se alege pe linie din
0,11sau21; serverul nu pune o cotă implicită; - clientul trimite doar
cantitate,pretșicota_tva; valoarea, TVA-ul și totalurile le calculează serverul; - valoarea liniei =
cantitate × pret, rotunjită la ban; TVA-ul = valoare × cotă, rotunjit la ban; - totalurile sunt suma liniilor:
total_fara_tva,total_tva,total; - un preț negativ înseamnă discount, dar baza pe fiecare cotă trebuie să rămână cel puțin zero; altfel
422cu motivulbaza_negativa_cota_<cotă>.
Serviciile din catalogul de clienți au o cotaTva între 0 și 100, aleasă de firmă.