206 lines
8.5 KiB
C#
206 lines
8.5 KiB
C#
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 NuGet.Protocol;
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// دریافت لیست فیش حقوقی
|
|
/// </summary>
|
|
/// <param name="searchModel"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<ActionResult<PagedResult<CheckoutDto>>> GetList(CheckoutSearchModelDto searchModel)
|
|
{
|
|
return await _checkoutApplication.GetList(searchModel);
|
|
}
|
|
|
|
/// <summary>
|
|
/// دریافت نوبت کاری
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("RotatingShift")]
|
|
public async Task<RotatingShiftOfCheckoutDto> GetRotatingShift(long id)
|
|
{
|
|
var result =await _checkoutApplication.GetRotatingShiftApi(id);
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// پرینت گروهی فیش حقوقی
|
|
/// </summary>
|
|
/// <param name="ids"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("GroupPrint")]
|
|
public async Task<List<CheckoutPrintDto>> Print(List<long> ids)
|
|
{
|
|
var result =await _checkoutApplication.CheckoutPrint(ids);
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// پرینت تکی فیش حقوقی
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("PrintOne")]
|
|
public async Task<List<CheckoutPrintDto>> Print(long id)
|
|
{
|
|
var result = await _checkoutApplication.CheckoutPrint([id]);
|
|
return result;
|
|
}
|
|
|
|
|
|
#region CreateCheckout
|
|
/// <summary>
|
|
/// سلکت لیست کارگاه
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("WorkshopSelectList")]
|
|
public async Task<List<AdminWorkshopSelectListDto>> GetWorkshopSelectList()
|
|
{
|
|
var result =await _workshopApplication.GetAdminWorkshopSelectList();
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// سلک لیست پرسنل
|
|
/// </summary>
|
|
/// <param name="workshopId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("EmployeeSelectList")]
|
|
public async Task<List<EmployeeSelectListDto>> GetEmployeeSelectListByWorkshopId(long workshopId)
|
|
{
|
|
var result = await _checkoutApplication.GetEmployeeSelectListByWorkshopId(workshopId);
|
|
return result;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// دریافت لیست قراردادها برای ایجاد فیش حقوقی
|
|
/// </summary>
|
|
/// <param name="workshopId"></param>
|
|
/// <param name="year"></param>
|
|
/// <param name="month"></param>
|
|
/// <param name="employeeId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("GetContractsToCreateCheckout")]
|
|
public async Task<OperationResult<List<ContractsListToCreateCheckoutDto>>> 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<List<ContractsListToCreateCheckoutDto>>().Failed(
|
|
// "این کارگاه به دلیل داشتن کارپوشه مجاز به ایجاد تصفیه حساب نمی باشد");
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// ایجاد فیش حقوقی
|
|
/// </summary>
|
|
/// <param name="command"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<ActionResult<OperationResult>> CreateCheckout([FromBody] CreateCheckoutDto command)
|
|
{
|
|
var op = new OperationResult();
|
|
//var ids = new
|
|
// List<long>()
|
|
// {
|
|
// 283652, 290314, 290315, 290316, 290317, 290318, 290319, 290320, 290321, 290322, 290323, 290324, 290325,
|
|
// 290326, 290327, 290328, 290329, 290330, 290331, 290332, 290333, 290334, 290335, 290336, 290337, 290338,
|
|
// 290339, 290340, 290341, 290342, 290343, 290344, 290345, 290346, 290347, 290348, 290349, 290350, 290351,
|
|
// 290352, 290353, 290354, 290355, 290356, 290357, 290358, 290359, 290360, 290361, 290362, 290363, 290364,
|
|
// 290365, 290366, 290367, 290368, 290369, 290370, 290371, 290372, 290373, 290374, 290375, 290376, 290377,
|
|
// 290378, 290379, 290380, 290381, 290382, 290383, 290384, 290385, 290386, 290387, 290388, 290389, 290390,
|
|
// 290391, 290392, 290393, 290394, 290395, 290396, 290397, 290398, 290399, 290400, 290401, 290402, 290403,
|
|
// 290404, 290405, 290406, 290407, 290408, 290409, 290410, 290411, 290412, 290413, 290414, 290415, 290416,
|
|
// 290417, 290418, 290419, 290420, 290421, 290422, 290423, 290424, 290425, 290426, 290427, 290428, 290429,
|
|
// 290430, 290431, 290432, 290433, 290434, 290435, 290436, 290437, 290438, 290439, 290440, 290441, 290442,
|
|
// 290443, 290444, 290445, 290446, 290447, 290448, 290449, 290450, 290451, 290452, 290453, 290454, 290455,
|
|
// 290456, 290457, 290458, 290459, 290460, 290461, 290462, 290463, 290464, 290465, 290466, 290467, 290468,
|
|
// 290469, 290470, 290471, 290472, 290473, 290474, 290475, 290476, 290477, 290478, 290479, 290480, 290481,
|
|
// 290482, 290483, 290484, 290485, 290486, 290487, 290488, 290489, 290490, 290491, 290492, 290493, 290494,
|
|
// 290495, 290496, 290497, 290498, 290499, 290500, 290501, 290502, 290503, 290504, 290505, 290506, 290507,
|
|
// 290508, 290509, 290510, 290511, 290512, 290513, 290514, 290515, 290516, 290517, 290518, 290519, 290520,
|
|
// 290521, 290522, 290523, 290524, 290525, 290526, 290527, 290528, 290529, 290530, 290531, 290532, 290533,
|
|
// 290534, 290535, 290536, 290537, 290538, 290539, 290540, 290541, 290542, 290543, 290544, 290545, 290546,
|
|
// 290547, 290548, 290549, 290550, 290551, 290552, 290553, 290554, 290555, 290556, 290557, 290558, 290559,
|
|
// 290560, 290561, 290562, 290563, 290564, 290565, 290566, 290567, 290568, 290569, 290570, 290571, 290572,
|
|
// 290573, 290574, 290575, 290576, 290577, 290578, 290579, 290580, 290581, 290582, 290583, 290584, 290585,
|
|
// 299612, 290587, 290588
|
|
// };
|
|
//command.Ids = new List<long>(){ 290449 };
|
|
|
|
if (!string.IsNullOrWhiteSpace(command.year) && string.IsNullOrWhiteSpace(command.Month))
|
|
return op.Failed("ماه را انتخاب کنید");
|
|
if (string.IsNullOrWhiteSpace(command.year) && !string.IsNullOrWhiteSpace(command.Month))
|
|
return op.Failed("سال را انتخاب کنید");
|
|
|
|
if (string.IsNullOrWhiteSpace(command.year) && string.IsNullOrWhiteSpace(command.Month))
|
|
{
|
|
|
|
|
|
var today = DateTime.Now;
|
|
var FaToday = today.ToFarsi();
|
|
var convertedYear = FaToday.Substring(0, 4);
|
|
var convertedMonth = FaToday.Substring(5, 2);
|
|
|
|
command.year = convertedYear;
|
|
command.Month = convertedMonth;
|
|
}
|
|
|
|
if (command.WorkshopId == 0)
|
|
return op.Failed("کارگاه انتخاب نشده است");
|
|
if (command.Ids.Count == 0)
|
|
return op.Failed("هیچ موردی انتخاب نشده است");
|
|
|
|
|
|
var result = await _checkoutApplication.CreateCheckoutApi(command.Ids, command.year, command.Month, command.WorkshopId);
|
|
return result;
|
|
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
|
|
public class CreateCheckoutDto
|
|
{
|
|
public List<long> Ids { get; set; }
|
|
public string year { get; set; }
|
|
public string Month { get; set; }
|
|
public long WorkshopId { get; set; }
|
|
}
|
|
|
|
|