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
3.0 KiB
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 | 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:
-
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.
-
Postari directe pe conturi sintetice (MASTERJOB):
117: parinte 47 431.79 vs copii 44 795.92 -> diferenta 2 635.875121: 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.