Decizii LACERTA: data = ultima zi, 542 cu parteneri, 4428/01, backup .fbk
- genereaza_xlsx: coloana data = ultima zi a lunii; etalonul de regresie actualizat doar pe aceasta coloana (verificat celula cu celula). - config: 542 cont cu parteneri (acum identic cu REF); descrierea lui 4092 corectata. - extrage/citire_fdb: .fbk se restaureaza cu gbak -c in temporar; test ca da aceleasi fisiere ca FDB-ul. - test_lacerta: 49/53 frunze identice cu REF, 4428.TOATE -> 4428/01. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -11,6 +11,7 @@ sar, nu esueaza.
|
||||
Rulare: py -m unittest discover -s tests -v
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
import pathlib
|
||||
import shutil
|
||||
import sys
|
||||
@@ -110,6 +111,15 @@ class TestCitireFdb(unittest.TestCase):
|
||||
# singura factura din firma de joaca are SCADENT NULL in INTRD
|
||||
self.assertEqual(rows[0]["scadent"], asteptat)
|
||||
|
||||
def test_fbk_identic_cu_fdb(self):
|
||||
"""Backupul gbak (.fbk) se restaureaza in temporar si da aceleasi fisiere."""
|
||||
fbk = os.path.join(self.dir, "firma.fbk")
|
||||
subprocess.run([citire_fdb.GBAK, "-b", self.baza, fbk, "-user",
|
||||
citire_fdb.UTILIZATOR, "-password", citire_fdb.PAROLA], check=True)
|
||||
a = citire_fdb.produce(self.baza, "A", AN, LUNA, os.path.join(self.dir, "a"))
|
||||
b = citire_fdb.produce(fbk, "B", AN, LUNA, os.path.join(self.dir, "b"))
|
||||
self.assertEqual(a, b)
|
||||
|
||||
def test_cont_colector_exclus(self):
|
||||
rows = citire_fdb.citeste_balanta(self.baza, AN, LUNA)
|
||||
self.assertNotIn("%", [r["cont"] for r in rows])
|
||||
|
||||
@@ -37,7 +37,8 @@ AN, LUNA = 2026, 6
|
||||
# deciziile de mapare din REF, pentru analiticele care nu intra in acont
|
||||
CORECTII = [
|
||||
["419.NETOPIA", "419", "2", None, "ca in REF"],
|
||||
["4428.TOATE", "4428", None, None, "ca in REF"],
|
||||
# REF are un singur rand 4428; 01 ca sa iasa frunze curate langa diferenta 4428/99
|
||||
["4428.TOATE", "4428", "01", None, "decizie 26.09.2026"],
|
||||
]
|
||||
|
||||
# frunza -> (REF, NOI), cu (totdeb, totcred); None = frunza lipseste
|
||||
@@ -49,18 +50,15 @@ DIFERENTE_ASTEPTATE = {
|
||||
("4092", "1"): ((2606.86, 0.0), None),
|
||||
# nota de 900 direct pe 419: analitic de diferenta; REF a pierdut-o
|
||||
("419", "9999"): (None, (0.0, 900.0)),
|
||||
# 4428: postarile direct pe sintetic -> analitic de diferenta; totalul coincide
|
||||
("4428", ""): ((1749.68, 0.0), (373.14, 0.0)),
|
||||
# 4428: analiticele M/TI/TP pe 01 (corectie), postarile direct pe sintetic pe 99;
|
||||
# totalul coincide cu randul unic din REF
|
||||
("4428", ""): ((1749.68, 0.0), None),
|
||||
("4428", "01"): (None, (373.14, 0.0)),
|
||||
("4428", "99"): (None, (1376.54, 0.0)),
|
||||
# 5121: regula de banca (BALANTA cu acont per cont bancar), validata la MASTER
|
||||
("5121", ""): ((40801.41, 35876.25), None),
|
||||
("5121", "1"): (None, (40601.41, 35876.25)),
|
||||
("5121", "2"): (None, (200.0, 0.0)),
|
||||
# 542 nu e cont cu parteneri in config: analitice + diferenta
|
||||
("542", ""): ((2243.57, 1824.07), None),
|
||||
("542", "01"): (None, (1828.77, 1824.07)),
|
||||
("542", "02"): (None, (124.74, 0.0)),
|
||||
("542", "99"): (None, (290.06, 0.0)),
|
||||
# 891 are rulaj zero; REF nu-l scrie
|
||||
("891", ""): (None, (0.0, 0.0)),
|
||||
}
|
||||
@@ -148,7 +146,8 @@ class TestLacerta(unittest.TestCase):
|
||||
s[str(r["cont"])] += _v(r["sold"])
|
||||
self.assertEqual({k: (c[k], round(s[k], 2)) for k in c}, {
|
||||
"401": (12, 9220.75), "4092": (1, 2606.86), "4111": (1, 90.0),
|
||||
"4551": (3, 3023583.0), "461": (1, 2250.0), "5121": (2, 4925.16)})
|
||||
"4551": (3, 3023583.0), "461": (1, 2250.0), "5121": (2, 4925.16),
|
||||
"542": (2, 129.44)})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user