using _0_Framework.Application;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Checkout.Dto;
using CompanyManagment.App.Contracts.InstitutionPlan;
using CompanyManagment.App.Contracts.Workshop;
using CompanyManagment.App.Contracts.Workshop.DTOs;
using Microsoft.AspNetCore.Mvc;
using NuGet.Packaging.Signing;
using ServiceHost.BaseControllers;
using WorkFlow.Application.Contracts.WorkFlow;
namespace ServiceHost.Areas.Admin.Controllers;
public class CheckoutController : AdminBaseController
{
private readonly ICheckoutApplication _checkoutApplication;
private readonly IWorkshopApplication _workshopApplication;
private readonly IWorkFlowApplication _workFlowApplication;
public CheckoutController(ICheckoutApplication checkoutApplication, IWorkshopApplication workshopApplication, IWorkFlowApplication workFlowApplication)
{
_checkoutApplication = checkoutApplication;
_workshopApplication = workshopApplication;
_workFlowApplication = workFlowApplication;
}
///
/// دریافت لیست فیش حقوقی
///
///
///
[HttpGet]
public async Task>> GetList(CheckoutSearchModelDto searchModel)
{
return await _checkoutApplication.GetList(searchModel);
}
///
/// دریافت نوبت کاری
///
///
///
[HttpGet("RotatingShift")]
public async Task GetRotatingShift(long id)
{
var result =await _checkoutApplication.GetRotatingShiftApi(id);
return result;
}
///
/// پرینت گروهی فیش حقوقی
///
///
///
[HttpGet("GroupPrint")]
public async Task> Print(List ids)
{
var result =await _checkoutApplication.CheckoutPrint(ids);
return result;
}
///
/// پرینت تکی فیش حقوقی
///
///
///
[HttpGet("PrintOne")]
public async Task> Print(long id)
{
var result = await _checkoutApplication.CheckoutPrint([id]);
return result;
}
#region CreateCheckout
///
/// سلکت لیست کارگاه
///
///
[HttpGet("WorkshopSelectList")]
public async Task> GetWorkshopSelectList()
{
var result =await _workshopApplication.GetAdminWorkshopSelectList();
return result;
}
///
/// سلک لیست پرسنل
///
///
///
[HttpGet("EmployeeSelectList")]
public async Task> GetEmployeeSelectListByWorkshopId(long workshopId)
{
var result = await _checkoutApplication.GetEmployeeSelectListByWorkshopId(workshopId);
return result;
}
///
/// دریافت لیست قراردادها برای ایجاد فیش حقوقی
///
///
///
///
///
///
[HttpGet("GetContractsToCreateCheckout")]
public async Task>> GetContractsToCreateCheckout(long workshopId, string year, string month, long employeeId)
{
var result =await _checkoutApplication.GetContractToCreateCheckout(workshopId, year, month, employeeId);
if (!result.IsSuccedded)
return result;
var hasWorkFlow =await _workFlowApplication.HasWorkFlow(workshopId, year, month);
if (hasWorkFlow)
return new OperationResult>().Failed(
"این کارگاه به دلیل داشتن کارپوشه مجاز به ایجاد تصفیه حساب نمی باشد");
return result;
}
#endregion
}