Class RentalContractsController
- Namespace
- KadicErp.WebApi.Controllers.RentACar
- Assembly
- KadicErp.WebApi.dll
[ApiController]
[Route("api/rentcar/contracts")]
[Authorize]
public class RentalContractsController : ControllerBase
- Inheritance
-
objectControllerBaseRentalContractsController
Constructors
RentalContractsController(ISender)
public RentalContractsController(ISender sender)
Parameters
senderISender
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
idGuidbodyActivateRentalContractBodycancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
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
idGuidcommandCloseRentalContractCommandcancellationTokenCancellationToken
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
installmentIdGuidcancellationTokenCancellationToken
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
idGuidrequestCondonateDebtRequestcancellationTokenCancellationToken
Returns
- Task<IActionResult>
Create(CreateRentalContractCommand, CancellationToken)
[HttpPost]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_CREATE")]
public Task<IActionResult> Create(CreateRentalContractCommand command, CancellationToken cancellationToken)
Parameters
commandCreateRentalContractCommandcancellationTokenCancellationToken
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
idGuidreturnDateDateTimecancellationTokenCancellationToken
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
idGuidbodyExtendContractRequestcancellationTokenCancellationToken
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
idGuidrequestGenerateInvoiceFromReminderRequestcancellationTokenCancellationToken
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
idGuidcommandGenerateInvoiceFromInstallmentsCommandcancellationTokenCancellationToken
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
paginatorPaginatorRequestDtocustomerIdGuid?vehicleIdGuid?statusstringbranchIdGuid?cancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetById(Guid, CancellationToken)
[HttpGet("{id:guid}")]
[Authorize(Policy = "RENTACAR_RENTAL_CONTRACTS_VIEW")]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
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
idGuidonlyPaidboolcancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
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
idGuidreminderIdGuidrequestMarkReminderOverdueRequestcancellationTokenCancellationToken
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
idGuidrequestMarkRemindersAsPaidRequestcancellationTokenCancellationToken
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
idGuidreminderIdsstringincludeMoraboolweeklyItemIdGuid?moraItemIdGuid?cancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
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
installmentIdGuideventCodestringcancellationTokenCancellationToken
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
idGuidcommandUpdateContractDriverInfoCommandcancellationTokenCancellationToken
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
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>