Table of Contents

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
object
ControllerBase
InstallmentsController

Constructors

InstallmentsController(IMediator)

public InstallmentsController(IMediator mediator)

Parameters

mediator IMediator

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

id Guid
body ApplyMoraRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

Collect(Guid, CollectInstallmentRequest)

[HttpPost("{id}/collect")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_COLLECT_CASH")]
public Task<IActionResult> Collect(Guid id, CollectInstallmentRequest body)

Parameters

id Guid
body CollectInstallmentRequest

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

id Guid
body EditInstallmentDirectPaymentRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetByContract(Guid, CancellationToken)

[HttpGet]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetByContract(Guid contractId, CancellationToken cancellationToken)

Parameters

contractId Guid
cancellationToken CancellationToken

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

branchId Guid
dueDate string
statusFilter string
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetPayments(Guid, CancellationToken)

[HttpGet("{id:guid}/payments")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetPayments(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

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

take int
cancellationToken CancellationToken

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

recipientContact string
page int
pageSize int
channel string
reminderType string
dateFrom DateOnly?
dateTo DateOnly?
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetStatuses(CancellationToken)

[HttpGet("statuses")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetStatuses(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

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

id Guid
cancellationToken CancellationToken

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

id Guid
body PayInstallmentInvoiceRequest

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

id Guid
body VoidInstallmentPaymentRequest

Returns

Task<IActionResult>