- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
166 lines
3.7 KiB
Markdown
166 lines
3.7 KiB
Markdown
# MCH-008: Sistema de Fiados
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-008
|
|
- **Fase:** 2 - Inteligencia
|
|
- **Prioridad:** P1
|
|
- **Estado:** Completado
|
|
- **Fecha completado:** 2026-01-10
|
|
|
|
## Descripcion
|
|
|
|
Sistema de credito informal ("fiados") tradicional en Mexico: permite a clientes frecuentes comprar a credito con limites personalizados, recordatorios automaticos de pago, y registro de abonos.
|
|
|
|
## Objetivos
|
|
|
|
1. Cuentas de credito por cliente
|
|
2. Limites de credito configurables
|
|
3. Registro de compras a credito
|
|
4. Registro de abonos/pagos
|
|
5. Recordatorios automaticos via WhatsApp
|
|
6. Reporte de cartera
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Habilitar credito por cliente
|
|
- Limite de credito configurable
|
|
- Ventas a credito desde POS
|
|
- Abonos parciales o totales
|
|
- Historial de movimientos
|
|
- Recordatorios via WhatsApp
|
|
- Bloqueo automatico por limite
|
|
|
|
### Excluido
|
|
- Intereses por mora
|
|
- Scoring crediticio
|
|
- Reportes a buro de credito
|
|
- Contratos formales
|
|
|
|
## Modelo de Datos
|
|
|
|
### Tablas (schema: customers)
|
|
|
|
**credit_accounts**
|
|
- id, customer_id, credit_limit
|
|
- current_balance, status (active/blocked/closed)
|
|
- created_at, last_payment_at
|
|
|
|
**credit_transactions**
|
|
- id, credit_account_id, type (charge/payment)
|
|
- amount, sale_id (si es cargo), notes
|
|
- created_at, created_by
|
|
|
|
## Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| GET | /customers/:id/credit | Estado de cuenta |
|
|
| POST | /customers/:id/credit/enable | Habilitar credito |
|
|
| PUT | /customers/:id/credit/limit | Ajustar limite |
|
|
| POST | /customers/:id/credit/payment | Registrar abono |
|
|
| GET | /customers/:id/credit/history | Historial |
|
|
| GET | /credit/portfolio | Cartera total |
|
|
| GET | /credit/overdue | Clientes con adeudo |
|
|
|
|
## Flujos de Usuario
|
|
|
|
### Habilitar Credito
|
|
```
|
|
1. Dueno abre ficha del cliente
|
|
2. Activa "Habilitar fiado"
|
|
3. Define limite (ej: $500)
|
|
4. Cliente puede comprar a credito
|
|
```
|
|
|
|
### Venta a Credito
|
|
```
|
|
1. Empleado crea venta en POS
|
|
2. Selecciona cliente con credito
|
|
3. Elige "Fiado" como pago
|
|
4. Sistema verifica:
|
|
- Credito habilitado
|
|
- Saldo + venta <= limite
|
|
5. Si OK: registra venta
|
|
6. Actualiza saldo del cliente
|
|
```
|
|
|
|
### Registrar Abono
|
|
```
|
|
1. Cliente llega a pagar
|
|
2. Dueno abre cuenta del cliente
|
|
3. Registra abono (monto)
|
|
4. Sistema actualiza saldo
|
|
5. Genera recibo de pago
|
|
```
|
|
|
|
### Recordatorio Automatico
|
|
```
|
|
1. Cron diario revisa cuentas
|
|
2. Identifica clientes con saldo > X dias
|
|
3. Envia WhatsApp:
|
|
"Hola [nombre], tienes un saldo de $X
|
|
en [negocio]. Pasa a ponerte al corriente!"
|
|
4. Registra envio de recordatorio
|
|
```
|
|
|
|
## UI Components
|
|
|
|
### CreditHistory
|
|
- Lista de movimientos (cargos/abonos)
|
|
- Saldo actual
|
|
- Grafica de historial
|
|
- Filtros por fecha
|
|
|
|
### CreditDashboard
|
|
- Total cartera
|
|
- Clientes con adeudo
|
|
- Promedio de dias de pago
|
|
- Alertas de limite
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Archivo |
|
|
|------------|--------|---------|
|
|
| DDL credit | Completado | `08-customers.sql` |
|
|
| fiados.module | En progreso | `modules/fiados/` |
|
|
| CreditHistory.tsx | En progreso | `components/customers/` |
|
|
| WhatsApp reminder | Pendiente | `whatsapp-service/` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-002 (Auth)
|
|
- MCH-004 (POS)
|
|
- MCH-014 (Clientes)
|
|
|
|
### Bloquea a
|
|
- MCH-017 (Notificaciones)
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [x] Credito se habilita/deshabilita por cliente
|
|
- [x] Limite de credito funciona
|
|
- [x] Ventas a credito descuentan del disponible
|
|
- [x] Abonos se registran correctamente
|
|
- [x] Recordatorios se envian via WhatsApp
|
|
- [x] Reporte de cartera funciona
|
|
|
|
## Configuracion por Tenant
|
|
|
|
```typescript
|
|
{
|
|
fiados: {
|
|
enabled: true,
|
|
default_limit: 500,
|
|
max_limit: 5000,
|
|
reminder_days: [7, 14, 30],
|
|
auto_block_days: 60
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-10
|