Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ QONTO_INVOICE_VAT_CATEGORY=
# FINANCE_BRIDGE_SKIP_AUDIT_LOG=
# FINANCE_BRIDGE_SKIP_TREASURY_CHECK=

# --- Gestor de cobros Falla (logic/gestion_falla.py) ---
# Comisión decimal: 0.08 = 8 %. El histórico evita duplicados por referencia.
FALLA_COMISION_PCT=0.08
FALLA_CUOTA_MINIMA_EUR=50.00
FALLA_MEMORIES_PATH=data/falla_memories.json
FALLA_LEDGER_PATH=logs/falla_cobros.jsonl

# Sincronización búnker Stripe ↔ Supabase (IDs LIVE; no usar po_/pi_ de test en Live)
BUNKER_SYNC_STRIPE_PAYOUT_ID=
BUNKER_SYNC_PAYMENT_INTENT_IDS=
Expand Down Expand Up @@ -334,6 +341,13 @@ QONTO_INVOICE_VAT_CATEGORY=
# FINANCE_BRIDGE_SKIP_AUDIT_LOG=
# FINANCE_BRIDGE_SKIP_TREASURY_CHECK=

# --- Gestor de cobros Falla (logic/gestion_falla.py) ---
# Comisión decimal: 0.08 = 8 %. El histórico evita duplicados por referencia.
FALLA_COMISION_PCT=0.08
FALLA_CUOTA_MINIMA_EUR=50.00
FALLA_MEMORIES_PATH=data/falla_memories.json
FALLA_LEDGER_PATH=logs/falla_cobros.jsonl

# Sincronización búnker Stripe ↔ Supabase (IDs LIVE; no usar po_/pi_ de test en Live)
BUNKER_SYNC_STRIPE_PAYOUT_ID=
BUNKER_SYNC_PAYMENT_INTENT_IDS=
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ logs/ip_access.jsonl
logs/IP_WATCH.md
logs/LAFAYETTE_TTC_MONITOR.md
logs/SISTEMA_SUSPENDIDO.jsonlupdate_stripe.py
logs/falla_cobros.jsonl
data/falla_memories.json
data/falla_memories.json.lock
update_stripe_v10.py
activate_royalties_v10.py
monetizacion_trace_demo.log
56 changes: 56 additions & 0 deletions logic/GESTION_FALLA.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Gestor de cobros de Falla

`logic.gestion_falla` procesa registros provenientes de un webhook, Make.com,
una exportación de Google Sheets o una tarea programada. Aplica una comisión
del 8 % por defecto, actualiza el saldo pendiente y evita duplicados.

## Activador

- Webhook: enviar el registro de la pasarela con una `referencia` estable.
- Schedule: para las 09:00 cada día, usar `FREQ=DAILY;BYHOUR=9;BYMINUTE=0;BYSECOND=0`
o su equivalente cron `0 9 * * *` con zona `Europe/Madrid`. Un cron UTC fijo
`0 7 * * *` coincide con las 09:00 CEST en verano, pero se desfasa en horario
de invierno; preferir zona explícita en el orquestador.

Payload compatible:

```json
{
"nombre": "Pau",
"fallero_id": "F-001",
"bruto": 100,
"concepto": "Cuota Abril",
"referencia": "pi_123",
"fecha": "2026-04-10"
}
```

También admite una lista o `{"registros": [...]}`. Para Make.com se conservan
los alias `monto`/`importe`, `tipo` y `payment_id`.

## Ejecución

```bash
python3 -m logic.gestion_falla --input cobros.json
```

Para recibir el JSON por entrada estándar:

```bash
printf '%s' '{"nombre":"Pau","bruto":100,"concepto":"Cuota Abril","referencia":"pi_123"}' \
| python3 -m logic.gestion_falla
```

Configuración:

- `FALLA_COMISION_PCT=0.08`
- `FALLA_CUOTA_MINIMA_EUR=50.00`
- `FALLA_MEMORIES_PATH=data/falla_memories.json`
- `FALLA_LEDGER_PATH=logs/falla_cobros.jsonl`

La memoria JSON es la fuente de verdad. El libro JSONL se sincroniza desde ella
en cada operación. Un reintento con la misma `referencia` devuelve
`"duplicado": true` y no genera un segundo asiento.

Patente: PCT/EP2025/067317
Bajo Protocolo de Soberanía V10 - Founder: Rubén
1 change: 1 addition & 0 deletions logic/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Paquete logic (gestión Falla y finanzas operativas).
Loading
Loading