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
96 lines
4.8 KiB
Markdown
96 lines
4.8 KiB
Markdown
# Raport lane `contract` - etapa 2
|
|
|
|
## 1. Facut
|
|
|
|
### 1.1 `config/conturi_parteneri.csv`
|
|
- `config/conturi_parteneri.csv:1-10` - 9 conturi, antet exact `cont,categorie,motiv`.
|
|
Categoriile (`BANCA` / `SINTETIC` / `FARA_ANALITICE`) corespund exact seturilor
|
|
`PARTENER_BANCA` / `PARTENER_SINTETIC` / `PARTENER_FARA_ANALITICE` de dinainte
|
|
(`genereaza_xlsx.py:46-50`).
|
|
|
|
### 1.2 `genereaza_xlsx.py` (singura modificare permisa)
|
|
- `genereaza_xlsx.py:48-49` - `CONFIG_PARTENERI`, cale absoluta fata de fisierul scriptului.
|
|
- `genereaza_xlsx.py:56-70` - `citeste_conturi_parteneri()`: citeste CSV-ul la pornire; fisier
|
|
lipsa sau categorie necunoscuta -> `Stop` cu mesaj clar (nu cade pe set gol).
|
|
- `genereaza_xlsx.py:77-78` - cele trei seturi se incarca din CSV la import.
|
|
- `LATURA_CREDIT` (`:43`) **nu** s-a mutat in CSV - neatins.
|
|
- Verificat bit-identic: regenerare FUNDATIA/MASTER => 0 diferente de celula fata de
|
|
`init_FUNDATIA_2025_12.xlsx` / `init_MASTER_2025_12.xlsx` din radacina (76x39, respectiv 81x39).
|
|
|
|
### 1.3 Script divergenta fata de Oracle
|
|
- `sql/export_config_cont_ireg.sql` - `SELECT cont FROM config_cont_ireg WHERE cu_inregistrari = 1`,
|
|
spool CSV cu o coloana (`CONT`); nume de coloane luate din `docs/config_cont_ireg.md`.
|
|
- `config/config_cont_ireg_snapshot.csv` - snapshot construit o singura data (21.09.2026) din
|
|
`docs/config_cont_ireg.md:91`, cu comentariu in antet despre sursa si data.
|
|
- `tools/divergenta_parteneri.py:17` citeste config-ul, `:30` snapshot-ul (ignora liniile `#` si
|
|
antetul `cont`/`CONT`), `:51` tipareste cele doua liste. Nu scrie in config, nu se conecteaza la
|
|
Oracle, doar stdlib.
|
|
|
|
### 1.4 `docs/decizii_import.md`
|
|
- `docs/decizii_import.md:122` - sectiune noua "Divergenta fata de CONFIG_CONT_IREG (constatata
|
|
21.09.2026)" cu ambele liste complete si comanda de refacere.
|
|
|
|
### 1.5 Anonimizator + poarta de regresie
|
|
- `tests/anonimizeaza_etalon.py:49` `citeste_corespondenta`, `:54` `anonimizeaza_foaie`,
|
|
`:99` `anonimizeaza_fisier` - functii importabile; `:112` `anonimizeaza()` refoloseste acelasi nucleu.
|
|
Verificat: golden regenerat din `init_*.xlsx` = golden comis pe valori de celula (0 diferente),
|
|
tabela de corespondenta neschimbata.
|
|
- `tests/test_regresie.py:44` `setUpClass` (skip daca lipseste tabela, `:46`), `:78` `_verifica`
|
|
(comparatie pe valori de celula), `:115/:118` cele doua teste. Scrie xlsx-urile intr-un director
|
|
temporar, nu peste cele din radacina.
|
|
|
|
## 2. Verificari
|
|
|
|
- Cens octeti: toate fisierele atinse raman **ASCII pur** (0 octeti > 0x7F inainte si dupa).
|
|
Nu s-a atins niciun `.vc2/.sc2/.prg`.
|
|
- Terminatoare de linie: `sql/export_config_cont_ireg.sql` scris **CRLF** (27 linii). Fisierele
|
|
`.py`/`.csv` LF, ca restul surselor Python existente.
|
|
- Comanda de test (output exact):
|
|
|
|
```
|
|
> py -m unittest discover -s tests -v
|
|
test_fundatia (test_regresie.TestRegresieEtalon.test_fundatia) ... ok
|
|
test_master (test_regresie.TestRegresieEtalon.test_master) ... ok
|
|
|
|
----------------------------------------------------------------------
|
|
Ran 2 tests in 0.416s
|
|
|
|
OK
|
|
```
|
|
|
|
- Comanda de divergenta (output exact):
|
|
|
|
```
|
|
> py tools/divergenta_parteneri.py config/config_cont_ireg_snapshot.csv
|
|
Conturi comparate: la noi 9, in Oracle 33
|
|
In Oracle, nu la noi (27): 1621, 167, 232, 234, 261, 2678, 2691, 403, 404, 408, 409, 4091, 4093, 4094, 4118, 413, 418, 419, 426, 4511, 456, 457, 471, 472, 4754, 542, 8051
|
|
La noi, nu in Oracle (3): 5121, 5124, 5311
|
|
```
|
|
|
|
- Verificat ca mesajul de esec al testului contine fisier, rand, coloana, asteptat si gasit
|
|
(simulat cu un golden modificat): `g.xlsx: rand 3, coloana 2: asteptat 'TAMPER', gasit 12`.
|
|
- Verificat ca `SkipTest` se declanseaza cand lipseste `tests/_corespondenta_anonimizare.json`.
|
|
- Netinse: `init_FUNDATIA_2025_12.xlsx`, `init_MASTER_2025_12.xlsx` (mtime 00:13), `tests/golden/*`,
|
|
`tests/_corespondenta_anonimizare.json`, `docs/verificare_*.md`, `init_facturi_balanta_note.xlsx`.
|
|
|
|
## 3. Divergenta constatata fata de Oracle
|
|
|
|
- **In Oracle, nu la noi (27):** `1621, 167, 232, 234, 261, 2678, 2691, 403, 404, 408, 409, 4091,
|
|
4093, 4094, 4118, 413, 418, 419, 426, 4511, 456, 457, 471, 472, 4754, 542, 8051`
|
|
- **La noi, nu in Oracle (3):** `5121, 5124, 5311`
|
|
|
|
Aceeasi divergenta e scrisa in `docs/decizii_import.md:122`.
|
|
|
|
## 4. Nefacut / blocat
|
|
|
|
- SQL-ul **nu s-a rulat pe Oracle** (interzis in acest lane). Snapshot-ul e construit din
|
|
`docs/config_cont_ireg.md`. `tools/divergenta_parteneri.py` citeste si formatul produs de SQL
|
|
(antet `CONT`), deci refacerea din Oracle nu cere modificari.
|
|
- Nimic blocat. Singura modificare in `genereaza_xlsx.py` este mutarea seturilor de conturi in CSV.
|
|
|
|
## 5. Stare periculoasa
|
|
|
|
Niciuna: fara commit / `git add`, fara write-back in binar, fara procese ramase, fisierele
|
|
`init_*.xlsx` din radacina si etalonul neatinse. Toate iesirile de test sunt intr-un director
|
|
temporar, sters la finalul testului. Un `bash.exe.stackdump` aparut in timpul sesiunii a fost sters.
|