Marius Mutu d188c76c7f Conturi cu parteneri cu analitice functionale: BALANTA per acont
Cand analiticele unui cont cu parteneri primesc acont prin corectii
(461.SGR -> 461/SGR, 461.RESTUL -> 461/1), generatorul scrie cate un
BALANTA per (cont, acont) si FACTURA cu acelasi acont (pct. 16); postarile
direct pe sintetic merg pe acontul de diferenta, ca la banca. Inainte, acontul
ajungea doar pe FACTURA, nu si pe BALANTA agregat - dezacord tacut.
Fara astfel de corectii, iesirea e neschimbata (etalonul trece).

LACERTA: 4092.1 -> 4092/1, identic cu REF; 50/53 frunze identice.

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

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.

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.
  • 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).

Description
No description provided
Readme 569 KiB
Languages
Python 100%