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
89 lines
3.7 KiB
Markdown
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).
|