Marius Mutu 99d9cf0aff Cititorul FDB: sume totale ca SAGA, analitice pastrate, baza oprita acceptata
Proba pe LACERTA (06/2026, firma reala) a gasit doua defecte in citire_fdb:
- precedentul netea si rulajele din an, deci conturile de cheltuieli/venituri
  pierdeau rulajul (CPP gresit). Acum: preluare netata + rulaj an brut;
  potriveste 44/44 sintetice din importul facut din exportul SAGA (inainte 19/44).
- analiticele se rulau in sintetic, deci facturile per document nu se foloseau
  si analiticele nepartener disparea. Acum balanta are toate nivelurile.

Baza primita se copiaza in temporar si copia se repune online (clientul o
trimite si in full shutdown). tests/test_lacerta.py: 48/53 frunze identice cu
REF, restul explicate; se sare fara fisierele clientului, care sunt ignorate
de git. README nou; analiza in docs/analiza_lacerta_fdb.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
2026-09-25 16:14:14 +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) 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. Backupul .fbk nu e acceptat inca.

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 / (gol) = strange tot pe sintetic. Cand un analitic nu incape in 4 caractere, genereaza se opreste si iti cere corectia.

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