Add sales report functions
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
using ERPCore.Dtos.Sales;
|
||||
using ERPCore.Services.Interfaces;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace ERPCore.Controllers;
|
||||
|
||||
[Route("api/v1/reports/sales")]
|
||||
public sealed class SalesReportsController : ApiControllerBase
|
||||
{
|
||||
private readonly ISalesReportService _reports;
|
||||
|
||||
public SalesReportsController(ISalesReportService reports) => _reports = reports;
|
||||
|
||||
[HttpGet("daily-summary")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesDailySummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesDailySummaryRowDto>>> DailySummary(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, CancellationToken ct)
|
||||
=> Ok(await _reports.DailySummaryAsync(from, to, ct));
|
||||
|
||||
[HttpGet("item-wise")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesItemSummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesItemSummaryRowDto>>> ItemWise(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, [FromQuery] int? itemId, [FromQuery] int? warehouseId, CancellationToken ct)
|
||||
=> Ok(await _reports.ItemSummaryAsync(from, to, itemId, warehouseId, ct));
|
||||
|
||||
[HttpGet("customer-wise")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesCustomerSummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesCustomerSummaryRowDto>>> CustomerWise(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, [FromQuery] int? customerId, CancellationToken ct)
|
||||
=> Ok(await _reports.CustomerSummaryAsync(from, to, customerId, ct));
|
||||
|
||||
[HttpGet("warehouse-wise")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesWarehouseSummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesWarehouseSummaryRowDto>>> WarehouseWise(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, [FromQuery] int? warehouseId, CancellationToken ct)
|
||||
=> Ok(await _reports.WarehouseSummaryAsync(from, to, warehouseId, ct));
|
||||
|
||||
[HttpGet("discount-summary")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesDiscountSummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesDiscountSummaryRowDto>>> DiscountSummary(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, CancellationToken ct)
|
||||
=> Ok(await _reports.DiscountSummaryAsync(from, to, ct));
|
||||
|
||||
[HttpGet("free-issue-summary")]
|
||||
[ProducesResponseType(typeof(IReadOnlyList<SalesFreeIssueSummaryRowDto>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult<IReadOnlyList<SalesFreeIssueSummaryRowDto>>> FreeIssueSummary(
|
||||
[FromQuery] DateOnly from, [FromQuery] DateOnly to, CancellationToken ct)
|
||||
=> Ok(await _reports.FreeIssueSummaryAsync(from, to, ct));
|
||||
}
|
||||
Reference in New Issue
Block a user