📊 Resumen del Controlador
1
Categoría de Funcionalidad
CRUD
Operaciones Completas
El InvoicePayController es el controlador encargado de gestionar todos los aspectos relacionados con los pagos de facturas del restaurante. Proporciona una API RESTful completa con operaciones CRUD para la entidad FacturasCobro, incluyendo gestión de formas de pago, importes y transacciones financieras.
🎯 Funcionalidades Principales
- Gestión CRUD completa de pagos de facturas (4 endpoints)
- Consulta de pagos por factura específica
- Agregar pagos a facturas existentes con retorno de datos
- Actualizar pagos con validación de datos
- Eliminar pagos de facturas
- Múltiples formas de pago (efectivo, tarjeta, transferencia, etc.)
- Pagos parciales y totales
- Integración con sistemas externos (POS, apps móviles)
- Manejo de transacciones con contexto de base de datos
- Resultados tipados con ServiceResult para mejor control de errores
🔧 Servicios Utilizados
Servicios Inyectados por Constructor:
- IInvoicePayService - Servicio principal de gestión de pagos de facturas
- DbWorkingContextHelper - Helper para configuración de contexto de base de datos
⚠️ Parámetros de Conexión
Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:
- initialCatalog (string, requerido): Nombre de la base de datos
- userID (string, opcional): ID de usuario de la base de datos
- password (string, opcional): Contraseña de la base de datos
🔗 Estructura de Rutas
Ruta Base: /WorkingData/InvoicePay
Todos los endpoints del controlador están bajo la ruta /WorkingData/InvoicePay, lo que indica que maneja datos de trabajo del sistema.
Patrones de URL:
- Consulta de pagos:
/{tipoDocumento}/{serie}/{factura} - GET
- Agregar pago:
/ - POST
- Actualizar pago:
/ - PUT
- Eliminar pago:
/{tipoDocumento}/{serie}/{factura}/{linea} - DELETE
⚠️ Identificación de Pagos
Los pagos de factura se identifican mediante cuatro parámetros:
- tipoDocumento (string): Tipo de documento (ej: "FACTURA", "TICKET")
- serie (string): Serie del documento
- factura (double): Número de factura
- linea (int): Número de línea de pago dentro de la factura
📊 Códigos de Respuesta
✅ 200 - OK
Operación exitosa, datos devueltos correctamente
Usado en: GET, POST, PUT, DELETE exitosos
❌ 400 - Bad Request
Error en la solicitud o validación
Usado en: Errores de validación o lógica de negocio
📝 Nota sobre Códigos de Respuesta
Este controlador utiliza ServiceResult para manejar resultados, por lo que todos los endpoints devuelven 200 (éxito) o 400 (error), con la información detallada del resultado en el cuerpo de la respuesta.
📋 Modelo de Datos - FacturasCobro
Nota: El campo Fecha es obligatorio. Si no se envía en la petición, el sistema asigna automáticamente la fecha y hora actual del servidor al guardar el cobro.
Propiedades principales del modelo FacturasCobro:
- TipoDocumento (string): Tipo de documento (FACTURA, TICKET, etc.)
- Serie (string): Serie del documento
- Factura (double): Número de factura
- Relacion (int): Número de relación de pago
- Importe (decimal): Importe del pago
- FormaPago (string): Forma de pago utilizada
- FechaPago (DateTime): Fecha y hora del pago
- Referencia (string): Referencia del pago (opcional)
- Observaciones (string): Observaciones adicionales
- Usuario (string): Usuario que realizó el pago
💰 Formas de Pago Soportadas
- EFECTIVO: Pago en efectivo
- TARJETA: Pago con tarjeta de crédito/débito
- TRANSFERENCIA: Transferencia bancaria
- CHEQUE: Pago con cheque
- VALES: Vales de descuento o regalo
- CREDITO: Pago a crédito
- BIZUM: Pago móvil Bizum
- OTROS: Otras formas de pago