Table of Contents

Class SalesReportsController

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

Constructors

SalesReportsController(IMediator, IReportExportService)

public SalesReportsController(IMediator mediator, IReportExportService exportService)

Parameters

mediator IMediator
exportService IReportExportService

Methods

Export(ReportExportRequest)

Exports a sales report as CSV, Excel, or PDF. Pass report=by-customer|by-product|by-period|by-fiscal-doc-type|invoice-listing|tax-summary.

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

Parameters

request ReportExportRequest

Returns

Task<IActionResult>

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

Full invoice listing with search support on invoice number, NCF, customer name, and RNC.

[HttpGet("api/admin-reporting/reports/sales/invoice-listing")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetInvoiceListing(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, string? search, int page = 1, int pageSize = 50)

Parameters

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

Returns

Task<IActionResult>

GetSalesByCustomer(Guid?, DateOnly?, DateOnly?, int, int)

Returns sales totals grouped by customer (BusinessPartnerId + COMPRADOR snapshot).

[HttpGet("api/admin-reporting/reports/sales/by-customer")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesByCustomer(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>

GetSalesByFiscalDocType(Guid?, DateOnly?, DateOnly?, int, int)

Returns sales totals grouped by fiscal document type (NCF type / e.g. 01, 02, 14…).

[HttpGet("api/admin-reporting/reports/sales/by-fiscal-doc-type")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesByFiscalDocType(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>

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

Returns sales grouped by day, week, or month. Pass groupBy=DAY|WEEK|MONTH (default MONTH).

[HttpGet("api/admin-reporting/reports/sales/by-period")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesByPeriod(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo, string groupBy = "MONTH", int page = 1, int pageSize = 50)

Parameters

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

Returns

Task<IActionResult>

GetSalesByProduct(Guid?, DateOnly?, DateOnly?, int, int)

Returns sales totals grouped by item (ItemId + ItemSnapshot).

[HttpGet("api/admin-reporting/reports/sales/by-product")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesByProduct(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>

GetSalesSummary(Guid?, DateOnly?, DateOnly?)

Returns aggregated sales KPIs for the given period with trend vs previous period.

[HttpGet("api/admin-reporting/reports/sales/summary")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesSummary(Guid? branchId, DateOnly? dateFrom, DateOnly? dateTo)

Parameters

branchId Guid?
dateFrom DateOnly?
dateTo DateOnly?

Returns

Task<IActionResult>

GetSalesTaxSummary(Guid?, DateOnly?, DateOnly?, int, int)

Returns taxable base and collected tax amounts grouped by tax rate.

[HttpGet("api/admin-reporting/reports/sales/tax-summary")]
[Authorize(Policy = "ADMIN_REPORTING_REPORTS_SALES_VIEW")]
public Task<IActionResult> GetSalesTaxSummary(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>