Conceptos Clave
El módulo de Cuentas por Pagar gestiona:- Cuotas de compras a crédito generadas al registrar facturas de proveedores
- Pagos completos (no soporta pagos parciales)
- Estados de pago: 1 (pendiente), 0 (pagado)
- Seguimiento de obligaciones por proveedor y documento
Flujo de Pago
Acceder al módulo de Cuentas por Pagar
Navegue a Finanzas → Cuentas por Pagar.Verá un resumen en tarjetas superiores:
- Total Pendiente: Suma de
montode cuotas conestado = 1 - Total Vencido: Suma de cuotas pendientes con
fecha < hoy - Próximas a Vencer: Cantidad que vence en los próximos 7 días
- Pagado este Mes: Total de cuotas pagadas en el mes actual
Filtrar las obligaciones
Use los filtros disponibles:
Por estado
- Pendientes (estado=1): Cuotas no pagadas
- Pagadas (estado=0): Cuotas ya saldadas
- Vencidas (V): Pendientes con fecha < hoy
Por rango de fechas
- Fecha desde / Fecha hasta: Filtra por fecha de vencimiento
Por proveedor
- Busca por
razon_socialorucdel proveedor
Los scopes del modelo
DiaCompra.php automatizan los filtros:Seleccionar la cuota a pagar
En la tabla, identifique la obligación mediante:
- Documento: Serie-Número de la factura del proveedor (ej: F001-00003421)
- Proveedor: Razón social y RUC
- Fecha Emisión: Fecha de la compra
- Fecha Vencimiento: Fecha límite de pago
- Monto: Importe total a pagar (sin concepto de saldo)
- Estado: Badge verde (Pagado) o rojo (Pendiente/Vencido)
Estructura de Datos
Tabla: dias_compras
| Campo | Tipo | Descripción |
|---|---|---|
dias_compra_id | integer | ID de la cuota |
id_compra | integer | FK a compras |
fecha | date | Fecha de vencimiento |
monto | decimal(10,2) | Monto total a pagar |
estado | integer | 1=Pendiente, 0=Pagado |
fecha_pago | date (nullable) | Fecha en que se pagó |
Diferencias con
dias_ventas (Cuentas por Cobrar):- No tiene campo
numero_cuota(se asume cuota única) - No tiene
monto_pagadonisaldo(solo pago completo) - No tiene
observaciones estadoes integer (1/0) en lugar de string (‘P’/‘C’/‘V’)
Endpoint API
Consultar obligaciones
Registrar pago
Código del Controlador
EnCuentasPorPagarController.php (línea 98-131):
Cálculo de Resumen
EnCuentasPorPagarController.php (línea 68-88):
Comparación con Cuentas por Cobrar
| Característica | Cuentas por Cobrar | Cuentas por Pagar |
|---|---|---|
| Tabla | dias_ventas | dias_compras |
| Tipo de estado | String (‘P’,‘C’,‘V’) | Integer (1, 0) |
| Pagos parciales | ✅ Permitidos | ❌ Solo completo |
Campo saldo | ✅ Presente | ❌ No existe |
Campo observaciones | ✅ Presente | ❌ No existe |
Campo numero_cuota | ✅ Presente | ❌ No existe |
| Vencimiento | fecha_vencimiento | fecha |
Flujo de Compra a Crédito
Cuando se registra una compra con tipo de pago a crédito:- Se crea el registro en
comprasconid_tipo_pago != 1 - Se generan registros en
dias_comprassegún el plan de pagos:- Compra de S/. 10,000 en 4 cuotas mensuales
- Genera 4 registros con
monto = 2500cada uno - Fechas espaciadas según el intervalo (7, 15, 30 días, etc.)
Integración con Caja
Los pagos a proveedores pueden registrarse como egresos de caja:- Vaya a Finanzas → Caja (caja abierta)
- Registre un movimiento:
- Tipo: Egreso
- Concepto: “Pago a proveedor F001-00003421”
- Monto: 3,500.00
- Luego registre el pago en Cuentas por Pagar
Solución de Problemas
Error: 'Esta cuota ya está pagada'
Error: 'Esta cuota ya está pagada'
La cuota tiene
estado = '0'. Verifique en la tabla si efectivamente fue pagada (fecha_pago presente). Si es un error, debe cambiarse manualmente:¿Cómo registrar un pago parcial?
¿Cómo registrar un pago parcial?
El sistema actual NO soporta pagos parciales en Cuentas por Pagar. Opciones:
- Dividir la compra desde el inicio: Al registrar la compra, cree múltiples cuotas más pequeñas
- Workaround manual: Edite la base de datos para dividir el registro en
dias_comprasen dos filas con montos parciales
¿Cómo anulo un pago registrado por error?
¿Cómo anulo un pago registrado por error?
Debe editar manualmente la base de datos:Se recomienda agregar un botón “Anular Pago” en la interfaz.
No aparecen obligaciones de una compra reciente
No aparecen obligaciones de una compra reciente
Verifique que la compra:
- Tenga
id_tipo_pago != 1(no sea al contado) - Tenga registros en
dias_compras - Tenga
estado = '1'encompras(no anulada)
Reportes Relacionados
- Reporte de Antigüedad de Deudas: Agrupa por días vencidos
- Reporte por Proveedor: Total adeudado por proveedor
- Historial de Pagos: Log de todos los pagos del mes
Mejoras Sugeridas
Funcionalidades que podrían agregarse:
- Soporte para pagos parciales (similar a Cuentas por Cobrar)
- Campo de observaciones por pago
- Botón de “Anular Pago” en la UI
- Número de cuota para mejor seguimiento
- Alertas automáticas de próximos vencimientos
- Integración directa con movimientos de caja/banco