Fiecare robot are tabul lui. Contextul general (viziune, cadru tehnic) e pe pagina de prezentare.
Robotul configurează un nou client (SRL) în SAGA Desktop, pornind de la datele deja existente în BONO, și apoi face legătura cu SAGA Web.
Toate valorile vin din atributele clientului din BONO.
| Câmp în SAGA | Atribut BONO | Necesar |
|---|---|---|
| Denumire | BONOclient_denumire | Obligatoriu |
| Cod fiscal (fără RO) | BONOclient_CUI | Obligatoriu |
| Nr. Reg. Comerțului | BONOclient_J | Obligatoriu |
| Cod CAEN principal | BONOclient_CAEN_Prim | Obligatoriu |
| Capital social | BONOclient_capitalSocial | Obligatoriu |
| Localitate / Județ / Adresă | BONOclient_Oras · _Judet · _Adresa | Obligatoriu |
| Cont 1 (IBAN) | BONOclient_IBAN | Obligatoriu |
| Impozit (micro / profit) | BONOclient_impozit | Obligatoriu |
| Mod plată TVA | BONOclient_TVA | Obligatoriu |
| Luna / An începere | BONOclient_lunaInfiintare · _anInfiintare | Obligatoriu |
Din bara de meniu, deschide Administrare → Configurare societăți.
Apasă Adaug.
Se creează o linie nouă, cu cod generat automat.
Completează Denumire (BONOclient_denumire), Cod fiscal fără prefixul RO (BONOclient_CUI) și Nr. Reg. Comerțului (BONOclient_J).
Lasă Blocat debifat.
Apasă Salvez.
Selectează Tip contabilitate „Societăți comerciale”.
Completează Cod CAEN (BONOclient_CAEN_Prim) și Capital social (BONOclient_capitalSocial).
Pe tab-ul Sediu social, completează Localitatea (BONOclient_Oras), Județul (BONOclient_Judet), Strada și Numărul (BONOclient_Adresa).
La Cont 1, completează IBAN-ul principal (BONOclient_IBAN) și denumirea băncii (BONOclient_banca).
Pe tab-ul Informații generale, bifează impozit pe venit dacă firma e microîntreprindere, altfel lasă debifat (BONOclient_impozit).
Setează TVA „Neplătitor” (BONOclient_TVA).
Păstrează FIFO și „Fără casă de marcat”.
Setează luna și anul de începere (BONOclient_lunaInfiintare, BONOclient_anInfiintare).
Lasă soldurile 0 și apasă Validez.
Meniul firmei se activează.
Deschide planul de conturi.
Adaugă conturile contabile: 5121.01 (Cont RON principal), 5124.01 (Cont EUR) și 5124.02 (Cont USD).
Deschide Administrare → Numere și serii.
Selectează din listă „Factura de ieșire” și apasă Adaugă.
Completează primul număr și ultimul număr, apoi apasă Salvez.
Se pot adăuga oricâte serii preluate din facturare.
Deschide Administrare → Întreținere BD și mergi pe tab-ul WEB.
Încarcă fișierul .RSA și completează emailul și parola.
Apasă Validare conexiune, apoi Yes la transfer.
La „Conectare reușită”, firma e pe SAGA Web.
Robot de sine stătător: pornește SAGA Desktop și deschide sesiunea de lucru pe firma țintă. Este precondiția comună a tuturor roboților care operează pe SAGA Desktop — rulează o dată, la începutul lanțului, apoi predă controlul robotului următor.
| Parametru | Descriere |
|---|---|
| Firma țintă | Denumirea firmei SAGA pe care se lucrează (ex. „BONO FINTECH TEST SAGA SRL”). |
| Data de lucru | Data sesiunii — câmpul Data din ecranul de logare. |
| Contul de conectare la WEB. | |
| Parolă | Parola contului. Mod de stocare și furnizare către robot — de clarificat (securitate). |
Se lansează aplicația; apare ecranul de logare cu lista firmelor.
Robotul caută firma în listă după denumirea exactă și o selectează.
Se completează câmpul Data și, în panoul „Date conectare la WEB”, e-mailul și parola.
Fereastra principală SAGA se deschide, cu denumirea firmei în bara de titlu. Robotul confirmă sesiunea și predă controlul robotului următor.
SAGA Desktop · pornind de la un fișier CSV, robotul introduce automat furnizori noi în nomenclatorul firmei, reproducând procedura manuală din SAGA.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | Denumire | Denumire furnizor | Obligatoriu. Denumirea completă; fără virgule. |
| 2 | COD_FISCAL | Cod fiscal / CNP | La furnizori externi poate fi în format pe care SAGA îl semnalează ca „incorect” (ex. 3206488LH). |
| 3 | Adresa | Adresă | Adresa completă; fără virgule. |
| 4 | LOCALITATE | Localitate | Localitate sau sector (ex. BUCURESTI SECTOR 3). Gol pentru externi. |
| 5 | Judet | Județ | Ex. Bucuresti. Gol pentru externi. |
| 6 | Tara | Țară | Cod țară ISO (RO, IE). |
| 7 | IBAN | Cont bancar (IBAN) | Opțional; IBAN fără spații. |
| 8 | Banca | Bancă | Denumirea băncii. Opțional. |
| 9 | Email | Adresa de e-mail a furnizorului. Opțional. |
Format (conform fișierului de import): CSV separat prin virgulă, fără ghilimele (niciun câmp nu conține virgulă); encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Structura este identică cu cea de la importul de clienți. Fișier: Import_furnizori_<luna>.csv (exemplu observat: 1.Import_furnizori_iunie.csv).
1.Import_furnizori_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Fișiere se alege Furnizori (F11).
În fereastra Furnizori se apasă butonul de import din bara de instrumente.
Se deschide „Import terți din fișiere”. Butonul […] la câmpul Fișier; în dialog se alege tipul „Fișiere CSV” și fișierul.
Fiecare coloană trebuie populată automat și cu denumirea corectă (Denumire, COD_FISCAL, Adresa, LOCALITATE, Judet, Tara, IBAN, Banca, Email). Robotul verifică maparea, apoi apasă Import.
La furnizorii externi apar două avertizări consecutive. Robotul apasă Yes la ambele; mesajele se tratează în buclă, fără a presupune un număr fix de pop-up-uri.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (revenirea la lista de furnizori) și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Fișier existent și ne-gol | Oprire cu eroare; nu se deschide SAGA. |
| Antet prezent, 9 coloane în ordinea așteptată | Oprire / semnalare; maparea ar fi greșită. |
| Denumire completată pe fiecare rând | Rând marcat ca eroare (sări sau oprește — de decis). |
| Rânduri duplicate (același cod fiscal) | Avertizare în raport; politică de decis. |
SAGA Desktop · pornind de la un fișier CSV, robotul introduce automat clienți noi în nomenclatorul firmei. Fluxul este simetric cu importul de furnizori — același mecanism SAGA „Import terți din fișiere”, dar pe modulul Fișiere → Clienți.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | Denumire | Denumire client | Denumirea completă, inclusiv forma juridică (S.R.L., SRL, PFA, INC, LTD, LLC). Fără virgule. |
| 2 | COD_FISCAL | Cod fiscal / CNP | CUI cu prefix RO pentru plătitorii de TVA; cod VIES cu prefix (ex. EU372045196). La clienți externi SAGA îl poate semnala ca „incorect”. |
| 3 | Adresa | Adresă | Adresa completă; fără virgule. |
| 4 | LOCALITATE | Localitate | Localitate sau sector (ex. SECTOR3, Bacau). |
| 5 | Judet | Județ | Ex. Bucuresti. Gol pentru străini. |
| 6 | Tara | Țară | Denumirea țării (ex. Romania). |
| 7 | IBAN | Cont bancar (IBAN) | IBAN fără spații. |
| 8 | Banca | Bancă | Denumirea băncii. |
| 9 | Email | Adresa de e-mail a clientului. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele (niciun câmp nu conține virgulă); encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Fișier: Import_clienti_<luna>.csv.
4.Import_clienti.csv · exemplu real de fișier de importDin meniul Fișiere se alege Clienți (F12).
În fereastra Clienți se apasă butonul de import din bara de instrumente (aceeași poziție ca în fereastra Furnizori).
Se deschide „Import terți din fișiere”. Butonul […] la câmpul Fișier; în dialog se alege tipul „Fișiere CSV” și fișierul.
Fiecare coloană trebuie populată automat și cu denumirea corectă (Denumire, COD_FISCAL, Adresa, LOCALITATE, Judet, Tara, IBAN, Banca, Email). Robotul verifică maparea, apoi apasă Import.
La clienții externi, SAGA afișează o singură avertizare de cod fiscal (spre deosebire de furnizori, unde apar două). Robotul apasă Yes; avertizarea poate apărea pentru fiecare client extern în parte — se tratează în buclă.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (revenirea la lista de clienți) și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Fișier existent și ne-gol | Oprire cu eroare; nu se deschide SAGA. |
| Antet prezent, coloanele în ordinea așteptată | Oprire / semnalare; maparea ar fi greșită. |
| Denumire completată pe fiecare rând | Rând marcat ca eroare (sări sau oprește — de decis). |
| Rânduri duplicate (același cod fiscal) | Avertizare în raport; politică de decis. |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturi de intrare de la furnizori interni (RO) în modulul Operații → Intrări. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | TIP | Cod tip document | Gol = factură fiscală (e-factura); B = bon fiscal fără CUI; C = bon fiscal cu CUI. |
| 2 | FURNIZOR | Furnizor (nomenclator) | Trebuie să existe în Fișiere → Furnizori. Ex. IKEA ROMANIA. |
| 3 | COD_FISCAL | Cod fiscal furnizor | CUI cu prefix RO pentru plătitorii de TVA. |
| 4 | NR_INTRARE | Nr. document | Ex. 15, „FDB26 25405137”, TC41. |
| 5 | DATA | Data documentului | Format zz.ll.aaaa (ex. 24.03.2026); în intervalul de lucru SAGA. |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Cheltuieli de protocol”, „Servicii telecomunicatii”). |
| 7 | CONT | Cont contabil | Cont de cheltuială (ex. 6231, 626, 628, 604) — trebuie să existe în planul de conturi. |
| 8 | UM | Unitate de măsură | Ex. SERV, LUNI, BUC. |
| 9 | P_TVA | Procent TVA | Cota TVA din factură (ex. 21); 0 pentru neplătitori. |
| 10 | CANTITATE | Cantitate | Ex. 1. |
| 11 | PRET | Preț / valoare | Separator zecimal punct (ex. 233.25). |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană; separator zecimal punct. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_bonuri_<luna>.csv (fereastra SAGA acceptă XLS, CSV, TXT, DBF și XLSX).
2.Import_facturi_bonuri_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Intrări (F3). Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Intrări (facturi & bonuri de casa & avize) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere”.
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (TIP, FURNIZOR, COD_FISCAL, NR_INTRARE, DATA, DENUMIRE, CONT, UM, P_TVA, CANTITATE, PRET), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Intrări), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare existent pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact coloanele așteptate, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| FURNIZOR + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de furnizori | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (ZZ.LL.AAAA), în intervalul de lucru | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| Fără duplicate în fișier (NR_INTRARE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturi de intrare în valută (furnizori externi) în modulul Operații → Intrări - valuta. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | FURNIZOR | Furnizor (nomenclator) | Denumirea furnizorului extern (ex. ADOBE SYSTEMS SOFTWARE IRELAND LTD). |
| 2 | COD_FISCAL | Cod fiscal furnizor | Cod fiscal extern (ex. 6364992H, EU528377759). |
| 3 | NR_INTRARE | Nr. document | Ex. 3405060684. |
| 4 | DATA | Data documentului | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | MONEDA | Monedă | Cod valută (ex. EUR, USD). |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Prestari servicii”). |
| 7 | CONT | Cont contabil | Ex. 471, 628 — trebuie să existe în planul de conturi. |
| 8 | INF_SUPLM | Informații suplimentare | Text liber (ex. perioada de serviciu). Fără virgule; atenție la liniuțe „–” (en-dash). |
| 9 | TIP | Cod tip | „T” = taxare inversă (folosit la facturile externe); gol dacă fără TVA. |
| 10 | UM | Unitate de măsură | Ex. SERV. |
| 11 | P_TVA | Procent TVA | Ex. 21. |
| 12 | CANTITATE | Cantitate | Ex. 1. |
| 13 | PRET | Preț / valoare | În valuta din MONEDA (ex. 1200); separator zecimal punct. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_externe_<luna>.csv (exemplu observat: 3.Import_facturi_externe_iunie.csv).
3.Import_facturi_externe_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Intrări - valuta. Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Intrari - valuta (Importuri) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la facturile RO).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (FURNIZOR, COD_FISCAL, NR_INTRARE, DATA, MONEDA, DENUMIRE, CONT, INF_SUPLM, TIP, UM, P_TVA, CANTITATE, PRET), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Pas suplimentar față de importul de facturi RO: după apăsarea butonului Import, pentru facturile din afara UE, SAGA cere ca înainte de adăugarea liniilor în factură să fie apăsat butonul Poziții tarifare… — acesta declanșează adăugarea liniilor în factură. Robotul apasă butonul pentru fiecare factură din afara UE.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Intrari - valuta), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 13 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| FURNIZOR + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de furnizori | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| MONEDA cod valută valid (EUR, USD, …) | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| INF_SUPLM fără virgule și fără en-dash „–” | Normalizare automată sau semnalare. |
| Fără duplicate în fișier (NR_INTRARE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturile emise în România (venituri) în modulul Operații → Ieșiri. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | CLIENT | Client (nomenclator) | Denumirea clientului — trebuie să existe în Fișiere → Clienți. |
| 2 | COD_FISCAL | Cod fiscal client | CUI cu prefix RO (ex. RO6719367). |
| 3 | NR_IESIRE | Nr. factură emisă | Ex. EPRS796556996. |
| 4 | DATA | Data facturii | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Servicii”). |
| 6 | CONT | Cont contabil | Cont de venit (ex. 704) — trebuie să existe în planul de conturi. |
| 7 | UM | Unitate de măsură | Ex. buc. |
| 8 | P_TVA | Procent TVA | 0 sau gol (neplătitori — cazul clienților Bono, MVP). |
| 9 | Cantitate | Cantitate | Ex. 1. |
| 10 | Pret | Preț / valoare | Ex. 1500; separator zecimal punct. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură. Fișier: Import_facturi_venituri_RO_<luna>.csv (exemplu observat: 5.Import_facturi_venituri_RO_iunie.csv).
5.Import_facturi_venituri_RO_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Ieșiri (F4). Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Ieșiri (facturi & bonuri de casa & avize) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la facturile de intrare).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (CLIENT, COD_FISCAL, NR_IESIRE, DATA, DENUMIRE, CONT, UM, P_TVA, Cantitate, Pret). Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Ieșiri), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 10 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| CLIENT + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de clienți | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| NR_IESIRE conform seriilor de facturare ale firmei | Semnalare ca avertisment în raport. |
| Fără duplicate în fișier (NR_IESIRE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturile emise în valută (clienți externi) în modulul Operații → Ieșiri - valuta. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | CLIENT | Client (nomenclator) | Denumirea clientului extern (ex. ACME SOLUTIONS GMBH) — trebuie să existe în Fișiere → Clienți. |
| 2 | COD_FISCAL | Cod fiscal client | Cod fiscal extern (ex. DE811234567, EIN 91-1234567, SE5566778899). |
| 3 | NR_IESIRE | Nr. factură emisă | Ex. EXT796557201. |
| 4 | DATA | Data facturii | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | MONEDA | Monedă | Cod valută (ex. EUR, USD). |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Servicii software”, „Servicii dezvoltare web”). |
| 7 | CONT | Cont contabil | Cont de venit (ex. 704) — trebuie să existe în planul de conturi. |
| 8 | INF_SUPLM | Informații suplimentare | Text liber (ex. perioada de serviciu). Fără virgule; atenție la liniuțe „–” (en-dash). |
| 9 | TIP | Cod tip | „T” = taxare inversă (facturi externe). |
| 10 | UM | Unitate de măsură | Ex. SERV. |
| 11 | P_TVA | Procent TVA | Ex. 0. |
| 12 | Cantitate | Cantitate | Ex. 1. |
| 13 | Pret | Preț / valoare | În valuta din MONEDA (ex. 4500); separator zecimal punct. |
Format (aceleași reguli generale ca în „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_iesiri_valuta_<luna>.csv (exemplu observat: Import_facturi_iesiri_valuta_iunie.csv). Structura este simetrică cu fișierul de facturi externe de intrare, cu CLIENT / NR_IESIRE în loc de FURNIZOR / NR_INTRARE.
Import_facturi_iesiri_valuta_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Ieșiri - valuta. Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Iesiri - valuta (Exporturi) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la celelalte importuri de facturi).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (CLIENT, COD_FISCAL, NR_IESIRE, DATA, MONEDA, DENUMIRE, CONT, INF_SUPLM, TIP, UM, P_TVA, Cantitate, Pret), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Iesiri - valuta), verifică prin numărare că facturile au fost create — cu valoarea în valută, cursul și valoarea în lei calculate — și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 13 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| CLIENT + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de clienți | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| MONEDA cod valută valid (EUR, USD, …) | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| INF_SUPLM fără virgule și fără en-dash „–” | Normalizare automată sau semnalare. |
| Fără duplicate în fișier (NR_IESIRE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă mijloacele fixe în modulul Operații → Imobilizări (Lista imobilizărilor). Pe baza codului de clasă, SAGA completează automat durata, tipul de amortizare și conturile.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | NR_INV | Nr. inventar | Numărul de inventar al mijlocului fix (ex. MF0001). |
| 2 | DENUMIRE | Denumire | Denumirea mijlocului fix (ex. „LAPTOP DELL PRECISION”, „AUTOTURISM DACIA DUSTER”). |
| 3 | DATA | Data intrării | Format zz.ll.aaaa (ex. 05.06.2026). |
| 4 | CLASA | Cod clasă | Codul din catalogul claselor de mijloace fixe (ex. 2.2.9., 3.1.1., 2.3.2.1.1.). Determină conturile și durata de amortizare. |
| 5 | VALOARE | Valoare intrare | Separator zecimal punct (ex. 8500, 98500.50). |
Format (aceleași reguli generale ca în „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Fișier: Import_imobilizari_<luna>.csv (exemplu observat: IMPORT_IMOBILIZARI_IUNIE.CSV).
Din meniul Operații se alege Imobilizări. Intervalul de lucru trebuie să acopere datele de intrare din fișier.
Pe tab-ul Lista imobilizărilor se apasă butonul de import din bara de instrumente. Se deschide fereastra „Import imobilizari din fisiere”.
Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (NR_INV, DENUMIRE, DATA, CLASA, VALOARE). Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția mijloacelor fixe noi în Lista imobilizărilor), verifică prin numărare că activele au fost create — cu clasa, durata, tipul de amortizare și conturile completate automat — și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 5 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| NR_INV + DENUMIRE nevide pe fiecare rând | Rândul se raportează ca eroare. |
| NR_INV unic (în fișier și față de lista existentă) | Semnalare; se importă o singură dată sau se oprește (de decis). |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| CLASA există în catalogul claselor de mijloace fixe | Semnalare; nu se ghicește clasa. |
| VALOARE numerică, separator zecimal punct | Rândul se raportează ca eroare. |
SAGA Desktop · robotul parcurge Jurnalul de bancă și închide automat încasările cu facturile de ieșire, respectiv plățile cu facturile de intrare, folosind o cascadă de reguli de potrivire — de la cea mai sigură (referința facturii din explicația plății) la ultima soluție (FIFO). Rulează pe Desktop deoarece facturile în EUR nu apar în jurnalul de bancă din SAGA Web.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA pe care se lucrează. |
| Interval de lucru | Perioada pentru care se închid tranzacțiile (ex. 01.03.2026 – 31.03.2026) — parametru unic pentru scanare și închidere. |
| Mod de rulare | Simulare (dry-run): parcurge tot, calculează potrivirile și produce raportul, fără să salveze nimic (la final apasă Renunț). Live: salvează închiderile. Recomandat: simulare → verificarea raportului → live. |
Din meniul Operații se alege Jurnal de bancă (F6).
Robotul parcurge zilele din extrasul de cont (secțiunea de zile a jurnalului). Zilele din afara intervalului se ignoră explicit, chiar dacă SAGA le afișează.
Pentru fiecare zi, robotul citește tranzacțiile zilei și le identifică pe cele neînchise — SAGA le afișează cu roșu. Clasificare: încasare de la client = linia cu contul de client (începe cu 411) și banca pe debit; plată către furnizor = linia cu contul de furnizor (începe cu 401) și banca pe credit. Liniile roșii care nu se încadrează în aceste tipare se raportează ca nestandard, fără acțiune; liniile negre (deja închise sau fără legătură cu facturi, ex. comisioane bancare) se sar.
Robotul selectează tranzacția, apasă Modific și deschide panoul cu facturile partenerului (butonul Detalii), unde SAGA listează facturile deschise: număr, dată, total, neachitat. Panoul afișează și suma de închis („De încasat” / „De achitat”) și „Suma rămasă”. Dacă partenerul nu are facturi deschise, robotul apasă Renunț și raportează tranzacția (FĂRĂ FACTURI).
Robotul aplică regulile în ordine, de la cea mai sigură la ultima soluție; prima regulă care produce o potrivire decide închiderea (vezi tabelul de mai jos). Toate comparațiile de sume sunt exacte, la bănuț — nu există prag de toleranță.
Închiderea efectivă: factura acoperită integral se bifează Integral; factura acoperită parțial primește suma în câmpul Achitat. La final, „Suma rămasă” trebuie să fie 0.00. Panoul are și un buton FIFO nativ al SAGA — poate fi folosit de robot la regula 5, în locul bifării manuale (de confirmat la implementare).
În modul live, robotul apasă Salvez și așteaptă revenirea în modul de vizualizare (confirmarea salvării). În simulare apasă Renunț — nimic nu se modifică. La orice eroare în timpul editării, robotul apasă Renunț, ca tranzacția să nu rămână blocată în editare.
La final, robotul produce raportul de rulare (CSV): fiecare tranzacție procesată, cu regula de potrivire folosită, facturile închise (integral/parțial) și statusul — inclusiv excepțiile. Raportul e instrumentul de audit: închiderile pe FIFO și cazurile nestandard sunt evidențiate distinct, pentru verificare.
| # | Regulă | Condiție | Acțiune |
|---|---|---|---|
| 1 | Referință în explicație | Din explicația plății se extrag candidați de număr de factură (normalizați: fără spații, majuscule) și se potrivesc cu facturile deschise ale partenerului. Suma trebuie să corespundă exact facturilor referite. | Integral pe facturile referite; dacă suma acoperă parțial ultima factură referită — parțial pe aceasta. |
| 2 | Sumă exactă, factură unică | Fără referință; exact o factură deschisă cu Neachitat egal cu suma plății. Dacă două facturi au aceeași sumă — ambiguu, se trece la regula următoare. | Integral pe factura respectivă. |
| 3 | Combinație de facturi | Suma plății = suma exactă a unei combinații de 2–3 facturi deschise (plată multiplă). O singură combinație posibilă; altfel ambiguu. | Integral pe toate facturile din combinație. |
| 4 | Plată parțială țintită | Suma mai mică decât orice factură deschisă și: explicația referă o factură anume, sau partenerul are o singură factură deschisă. | Parțial (suma în câmpul Achitat) pe factura identificată. Plățile parțiale succesive se acumulează natural — factura reapare cu Neachitat diminuat. |
| 5 | FIFO — ultima soluție | Nicio regulă de mai sus nu a produs o potrivire. | Facturile sortate crescător după dată; Integral cât acoperă suma, parțial pe prima factură care depășește restul. Închiderile FIFO se marchează distinct în raport, pentru audit. |
| Situație | Comportament |
|---|---|
| Tranzacție neagră (închisă sau fără facturi asociate) | Se sare; nu se numără la excepții. |
| Tranzacție roșie, conturi nestandard (nu 401/411) | Se raportează ca NESTANDARD; nicio acțiune. |
| Partener fără facturi deschise | Renunț + raportare FĂRĂ FACTURI. |
| Re-rulare pe aceeași perioadă | Idempotentă — tranzacțiile închise devin negre și se sar natural; nu există dublă închidere. |
| Simulare (dry-run) | Identică cu rularea live până la salvare; se apasă Renunț, raportul arată ce s-ar fi închis și pe ce regulă. |
jurnal_banca_complet.py, pornit prin RUN_jurnal_banca_complet.bat; pe SAGA Desktop se reface aceeași logică pe ecranele echivalente. Regulile de lucru validate în prototip se preiau: liniile de închis se recunosc în jurnal după conturile evidențiate cu roșu; jurnalul se parcurge pe zile → tranzacții → facturile partenerului; închiderea unei facturi se face cu Modific, bifa Integral sau suma în câmpul Achitat, apoi Salvez (sau Renunț).jurnal_banca_complet.py · scriptul prototip — jurnal de bancă (scanare + reconciliere)RUN_jurnal_banca_complet.bat · fișierul de pornire a prototipuluiRobot de sine stătător: deschide browserul, se autentifică pe SAGA Web (web3.sagasoft.ro) și deschide sesiunea de lucru pe firma țintă. Este precondiția comună a tuturor roboților care operează pe SAGA Web — rulează o dată, la începutul lanțului, apoi lasă sesiunea deschisă pentru roboții următori. Există deja un prototip funcțional care face întreaga logare — el este baza acestei specificații.
| Parametru | Descriere |
|---|---|
| Firma țintă | Denumirea firmei din lista SAGA Web (ex. „BONO FINTECH - TEST SAGA S.R.L.”). Căutarea se face după denumire — trebuie să identifice firma în mod unic. |
| Contul de conectare SAGA Web. | |
| Parolă | Parola contului. În prototip, credențialele se citesc dintr-un fișier de configurare în text simplu (config_v2.txt) — mod de stocare securizat de clarificat. |
| Data de lucru | Data sesiunii — câmpul de dată de lângă butonul Conectare (implicit data curentă). |
Se deschide un browser Chrome dedicat robotului, pregătit să rămână deschis și după ce logarea se termină — sesiunea lui este refolosită de ceilalți roboți SAGA Web (validare facturi, jurnal bancă), care nu se mai loghează din nou.
Se deschide web3.sagasoft.ro; apare ecranul de logare cu câmpurile Email și Parola.
Robotul completează e-mailul și parola și apasă butonul Autentificare.
După autentificare apare pagina de selecție a firmei. Robotul caută firma țintă în listă după denumire și dă click pe rândul ei; rândul selectat se evidențiază.
Se verifică data de lucru din câmpul de lângă butonul Conectare, apoi se apasă Conectare — se deschide sesiunea de lucru pe firma aleasă.
Sesiunea rămâne deschisă, iar robotul următor se conectează la ea. Browserul nu se închide cât timp mai rulează roboți SAGA Web; la finalul lanțului se închide manual sau de ultimul robot.
login_si_selectie_firma.py, pornit prin RUN_LOGIN.bat. Ce avem nevoie de la robot: logarea se face o singură dată, la începutul lanțului, iar sesiunea deschisă este refolosită de toți ceilalți roboți SAGA Web din aceeași rulare.login_si_selectie_firma.py · scriptul prototip — logare și selecția firmeiRUN_LOGIN.bat · fișierul de pornire a prototipuluiSAGA Web (web3.sagasoft.ro) · robotul încarcă toate fișierele XML ale lunii în modulul Diverse → Import date: facturi primite, facturi emise, încasări și plăți. Un singur robot pentru toate tipurile de documente — include și înlocuiește fostul robot de Import încasări și plăți.
| Tip document | Fișier (exemplu observat) | Destinație detectată | Mesaj la import |
|---|---|---|---|
| Facturi primite | F_50884558_THD24110_05.08.2026.xml | Facturi | „Importul a fost realizat cu succes.” — fără număr de înregistrări. |
| Facturi emise | F_50884558_BNF26101_10.08.2026.xml | Facturi | „Importul a fost realizat cu succes.” — fără număr de înregistrări. |
| Încasări | I_31.08.2026.xml | Incasari | „S-au importat N înregistrări.” |
| Plăți | P_31.08.2026.xml | Plati | „S-au importat N înregistrări.” |
Numele fișierelor din tabel sunt modele descărcabile — exemple reale din testarea din august. La facturile primite, ordinea în care se importă fișierele nu are importanță (verificat în testare).
Din bara de meniu se deschide Interval și se completează data de început și data de final, astfel încât perioada să acopere datele tuturor documentelor din fișiere, apoi se închide dropdown-ul.
Din meniul Diverse se alege Import date.
Se apasă + Adauga fisiere XML și, în dialogul de selectare (tip XML File), se aleg toate fișierele lunii deodată: facturi primite, facturi emise, încasări, plăți.
Fișierele apar în listă cu destinația detectată automat din conținut (Facturi / Incasari / Plati) și starea „Neimportat”. Robotul verifică destinația fiecărui rând înainte de a continua.
Pentru fiecare fișier din listă, robotul execută:
Pasul 5 se repetă pentru fiecare fișier din listă, până când toate au starea „Importat”.
SAGA Web · robotul parcurge lista Intrări și validează, una câte una, toate facturile nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
| Excel imobilizări (opțional) | Folosit de fluxul de imobilizări (robot separat) pentru potrivirea activelor pe facturi. |
În SAGA Web, din meniul Operații se alege Intrări (ALT+3).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
Dacă factura conține imobilizări, SAGA afișează popup-ul „Înregistrăm imobilizarea?”. Robotul apasă DA, iar înregistrarea propriu-zisă a imobilizării continuă cu fluxul dedicat (robot separat). Dacă popup-ul nu apare în câteva secunde, robotul merge mai departe.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva.py, pornit prin RUN_VALIDARE_MASIVA.bat.validare_masiva.py · scriptul prototip — validare facturi intrări RORUN_VALIDARE_MASIVA.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Popup imobilizări | Se apasă DA; se predă fluxului de imobilizări; factura se contorizează separat. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Intrări - valuta și validează, una câte una, toate facturile externe nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații. Fluxul este simetric cu validarea facturilor intrări RO.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Intrări - valuta (facturile externe).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
Dacă apare popup-ul „Înregistrăm imobilizarea?”, robotul apasă NU — la facturile externe nu se înregistrează imobilizări. Fallback: DA urmat de Renunț (ALT+R). Apariția popup-ului se consemnează în raport.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi externe, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_valuta.py, pornit prin RUN_VALIDARE_MASIVA_VALUTA.bat.validare_masiva_valuta.py · scriptul prototip — validare facturi intrări valutăRUN_VALIDARE_MASIVA_VALUTA.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Popup imobilizări | Se apasă NU (fallback: DA + Renunț ALT+R); apariția se raportează. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Ieșiri și validează, una câte una, toate facturile emise nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații. Fluxul este simetric cu validarea facturilor de intrare.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Ieșiri (ALT+4) — facturile emise.
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi emise, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_iesiri.py, pornit prin RUN_VALIDARE_MASIVA_IESIRI.bat.validare_masiva_iesiri.py · scriptul prototip — validare facturi ieșiri RORUN_VALIDARE_MASIVA_IESIRI.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Ieșiri - valuta (Exporturi) și validează, una câte una, toate facturile emise în valută nevalidate din perioada de lucru. Fluxul este identic cu validarea facturilor ieșiri RO — se schimbă doar modulul țintă; prototipul de la ieșirile RO se parametrizează pe acest modul.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Ieșiri - valuta (facturile emise în valută).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_iesiri.py, pornit prin RUN_VALIDARE_MASIVA_IESIRI.bat), parametrizat pe modulul de valută. Diferențele față de ieșirile RO sunt de confirmat la implementare.validare_masiva_iesiri.py · scriptul prototip de la ieșirile RO (comun)RUN_VALIDARE_MASIVA_IESIRI.bat · fișierul de pornire a prototipului (comun)| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |