feat: Add WhatsApp import scripts for receipt processing
- OCR client for SQLite queue - WhatsApp flow: PDF -> OCR -> SQLite -> Oracle - PACK_CONTAFIN integration for Oracle save - README with flux documentation
This commit is contained in:
92
backend/scripts/whatsapp_import/README.md
Normal file
92
backend/scripts/whatsapp_import/README.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user