Class RentACarReportsController
- Namespace
- KadicErp.WebApi.Controllers.AdminReporting.Reports
- Assembly
- KadicErp.WebApi.dll
[ApiController]
public class RentACarReportsController : ControllerBase
- Inheritance
-
objectControllerBaseRentACarReportsController
Constructors
RentACarReportsController(IMediator, IReportExportService)
public RentACarReportsController(IMediator mediator, IReportExportService exportService)
Parameters
mediatorIMediatorexportServiceIReportExportService
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
requestReportExportRequest
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
branchIdGuid?dateFromDateOnly?dateToDateOnly?statusstringsearchstringpageintpageSizeint
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
branchIdGuid?dateFromDateOnly?dateToDateOnly?pageintpageSizeint
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
branchIdGuid?dateFromDateOnly?dateToDateOnly?statusstringpageintpageSizeint
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
branchIdGuid?dateFromDateOnly?dateToDateOnly?pageintpageSizeint
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
branchIdGuid?dateFromDateOnly?dateToDateOnly?groupBystringpageintpageSizeint
Returns
- Task<IActionResult>