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
This commit is contained in:
@@ -167,3 +167,28 @@ class TestMapareSinteticPartener(unittest.TestCase):
|
||||
mapare=mapare)
|
||||
conturi = {r["cont"] for r in out}
|
||||
self.assertEqual({"4011"}, conturi)
|
||||
|
||||
|
||||
class TestAcontPeAnaliticePartener(unittest.TestCase):
|
||||
"""Cont cu parteneri care are si analitice functionale (461.SGR) si parteneri
|
||||
(461.RESTUL -> 461/1): cate un BALANTA per (cont, acont), FACTURA cu acelasi acont
|
||||
(decizii_import.md pct. 16), postarea direct pe sintetic pe acontul de diferenta."""
|
||||
|
||||
ROWS = [
|
||||
{"cont": "461", "denumire": "DEBITORI DIVERSI", "total_d": 350.0, "total_c": 0.0},
|
||||
{"cont": "461.SGR", "denumire": "AMBALAJE SGR", "total_d": 100.0, "total_c": 0.0},
|
||||
{"cont": "461.00001", "denumire": "PARTENER X", "total_d": 200.0, "total_c": 0.0},
|
||||
]
|
||||
MAPARE = {"461.SGR": {"cont": "461", "acont": "SGR"},
|
||||
"461.00001": {"cont": "461", "acont": "1"}}
|
||||
|
||||
def test_balanta_si_factura_pe_acelasi_acont(self):
|
||||
out, _, _, _, _ = genereaza_xlsx.genereaza(
|
||||
self.ROWS, genereaza_xlsx.citeste_header(), 2026, 6, mapare=self.MAPARE)
|
||||
bal = {(r["cont"], r["acont"]): r["totdeb"] for r in out if r["TIP"] == "BALANTA"}
|
||||
fac = {(r["cont"], r["acont"]): (r["nume"], r["sold"])
|
||||
for r in out if r["TIP"] == "FACTURA"}
|
||||
self.assertEqual(bal, {("461", "SGR"): 100.0, ("461", "1"): 200.0,
|
||||
("461", "9999"): 50.0})
|
||||
self.assertEqual(fac, {("461", "SGR"): ("AMBALAJE SGR", 100.0),
|
||||
("461", "1"): ("PARTENER X", 200.0)})
|
||||
|
||||
@@ -39,15 +39,17 @@ CORECTII = [
|
||||
["419.NETOPIA", "419", "2", 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"],
|
||||
# analitic functional pe cont cu parteneri: ramane analitic (decizie 27.09.2026).
|
||||
# 461.SGR exista in plan, dar fara note: 461 e postat doar pe sintetic.
|
||||
["4092.1", "4092", "1", None, "analitic functional"],
|
||||
]
|
||||
|
||||
# frunza -> (REF, NOI), cu (totdeb, totcred); None = frunza lipseste
|
||||
DIFERENTE_ASTEPTATE = {
|
||||
# postarile direct pe sinteticul 401 intra pe net (regula stabilita), deci rulajul scade
|
||||
("401", ""): ((8991.55, 57253.22), (5536.75, 53798.42)),
|
||||
# 4092 e cont cu parteneri in config; REF l-a pus pe analitic si a pierdut 1563.37
|
||||
("4092", ""): (None, (4170.23, 0.0)),
|
||||
("4092", "1"): ((2606.86, 0.0), None),
|
||||
# 4092: note direct pe sintetic -> acont de diferenta; REF le-a pierdut
|
||||
("4092", "99"): (None, (1563.37, 0.0)),
|
||||
# nota de 900 direct pe 419: analitic de diferenta; REF a pierdut-o
|
||||
("419", "9999"): (None, (0.0, 900.0)),
|
||||
# 4428: analiticele M/TI/TP pe 01 (corectie), postarile direct pe sintetic pe 99;
|
||||
|
||||
Reference in New Issue
Block a user