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 }