Analitic cu sold pe latura opusa: FACTURA cu suma negativa

Analiticul unui cont cu parteneri al carui sold e pe latura opusa laturii
fixate in cod primeste rand FACTURA, cu suma negativa pe latura
formularului (BALANTA si sold). Nu mai ramane nimic pe NEREPARTIZAT.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BdA5a3ECKFD6Citf1ptPZu
This commit is contained in:
2026-09-21 00:14:07 +03:00
parent 92dc8c7b32
commit 4c59a103c9
7 changed files with 158 additions and 139 deletions

View File

@@ -1,4 +1,4 @@
# Raport lane `genxlsx` (v2)
# Raport lane `genxlsx` (v3)
Script: `genereaza_xlsx.py`. Produce pentru fiecare firma xlsx-ul de initializare
(`init_<FIRMA>_2025_12.xlsx`, un sheet, randul 1 = capul de tabel, fara instructiuni/exemple)
@@ -6,7 +6,7 @@ si raportul de verificare (`docs/verificare_<FIRMA>.md`).
## Livrabile
- `init_FUNDATIA_2025_12.xlsx` - 75 randuri (47 BALANTA, 28 FACTURA)
- `init_MASTER_2025_12.xlsx` - 79 randuri (46 BALANTA, 33 FACTURA)
- `init_MASTER_2025_12.xlsx` - 80 randuri (46 BALANTA, 34 FACTURA)
- `docs/verificare_FUNDATIA.md`, `docs/verificare_MASTER.md`
- `genereaza_xlsx.py`
@@ -14,44 +14,43 @@ si raportul de verificare (`docs/verificare_<FIRMA>.md`).
| Firma | SUM(totdeb)=SUM(totcred) | frunze pierdute | parteneri | lungimi/dubluri |
|---|---|---|---|---|
| FUNDATIA | 7068369.50 = 7068369.50 (net 0.00) | 0 | OK | OK |
| MASTER | 2318592.91 = 2318592.91 (net 0.00) | 0 | OK | OK |
| MASTER | 2318572.11 = 2318572.11 (net 0.00) | 0 | OK | OK |
## Corectii v2 (fata de v1)
1. **Randul FACTURA `DIFERENTA SINTETIC <cont>` a fost eliminat** de pe conturile cu parteneri.
Formularul scade singur suma randurilor FACTURA din randul BALANTA de pe acelasi
`(cont, acont, latura)` si pune restul pe partenerul `NEREPARTIZAT` pe care il creeaza el
(`frm..sc2:415-431`). Diferenta nu se mai inventa de noi.
2. **Analitice cu sold pe latura opusa nu mai primesc FACTURA.** Latura FACTURA e fixa in cod
(`frm..sc2:379`/'383'): `401,404,462,419,408,4551` -> CREDIT, orice alt cont -> DEBIT.
Analiticul sarit ramane doar in randul BALANTA (pe latura lui corecta) si formularul ii pune
`NEREPARTIZAT`. Fiecare caz e listat in raport (sectiunea 4).
3. **Randul BALANTA reprezinta contul sintetic intreg.** La partenerii cu un singur BALANTA
agregat, `totdeb` = suma `total_d` a tuturor analiticelor + postarea directa pe sintetic
(idem `totcred`), nu doar analiticele pentru care s-a emis FACTURA.
4. **pct. 15 (revizuit 20.09.2026):**
- `5121`/`5124`: analiticele **raman analitice** si in plus primesc partener. Pentru fiecare
analitic se scriu **doua randuri pe acelasi `(cont, acont)`**: un `BALANTA` cu acont si
`totdeb`/`totcred` ale analiticului, si un `FACTURA` cu **acelasi acont**, `cod_fiscal` =
codul SAGA, `sold` = soldul analiticului. Acelasi `acont` e obligatoriu, altfel scaderea din
cod nu se potriveste si suma se dubleaza.
- `5125`: NU mai e cont cu parteneri - doar randuri BALANTA cu acont, fara FACTURA.
- `5311`: BALANTA (acont gol) + FACTURA (acont gol), partener `CENTRALA`.
- `401, 4092, 4111, 461, 462, 4551`: neschimbate - un BALANTA agregat pe sintetic (acont gol)
+ cate un FACTURA per analitic (acont gol).
## Corectia v3 (fata de v2)
**Analiticul cu sold pe latura opusa laturii fixate de formular (`frm..sc2:379`) NU mai este
sarit.** Primeste rand `FACTURA`, iar suma se scrie cu **semn negativ pe latura formularului**:
- randul `BALANTA` al analiticului: `totdeb = -|sold|` (daca latura formularului e D) sau
`totcred = -|sold|` (daca e C), cealalta latura goala;
- randul `FACTURA`: `sold = -|sold|`, pe aceeasi latura si cu **acelasi `acont`** ca BALANTA.
Soldul ramane pe latura corecta, `SUM(totdeb) = SUM(totcred)` se pastreaza (ambele laturi scad
cu aceeasi suma), randul FACTURA consuma exact randul BALANTA si nu mai ramane nimic pe
`NEREPARTIZAT`. Regula se aplica general, la orice cont cu parteneri. Pretul acceptat: nota
contine o suma negativa.
Efecte pe MASTER: +1 rand (FACTURA pentru `5121.01`), iar `SUM(totdeb)`/`SUM(totcred)` scad
cu 20.80 si ajung exact peste `Totaluri.total_d`/`total_c` din PDF (diferenta 0.00, fata de
20.80 in v2).
## Ce ramane pe `NEREPARTIZAT`, per cont (sectiunea 3 din verificari)
`net sintetic - SUM(sold FACTURA cu semn) = analitice sarite + postare directa pe sintetic`.
`net sintetic - SUM(sold FACTURA cu semn) = postare directa pe sintetic`.
Rezultat: toate conturile ies 0, mai putin MASTER `5121`:
| cont | SUM FACTURA | net sintetic | sarite | postare directa | NEREPARTIZAT asteptat | diferenta |
|---|---|---|---|---|---|---|
| MASTER 5121 | 15599.25 | 15730.61 | -20.80 (`5121.01` creditor) | +152.16 | 131.36 | 131.36 |
| cont | SUM FACTURA | net sintetic | postare directa | NEREPARTIZAT asteptat | diferenta |
|---|---|---|---|---|---|
| MASTER 5121 | 15578.45 | 15730.61 | +152.16 | 152.16 | 152.16 |
- MASTER `5121.01 PIRAEUS BANK - RON` (sold creditor 20,80): fara FACTURA, doar
`BALANTA 5121 acont 01` pe credit -> formularul ii pune `NEREPARTIZAT`.
- MASTER `5121.01 PIRAEUS BANK - RON` (sold creditor 20,80): `BALANTA acont 01 totdeb=-20.80`
+ `FACTURA acont 01 sold=-20.80` -> se consuma exact, fara `NEREPARTIZAT`.
- MASTER `5121` postare directa +152.16: rand `BALANTA 5121 acont 99` `DIFERENTA SINTETIC SAGA`
(fara FACTURA) -> `NEREPARTIZAT`.
## Analitice cu semn negativ (sectiunea 4 din verificari)
| Firma | cont | analitic | sold (semnat) | latura formularului |
|---|---|---|---|---|
| MASTER | 5121 | 5121.01 | -20.8 | D |
| FUNDATIA | - | niciunul | - | - |
## Randuri de diferenta (pct. 13-15) generate
- MASTER `117` (nepartener): +2635.87 -> rand `BALANTA` cont 117, acont `99`,
nume `DIFERENTA SINTETIC SAGA`.
@@ -59,7 +58,8 @@ Rezultat: toate conturile ies 0, mai putin MASTER `5121`:
- FUNDATIA: niciunul (1171.01 are diferenta net zero - doar netare SAGA).
## Observatii
- SUM(totdeb) difera de `Totaluri.total_d` din PDF (FUNDATIA +739831.67, MASTER +20.80):
gross-ul sinteticelor netate de SAGA nu se poate reconstrui din frunze; netul coincide exact.
- FUNDATIA: SUM(totdeb) difera de `Totaluri.total_d` din PDF cu +739831.67 (gross-ul
sinteticelor netate de SAGA nu se poate reconstrui din frunze); netul coincide exact.
- MASTER: dupa corectia v3, SUM(totdeb) = `Totaluri.total_d` = 2318572.11 (diferenta 0.00).
- Coloana `explicatia` (control D/C) este goala in xlsx-ul final.
- Nu s-a facut niciun commit.