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; } /// /// دریافت لیست فیش حقوقی /// /// /// [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; } /// /// ایجاد فیش حقوقی /// /// /// [HttpPost] public async Task> CreateCheckout([FromBody] CreateCheckoutDto command) { var op = new OperationResult(); //var ids = new // List() // { // 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(){ 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 Ids { get; set; } public string year { get; set; } public string Month { get; set; } public long WorkshopId { get; set; } }