Class InstallmentsController
- Namespace
- KadicErp.WebApi.Controllers.RentACar
- Assembly
- KadicErp.WebApi.dll
[ApiController]
[Route("api/rentcar/[controller]")]
[Authorize]
[RequireModule("RENT_A_CAR")]
public class InstallmentsController : ControllerBase
- Inheritance
-
objectControllerBaseInstallmentsController
Constructors
InstallmentsController(IMediator)
public InstallmentsController(IMediator mediator)
Parameters
mediatorIMediator
Methods
ApplyMora(Guid, ApplyMoraRequest, CancellationToken)
[HttpPost("{id}/apply-mora")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_APPLY_MORA")]
public Task<IActionResult> ApplyMora(Guid id, ApplyMoraRequest body, CancellationToken cancellationToken)
Parameters
idGuidbodyApplyMoraRequestcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Collect(Guid, CollectInstallmentRequest)
[HttpPost("{id}/collect")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_COLLECT_CASH")]
public Task<IActionResult> Collect(Guid id, CollectInstallmentRequest body)
Parameters
idGuidbodyCollectInstallmentRequest
Returns
- Task<IActionResult>
EditDirectPayment(Guid, EditInstallmentDirectPaymentRequest, CancellationToken)
[HttpPatch("{id}/direct-payment")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_COLLECT_CASH")]
public Task<IActionResult> EditDirectPayment(Guid id, EditInstallmentDirectPaymentRequest body, CancellationToken cancellationToken)
Parameters
idGuidbodyEditInstallmentDirectPaymentRequestcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetByContract(Guid, CancellationToken)
[HttpGet]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetByContract(Guid contractId, CancellationToken cancellationToken)
Parameters
contractIdGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetPaymentStatus(Guid, string?, string?, CancellationToken)
[HttpGet("payment-status")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_PAYMENT_STATUS")]
public Task<IActionResult> GetPaymentStatus(Guid branchId, string? dueDate = null, string? statusFilter = null, CancellationToken cancellationToken = default)
Parameters
branchIdGuiddueDatestringstatusFilterstringcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetPayments(Guid, CancellationToken)
[HttpGet("{id:guid}/payments")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetPayments(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetRecentReminderLogs(int, CancellationToken)
Actividad reciente de los 3 workers de notificación (Mora, Cobro de Deuda, Renovación)
a través de todos los destinatarios — alimenta la pestaña "Historial de Workers" de la
Cola de Notificaciones. A diferencia de reminder-logs, no requiere un contacto.
[HttpGet("reminder-logs/recent")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetRecentReminderLogs(int take = 100, CancellationToken cancellationToken = default)
Parameters
takeintcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetReminderLogs(string, int, int, string?, string?, DateOnly?, DateOnly?, CancellationToken)
[HttpGet("reminder-logs")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetReminderLogs(string recipientContact, int page = 1, int pageSize = 10, string? channel = null, string? reminderType = null, DateOnly? dateFrom = null, DateOnly? dateTo = null, CancellationToken cancellationToken = default)
Parameters
recipientContactstringpageintpageSizeintchannelstringreminderTypestringdateFromDateOnly?dateToDateOnly?cancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetStatuses(CancellationToken)
[HttpGet("statuses")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetStatuses(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetVoidHistory(Guid, CancellationToken)
US#102 — Historial completo de anulaciones de pago de una cuota (todas las veces que se anuló, no solo la más reciente) — para detectar patrones de operador/proceso.
[HttpGet("{id}/void-history")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetVoidHistory(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
PayInvoice(Guid, PayInstallmentInvoiceRequest)
[HttpPost("{id}/pay-invoice")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_COLLECT_CASH")]
public Task<IActionResult> PayInvoice(Guid id, PayInstallmentInvoiceRequest body)
Parameters
idGuidbodyPayInstallmentInvoiceRequest
Returns
- Task<IActionResult>
VoidPayment(Guid, VoidInstallmentPaymentRequest)
US#102 — Anula el pago ya registrado sobre una cuota pagada (drawer de Pagos del Contrato). Requiere motivo (categoría) + justificación. El backend re-valida siempre server-side si la cuota ya fue procesada por Facturación. US#102.1: PaymentId opcional — anula un abono puntual entre varios si viene informado.
[HttpPost("{id}/void-payment")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VOID_PAYMENT")]
public Task<IActionResult> VoidPayment(Guid id, VoidInstallmentPaymentRequest body)
Parameters
idGuidbodyVoidInstallmentPaymentRequest
Returns
- Task<IActionResult>