- Header reorganizat cu meniu Acțiuni (overflow dropdown) - Buton nou PDF ANAF (transformare oficială XML->PDF prin API ANAF) - Fix endpoint ANAF: validează default + ruta publică fără auth
9.7 KiB
9.7 KiB
Changelog
0.9-beta-15 - 05.05.2026
New Features
- Buton nou „PDF ANAF" în meniul Acțiuni: descarcă PDF-ul oficial al facturii generat direct de ANAF din XML-ul curent. Înainte de generare, ANAF validează factura — dacă apar erori, sunt afișate în loc să descarce un PDF cu informații greșite. Disponibil când serverul are configurat suport pentru API-ul ANAF.
Modifications
- Reorganizat header-ul aplicației: butoanele secundare (Printează, Descarcă PDF, PDF ANAF, Validare ANAF) sunt grupate într-un meniu „Acțiuni ▾" pentru reducerea aglomerării. În header rămân vizibile permanent doar acțiunile principale: Alege Fișier, Factură Nouă, Stornează, Salvează XML.
- Eliminat selectorul Standard/Compact și butonul „Printează" injectate dinamic în header — opțiunile sunt acum directe în meniul Acțiuni („Printează — Standard" și „Printează — Compact"), un singur click pentru orice variantă.
- Pe mobil meniul Acțiuni se deschide pe toată lățimea ecranului sub header.
Bugfixes
- Fixed: butonul „Validare ANAF" (existent în versiuni anterioare) și endpoint-ul folosit pentru transformarea XML → PDF foloseau ruta cu autentificare OAuth (
api.anaf.ro) chiar și fără un token configurat — acum, în lipsa token-ului, se folosește ruta publică ANAF (webservicesp.anaf.ro) care nu necesită autentificare. Astfel funcționalitățile ANAF merg și pe servere fără token. - Fixed: apelul anterior pentru transformarea în PDF folosea forma „skip validare" — în versiuni viitoare, când ar fi fost cablată, ar fi descărcat un PDF chiar și pentru XML-uri cu probleme. Acum validarea e implicită și erorile blochează descărcarea.
0.9-beta-14 - 05.05.2026
Bugfixes
- Fixed: pe găzduirea cu PHP 7.3 (a2hosting),
receiver.phpreturna 500 Internal Server Error la upload XML din cauza unei sintaxe noi (arrow functionfn() =>) introduse în beta-13. Înlocuită cu funcție anonimă clasică, compatibilă cu PHP 7.3+.
Modifications
- Adăugat
sync-to-website.sh— script pentru propagarea modificărilor către sub-directorulefactura-generator/din repo-ulromfast-website(de unde se face deploy cătrehttps://romfast.ro/efactura-generator/). Scriptul exclude automat fișierele care nu au ce căuta pe shared hosting (Dockerfile, web.config, docs interne) șiconfig.jsoncuapi_key(gestionat doar pe server). sync-to-website.shpoate face și deploy direct pe găzduirea de producție:--deploy(mirror local + deploy a2hosting) și--deploy-only(sare peste mirror, deploy direct canonic → server). Funcționează cu--dry-runpentru previzualizare și verifică SSH înainte să încerce rsync-ul.- Documentate cele trei ținte de deploy în
CLAUDE.md(GitHub Pages, romfast.ro via romfast-website, Docker/Dokploy) și avertizare PHP 7.3 pentru găzduirea a2hosting.
0.9-beta-13 - 04.05.2026
Bugfixes
- Fixed: la încărcarea unui XML cu furnizor sau client neplătitor de TVA, codul fiscal apărea în câmpul „Nr. înregistrare" iar „Cod TVA" rămânea gol. Acum, dacă firma nu e plătitoare TVA, CIF-ul se completează în „Cod TVA" și numărul de la Registrul Comerțului în „Nr. înregistrare" (simetric cu modul în care se salvează XML-ul).
- Fixed: deploy în Docker/Dokploy returna „Acces interzis" la căutare CIF și validare ANAF, deoarece request-urile veneau prin reverse proxy și apăreau ca venind dintr-un IP intern, nu de la utilizator. Lista de IP-uri permise se poate dezactiva acum (gol sau
*).
Modifications
- Configurare receiver prin variabile de mediu (
ANAF_API_KEY,ANAF_ALLOWED_IPS,ANAF_TOKEN,ANAF_TEMP_LIFETIME) — suprascriu valorile dinconfig.json. Util pentru deploy în container fără rebuild la schimbare configurație. - Dockerfile: setează implicit
ANAF_ALLOWED_IPS=*(verificare IP dezactivată), potrivit pentru deploy behind reverse proxy unde same-origin asigură deja protecția.
0.9-beta-12 - 04.05.2026
Bugfixes
- Fixed: eroare BR-CO-15 falsă după click pe „Recalculează Totaluri" — defalcarea TVA părea să nu corespundă cu Total TVA, deși matematica era corectă.
- Fixed: eroare BR-16 falsă pe linii cu cantitate fracționară (ex. 1,000 buc) — totalul liniei era marcat greșit ca incorect.
- Fixed: la salvare apărea „completați toate câmpurile obligatorii" chiar când nu se referențiază altă factură. Câmpul „Data factură referită" e opțional și nu mai blochează salvarea când e gol.
- Fixed: „Factură Nouă" — eroare XML declaration duplicată la parsare (
XMLSerializerinclude deja<?xml?>, codul o prefixa din nou). Strip declaration înainte de concatenare.
Modifications
- ANAF lookup CIF: completare automată oraș, județ, telefon și prefix
ROla CIF-ul plătitorilor TVA. Toast indică acum statusulPlătitor/Neplătitor TVA · Înregistrat eFactura. CâmpurileCountrySubentity(SELECT RO-XX) șiCountryse populează automat. - Număr factură: pre-populare din secvența localStorage la deschiderea aplicației (fără incrementare contor).
- Număr factură: format configurabil — serie + spațiu + an opțional + contor cu N cifre (1–8). Exemple:
RFT 20260001(cu an) sauRFT 0001(fără an). Modal „Factură Nouă" extins cu checkbox „Include an în număr" și input „Cifre contor".
0.9-beta-11 - 04.05.2026
Bugfixes
- Fixed: Lookup CIF ANAF nu mai funcționa — migrat la API v9 (PlatitorTvaRest) care a înlocuit v8-ul async.
Modifications
- Added: Documentație rulare locală și Docker în README.
- Added: Script
start.shpentru pornire dev (Node :3000 + PHP :8000) cu auto-stop al proceselor existente pe aceste porturi. Banner-ul indică explicit:8000pentru testare cu ANAF/receiver,:3000pentru testare statică.
0.9-beta-10 - 30.04.2026
New Features
- Added: Import bulk — se pot încărca mai multe fișiere XML (sau ZIP) simultan. Un sidebar afișează lista fișierelor deschise; fișierele modificate sunt marcate vizual. Limită 50 fișiere.
0.9-beta-9 - 30.04.2026
New Features
- Added: Catalog produse local — articolele pot fi salvate în catalogul browserului și refolosite prin autocomplete la câmpul „Denumire" pe orice linie factură.
0.9-beta-8 - 30.04.2026
New Features
- Added: Numerotare automată facturi — buton „Factură Nouă" generează numărul următor din serie configurată (ex.
RFT2026-0042). La trecerea anului, aplicația întreabă dacă se continuă seria sau se resetează contorul la 1.
0.9-beta-7 - 30.04.2026
New Features
- Added: Descărcare PDF direct din browser, fără server — buton „Descarcă PDF" în header și în paginile de printare.
0.9-beta-6 - 30.04.2026
New Features
- Added: Validare XML la ANAF — buton „Validare ANAF" trimite factura la serverul ANAF și afișează erorile returnate (disponibil doar când receiver.php este activ).
- Added: Lookup CIF ANAF — buton „Caută CIF" lângă câmpurile cod TVA completează automat numele, adresa și numărul de înregistrare al firmei.
0.9-beta-5 - 30.04.2026
New Features
- Added: Încărcare ZIP — fișierele ZIP cu XML eFactura pot fi încărcate direct (prin buton sau drag-and-drop); primul XML din arhivă este extras automat.
- Added: Redesign vizual complet — font Geist, paletă warm-paper cu header slate, spațiere și contrast îmbunătățite.
- Added: Profil furnizor — datele furnizorului pot fi salvate în browser și refolosite la facturi noi cu un singur click.
- Added: Tip factură — câmp nou pentru tipul documentului: factură comercială, notă de credit, factură corectată sau autofactură.
- Added: Modalități de plată — secțiune nouă cu unul sau mai multe rânduri cod plată + IBAN.
- Added: Referință factură originală — câmpuri pentru numărul și data facturii la care se referă storno-ul; completate automat la apăsarea „Stornează".
- Added: Validare matematică inline — badge verde/roșu pe fiecare linie și la total, arată dacă valorile sunt consistente. La salvare apare un avertisment dacă există diferențe.
- Added: Validare CIF/CUI pe blur — eroare inline dacă cifra de control nu este corectă.
- Added: Validare IBAN pe blur — eroare inline dacă IBAN-ul are lungime sau check digits incorecte.
- Added: Panel reguli CIUS-RO — panou flotant cu lista erorilor de conformitate față de standardul eFactura, actualizat în timp real. Click pe o eroare navighează la câmpul problematic.
Bugfixes
- Fixed: Funcția „Stornează" lăsa valorile interne inconsistente față de ce era afișat în formular.
0.9-beta-4 - 07.02.2025
Bugfixes
- Fixed: Al doilea tag TaxTotal se generează doar când valuta documentului diferă de valuta TVA.
0.9-beta-3 - 14.01.2025
Bugfixes
- Fixed: Discounturile de pe articole nu se mai cumulează în discount global pe factură.
New Features
- Added: Se completează valoare reducere și cod reducere pe fiecare articol.
0.9-beta-2 - 07.01.2025
Bugfixes
- Fixed: Selecția judet București și afișare oraș.
New Features
- Added: Se completează codul și motivul scutirii în secțiunea "Defalcare TVA" pentru articole cu Tip TVA "E" Neimpozabil.
- Added: S-a tratat cazul în care furnizorul nu este plătitor de TVA (codul fiscal nu are atributul fiscal "RO").
- Added: Citire din xml coduri identificare articole (vânzător, cumpărător, cod de bare, CPV, NC8, vamal).
- Added: Editare, adăugare, ștergere coduri identificare articole.
Modifications
- Modified: Afișare responsive pentru ecrane de diferite dimensiuni.
TODO
- Implement: citire și editare referință factura originală pentru factura storno.
- Implement: citire și editare modalități de plată.
0.9-beta-1 - 06.01.2025
- Initial beta release.