109 lines
3.6 KiB
C#
109 lines
3.6 KiB
C#
using _0_Framework.Application;
|
|
using CompanyManagement.Infrastructure.Excel.SalaryAid;
|
|
using CompanyManagment.App.Contracts.SalaryAid;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using ServiceHost.BaseControllers;
|
|
|
|
namespace ServiceHost.Areas.Client.Controllers;
|
|
|
|
public class SalaryAidController:ClientBaseController
|
|
{
|
|
private readonly ISalaryAidApplication _salaryAidApplication;
|
|
private readonly long _workshopId;
|
|
private readonly SalaryAidImportExcel _salaryAidImportExcel;
|
|
|
|
public SalaryAidController(ISalaryAidApplication salaryAidApplication,IAuthHelper authHelper, SalaryAidImportExcel salaryAidImportExcel)
|
|
{
|
|
_salaryAidApplication = salaryAidApplication;
|
|
_salaryAidImportExcel = salaryAidImportExcel;
|
|
_workshopId = authHelper.GetWorkshopId();
|
|
}
|
|
|
|
[HttpGet]
|
|
public ActionResult<SalaryAidsGroupedViewModel> GetList([FromQuery]SalaryAidSearchViewModel searchModel)
|
|
{
|
|
searchModel.WorkshopId = _workshopId;
|
|
var result = _salaryAidApplication.GetSearchListAsGrouped(searchModel);
|
|
return Ok(result);
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult<OperationResult> Create([FromBody]CreateSalaryAidRequest request)
|
|
{
|
|
var command = new CreateSalaryAidViewModel()
|
|
{
|
|
Amount = request.Amount.ToMoney(),
|
|
CalculationMonth = request.CalculationMonth,
|
|
CalculationYear = request.CalculationYear,
|
|
EmployeeIds = request.EmployeeIds,
|
|
WorkshopId = _workshopId,
|
|
SalaryDateTime = request.SalaryDateTime,
|
|
|
|
};
|
|
var result = _salaryAidApplication.Create(command);
|
|
return result;
|
|
}
|
|
|
|
[HttpPut]
|
|
public ActionResult<OperationResult> Edit([FromBody]EditSalaryAidRequest request)
|
|
{
|
|
var command = new EditSalaryAidViewModel()
|
|
{
|
|
Id = request.Id,
|
|
Amount = request.Amount.ToMoney(),
|
|
CalculationMonth = request.CalculationMonth,
|
|
CalculationYear = request.CalculationYear,
|
|
SalaryDateTime = request.SalaryDateTime,
|
|
WorkshopId = _workshopId,
|
|
};
|
|
var result = _salaryAidApplication.Edit(command);
|
|
return result;
|
|
}
|
|
|
|
public ActionResult<EditSalaryAidRequest> EditDetails(long id)
|
|
{
|
|
var data = _salaryAidApplication.GetDetails(id);
|
|
var res = new EditSalaryAidRequest()
|
|
{
|
|
Id = data.Id,
|
|
Amount = data.Amount.MoneyToDouble(),
|
|
CalculationMonth = data.CalculationMonth,
|
|
CalculationYear = data.CalculationYear,
|
|
SalaryDateTime = data.SalaryDateTime,
|
|
};
|
|
return res;
|
|
}
|
|
|
|
[HttpDelete("{id:long}")]
|
|
public ActionResult<OperationResult> Delete(long id)
|
|
{
|
|
var result = _salaryAidApplication.Remove(id);
|
|
return result;
|
|
}
|
|
[HttpPost("validate-excel")]
|
|
public ActionResult<ExcelValidation<SalaryAidImportData>> ValidateExcel([FromForm]IFormFile excel)
|
|
{
|
|
var validation = _salaryAidImportExcel.ReadAndValidateExcel(excel, _workshopId);
|
|
|
|
return validation;
|
|
}
|
|
}
|
|
|
|
public class EditSalaryAidRequest
|
|
{
|
|
public long Id { get; set; }
|
|
public long EmployeeId { get; set; }
|
|
public double Amount { get; set; }
|
|
public string SalaryDateTime { get; set; }
|
|
public int CalculationMonth { get; set; }
|
|
public int CalculationYear { get; set; }
|
|
}
|
|
|
|
public class CreateSalaryAidRequest
|
|
{
|
|
public List<long> EmployeeIds { get; set; }
|
|
public double Amount { get; set; }
|
|
public string SalaryDateTime { get; set; }
|
|
public int CalculationMonth { get; set; }
|
|
public int CalculationYear { get; set; }
|
|
} |