Table of Contents

Class RentalContractsController

Namespace
KadicErp.WebApi.Controllers.RentACar
Assembly
KadicErp.WebApi.dll
[ApiController]
[Route("api/rentcar/contracts")]
[Authorize]
public class RentalContractsController : ControllerBase
Inheritance
object
ControllerBase
RentalContractsController

Constructors

RentalContractsController(ISender)

public RentalContractsController(ISender sender)

Parameters

sender ISender

Methods

Activate(Guid, ActivateRentalContractBody?, CancellationToken)

[HttpPatch("{id:guid}/activate")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_ACTIVATE")]
public Task<IActionResult> Activate(Guid id, ActivateRentalContractBody? body, CancellationToken cancellationToken)

Parameters

id Guid
body ActivateRentalContractBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

Cancel(Guid, CancellationToken)

[HttpPatch("{id:guid}/cancel")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_CANCEL")]
public Task<IActionResult> Cancel(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

Close(Guid, CloseRentalContractCommand, CancellationToken)

[HttpPatch("{id:guid}/close")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_CLOSE")]
public Task<IActionResult> Close(Guid id, CloseRentalContractCommand command, CancellationToken cancellationToken)

Parameters

id Guid
command CloseRentalContractCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

CollectInstallmentCash(Guid, CancellationToken)

[HttpPost("installments/{installmentId:guid}/collect-cash")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_COLLECT_CASH")]
public Task<IActionResult> CollectInstallmentCash(Guid installmentId, CancellationToken cancellationToken)

Parameters

installmentId Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

Condone(Guid, CondonateDebtRequest, CancellationToken)

Emite una Nota de Crédito fiscal de condonación (CONDONATION) contra la deuda del contrato. La NC se genera con SourceModule=RENTACAR + SourceEntityId=contractId para idempotencia.

[HttpPost("{id:guid}/condone")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_CONDONE")]
public Task<IActionResult> Condone(Guid id, CondonateDebtRequest request, CancellationToken cancellationToken)

Parameters

id Guid
request CondonateDebtRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

Create(CreateRentalContractCommand, CancellationToken)

[HttpPost]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_CREATE")]
public Task<IActionResult> Create(CreateRentalContractCommand command, CancellationToken cancellationToken)

Parameters

command CreateRentalContractCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

EarlyReturnEstimate(Guid, DateTime, CancellationToken)

[HttpGet("{id:guid}/early-return-estimate")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_VIEW")]
public Task<IActionResult> EarlyReturnEstimate(Guid id, DateTime returnDate, CancellationToken cancellationToken)

Parameters

id Guid
returnDate DateTime
cancellationToken CancellationToken

Returns

Task<IActionResult>

Extend(Guid, ExtendContractRequest, CancellationToken)

[HttpPatch("{id:guid}/extend")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_RENEW")]
public Task<IActionResult> Extend(Guid id, ExtendContractRequest body, CancellationToken cancellationToken)

Parameters

id Guid
body ExtendContractRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

GenerateInvoice(Guid, GenerateInvoiceFromReminderRequest, CancellationToken)

[HttpPost("{id:guid}/generate-invoice")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_GENERATE_INVOICE")]
public Task<IActionResult> GenerateInvoice(Guid id, GenerateInvoiceFromReminderRequest request, CancellationToken cancellationToken)

Parameters

id Guid
request GenerateInvoiceFromReminderRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

GenerateInvoiceFromInstallments(Guid, GenerateInvoiceFromInstallmentsCommand, CancellationToken)

[HttpPost("{id:guid}/invoice-from-installments")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_GENERATE_INVOICE")]
public Task<IActionResult> GenerateInvoiceFromInstallments(Guid id, GenerateInvoiceFromInstallmentsCommand command, CancellationToken cancellationToken)

Parameters

id Guid
command GenerateInvoiceFromInstallmentsCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetAll(PaginatorRequestDto, Guid?, Guid?, string?, Guid?, CancellationToken)

[HttpGet]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_VIEW")]
public Task<IActionResult> GetAll(PaginatorRequestDto paginator, Guid? customerId = null, Guid? vehicleId = null, string? status = null, Guid? branchId = null, CancellationToken cancellationToken = default)

Parameters

paginator PaginatorRequestDto
customerId Guid?
vehicleId Guid?
status string
branchId Guid?
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetById(Guid, CancellationToken)

[HttpGet("{id:guid}")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_VIEW")]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetDocument(Guid, CancellationToken)

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

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetDocumentPdf(Guid, CancellationToken)

[HttpGet("{id:guid}/document/pdf")]
[Authorize(Policy = "RENTACAR_CONTRACT_DOCUMENTS_VIEW")]
public Task<IActionResult> GetDocumentPdf(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetInstallments(Guid, bool, CancellationToken)

[HttpGet("{id:guid}/installments")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> GetInstallments(Guid id, bool onlyPaid = false, CancellationToken cancellationToken = default)

Parameters

id Guid
onlyPaid bool
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetPaymentReminders(Guid, CancellationToken)

[HttpGet("{id:guid}/payment-reminders")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_VIEW")]
public Task<IActionResult> GetPaymentReminders(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

MarkReminderOverdue(Guid, Guid, MarkReminderOverdueRequest, CancellationToken)

Marca un recordatorio como OVERDUE y emite una Nota de Débito fiscal (LATE_FEE). La ND se genera con SourceModule=RENTACAR + SourceEntityId=reminderId para idempotencia.

[HttpPost("{id:guid}/reminders/{reminderId:guid}/mark-overdue")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_MARK_AS_OVERDUE")]
public Task<IActionResult> MarkReminderOverdue(Guid id, Guid reminderId, MarkReminderOverdueRequest request, CancellationToken cancellationToken)

Parameters

id Guid
reminderId Guid
request MarkReminderOverdueRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

MarkRemindersAsPaid(Guid, MarkRemindersAsPaidRequest, CancellationToken)

[HttpPatch("{id:guid}/reminders/mark-paid")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_MARK_AS_PAID")]
public Task<IActionResult> MarkRemindersAsPaid(Guid id, MarkRemindersAsPaidRequest request, CancellationToken cancellationToken)

Parameters

id Guid
request MarkRemindersAsPaidRequest
cancellationToken CancellationToken

Returns

Task<IActionResult>

PrepareInvoice(Guid, string, bool, Guid?, Guid?, CancellationToken)

[HttpGet("{id:guid}/prepare-invoice")]
[Authorize(Policy = "RENTACAR_PAYMENT_REMINDERS_PREPARE_INVOICE")]
public Task<IActionResult> PrepareInvoice(Guid id, string reminderIds, bool includeMora = false, Guid? weeklyItemId = null, Guid? moraItemId = null, CancellationToken cancellationToken = default)

Parameters

id Guid
reminderIds string
includeMora bool
weeklyItemId Guid?
moraItemId Guid?
cancellationToken CancellationToken

Returns

Task<IActionResult>

Renew(Guid, CancellationToken)

[HttpPatch("{id:guid}/renew")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_RENEW")]
public Task<IActionResult> Renew(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

TriggerNotification(Guid, string, CancellationToken)

Dispara manualmente una notification (Recordatorio o Vencimiento) para una cuota.

[HttpPost("installments/{installmentId:guid}/trigger-notification")]
[Authorize(Policy = "RENTACAR_INSTALLMENTS_VIEW")]
public Task<IActionResult> TriggerNotification(Guid installmentId, string eventCode, CancellationToken cancellationToken)

Parameters

installmentId Guid
eventCode string
cancellationToken CancellationToken

Returns

Task<IActionResult>

UpdateDriverInfo(Guid, UpdateContractDriverInfoCommand, CancellationToken)

[HttpPatch("{id:guid}/driver-info")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_UPDATE")]
public Task<IActionResult> UpdateDriverInfo(Guid id, UpdateContractDriverInfoCommand command, CancellationToken cancellationToken)

Parameters

id Guid
command UpdateContractDriverInfoCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

ValidateForEmission(Guid, CancellationToken)

[HttpGet("{id:guid}/emission-validation")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_VIEW")]
public Task<IActionResult> ValidateForEmission(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>