Table of Contents

Class CashReconciliationController

Namespace
KadicErp.WebApi.Controllers.Treasury
Assembly
KadicErp.WebApi.dll
[Authorize]
[ApiController]
[Route("api/treasury/cash-closings")]
public class CashReconciliationController : ControllerBase
Inheritance
object
ControllerBase
CashReconciliationController

Constructors

CashReconciliationController(IMediator, ICurrentUser, ICashStateExportService)

public CashReconciliationController(IMediator mediator, ICurrentUser currentUser, ICashStateExportService exportService)

Parameters

mediator IMediator
currentUser ICurrentUser
exportService ICashStateExportService

Methods

CreateCashClosing(CreateCashClosingCommand, CancellationToken)

Registra un nuevo cierre de caja con el conteo físico de billetes y monedas por cada denominación y moneda (DOP, USD, EUR). El sistema calcula la diferencia y determina el status (CUADRADO | DISCREPANCIA).

[HttpPost]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_CLOSE")]
public Task<IActionResult> CreateCashClosing(CreateCashClosingCommand command, CancellationToken ct)

Parameters

command CreateCashClosingCommand
ct CancellationToken

Returns

Task<IActionResult>

ExportCashStateTransactions(Guid, string?, string?, Guid?, CancellationToken)

Descarga las transacciones del período como un workbook Excel (portada de resumen + hoja detalle por cada tipo de ingreso).

[HttpGet("current-state/transactions/export")]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_EXPORT")]
public Task<IActionResult> ExportCashStateTransactions(Guid branchId, string? dateFrom, string? dateTo, Guid? closingId = null, CancellationToken ct = default)

Parameters

branchId Guid
dateFrom string
dateTo string
closingId Guid?
ct CancellationToken

Returns

Task<IActionResult>

GetCashClosingById(Guid, CancellationToken)

Obtiene el detalle completo de un cierre de caja incluyendo las líneas de denominación de billetes/monedas por moneda (DOP/USD/EUR).

[HttpGet("{id:guid}")]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_DETAIL")]
public Task<IActionResult> GetCashClosingById(Guid id, CancellationToken ct)

Parameters

id Guid
ct CancellationToken

Returns

Task<IActionResult>

GetCashClosings(Guid, string?, string?, int, int, CancellationToken)

Obtiene el historial paginado de cierres de caja para una sucursal. Filtros opcionales: dateFrom, dateTo, page, pageSize.

[HttpGet]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_HISTORY")]
public Task<IActionResult> GetCashClosings(Guid branchId, string? dateFrom, string? dateTo, int page = 1, int pageSize = 20, CancellationToken ct = default)

Parameters

branchId Guid
dateFrom string
dateTo string
page int
pageSize int
ct CancellationToken

Returns

Task<IActionResult>

GetCashStateTransactions(Guid, string?, string?, Guid?, CancellationToken)

Devuelve las transacciones individuales (drilldown) del período agrupadas por tipo (Sales, CxC, DebitNotes) para mostrar el detalle de cada KPI.

[HttpGet("current-state/transactions")]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_TRANSACTIONS")]
public Task<IActionResult> GetCashStateTransactions(Guid branchId, string? dateFrom, string? dateTo, Guid? closingId = null, CancellationToken ct = default)

Parameters

branchId Guid
dateFrom string
dateTo string
closingId Guid?
ct CancellationToken

Returns

Task<IActionResult>

GetCurrentCashState(Guid, string?, string?, CancellationToken)

Obtiene el estado actual de la caja para el turno en curso. Devuelve: saldos iniciales, saldos esperados, KPIs, categorías y métodos de pago agrupados por moneda (DOP, USD, EUR).

[HttpGet("current-state")]
[Authorize(Policy = "TREASURY_CASH_RECONCILIATION_VIEW")]
public Task<IActionResult> GetCurrentCashState(Guid branchId, string? dateFrom, string? dateTo, CancellationToken ct = default)

Parameters

branchId Guid
dateFrom string
dateTo string
ct CancellationToken

Returns

Task<IActionResult>