Vista: Pagos a Proveedor
Proposito
Esta vista permite al equipo de finanzas gestionar los pagos pendientes a proveedores. Muestra los pagos programados con su fecha de vencimiento, monto, metodo de pago y estado de urgencia. El objetivo es asegurar que todos los pagos se ejecuten en tiempo, priorizando los que estan proximos a vencer o ya vencidos, y registrando los comprobantes correspondientes.
Vista: Pagos Proveedor
La pestana vista_pagos_proveedor es una vista de solo lectura (Capa 3a) que muestra todos los pagos a proveedor que no han sido completados (pagada). Se actualiza automaticamente cada vez que se procesan cambios.
Columnas de la vista
| Columna | Descripcion |
|---|---|
| Folio Demanda | Identificador de la demanda de abastecimiento asociada |
| Proveedor Nombre | Nombre del proveedor al que se debe pagar |
| Monto Total | Monto total de la opcion aprobada |
| Payment Method Code | Metodo de pago: transferencia, efectivo, o cheque |
| Beneficiary Name | Nombre del beneficiario para el pago |
| Due At | Fecha limite para realizar el pago |
| Estado Pago | Estado actual del pago (ver abajo) |
| Urgencia Pago | Semaforo de urgencia (ver abajo) |
Estados de pago
| Estado | Significado |
|---|---|
pendiente_contexto | Falta informacion para programar el pago (factura, cuenta, etc.) |
lista_para_programar | Toda la informacion esta completa; listo para ejecutar |
programada | El pago fue programado y esta en proceso de ejecucion |
bloqueada | El pago esta detenido por algun problema (factura rechazada, error de cuenta, etc.) |
vencida | La fecha limite ya paso sin que se haya ejecutado el pago |
Los pagos en estado pagada no aparecen en esta vista.
Semaforo de urgencia de pago
El semaforo indica que tan cerca esta la fecha de vencimiento:
| Color | Etiqueta | Condicion |
|---|---|---|
| Verde | En tiempo | Faltan mas de 3 dias para la fecha limite |
| Amarillo | Proximo | Faltan 3 dias o menos para la fecha limite |
| Amarillo | Sin fecha | No se definio fecha limite (due_at vacio) |
| Rojo | Vencido | La fecha limite ya paso o es hoy |
Importante: Los pagos con semaforo en rojo (Vencido) deben atenderse de inmediato. Los amarillos requieren accion en las proximas 72 horas.
Ordenamiento
Los pagos se muestran ordenados por:
- Urgencia — los pagos vencidos aparecen primero, luego los proximos, luego los que estan en tiempo.
- Fecha de vencimiento — de mas proxima a mas lejana, dentro de cada grupo de urgencia.
Como Registrar un Pago
Los pagos se registran a traves de la pestana stg_pago_proveedor (o el formulario en AppSheet).
Pago nuevo
- Identificar el pago pendiente en
vista_pagos_proveedor. - Abrir
stg_pago_proveedory llenar:- demanda_id: ID de la demanda de abastecimiento.
- opcion_id: ID de la opcion aprobada (la que se esta pagando).
- proveedor_id: ID del proveedor.
- payment_method_code: Metodo de pago (
transferencia,efectivo, ocheque). - beneficiary_name: Nombre del beneficiario.
- account_ref: Referencia de cuenta bancaria o datos de pago.
- invoice_or_quote_ref: Numero de factura o cotizacion del proveedor.
- due_at: Fecha limite de pago.
- El sistema crea el registro de pago en
_pagos_proveedory calcula el estado inicial. - La demanda transiciona a estado
pago_pendiente.
Ejecutar un pago (marcar como pagado)
- Abrir
stg_pago_proveedorcon la misma combinacion de demanda_id/opcion_id/proveedor_id. - Llenar los campos adicionales:
- paid_by_user_id: ID del usuario que ejecuto el pago.
- paid_at: Fecha y hora en que se ejecuto el pago.
- proof_refs_json: Referencias a comprobantes (JSON array, ej.
["comprobante_001.pdf"]).
- El sistema actualiza el pago existente a estado
pagada. - La demanda transiciona a estado
pagada, habilitando la recepcion de material.
Manejo de Excepciones
Pago sin factura
Cuando el proveedor no emite factura (frecuente con proveedores informales):
- Registrar el pago normalmente.
- Llenar exception_reason_code =
sin_factura. - En invoice_or_quote_ref, anotar la referencia alternativa (cotizacion, nota de remision, etc.).
Pago en efectivo
Cuando el pago debe hacerse en efectivo (frecuente para compras urgentes menores):
- Llenar payment_method_code =
efectivo. - Llenar exception_reason_code =
pago_en_efectivo. - Adjuntar foto del recibo o comprobante de entrega en proof_refs_json.
Liquidacion inmediata
Cuando el proveedor exige pago antes de entregar el material:
- Llenar exception_reason_code =
liquidacion_inmediata. - Llenar due_at con la fecha de hoy o el dia del pago.
- Ejecutar el pago de inmediato (llenar paid_at y proof_refs_json).
- El material se podra recibir una vez que el pago este en estado
pagada.
Cuando Escalar
- Pago vencido sin resolucion. Si un pago lleva mas de 3 dias en rojo y no se ha podido ejecutar, escalar a direccion para definir prioridad o negociar con el proveedor.
- Monto no coincide con la opcion aprobada. Si el proveedor cobra un monto diferente al aprobado, no proceder sin autorizacion de direccion.
- Proveedor no entrega factura. Si se requiere factura para la contabilidad y el proveedor no la proporciona, escalar a compras para gestionar o buscar alternativa.
- Cuenta bancaria rechazada. Si la transferencia falla, verificar los datos con el proveedor y actualizar
account_ref.
Reglas Importantes
- Solo se pueden pagar opciones seleccionadas. El sistema valida que la opcion este en estado
seleccionada(aprobada por direccion) antes de permitir el pago. - El proveedor_id debe coincidir con la opcion. El sistema verifica que el proveedor del pago sea el mismo de la opcion aprobada.
- La demanda debe estar en estado downstream. Si la demanda no ha pasado por aprobacion, el sistema rechaza el pago con “Demand is not ready for downstream payment context”.
- Pagos vencidos requieren accion inmediata. Revisar la cola diariamente para evitar atrasos.
- Siempre adjuntar comprobante. El campo proof_refs_json debe llenarse al ejecutar el pago.
- Pagos en efectivo requieren evidencia fotografica. Tomar foto del recibo y referenciarlo.
Errores Comunes
| Campo | Valor |
|---|---|
status_procesamiento | ok (exito) o error (fallo) |
error_code | Codigo del error |
error_detail | Descripcion detallada del problema |
procesado_at | Fecha y hora del procesamiento |
Errores frecuentes y solucion
| Error | Causa | Solucion |
|---|---|---|
| ”demanda_id es obligatorio” | No se selecciono la demanda | Verificar el campo demanda_id |
| ”opcion_id=X no encontrada” | La opcion no existe | Verificar el ID correcto |
| ”opcion_id=X no pertenece a demanda_id=Y” | La opcion no corresponde a esta demanda | Verificar que opcion y demanda esten vinculadas |
| ”proveedor_id no coincide con la opcion aprobada” | El proveedor del pago difiere | Usar el proveedor_id de la opcion seleccionada |
| ”La opcion debe estar seleccionada” | La opcion no fue aprobada por direccion | Verificar que direccion haya aprobado esta opcion |
| ”Demand is not ready for downstream payment context” | La demanda no ha sido aprobada | Esperar aprobacion de direccion antes de solicitar pago |
| ”paid_by_user_id invalid” | El usuario no esta activo | Verificar que la cuenta este activa en _usuarios |
Que hacer si una fila tiene error
- Revisar los campos
error_codeyerror_detailen la fila de staging. - Corregir el dato incorrecto.
- Limpiar el campo
status_procesamiento(dejarlo vacio) para que el sistema vuelva a procesar la fila. - Esperar el siguiente ciclo de procesamiento o ejecutar manualmente.
Referencias
- Especificacion tecnica:
docs/views/int-4_compras.yaml - Contrato autoritativo:
docs/plans/2026-03-25-compras-whatsapp-process-model.md - Arquitectura de datos:
docs/architecture/dec_001_modelo-de-datos-canonico.md - Capas de datos:
docs/architecture/dec_002_capa-canonica-y-vistas-operativas.md - Vistas por rol:
docs/architecture/dec_003_vistas-decision-support-por-rol.md