date/ - intrari de la client (PDF-urile, exportul SAGA) si balanta intermediara iesiri/ - xlsx-urile generate si verificare_<FIRMA>.md (ignorat de git) sablon/ - sablonul ROA Punctele de intrare scriu acolo implicit: extrage.py --dir=date, genereaza.py citeste din date/ si scrie in iesiri/ (--dir-iesire), ca radacina sa nu se murdareasca la fiecare rulare. Sablonul e cautat langa script, in sablon/. Actualizate: TEMPLATE, cele trei teste care tin caile, .gitignore, CLAUDE.md si handoff-ul. Poarta capat-la-capat incepuse sa sara tacut dupa mutarea PDF-urilor (skipTest pe "lipsesc PDF-urile"); acum arata din nou catre date/ si ruleaza. 33 de teste trec, zero skip-uri. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
2.7 KiB
2.7 KiB
solduri2roa
Convertor balante SAGA (PDF) -> xlsx de initializare solduri ROACONT.
Mediu
py(Python 3.13). Instalate: pdfplumber, openpyxl, xlrd (.xls BIFF), firebird-driver (Firebird embedded). Fara alte dependinte; testele folosescunittestdin stdlib.- Nu folosi
sed -i(corupe fisierele). Scrie cu heredoc sau Python. D:\ROA\ROACONT= read-only. Nu comite (git/svn) fara aprobare.
Fisiere
extrage.py |
punctul de intrare: sursa (pdf/xlsx/fdb) -> contractul intern |
genereaza.py |
punctul de intrare: contractul intern -> xlsx de import |
extract_balanta.py |
PDF -> balanta_<FIRMA>.csv (pdfplumber pe coordonate) |
citire_xlsx.py |
foaie SAGA .xls/.xlsx -> acelasi contract |
citire_fdb.py |
CONT_BAZA.FDB -> balanta + parteneri + facturi (verificat doar pe sintetic) |
mapare.py |
propunere automata + corectii_<FIRMA>.xlsx, .TOATE/.RESTUL |
config/conturi_parteneri.csv |
conturile cu parteneri - autoritatea, nu CONFIG_CONT_IREG |
date/ |
intrari de la client (PDF, export SAGA) + balanta intermediara |
iesiri/ |
xlsx-urile generate + verificare_<FIRMA>.md (ignorat de git) |
sablon/init_facturi_balanta_note.xlsx |
sablonul ROA (rand 1 = coloane) |
genereaza_xlsx.py |
CSV -> init_<FIRMA>_<an>_<luna>.xlsx |
init_facturi_balanta_note.xlsx |
sablonul ROA (rand 1 = coloane, 2-13 instructiuni, 20+ exemple) |
docs/decizii_import.md |
regulile de mapare - citeste intai |
docs/conturi_cu_analitice.md |
per cont: ANALITIC sau PARTENER (confirmat de Marius) |
docs/config_cont_ireg.md |
CONFIG_CONT_IREG din Oracle local; CONT e VARCHAR2(4) |
docs/raport_form_init_balanta.md |
semantica formularului de import ROACONT |
docs/plan_solduri2roa.md |
etapele |
Reguli care se uita usor
pdftotextdecaleaza coloanele. Doar pdfplumber, grupare petop, coloane dupax1.totdeb/totcred= sume totale, nu solduri (bilantul/CPP se bazeaza pe ele).- In xlsx intra doar frunzele; importul reface sinteticul din suma analiticelor.
- Conturile cu parteneri nu primesc analitice: rand
BALANTApe sintetic + cate unFACTURAper partener. cont<= 4 car.,acont<= 4 car. Analitic SAGA lung -> cifre concatenate (1171.01.12->0112).- SAGA neteaza D/C la sintetice: diferentele se calculeaza pe net. Net != 0 -> analitic/partener de diferenta.
- Nu ajusta cifre ca sa treaca o verificare. Raporteaza.
Verificari obligatorii inainte de a declara gata
SUM(totdeb)=SUM(totcred); total = randul "Totaluri:" din PDF; fiecare frunza din CSV apare exact o data;
per cont cu parteneri SUM(sold FACTURA) = netul sinteticului; fara (cont,acont) duplicat.