Files
solduri2roa/README.md
Marius Mutu 7ac40f9a34 FDB: postarile direct pe sintetic raman brute; conturile 0/0 nu intra
Pe drumul FDB sinteticul e suma bruta a notelor, deci diferenta fata de
analitice se scrie cu D si C separat, nu pe net: rulajul 401 LACERTA iese ca
in SAGA (8.991,55 / 57.253,22). PDF/xls raman pe net (etalonul trece).
Conturile nepartener fara sold si fara rulaj (891) nu mai intra in xlsx.

LACERTA: 51/53 frunze identice cu REF; restul sunt asezari alese (5121,
4428), cu totaluri egale pe cont.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
2026-09-27 16:58:46 +03:00

89 lines
3.7 KiB
Markdown

# solduri2roa
Transforma soldurile unei firme din SAGA in xlsx-ul de initializare pentru ROACONT.
## Pe scurt
```
py extrage.py --fisier <sursa> --firma FIRMA --an 2026 --luna 6
py genereaza.py --firma FIRMA --an 2026 --luna 6
```
Rezultatul este `iesiri/init_FIRMA_2026_6.xlsx`, care se importa in ROACONT.
`--an`/`--luna` = luna ale carei solduri finale se preiau.
## Surse acceptate
| sursa | fisier | ce se obtine |
|---|---|---|
| SAGA noua (Firebird) | `CONT_BAZA.FDB` (o **copie**, nu baza vie) sau backup `.fbk` | balanta + parteneri cu CUI + facturi per document |
| export SAGA | `.xls` / `.xlsx` | doar balanta |
| balanta tiparita | `.pdf` | doar balanta |
Tipul se deduce din extensie. **FDB-ul e sursa recomandata.** Clientul face copia dupa
`docs/procedura_copie_fdb_client.md`. Poate fi si oprita (`shutdown`): unealta
lucreaza pe o copie a ei si nu atinge fisierul primit. Un `.fbk` se restaureaza
automat in temporar.
## Pasii
1. **Extrage** - `extrage.py` scrie in `date/`: `balanta_FIRMA.csv` (+ `parteneri_`,
`facturi_` din FDB).
2. **Genereaza** - `genereaza.py` scrie in `iesiri/`:
- `init_FIRMA_<an>_<luna>.xlsx` - fisierul de import;
- `verificare_FIRMA.md` - verificarile; toate trebuie sa fie `OK`.
Si in `date/`:
- `mapare_FIRMA.xlsx` - ce cont ROA primeste fiecare cont SAGA (doar de citit);
- `corectii_FIRMA.xlsx` - creat gol la prima rulare; **aici corectezi tu**.
3. **Corecteaza** daca genereaza se opreste (`Stop: ...`) sau maparea nu e buna.
Completezi `corectii_FIRMA.xlsx` si rulezi din nou pasul 2.
4. **Importa** xlsx-ul in ROACONT (formularul de initializare solduri).
5. **Coduri fiscale** - partenerii fara CUI intra cu un cod provizoriu (`401.00027`).
Le cauti pe ANAF si le corectezi dupa import (`sql/update_cod_fiscal_<SCHEMA>.sql`).
Din FDB raman doar partenerii fara CUI in SAGA; din PDF/xls, toti.
## Corectii (`corectii_FIRMA.xlsx`)
Coloane: `cont_saga`, `cont`, `acont`, `exclus`, `motiv`. `cont` are maxim 4 caractere,
`acont` la fel. `exclus` = da scoate contul din import, cu tot cu analiticele lui.
| `cont_saga` | se aplica la |
|---|---|
| `419.NETOPIA` | exact acel cont |
| `4428.TOATE` | toate analiticele lui 4428 |
| `4428.RESTUL` | analiticele lui 4428 fara corectie exacta |
Exemple: `419.NETOPIA -> 419 / 2`, `4428.TOATE -> 4428 / 01` = strange toate analiticele
pe unul singur (lasa `acont` gol doar daca sinteticul nu are si postari directe).
Cand un analitic nu incape in 4 caractere, genereaza se opreste si iti cere corectia.
Cont cu parteneri care are si analitice functionale (ex. `461.SGR`): pastrezi analiticul
cu `461.SGR -> 461 / SGR` si pui partenerii pe alt acont cu `461.RESTUL -> 461 / 1`. Iese cate
un rand BALANTA pe fiecare acont, cu facturile lui.
## Reguli de stiut
- Conturile cu parteneri sunt in `config/conturi_parteneri.csv` (autoritatea).
Primesc un rand `BALANTA` pe sintetic si randuri `FACTURA` per partener sau document.
- In xlsx intra doar frunzele (ultimul nivel de analitic).
- Data soldurilor este ultima zi a lunii (`30.06.2026` pentru `--luna 6`).
- Diferenta dintre sintetic si suma analiticelor (note puse direct pe sintetic) iese
pe un analitic de diferenta (`9999`, `99`) sau, la parteneri, pe `NEREPARTIZAT` in ROA.
Din FDB intra cu debitul si creditul brute (rulaj ca in SAGA); din PDF/xls, pe net.
- Conturile fara sold si fara rulaj nu intra in xlsx.
- Nu ajusta cifre ca sa treaca o verificare. Raporteaza.
## Teste
```
py -m unittest discover -s tests
```
Testele pe date de client (LACERTA) se sar daca fisierele din `exemple/` lipsesc.
Aceste fisiere nu sunt in git.
## Mai mult
`docs/decizii_import.md` (regulile de mapare), `docs/analiza_lacerta_fdb.md` (proba pe
client real), `CLAUDE.md` (verificarile obligatorii).