← Volver a InvoiceController

💰 Factura con Pagos Predefinidos

Endpoint para crear facturas con pagos inmediatos desde número de mesa

Descripción General

El endpoint de Factura con Pagos Predefinidos proporciona la funcionalidad para crear una factura desde un número de mesa y agregar inmediatamente los pagos especificados. Este endpoint es útil para escenarios donde la información de pago se conoce de antemano, permitiendo un proceso de facturación y cobro en una sola operación.

🎯 Características del Endpoint

  • Creación y pago simultáneo: Crea la factura y agrega pagos en una operación
  • Pagos predefinidos: Permite especificar los pagos antes de crear la factura
  • Búsqueda por mesa: Encuentra la mesa en la sala especificada
  • Múltiples formas de pago: Soporta diferentes métodos de pago
  • Procesamiento inmediato: Ideal para cobros rápidos en POS

Endpoint Disponible

POST /WorkingData/Invoice/from-table-number-with-payments

Crea una factura desde número de mesa con pagos predefinidos. Este endpoint encuentra la mesa en la sala especificada, crea la factura correspondiente y agrega inmediatamente todos los pagos proporcionados. Útil para escenarios donde la información de pago se determina antes de la creación de la factura.
Body (JSON - List<FacturasCobro>):
[ { "tipoDocumento": "F", "serie": "A", "factura": 123, "importe": 25.50, "formaPago": "Efectivo", "fecha": "2024-01-15T10:30:00Z" }, { "tipoDocumento": "F", "serie": "A", "factura": 123, "importe": 20.00, "formaPago": "Tarjeta", "fecha": "2024-01-15T10:30:00Z" } ]
Parámetros de consulta:
  • salon (int, requerido): Número de sala donde está la mesa
  • mesa (int, requerido): Número de mesa a facturar
  • serie (string, requerido): Serie de la factura
  • 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
200 OK
Factura creada exitosamente con pagos
{ "serie": "A", "factura": 123, "fecha": "2024-01-15T10:30:00Z", "cliente": "Juan Pérez", "total": 45.50, "lineas": [...], "ivas": [...], "pagos": [ { "tipoDocumento": "F", "serie": "A", "factura": 123, "importe": 25.50, "formaPago": "Efectivo", "fecha": "2024-01-15T10:30:00Z" }, { "tipoDocumento": "F", "serie": "A", "factura": 123, "importe": 20.00, "formaPago": "Tarjeta", "fecha": "2024-01-15T10:30:00Z" } ] }
400 Bad Request
Mesa no encontrada, sin líneas o error de validación
500 Internal Server Error
Error interno del servidor

Modelos de Datos

FacturasCobro:
  • TipoDocumento (string): Tipo de documento (ej: "F" para factura)
  • Serie (string): Serie de la factura
  • Factura (double): Número de la factura
  • Importe (decimal): Importe del pago
  • FormaPago (string): Método de pago (Efectivo, Tarjeta, etc.)
  • Fecha (DateTime): Fecha y hora del pago
InvoiceDTO (Respuesta):
  • Serie (string): Serie de la factura
  • Factura (double): Número de la factura
  • Fecha (DateTime): Fecha de la factura
  • Cliente (string): Nombre del cliente
  • Total (decimal): Total de la factura
  • Lineas (List<object>): Líneas de la factura
  • Ivas (List<object>): IVAs de la factura
  • Pagos (List<FacturasCobro>): Pagos asociados

Casos de Uso Típicos

🎯 Escenarios de Aplicación

  • POS con pago inmediato: Crear factura y procesar cobro en una operación
  • Pagos mixtos: Combinar diferentes métodos de pago (efectivo + tarjeta)
  • Cobros anticipados: Cuando se conoce el método de pago antes de facturar
  • Integraciones con TPV: Sistemas de terminal punto de venta
  • Aplicaciones móviles: Cobro rápido en dispositivos móviles

⚠️ Consideraciones Importantes

  • La mesa debe existir y tener líneas para crear la factura
  • Los pagos se agregan inmediatamente después de crear la factura
  • Se requiere autenticación mediante userID y password
  • El parámetro initialCatalog es obligatorio
  • La serie y número de factura se asignan automáticamente

Ejemplo de Uso con cURL


curl -X POST \
  'http://localhost:1379/WorkingData/Invoice/from-table-number-with-payments?salon=1&mesa=1&serie=A&initialCatalog=ELSIFON' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "tipoDocumento": "F",
      "serie": "A",
      "factura": 123,
      "importe": 25.50,
      "formaPago": "Efectivo",
      "fecha": "2024-01-15T10:30:00Z"
    },
    {
      "tipoDocumento": "F",
      "serie": "A",
      "factura": 123,
      "importe": 20.00,
      "formaPago": "Tarjeta",
      "fecha": "2024-01-15T10:30:00Z"
    }
  ]'
                

Flujo de Procesamiento

🔄 Pasos del Endpoint

  1. Validación de parámetros: Verifica que los parámetros de consulta sean válidos
  2. Búsqueda de mesa: Localiza la mesa en la sala especificada
  3. Verificación de líneas: Confirma que la mesa tenga líneas para facturar
  4. Creación de factura: Genera la factura con número automático
  5. Agregado de pagos: Incluye todos los pagos especificados
  6. Respuesta completa: Devuelve la factura con todos sus datos y pagos