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
This commit is contained in:
57
docs/raport_pdf_extract.md
Normal file
57
docs/raport_pdf_extract.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user