- OCR client for SQLite queue - WhatsApp flow: PDF -> OCR -> SQLite -> Oracle - PACK_CONTAFIN integration for Oracle save - README with flux documentation
93 lines
2.5 KiB
Markdown
93 lines
2.5 KiB
Markdown
# WhatsApp Import - Flux Bonuri Fiscale
|
|
|
|
## Descriere
|
|
Scripturi pentru importul automat al bonurilor fiscale primite pe WhatsApp.
|
|
|
|
## Flux Complet
|
|
|
|
```
|
|
PDF (WhatsApp) --> OCR API (doctr+, ~4sec) --> SQLite (receipts) --> Oracle (ACT)
|
|
```
|
|
|
|
## Pași
|
|
|
|
### 1. Recepție PDF (Clawdbot pe moltbot)
|
|
- PDF primit pe WhatsApp ajunge în `~/.clawdbot/media/inbound/`
|
|
- Clawdbot detectează fișierul și pornește procesarea
|
|
|
|
### 2. OCR prin API (claude-agent:8000)
|
|
```bash
|
|
# Login
|
|
TOKEN=$(curl -s -X POST "http://localhost:8000/api/auth/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username":"USER","password":"PASS","server_id":"central"}' \
|
|
| jq -r .access_token)
|
|
|
|
# Submit OCR job
|
|
JOB=$(curl -s -X POST "http://localhost:8000/api/data-entry/ocr/extract" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-F "file=@bon.pdf" | jq -r .job_id)
|
|
|
|
# Wait for result (~4 sec)
|
|
sleep 5
|
|
curl -s "http://localhost:8000/api/data-entry/ocr/jobs/$JOB" \
|
|
-H "Authorization: Bearer $TOKEN"
|
|
```
|
|
|
|
### 3. Creare Receipt în SQLite
|
|
```bash
|
|
curl -s -X POST "http://localhost:8000/api/data-entry/receipts/" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"receipt_type": "bon_fiscal",
|
|
"receipt_number": "NR_BON",
|
|
"receipt_date": "YYYY-MM-DD",
|
|
"amount": 123.45,
|
|
"partner_name": "FURNIZOR",
|
|
"cui": "RO12345678",
|
|
"tva_total": 23.45,
|
|
"payment_mode": "banca",
|
|
"company_id": 110
|
|
}'
|
|
```
|
|
|
|
### 4. Aprobare în Frontend
|
|
- User verifică în http://claude-agent:3000/data-entry
|
|
- Editează dacă e necesar
|
|
- Aprobă bonul
|
|
|
|
### 5. Salvare Oracle (după aprobare)
|
|
- API-ul face automat salvarea în Oracle via PACK_CONTAFIN
|
|
- Sau manual cu `save_to_oracle.py`
|
|
|
|
## Scripturi
|
|
|
|
| Script | Descriere |
|
|
|--------|-----------|
|
|
| `ocr_client.py` | Client OCR - submit job în SQLite queue |
|
|
| `whatsapp_flow.py` | Flux complet: OCR + SQLite + Oracle |
|
|
| `process_v2.py` | OCR + PACK_CONTAFIN (direct, fără API) |
|
|
| `save_to_oracle.py` | Doar salvare Oracle cu PACK_CONTAFIN |
|
|
|
|
## Configurare
|
|
|
|
### Server OCR (claude-agent)
|
|
- Backend: http://localhost:8000
|
|
- Frontend: http://localhost:3000
|
|
- Start: `./start.sh test` sau `./start.sh central`
|
|
|
|
### Credențiale
|
|
- User: din CONTAFIN_ORACLE.NOM_UTILIZATORI
|
|
- Server: `central` (sau ce e configurat în .env)
|
|
- Company ID: din token după login
|
|
|
|
## Note
|
|
- OCR folosește doctr-plus (~4 sec per bon)
|
|
- Bonurile apar în frontend cu status "draft"
|
|
- Salvarea Oracle se face după aprobare
|
|
- Fluxul e asincron - OCR rulează în background
|
|
|
|
---
|
|
*Creat: 2026-02-03 de Echo*
|