Lane citire-fdb: cititorul Firebird, cu poarta pe firma de joaca

citire_fdb.py produce balanta, parteneri si facturi din CONT_BAZA.FDB. Soldurile
stocate in CONTURI sunt 0, deci balanta se obtine agregand REGISTRU pe cele trei
intervale de data; analiticul se ruleaza in sintetic si se emit ambele randuri;
contul colector % se exclude. Conexiune embedded, READ, doar SELECT, rollback.

Garzi pe NULL: scadenta lipsa cade pe ultima zi a lunii, codul fiscal lipsa pe
codul provizoriu, partenerul intrand in lista pentru cautarea ANAF.

Poarta: CSV-ul din FDB e identic la octet cu cel produs de citire_xlsx.py din
exportul firmei de joaca (09/2026), iar SUM(REGISTRU) pe fiecare latura da netul
balantei. Verificat independent: 10 conturi, 7298.15 pe ambele laturi.

Limita, scrisa si in cod si in raport: firma de joaca nu are niciun analitic,
deci cititorul e verificat DOAR pe cazul sintetic si nu se foloseste la un client
fara rerularea portii pe datele lui.

docs/procedura_copie_fdb_client.md: cum isi face clientul copia bazei.

23 de teste trec, fara skip.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EYeAtVxeS8m4oXekjX8Am2
This commit is contained in:
2026-09-21 16:13:30 +03:00
parent ba4cbbf62c
commit 6b37d370d7
4 changed files with 645 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
# Copia bazei SAGA pentru conversie (pentru client)
Ca sa convertim soldurile avem nevoie de o **copie** a bazei SAGA, nu de baza pe
care lucrezi zilnic. Copia se face asa incat sa fie `consistenta` (sa se poata
deschide) si sa nu te deranjeze in lucru.
## Ce este baza
Baza este un fisier numit `CONT_BAZA.FDB`, intr-un subfolder al instalarii SAGA
(de exemplu `C:\SAGA\0001\CONT_BAZA.FDB`; `0001` este firma). Dimensiunea creste in
timp; la firmele mici ajunge la zeci de MB.
## Varianta recomandata - backup din SAGA (baza poate rula)
1. In SAGA, cauta functia de administrare / intretinere a bazei: ceva de forma
"Backup baza de date" sau "Salvare baza de date".
2. Salveaza fisierul rezultat (are de obicei extensia `.fbk`) intr-un folder obisnuit.
3. Rezultatul este o copie **consistenta** si **mai mica** decat fisierul brut, si se
face fara sa opresti SAGA.
Daca in SAGA nu gasesti functia, foloseste varianta urmatoare.
## Varianta cu gbak (daca ai acces la folderul SAGA)
Deschide o fereastra de comanda (Start -> scrie `cmd` -> Enter) si ruleaza, pe un
singur rand:
"C:\Program Files\Firebird\Firebird30_Saga\gbak.exe" -b -v "C:\SAGA\0001\CONT_BAZA.FDB" "C:\temp\firma.fbk" -user SYSDBA -password PAROLA_SAGA
- inlocuieste `C:\SAGA\0001\CONT_BAZA.FDB` cu calea reala a bazei tale;
- inlocuieste `C:\temp\firma.fbk` cu unde vrei sa iasa copia;
- `PAROLA_SAGA` este parola pe care o foloseste SAGA pentru baza (daca nu o stii,
foloseste varianta cu backupul din SAGA).
Fisierul `.fbk` rezultat este mai mic decat baza si se deschide la noi cu o comanda
asemanatoare (`gbak -c`), fara sa atingem instalarea ta.
## Daca preferi sa trimiti fisierul brut `CONT_BAZA.FDB`
Atunci trebuie neaparat sa **inchizi SAGA inainte**:
1. Inchide SAGA complet (Fisier -> Iesire) si astepta sa se inchida.
2. Asteapta cateva secunde.
3. Copiaza `CONT_BAZA.FDB` intr-un folder obisnuit (Copy / Paste).
Daca SAGA este pornit in timpul copierii, copia poate iesi **stricata** si nu se mai
poate deschide.
## Cum trimiti
- Pune fisierul (`.fbk` sau `.FDB`) intr-o arhiva ZIP, ca sa se trimita mai usor.
- Trimite arhiva pe canalul obisnuit.
- Nu modifica si nu redenumi baza.
## Ce facem noi cu ea
Deschidem doar copia, in mod **citire** (`read-only`), nu modificam si nu scriem
nimic in ea, si extragem balanta, partenerii si facturile pentru conversie. Baza ta
originala ramane neatinsa.