Descripción General
Los endpoints de Gestión de Impuestos proporcionan las operaciones fundamentales para administrar los impuestos de facturas del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de impuestos, incluyendo información de tipos de IVA, bases imponibles y cálculos de impuestos.
🎯 Características de la Gestión de Impuestos
- Identificación compuesta: Cada impuesto se identifica por tipo, serie, factura y porcentaje de IVA
- Múltiples tipos de IVA: General (21%), Reducido (10%), Superreducido (4%), etc.
- Cálculos automáticos: Base imponible e importe de IVA
- Transacciones seguras: Uso de contexto de base de datos
- Resultados estructurados: ServiceResult para manejo de errores
- Validación de datos: Verificación de integridad de la información
- Cumplimiento fiscal: Adherencia a normativas de IVA
- Auditoría completa: Trazabilidad de cambios en impuestos
Endpoints Disponibles
GET
/WorkingData/InvoiceTax/{tipoDocumento}/{serie}/{factura}
Obtiene todos los impuestos de una factura específica por su tipo de documento, serie y número. Este endpoint permite recuperar la información completa de todos los impuestos aplicados a una factura.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento (ej: "FACTURA", "TICKET")
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
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
Impuestos de factura devueltos exitosamente
[
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"iva": 21.0,
"baseImponible": 100.00,
"importeIva": 21.00,
"descripcion": "IVA General",
"fechaCreacion": "2024-01-15T14:30:00Z",
"usuario": "CAJERO01"
},
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"iva": 10.0,
"baseImponible": 50.00,
"importeIva": 5.00,
"descripcion": "IVA Reducido",
"fechaCreacion": "2024-01-15T14:30:00Z",
"usuario": "CAJERO01"
}
]
400 Bad Request
Error en la solicitud o factura no encontrada
{
"isSuccess": false,
"error": "Factura no encontrada",
"data": null
}
POST
/WorkingData/InvoiceTax
Agrega un nuevo impuesto a una factura existente. Este endpoint permite añadir impuestos a una factura ya creada, calculando automáticamente el importe del IVA.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"iva": 21.0,
"baseImponible": 75.00,
"descripcion": "IVA General",
"usuario": "CAJERO01"
}
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
Impuesto agregado exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al agregar el impuesto
{
"isSuccess": false,
"error": "Error al agregar impuesto: Porcentaje de IVA no válido",
"data": false
}
PUT
/WorkingData/InvoiceTax
Actualiza un impuesto existente de una factura. Este endpoint permite modificar la información de un impuesto ya registrado, recalculando automáticamente el importe del IVA.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"iva": 21.0,
"baseImponible": 80.00,
"descripcion": "IVA General actualizado",
"usuario": "CAJERO01"
}
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
Impuesto actualizado exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al actualizar el impuesto
{
"isSuccess": false,
"error": "Error al actualizar impuesto: Impuesto no encontrado",
"data": false
}
DELETE
/WorkingData/InvoiceTax/{tipoDocumento}/{serie}/{factura}/{iva}
Elimina un impuesto específico de una factura. Este endpoint permite remover un impuesto de una factura, útil para corregir errores o eliminar impuestos incorrectos.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
- iva (double, requerido): Porcentaje de IVA del impuesto a eliminar
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
Impuesto eliminado exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al eliminar el impuesto
{
"isSuccess": false,
"error": "Error al eliminar impuesto: No se puede eliminar impuesto de factura cerrada",
"data": false
}
Servicio Utilizado
IInvoiceTaxService - Servicio principal para la gestión de impuestos de facturas
- GetInvoiceTaxes(): Obtiene todos los impuestos de una factura
- AddInvoiceTax(): Agrega un nuevo impuesto a una factura
- UpdateInvoiceTax(): Actualiza un impuesto existente
- DeleteInvoiceTax(): Elimina un impuesto específico