Lane contract: config/conturi_parteneri.csv, divergenta Oracle, poarta de regresie
Setul de conturi cu parteneri iese din literali si trece in config/conturi_parteneri.csv, cu categorie si motiv. Comportamentul e neschimbat; lipsa fisierului opreste cu eroare, nu cade pe set gol. CONFIG_CONT_IREG ramane consultativ: tools/divergenta_parteneri.py raporteaza divergenta, nu o aplica. Constatarea (27 conturi in Oracle si nu la noi, 3 la noi si nu in Oracle - 5121, 5124, 5311) e scrisa in docs/decizii_import.md. tests/test_regresie.py compara iesirea codului de azi cu tests/golden/ pe valori de celula, prin anonimizatorul refolosit ca functie. Trece pe FUNDATIA si MASTER; verificat ca pica la o schimbare reala de set de conturi. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
This commit is contained in:
@@ -42,13 +42,39 @@ TEMPLATE = "init_facturi_balanta_note.xlsx"
|
||||
# conturile din lista merg pe CREDIT, tot restul pe DEBIT.
|
||||
LATURA_CREDIT = {"401", "404", "462", "419", "408", "4551"}
|
||||
|
||||
# 5121/5124: analiticele raman analitice SI primesc partener (BALANTA + FACTURA
|
||||
# pe acelasi acont).
|
||||
PARTENER_BANCA = {"5121", "5124"}
|
||||
# Conturi cu parteneri, un singur BALANTA agregat pe sintetic + FACTURA per analitic.
|
||||
PARTENER_SINTETIC = {"401", "4092", "4111", "461", "462", "4551"}
|
||||
# Casa: fara analitice, BALANTA + FACTURA pe sintetic.
|
||||
PARTENER_FARA_ANALITICE = {"5311"}
|
||||
# Setul operational de conturi cu parteneri: config/conturi_parteneri.csv (validat
|
||||
# in productie; CONFIG_CONT_IREG e doar consultativ, vezi docs/decizii_import.md).
|
||||
# Categoriile CSV corespund celor trei seturi: BANCA, SINTETIC, FARA_ANALITICE.
|
||||
CONFIG_PARTENERI = os.path.join(os.path.dirname(os.path.abspath(__file__)),
|
||||
"config", "conturi_parteneri.csv")
|
||||
|
||||
|
||||
class Stop(Exception):
|
||||
"""Conditie neprevazuta: nu ghicim, raportam."""
|
||||
|
||||
|
||||
def citeste_conturi_parteneri(path=CONFIG_PARTENERI):
|
||||
"""(BANCA, SINTETIC, FARA_ANALITICE) din CSV; fisier lipsa = eroare, nu set gol."""
|
||||
if not os.path.exists(path):
|
||||
raise Stop(f"lipseste fisierul de configurare a partenerilor: {path}")
|
||||
seturi = {"BANCA": set(), "SINTETIC": set(), "FARA_ANALITICE": set()}
|
||||
with open(path, encoding="utf-8-sig", newline="") as f:
|
||||
for r in csv.DictReader(f):
|
||||
cont = (r.get("cont") or "").strip()
|
||||
categorie = (r.get("categorie") or "").strip()
|
||||
if not cont:
|
||||
continue
|
||||
if categorie not in seturi:
|
||||
raise Stop(f"categorie necunoscuta in {path}: {categorie!r}")
|
||||
seturi[categorie].add(cont)
|
||||
return seturi["BANCA"], seturi["SINTETIC"], seturi["FARA_ANALITICE"]
|
||||
|
||||
|
||||
# BANCA (5121/5124): analiticele raman analitice SI primesc partener.
|
||||
# SINTETIC: un singur BALANTA agregat pe sintetic + FACTURA per analitic.
|
||||
# FARA_ANALITICE (5311): fara analitice, BALANTA + FACTURA pe sintetic.
|
||||
(PARTENER_BANCA, PARTENER_SINTETIC,
|
||||
PARTENER_FARA_ANALITICE) = citeste_conturi_parteneri()
|
||||
|
||||
PARTENER = PARTENER_BANCA | PARTENER_SINTETIC | PARTENER_FARA_ANALITICE
|
||||
|
||||
@@ -58,10 +84,6 @@ FIRME = [
|
||||
]
|
||||
|
||||
|
||||
class Stop(Exception):
|
||||
"""Conditie neprevazuta: nu ghicim, raportam."""
|
||||
|
||||
|
||||
def citeste_header():
|
||||
wb = load_workbook(TEMPLATE, read_only=True)
|
||||
ws = wb.active
|
||||
|
||||
Reference in New Issue
Block a user