using _0_Framework.Application;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Client.Controllers;
public class EmployeeController:ClientBaseController
{
private readonly IEmployeeApplication _employeeApplication;
private readonly ILeftWorkTempApplication _leftWorkTempApplication;
private readonly long _workshopId;
public EmployeeController(IEmployeeApplication employeeApplication,IAuthHelper authHelper, ILeftWorkTempApplication leftWorkTempApplication)
{
_employeeApplication = employeeApplication;
_leftWorkTempApplication = leftWorkTempApplication;
_workshopId = authHelper.GetWorkshopId();
}
///
/// سلکت لیست پرسنل
///
///
[HttpGet("select-list")]
public async Task>> GetEmployeeSelectList()
{
var result = await _employeeApplication.GetWorkingEmployeesSelectList(_workshopId);
return result;
}
///
/// دریافت لیست پرسنل
///
///
///
[HttpGet]
public async Task>> GetList(EmployeeSearchModelDto searchModel)
{
var result = await _employeeApplication.ListOfAllEmployeesClient(searchModel, _workshopId);
return result;
}
///
/// پرینت تجمیعی پرسنل
///
///
[HttpGet("PrintAllEmployeesInfo")]
public async Task>> PrintAllEmployeesInfo()
{
var result = await _employeeApplication.PrintAllEmployeesInfoClient(_workshopId);
return result;
}
///
/// پرینت گروهی تفکیکی پرسنل
///
///
[HttpGet("PrintAllDetailsPersonnelInfo")]
public async Task> PrintAllDetailsPersonnelInfoClient()
{
var result = await _employeeApplication.PrintAllDetailsPersonnelInfoClient(_workshopId);
return result;
}
///
/// اعلام ترک کار
///
///
///
[HttpPost]
public async Task> CreateLeftWorkTempClient([FromBody] CreateLeftWorkTempDtoClient command)
{
var result = await _leftWorkTempApplication.CreateLeftWorkTempClient(command, _workshopId);
return result;
}
///
/// دریافت روز هفته برای ترک کار و اخرین روز کاری
///
///
[HttpGet("GetDayOfWeek")]
public async Task GetLeftWorkTempDayOfWeekDtoClient(string leftWorkTime,
string lastDayStanding)
{
var result = await _leftWorkTempApplication.GetLeftWorkTempDayOfWeekDtoClient(leftWorkTime,lastDayStanding);
return result;
}
}