Files
solduri2roa/docs/raport_pdf_extract.md
Marius Mutu 92dc8c7b32 solduri2roa: balante SAGA PDF -> xlsx initializare ROACONT
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
2026-09-21 00:02:30 +03:00

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 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.