Files
Backend-Api/ServiceHost/Areas/Admin/Controllers/CheckoutController.cs
2026-02-05 14:18:11 +03:30

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; }
}