← Volver a InvoiceController

📄 Facturas Múltiples con Datos de Tabla

Endpoint para crear múltiples facturas con datos completos de tabla

Descripción General

El endpoint de Facturas Múltiples con Datos de Tabla proporciona la funcionalidad para crear múltiples facturas cuando se tienen los datos completos de tabla en memoria. Este endpoint es similar al endpoint 'multiple' pero recibe los datos de tabla directamente, siendo útil para integraciones avanzadas donde los datos de tabla y factura están pre-procesados.

🎯 Características del Endpoint

  • Datos de tabla directos: Recibe datos completos de tabla en memoria
  • Múltiples facturas: Permite crear varias facturas simultáneamente
  • Validación automática: Verifica que la lista de facturas no esté vacía
  • Datos de tabla requeridos: Valida que los datos de tabla estén presentes
  • Integración avanzada: Ideal para sistemas que pre-procesan datos

Endpoint Disponible

POST /WorkingData/Invoice/multiple/table

Crea múltiples facturas con datos completos de tabla. Este endpoint es similar a 'multiple' pero recibe datos de tabla directamente. Útil cuando los datos de tabla ya están en memoria y se requiere crear múltiples facturas con información pre-procesada.
Body (JSON - CreateMultipleInvoicesRequest):
{ "invoices": [ { "cabecera": { "salon": 1, "mesa": 1, "fecha": "2024-01-15T10:30:00Z", "total": 25.50, "cliente": "Juan Pérez" }, "lineas": [ { "articulo": "ART001", "descripcion": "Hamburguesa", "cantidad": 1, "precio": 12.50, "total": 12.50 }, { "articulo": "ART002", "descripcion": "Patatas", "cantidad": 1, "precio": 8.00, "total": 8.00 } ] }, { "cabecera": { "salon": 1, "mesa": 1, "fecha": "2024-01-15T10:30:00Z", "total": 20.00, "cliente": "María García" }, "lineas": [ { "articulo": "ART003", "descripcion": "Pizza", "cantidad": 1, "precio": 20.00, "total": 20.00 } ] } ], "tableDto": { "cabecera": { "salon": 1, "mesa": 1, "fecha": "2024-01-15T10:30:00Z", "total": 45.50 }, "lineas": [ { "articulo": "ART001", "descripcion": "Hamburguesa", "cantidad": 1, "precio": 12.50, "total": 12.50 }, { "articulo": "ART002", "descripcion": "Patatas", "cantidad": 1, "precio": 8.00, "total": 8.00 }, { "articulo": "ART003", "descripcion": "Pizza", "cantidad": 1, "precio": 20.00, "total": 20.00 } ] } }
Parámetros de consulta:
  • serie (string, requerido): Serie de las facturas
  • 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
Facturas creadas exitosamente
[ { "serie": "A", "factura": 123, "fecha": "2024-01-15T10:30:00Z", "cliente": "Juan Pérez", "total": 25.50, "lineas": [...], "ivas": [...] }, { "serie": "A", "factura": 124, "fecha": "2024-01-15T10:30:00Z", "cliente": "María García", "total": 20.00, "lineas": [...], "ivas": [...] } ]
400 Bad Request
Lista de facturas vacía o datos de tabla faltantes
500 Internal Server Error
Error interno del servidor

Modelos de Datos

CreateMultipleInvoicesRequest:
  • Invoices (List<InvoiceDTO>): Lista de facturas a crear
  • TableDto (TableDto): Datos completos de la tabla
InvoiceDTO:
  • Cabecera (object): Información de cabecera de la factura
  • Lineas (List<object>): Lista de líneas de la factura
  • Ivas (List<object>): Lista de IVAs de la factura
TableDto:
  • Cabecera (object): Información de cabecera de la tabla
  • Lineas (List<object>): Lista de líneas de la tabla

Casos de Uso Típicos

🎯 Escenarios de Aplicación

  • Integraciones avanzadas: Cuando los datos de tabla y factura están pre-procesados
  • Sistemas de reservas: Creación de facturas múltiples para grupos
  • División de cuentas: Separación de facturas por cliente o grupo
  • Procesamiento por lotes: Creación masiva de facturas
  • Aplicaciones móviles: Cuando se requiere procesamiento offline

⚠️ Consideraciones Importantes

  • La lista de facturas no puede estar vacía
  • Los datos de tabla deben estar presentes y ser válidos
  • El total de las facturas debe coincidir con el total de la tabla
  • Se requiere autenticación mediante userID y password
  • El parámetro initialCatalog es obligatorio

Ejemplo de Uso con cURL


curl -X POST \
  'http://localhost:1379/WorkingData/Invoice/multiple/table?serie=A&initialCatalog=ELSIFON' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "invoices": [
      {
        "cabecera": {
          "salon": 1,
          "mesa": 1,
          "fecha": "2024-01-15T10:30:00Z",
          "total": 25.50,
          "cliente": "Juan Pérez"
        },
        "lineas": [
          {
            "articulo": "ART001",
            "descripcion": "Hamburguesa",
            "cantidad": 1,
            "precio": 12.50,
            "total": 12.50
          }
        ]
      }
    ],
    "tableDto": {
      "cabecera": {
        "salon": 1,
        "mesa": 1,
        "fecha": "2024-01-15T10:30:00Z",
        "total": 25.50
      },
      "lineas": [
        {
          "articulo": "ART001",
          "descripcion": "Hamburguesa",
          "cantidad": 1,
          "precio": 12.50,
          "total": 12.50
        }
      ]
    }
  }'