Extragere pe coordonate (pdfplumber), generarea celor doua xlsx pentru FUNDATIA si MASTER 12/2025, regulile de mapare si rapoartele de verificare. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BdA5a3ECKFD6Citf1ptPZu
58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
# Raport pdf-extract - balante SAGA 31.12.2025
|
|
|
|
Script: `extract_balanta.py` (pdfplumber, extract_words pe coordonate; NU pdftotext).
|
|
Rulare: `py extract_balanta.py "<pdf>" "<csv>"`.
|
|
|
|
## Volum extras
|
|
|
|
| Firma | PDF | randuri CSV | conturi | randuri total |
|
|
|---|---|---|---|---|
|
|
| FUNDATIA | IBB 31.12.2025.pdf | 88 | 82 | 6 |
|
|
| MASTERJOB | MJC 31.12.2025.pdf | 88 | 81 | 7 |
|
|
|
|
Conturi duplicate: niciunul. Randuri de continuare de denumire lipite corect
|
|
(ex: `1171` = "REZULTATUL REPORTAT - PROFITUL NEREP./ PIREDERE NEACOP.").
|
|
|
|
## Rezultat verificari
|
|
|
|
`frunze` = cont care nu e parinte. `radacini` = cont al carui parinte nu apare in balanta.
|
|
SAGA neteaza D/C la conturile sintetice, deci verificarea de inchidere corecta e pe radacini.
|
|
|
|
| Verificare | FUNDATIA | MASTERJOB |
|
|
|---|---|---|
|
|
| (a) total_d = prec_d+rulaj_d si total_c = prec_c+rulaj_c | 82/82 OK | 81/81 OK |
|
|
| (b) sold_d-sold_c = total_d-total_c | 82/82 OK | 81/81 OK |
|
|
| (c) frunze: suma sold_d = suma sold_c | 6 793 548.43 = 6 793 548.43, dif 0.00 **OK** | 2 112 044.07 vs 2 114 832.10, dif **-2 788.03 ESEC** |
|
|
| (c2) radacini: suma sold_d = suma sold_c | 6 053 716.76 = 6 053 716.76, dif 0.00 OK | 2 114 811.30 = 2 114 811.30, dif 0.00 OK |
|
|
| randul "Totaluri:" din PDF | 6 053 716.76 = 6 053 716.76 | 2 114 811.30 = 2 114 811.30 |
|
|
| cross-check "Total sume clasa N" = suma radacinilor clasei | 5/5 OK | 6/6 OK |
|
|
| (d) parinte vs analitice | 6 diferente pe laturi, 0 pe net | 9 diferente pe laturi, 2 pe net |
|
|
|
|
Numerele de mai sus arata ca parsarea coordonatelor este corecta: (a) si (b) trec pentru
|
|
toate conturile, iar fiecare rand "Total sume clasa N" egaleaza exact suma radacinilor din
|
|
clasa respectiva (5/5 si 6/6), iar suma radacinilor egaleaza exact randul "Totaluri:".
|
|
|
|
## Conturi problematice si explicatie
|
|
|
|
Nu sunt erori de parsare; sunt doua comportamente reale SAGA:
|
|
|
|
1. Netare D/C la sintetice (FUNDATIA `1171.01`): parintele este prezentat net,
|
|
copiii pe laturi.
|
|
- `prec_d`: parinte 629 448.54 vs copii 1 369 280.21 (dif -739 831.67)
|
|
- `prec_c`: parinte 0.00 vs copii 739 831.67 (dif -739 831.67)
|
|
- pe NET: parinte 773 608.10 = copii 773 608.10 -> 0 diferente pe net.
|
|
De aceea suma frunzelor (6 793 548.43) difera de "Totaluri" (6 053 716.76) cu exact
|
|
739 831.67; inchiderea reala se face pe radacini si coincide cu PDF.
|
|
|
|
2. Postari directe pe conturi sintetice (MASTERJOB):
|
|
- `117`: parinte 47 431.79 vs copii 44 795.92 -> diferenta 2 635.87
|
|
- `5121`: parinte 15 730.61 vs copii net 15 578.45 -> diferenta 152.16
|
|
Suma postarilor directe = 2 635.87 + 152.16 = **2 788.03**, exact deficitul de la
|
|
verificarea (c) pe frunze (sold_c - sold_d = 2 788.03). Frunzele nu contin aceste
|
|
postari, de aceea (c) pica; incluzandu-le (c2, radacini) balanta este inchisa si
|
|
coincide cu "Totaluri:" = 2 114 811.30.
|
|
|
|
Concluzie: nu s-a ajustat nicio data. Verificarile (a), (b), (c2) si cross-check-ul pe
|
|
clase trec pentru ambele firme; (c) pe frunze pica doar la MASTERJOB din cauza postarilor
|
|
directe pe sintetice, dovedita prin relatia de mai sus.
|