From 276204035fdd028fde4fdd19bbb44a71a73f3e8e Mon Sep 17 00:00:00 2001 From: dmolinari Date: Wed, 25 Feb 2026 20:11:09 -0300 Subject: [PATCH] =?UTF-8?q?Diagramas=20Cierre=20Caja=20y=20Liquidaci=C3=B3?= =?UTF-8?q?n=20Cruzada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cash-Register.-.md | 2 +- Settlement.-.md | 1 + images/Flujo-de-Cierre-de-Caja.drawio.svg | 4 ++++ images/Flujo-de-Liquidación-Cruzada.drawio.svg | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 Settlement.-.md create mode 100644 images/Flujo-de-Cierre-de-Caja.drawio.svg create mode 100644 images/Flujo-de-Liquidación-Cruzada.drawio.svg diff --git a/Cash-Register.-.md b/Cash-Register.-.md index dca74f2..817c895 100644 --- a/Cash-Register.-.md +++ b/Cash-Register.-.md @@ -3,7 +3,7 @@ La tesorería del sistema está diseñada bajo el principio de "Zero Trust" (Cero Confianza) en el punto de venta, requiriendo validación centralizada. ## 🙈 El Arqueo Ciego - +![Arquitectura Cierre Caja](images/Flujo-de-Cierre-de-Caja.drawio.svg) Cuando un cajero termina su turno, no puede ver un reporte de "Cuánto debería tener en la caja". El flujo es el siguiente: 1. El cajero abre la sesión declarando el **Fondo Inicial**. 2. Al cerrar, debe contar sus billetes físicos y tickets de tarjeta, e ingresarlos manualmente al sistema (`DeclaredCash`, `DeclaredCards`). diff --git a/Settlement.-.md b/Settlement.-.md new file mode 100644 index 0000000..4ed983d --- /dev/null +++ b/Settlement.-.md @@ -0,0 +1 @@ +![Liquidación Cruzada](images/Flujo-de-Liquidación-Cruzada.drawio.svg) \ No newline at end of file diff --git a/images/Flujo-de-Cierre-de-Caja.drawio.svg b/images/Flujo-de-Cierre-de-Caja.drawio.svg new file mode 100644 index 0000000..9fd1dd3 --- /dev/null +++ b/images/Flujo-de-Cierre-de-Caja.drawio.svg @@ -0,0 +1,4 @@ + + + +
🧑‍💼 Cajero
💻 Counter Panel
⚙️ API (.NET)
🏦 CashSessionRepo
🗄️ Base de Datos
💻 Admin Panel
🧑‍⚖️ Tesorero / Admin
Clic en "Cerrar Caja"1GET /cashsessions/summary2Calcula Total de Pagos (Cash, Cards, Transfers)3Retorna solo "Ventas del Turno" (Totales Sistema)4Muestra Resumen Parcial5Ingresa monto Efectivo, Tarjetas, Transf. y Notas6POST /cashsessions/close (Valores Declarados)7Compara Valores Declarados vs Esperados (Sistema)8TotalDifference = Declarado - Esperado9UPDATE CashSessions SET Status = 'PendingValidation'10OK11Inserta registro en AuditLogs (Cierre Caja)12Retorna Id Sesión y Diferencia13"Caja cerrada. Pendiente de Tesorería"14Descarga e Imprime PDF (Acta de Cierre)15Entra a módulo "Tesorería"16GET /cashsessions/pending17Retorna sesiones en 'PendingValidation'18Revisa el Acta impresa vs Billetes entregados19Agrega Notas de Validación y Clic en "Validar"20POST /cashsessions/{id}/validate21UPDATE CashSessions SET Status = 'Closed'22Registra Validador, Fecha y Notas23OK24OK25Confirmación Visual261. ARQUEO CIEGO (Cajero)El cajero cuenta los billetes en el cajón2. CÁLCULO DE DIFERENCIAS (Backend)3. LIQUIDACIÓN CENTRAL (Tesorero)
\ No newline at end of file diff --git a/images/Flujo-de-Liquidación-Cruzada.drawio.svg b/images/Flujo-de-Liquidación-Cruzada.drawio.svg new file mode 100644 index 0000000..466324d --- /dev/null +++ b/images/Flujo-de-Liquidación-Cruzada.drawio.svg @@ -0,0 +1,4 @@ + + + +
🧑‍💼 Contador / Admin
💻 Admin Panel (React)
⚙️ API (.NET)
📊 ReportRepository
🗄️ Base de Datos
Ingresa a "Liquidación Cruzada"1Selecciona Rango de Fechas2GET /reports/inter-company-settlement3GetInterCompanySettlementAsync()4Ejecuta Query de Agrupación (SUM y COUNT)5Devuelve pares (Empresa Cobró -> Empresa Prestó) con Totales6Lista de 'SettlementItem'7Devuelve JSON estructurado8Renderiza Tabla de Liquidaciones9Visualiza montos exactos a transferir entre empresas101. CONFIGURACIÓN DE REPORTE2. CÁLCULO DE DEUDAS (Backend)Lógica Core: Busca ítems dondeBillingCompanyId != ServiceCompanyIdy PaymentStatus = 'Paid'3. VISUALIZACIÓN
\ No newline at end of file