← Volver a Back.Domain

ArqueoCajaResponse

DTO para la respuesta del arqueo de caja

📊 Descripción General

El DTO ArqueoCajaResponse representa la respuesta completa de un arqueo de caja en el sistema RestMaster. Este DTO contiene toda la información financiera y operativa relacionada con el cierre de una caja, incluyendo totales de ventas, formas de pago, descuadres y detalles por tipo de documento.

🎯 Propósito del DTO

  • Respuesta de Arqueo: Datos completos del arqueo de caja
  • Información Financiera: Totales por forma de pago
  • Datos Operativos: Número de facturas y comensales
  • Control de Caja: Importes inicial y final
  • Detalle por Documentos: Desglose por tipo de documento

📋 Propiedades del DTO

Cajero

double
ID del cajero que realizó el arqueo

Cierre

double
Número de cierre de caja

Fecha

DateTime
Fecha del cierre de caja

Venta

double?
Total de ventas realizadas

NumeroFacturas

double?
Número total de facturas emitidas

NumeroComensales

double?
Número total de comensales atendidos

Efectivo

double?
Total cobrado en efectivo

Tarjetas

double?
Total cobrado con tarjetas

Credito

double?
Total en crédito

Invitacion

double?
Total en invitaciones

Propina

double?
Total de propinas recibidas

Entradas

double?
Total de entradas de caja

Salidas

double?
Total de salidas de caja

Descuadre

double?
Descuadre calculado en la caja

ImporteInicial

double?
Importe inicial de la caja

ImporteFinal

double?
Importe final de la caja

DetalleVentas

List<ArqueoVentaDetalle>?
Detalle de facturas por tipo de documento

📋 DTO Relacionado: ArqueoVentaDetalle

🎯 Propósito del DTO Relacionado

El DTO ArqueoVentaDetalle proporciona el desglose detallado de ventas por tipo de documento (facturas, abonos, etc.) dentro del arqueo de caja.

TipoDocumento

string
Tipo de documento (F=Factura, A=Abono)

Serie

string
Serie del documento

Venta

double?
Total de ventas para este tipo

NumeroFacturas

double?
Número de facturas para este tipo

NumeroComensales

double?
Número de comensales para este tipo

PrimeraFactura

double?
Primera factura del tipo

UltimaFactura

double?
Última factura del tipo

Consecutivo

double?
Consecutivo del tipo

💡 Ejemplo de Uso

// Crear respuesta de arqueo de caja var arqueoResponse = new ArqueoCajaResponse { Cajero = 1, Cierre = 1001, Fecha = DateTime.Now, Venta = 1500.50, NumeroFacturas = 25, NumeroComensales = 45, Efectivo = 800.00, Tarjetas = 650.50, Credito = 50.00, Invitacion = 0.00, Propina = 75.25, Entradas = 100.00, Salidas = 25.00, Descuadre = 0.00, ImporteInicial = 100.00, ImporteFinal = 175.25, DetalleVentas = new List<ArqueoVentaDetalle> { new ArqueoVentaDetalle { TipoDocumento = "F", Serie = "A", Venta = 1200.00, NumeroFacturas = 20, NumeroComensales = 35, PrimeraFactura = 1001, UltimaFactura = 1020, Consecutivo = 20 }, new ArqueoVentaDetalle { TipoDocumento = "A", Serie = "A", Venta = 300.50, NumeroFacturas = 5, NumeroComensales = 10, PrimeraFactura = 2001, UltimaFactura = 2005, Consecutivo = 5 } } }; // Serializar a JSON var jsonResponse = JsonSerializer.Serialize(arqueoResponse, new JsonSerializerOptions { WriteIndented = true }); // Calcular totales var totalVentas = arqueoResponse.DetalleVentas?.Sum(d => d.Venta ?? 0) ?? 0; var totalFacturas = arqueoResponse.DetalleVentas?.Sum(d => d.NumeroFacturas ?? 0) ?? 0; // Verificar descuadre var totalCobrado = (arqueoResponse.Efectivo ?? 0) + (arqueoResponse.Tarjetas ?? 0) + (arqueoResponse.Credito ?? 0); var descuadreCalculado = totalCobrado - (arqueoResponse.Venta ?? 0); // Obtener detalle por tipo de documento var facturas = arqueoResponse.DetalleVentas?.FirstOrDefault(d => d.TipoDocumento == "F"); var abonos = arqueoResponse.DetalleVentas?.FirstOrDefault(d => d.TipoDocumento == "A");

🔗 Integración con Otros Componentes

📚 Componentes Relacionados

  • CajaController: Endpoint que devuelve este DTO
  • CajaService: Servicio que genera el arqueo
  • ICajaService: Interfaz del servicio de caja
  • Back.Application: Lógica de negocio

🎯 Casos de Uso

  • Arqueo de Caja: Cierre diario de caja
  • Reportes Financieros: Análisis de ventas
  • Control de Efectivo: Verificación de descuadres
  • Auditoría: Trazabilidad de operaciones
  • Análisis por Forma de Pago: Distribución de pagos
  • Control de Documentos: Seguimiento de facturas

🔧 Consideraciones Técnicas

⚙️ Validaciones

  • Campos Requeridos: Cajero, Cierre, Fecha
  • Campos Opcionales: Todos los campos financieros
  • Validación de Fechas: Fecha debe ser válida
  • Validación de Totales: Coherencia entre totales

🔒 Seguridad

  • Autorización: Solo cajeros autorizados
  • Auditoría: Registro de arqueos realizados
  • Integridad: Verificación de datos