using _0_Framework.Application;
using CompanyManagment.App.Contracts.ClassificationScheme;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.Job;
using CompanyManagment.App.Contracts.PaymentInstrument;
using CompanyManagment.Application;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class ClassificationSchemeController : AdminBaseController
{
private readonly IClassificationSchemeApplication _classificationSchemeApplication;
private readonly IAuthHelper _authHelper;
private readonly IJobApplication _jobApplication;
public ClassificationSchemeController(IClassificationSchemeApplication classificationSchemeApplication, IAuthHelper authHelper, IJobApplication jobApplication)
{
_classificationSchemeApplication = classificationSchemeApplication;
_authHelper = authHelper;
_jobApplication = jobApplication;
}
// تب لیست طرح
#region SchemeTab
///
/// لیست طرح
///
///
///
[HttpGet]
public async Task> GetList(long workshopId)
{
var result = await _classificationSchemeApplication.GetClassificationSchemeList(workshopId);
return result;
}
///
/// ایجاد طرح
///
///
///
[HttpPost("Scheme")]
public async Task> CreateScheme([FromBody] CreateClassificationSchemeDto command)
{
var result = await _classificationSchemeApplication.CreateClassificationScheme(command);
return result;
}
///
/// دریافت اطلاعات طرح برای ویرایش
///
///
///
[HttpGet("GetSchemeToEdit")]
public async Task GetSchemeToEdit(long id)
{
var result = await _classificationSchemeApplication.GetClassificationScheme(id);
return result;
}
///
/// ویرایش طرح
///
///
///
[HttpPut("Scheme")]
public async Task> EditScheme([FromBody] EditClassificationSchemeDto command)
{
var result = await _classificationSchemeApplication.EditClassificationScheme(command);
return result;
}
///
/// چگ کردن شرایط حذف طرح
///
///
///
[HttpGet("CheckToDeleteScheme")]
public async Task> CheckToDeleteScheme(long id)
{
var result = await _classificationSchemeApplication.CheckToDeleteScheme(id);
return result;
}
///
/// حذف طرح
///
///
[HttpDelete]
public async Task> DeleteScheme(long id)
{
var result = await _classificationSchemeApplication.DeleteScheme(id);
return result;
}
#endregion
// تب تعیین مشاغل گروه
#region GroupsTab
///
/// دریافت لیست گروه ها
///
///
///
[HttpGet("GetGroupList")]
public async Task> GetGroupList(long schemeId)
{
var result = await _classificationSchemeApplication.GetGroupList(schemeId);
return result;
}
///
/// دریافت لیست مشاغل گروه برای مودال افزودن و ویرایش
///
///
///
[HttpGet("GetCreateOrEditJobsData")]
public async Task GetCreateOrEditJobsData(long groupId)
{
var result = await _classificationSchemeApplication.GetCreateOrEditJobsData(groupId);
return result;
}
///
/// سلکت لیست مشاغل
///
///
///
[HttpGet("JobSelectList")]
public async Task> GetJobSelectList(string searchJob)
{
return await _jobApplication.JobSearchSelect(searchJob);
}
///
/// چک میکند که آیا امکان حذف شغل از گروه وجود دارد
///
///
///
///
[HttpGet("CheckDeleteJobFromGroup")]
public async Task> CheckDeleteJobFromGroup(long jobId, long groupId)
{
var result = await _classificationSchemeApplication.CheckIfEmployeeHasThisJob(jobId, groupId);
return result;
}
///
/// ذخیره افزودن یا ویرایش مشاغل گروه
///
///
///
[HttpPost("SaveJobsToGroup")]
public async Task> SaveJobsToGroup(AddOrEditJobInGroupDto command)
{
var result = await _classificationSchemeApplication.SaveJobsToGroup(command);
return result;
}
#endregion
//تب تعیین دستمزد
#region SalariesTab
///
/// دریافت لیست دستمزدها
///
///
///
[HttpGet("GetSalariesList")]
public async Task> GetSalariesList(long schemeId)
{
var result =await _classificationSchemeApplication.GetSalaryList(schemeId);
return result;
}
#endregion
}