using Complex.Application.Services.Basic;
//using Complex.Application.Services.Transaction;
using Complex.Common.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Complex.EndPoint.Controllers
{
///
/// مدیریت شارژ
///
[ApiController]
[ApiVersion("1")]
[Route("api/v{version:apiVersion}/[controller]/[action]")]
//[Route("[controller]/[action]")]
[Authorize]
public class ManageCostController : Controller
{
private ILogger _logger;
private CostService _costCycleService;
public ManageCostController(CostService costCycleService, ILogger logger)
{
_costCycleService = costCycleService;
_logger = logger;
}
[HttpPost]
public ResultDto InsertCostCycle(CostCycleDto costCycleDto)
{
return _costCycleService.InsertCostCycle(costCycleDto);
}
[HttpPost]
public ResultDto EditCostCycle(CostCycleDto costCycleDto)
{
return _costCycleService.EditCostCycle(costCycleDto);
}
///
/// لیست مدیریت شارژ یا هر گونه مخارج گرفته می شود
///
///
///
///
///
[HttpPost]
public ResultDto> CostCyclsList([FromForm] Guid ComplexId, [FromForm] DateTime? StartDate = null, [FromForm] DateTime? EndDate = null, [FromForm] Guid? UnitId = null)
{
return _costCycleService.CostCyclsList(ComplexId,
!StartDate.HasValue ? null : DateOnly.FromDateTime(StartDate.Value),
!EndDate.HasValue ? null : DateOnly.FromDateTime(EndDate.Value),
UnitId: UnitId);
}
///
/// بدهی یک واحد
///
///
///
///
[HttpPost]
public ResultDto CalculateCostForUnit(Guid unitId, int? incomeCostTitleId)
{
return _costCycleService.CalculateCostForUnit(unitId, incomeCostTitleId);
}
///
/// لیست بدهی های یک واحد
///
[HttpPost]
public ResultDto> CalculateAllCostForUnit(List unitIds)
{
return _costCycleService.CalculateAllCostForUnits(unitIds);
}
///
/// تاریخچه پرداختی ها و باقیمانده از آن
///
[HttpPost]
public ResultDto> CostsForUnit(List unitIds, int? incomeCostTitleId,
DateTime startDate, DateTime endDate)
{
return _costCycleService.CostsForUnits(unitIds, incomeCostTitleId,
DateOnly.FromDateTime(startDate), DateOnly.FromDateTime(endDate));
}
}
}