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
This commit is contained in:
2026-09-25 16:14:14 +03:00
parent 3499a0946c
commit 99d9cf0aff
8 changed files with 453 additions and 44 deletions

View File

@@ -63,7 +63,9 @@ class TestCitireFdb(unittest.TestCase):
if not XLSX.exists():
self.skipTest("lipseste exportul %s" % XLSX)
rows_xlsx = citire_xlsx.citeste_balanta(str(XLSX))
rows_fdb = citire_fdb.citeste_balanta(self.baza, AN, LUNA)
# exportul firmei de joaca e fara analitice; cititorul le emite si pe ele
rows_fdb = [r for r in citire_fdb.citeste_balanta(self.baza, AN, LUNA)
if "." not in r["cont"]]
self.assertTrue(rows_xlsx, "exportul xlsx nu are randuri")
self.assertEqual(rows_xlsx, rows_fdb,
"balanta din FDB difera de exportul xlsx")
@@ -96,7 +98,8 @@ class TestCitireFdb(unittest.TestCase):
msg="SUM(REGISTRU) nu e echilibrat pe laturi")
rows = citire_fdb.citeste_balanta(self.baza, AN, LUNA)
net_balanta = sum(r["total_d"] - r["total_c"] for r in rows)
net_balanta = sum(r["total_d"] - r["total_c"] for r in rows
if "." not in r["cont"])
self.assertAlmostEqual(float(deb) - float(cred), net_balanta, delta=TOL,
msg="netul din REGISTRU != netul balantei")