Table of Contents

Class RentACarReportsController

Namespace
KadicErp.WebApi.Controllers.AdminReporting.Reports
Assembly
KadicErp.WebApi.dll
[ApiController]
public class RentACarReportsController : ControllerBase
Inheritance
object
ControllerBase
RentACarReportsController

Constructors

RentACarReportsController(IMediator, IReportExportService)

public RentACarReportsController(IMediator mediator, IReportExportService exportService)

Parameters

mediator IMediator
exportService IReportExportService

Methods

Export(ReportExportRequest)

Exports a rent-a-car report as CSV, Excel, or PDF. Pass report=fleet-utilization|contract-listing|revenue-by-vehicle|revenue-by-category|damage-reports|customer-financial-summary. GroupBy carries vehicle grouping (VEHICLE|CATEGORY, default VEHICLE); Search carries status filter.

[HttpPost("api/admin-reporting/reports/rentacar/export")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_EXPORT")]
public Task<IActionResult> Export(ReportExportRequest request)

Parameters

request ReportExportRequest

Returns

Task<IActionResult>

GetContractListing(Guid?, DateOnly?, DateOnly?, string?, string?, int, int)

Full listing of rental contracts with optional filters for status, date range, and search term. Pass status=PENDING|ACTIVE|CLOSED|CANCELLED.

[HttpGet("api/admin-reporting/reports/rentacar/contract-listing")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_RENTACAR_VIEW")]
public Task<IActionResult> GetContractListing(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, string? status, string? search, int page = 1, int pageSize = 50)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?
status string
search string
page int
pageSize int

Returns

Task<IActionResult>

GetCustomerFinancialSummary(Guid?, DateOnly?, DateOnly?, int, int)

Returns per-customer financial summary: contract count, total billed, total paid, and outstanding.

[HttpGet("api/admin-reporting/reports/rentacar/customer-financial-summary")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_RENTACAR_VIEW")]
public Task<IActionResult> GetCustomerFinancialSummary(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, int page = 1, int pageSize = 50)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?
page int
pageSize int

Returns

Task<IActionResult>

GetDamageReportListing(Guid?, DateOnly?, DateOnly?, string?, int, int)

Returns all damage reports with optional filters for status and date range. Pass status=OPEN|RESOLVED.

[HttpGet("api/admin-reporting/reports/rentacar/damage-reports")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_RENTACAR_VIEW")]
public Task<IActionResult> GetDamageReportListing(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, string? status, int page = 1, int pageSize = 50)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?
status string
page int
pageSize int

Returns

Task<IActionResult>

GetFleetUtilization(Guid?, DateOnly?, DateOnly?, int, int)

Returns vehicle-level fleet utilization for the given period: days available, days rented, utilization %, and total revenue.

[HttpGet("api/admin-reporting/reports/rentacar/fleet-utilization")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_RENTACAR_VIEW")]
public Task<IActionResult> GetFleetUtilization(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, int page = 1, int pageSize = 50)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?
page int
pageSize int

Returns

Task<IActionResult>

GetRevenueByVehicle(Guid?, DateOnly?, DateOnly?, string, int, int)

Returns rental revenue grouped by vehicle or category. Pass groupBy=VEHICLE (default) or groupBy=CATEGORY.

[HttpGet("api/admin-reporting/reports/rentacar/revenue-by-vehicle")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_RENTACAR_VIEW")]
public Task<IActionResult> GetRevenueByVehicle(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, string groupBy = "VEHICLE", int page = 1, int pageSize = 50)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?
groupBy string
page int
pageSize int

Returns

Task<IActionResult>