← Volver a InvoiceController

🔍 Búsqueda de Facturas

Endpoints para búsqueda avanzada y consulta de facturas con filtros

Descripción General

Los endpoints de Búsqueda de Facturas proporcionan capacidades avanzadas de consulta y filtrado para localizar facturas específicas en el sistema RestMaster. Estos endpoints permiten búsquedas flexibles combinando múltiples criterios como series, números, fechas, clientes, estados y otros parámetros.

🎯 Características de la Búsqueda de Facturas

  • Filtros múltiples: Combinación de criterios de búsqueda
  • Búsqueda por fechas: Rangos de fechas específicos
  • Filtros por cliente: Búsqueda por información del cliente
  • Filtros por estado: Facturas por estado de pago
  • Filtros por ubicación: Búsqueda por sala y mesa
  • Filtros por importes: Rangos de importes

Endpoints Disponibles

GET /WorkingData/Invoice/search

Busca facturas aplicando múltiples filtros. Este endpoint permite búsquedas flexibles combinando criterios como series, números, fechas, clientes, estados, salas, mesas, camareros, tipos de documento, importes, estado de impresión, estado de división, repartidor, tarifa y número de comensales.
Parámetros de consulta (InvoiceFilterDto):
  • serie (string, opcional): Serie de factura
  • numero (double, opcional): Número de factura
  • fechaInicio (DateTime, opcional): Fecha de inicio
  • fechaFin (DateTime, opcional): Fecha de fin
  • cliente (string, opcional): Nombre o ID del cliente
  • estado (string, opcional): Estado de la factura
  • salon (int, opcional): Número de sala
  • mesa (int, opcional): Número de mesa
  • camarero (string, opcional): ID del camarero
  • tipoDocumento (string, opcional): Tipo de documento
  • importeMinimo (decimal, opcional): Importe mínimo
  • importeMaximo (decimal, opcional): Importe máximo
  • impresa (bool, opcional): Estado de impresión
  • dividida (bool, opcional): Estado de división
  • repartidor (string, opcional): ID del repartidor
  • tarifa (string, opcional): Tipo de tarifa
  • comensales (int, opcional): Número de comensales
Parámetros de conexión:
  • 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
Búsqueda completada exitosamente

[
  {
    "serie": "A",
    "factura": 123,
    "fecha": "2024-01-15T10:30:00Z",
    "cliente": "Juan Pérez",
    "total": 45.50,
    "estado": "Pagada",
    "salon": 1,
    "mesa": 1
  }
]
400 Bad Request
Filtros inválidos o faltantes
500 Internal Server Error
Error interno del servidor

POST /WorkingData/Invoice/invoices/by-filter

Obtiene facturas por filtro flexible. Este endpoint permite búsquedas avanzadas enviando un objeto de filtro en el cuerpo de la petición. Útil para consultas complejas que requieren múltiples criterios.
Body (JSON - InvoiceFilterDto):

{
  "serie": "A",
  "fechaInicio": "2024-01-01T00:00:00Z",
  "fechaFin": "2024-01-31T23:59:59Z",
  "cliente": "Juan",
  "estado": "Pagada",
  "importeMinimo": 10.00,
  "importeMaximo": 100.00,
  "impresa": true,
  "dividida": false
}
Parámetros de consulta:
  • 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 obtenidas exitosamente

[
  {
    "serie": "A",
    "factura": 123,
    "fecha": "2024-01-15T10:30:00Z",
    "cliente": "Juan Pérez",
    "total": 45.50,
    "estado": "Pagada",
    "lineas": [...],
    "ivas": [...],
    "pagos": [...]
  }
]
400 Bad Request
Filtro inválido o error de validación
500 Internal Server Error
Error interno del servidor

Modelo de Datos - InvoiceFilterDto

Propiedades del modelo InvoiceFilterDto:
  • Serie (string): Serie de factura para filtrar
  • Numero (double): Número de factura específico
  • FechaInicio (DateTime): Fecha de inicio del rango
  • FechaFin (DateTime): Fecha de fin del rango
  • Cliente (string): Nombre o ID del cliente
  • Estado (string): Estado de la factura (Pagada, Pendiente, etc.)
  • Salon (int): Número de sala
  • Mesa (int): Número de mesa
  • Camarero (string): ID del camarero
  • TipoDocumento (string): Tipo de documento (F, T, etc.)
  • ImporteMinimo (decimal): Importe mínimo de la factura
  • ImporteMaximo (decimal): Importe máximo de la factura
  • Impresa (bool): Estado de impresión de la factura
  • Dividida (bool): Estado de división de la factura
  • Repartidor (string): ID del repartidor
  • Tarifa (string): Tipo de tarifa aplicada
  • Comensales (int): Número de comensales

Modelo de Datos - InvoiceDTO

Propiedades del modelo InvoiceDTO:
  • Serie (string): Serie de la factura
  • Factura (double): Número de factura
  • Fecha (DateTime): Fecha de la factura
  • Cliente (string): Información del cliente
  • Total (decimal): Total de la factura
  • Estado (string): Estado de la factura
  • Salon (int): Número de sala
  • Mesa (int): Número de mesa
  • Lineas (array): Líneas de la factura
  • Ivas (array): Impuestos de la factura
  • Pagos (array): Pagos de la factura

Servicio Utilizado

IInvoiceService - Servicio principal para la gestión de facturas
  • GetInvoicesByFilter(): Obtiene facturas por filtro
  • GetInvoicesByFilter(): Obtiene facturas por filtro flexible

Ejemplos de Uso

Ejemplo 1: Búsqueda por Rango de Fechas

Petición
GET /WorkingData/Invoice/search?fechaInicio=2024-01-01&fechaFin=2024-01-31&initialCatalog=ELSIFON
Respuesta
[
  {
    "serie": "A",
    "factura": 123,
    "fecha": "2024-01-15T10:30:00Z",
    "total": 45.50
  }
]

Ejemplo 2: Búsqueda por Cliente y Estado

Petición
POST /WorkingData/Invoice/invoices/by-filter?initialCatalog=ELSIFON
Content-Type: application/json

{
  "cliente": "Juan Pérez",
  "estado": "Pagada",
  "importeMinimo": 10.00
}
Respuesta
[
  {
    "serie": "A",
    "factura": 123,
    "cliente": "Juan Pérez",
    "total": 45.50,
    "estado": "Pagada"
  }
]