Files
Backend-Api/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs

1675 lines
56 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Text;
using _0_Framework.Application;
using Company.Domain.CheckoutAgg;
using Company.Domain.ContractAgg;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.EmployeeChildren;
using CompanyManagment.App.Contracts.EmployeeClientTemp;
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.Error;
using CompanyManagment.App.Contracts.Job;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.LeftWorkInsurance;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using CompanyManagment.App.Contracts.PersonnleCode;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using PersianTools.Core;
using SocialExplorer.IO.FastDBF;
//using SocialExplorer.IO.FastDBF;
namespace ServiceHost.Areas.Admin.Pages.Company.Employees;
[Authorize]
public class IndexModel : PageModel
{
private readonly IAuthHelper _authHelper;
private readonly ICheckoutApplication _checkoutApplication;
private readonly ICheckoutRepository _checkoutRepository;
private readonly IContractApplication _contractApplication;
private readonly IContractRepository _contractRepository;
private readonly IEmployeeApplication _employeeApplication;
private readonly IEmployeeChildrenApplication _employeeChildrenApplication;
private readonly IEmployerApplication _employerApplication;
private readonly IJobApplication _jobApplication;
private readonly ILeftWorkApplication _leftWorkApplication;
private readonly ILeftWorkInsuranceApplication _leftWorkInsuranceApplication;
private readonly IPersonnelCodeApplication _personnelCodeApplication;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IWorkshopApplication _workShopApplication;
private readonly ILeftWorkTempApplication _leftWorkTempApplication;
private readonly IEmployeeClientTempApplication _employeeClientTempApplication;
public List<CreateEmployeChildren> ChildrenList;
public string employeeFullName;
public List<EmployeeViewModel> Employees;
public string EmployerFullName;
public List<EmployeeSelectListViewModel> PersonnelList;
public EmployeeSearchModel SearchModel;
public string WorkshopFullName;
public IndexModel(IAuthHelper authHelper, IEmployeeApplication employeeApplication,
IEmployeeChildrenApplication employeeChildrenApplication, IWorkshopApplication workShopApplication,
IContractApplication contractApplication, IContractRepository contractRepository,
ICheckoutApplication checkoutApplication, ICheckoutRepository checkoutRepository,
IWebHostEnvironment webHostEnvironment, ILeftWorkInsuranceApplication leftWorkInsuranceApplication,
ILeftWorkApplication leftWorkApplication, IPersonnelCodeApplication personnelCodeApplication,
IJobApplication jobApplication, IEmployerApplication employerApplication, ILeftWorkTempApplication leftWorkTempApplication, IEmployeeClientTempApplication employeeClientTempApplication)
{
_employeeApplication = employeeApplication;
_employeeChildrenApplication = employeeChildrenApplication;
_workShopApplication = workShopApplication;
_contractApplication = contractApplication;
_contractRepository = contractRepository;
_checkoutApplication = checkoutApplication;
_checkoutRepository = checkoutRepository;
_webHostEnvironment = webHostEnvironment;
_leftWorkInsuranceApplication = leftWorkInsuranceApplication;
_leftWorkApplication = leftWorkApplication;
_personnelCodeApplication = personnelCodeApplication;
_jobApplication = jobApplication;
_employerApplication = employerApplication;
_leftWorkTempApplication = leftWorkTempApplication;
_employeeClientTempApplication = employeeClientTempApplication;
_authHelper = authHelper;
}
[TempData] public string Message { get; set; }
//public string LName;
[BindProperty] public List<string> listArray { get; set; }
public void OnGet(EmployeeSearchModel searchModel)
{
Employees = _employeeApplication.SearchForMain(searchModel);
if (searchModel.Id > 0)
employeeFullName = Employees.Select(x => x.EmployeeFullName).FirstOrDefault();
else
employeeFullName = searchModel.EmployeeName;
if (searchModel.WorkshopId > 0)
{
var workshop = _workShopApplication.GetDetails(searchModel.WorkshopId);
WorkshopFullName = workshop.WorkshopFullName;
}
else
{
WorkshopFullName = searchModel.WorkshopName;
}
if (searchModel.EmployerId > 0)
{
var employer = _employerApplication.GetDetails(searchModel.EmployerId);
EmployerFullName = employer.IsLegal == "حقیقی" ? employer.FName + " " + employer.LName : employer.LName;
;
}
else
{
EmployerFullName = searchModel.EmployerLName;
}
}
//public async Task OnGet(EmployeeSearchModel searchModel)
//{
// Employees = await _employeeApplication.Search(searchModel);
// if (searchModel.Id > 0)
// {
// employeeFullName = Employees.Select(x => x.EmployeeFullName).FirstOrDefault();
// }
//}
#region newEmployeeSearch
public async Task<IActionResult> OnGetPersonelMainList(string searchEmployee)
{
PersonnelList = await _employeeApplication.GetEmployeeToList();
var person = PersonnelList.Where(x => x.EmployeeFullName.Contains(searchEmployee)).Take(200).ToList();
person = person.OrderBy(x => x.EmployeeFullName.Length).ToList();
//var person = await _employeeApplication.GetEmployeeToList();
return new JsonResult(new
{
IsSuccedded = true,
mylist = person
});
}
#endregion
#region stroredProcedure
public IActionResult OnPostSerachEmployeeByText(string textSearch)
{
var emplyoeeList = _employeeApplication.GetEmployeeByTextSearch(textSearch);
return new JsonResult(new
{
IsSuccedded = true,
empList = emplyoeeList
});
}
#endregion
#region Create Employee File پرونده
public IActionResult OnGetCreate()
{
return Partial("./Create");
}
/// <summary>
/// ایجاد پرسنل پرونده
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
public IActionResult OnPostCreate(CreateEmployee command)
{
var children = command.CreateEmployeChildrenList.Count(x => x.DateOfBirth != null);
command.NumberOfChildren = children.ToString();
var result = _employeeApplication.Create(command);
Thread.Sleep(1000);
if (result.IsSuccedded)
for (var i = 0; i <= children - 1; i++)
if (command.CreateEmployeChildrenList[i].DateOfBirth != null)
{
var child = new CreateEmployeChildren
{
ParentNationalCode = command.NationalCode,
DateOfBirth = command.CreateEmployeChildrenList[i].DateOfBirth,
FName = command.CreateEmployeChildrenList[i].FName,
EmployeeId = result.SendId
};
_employeeChildrenApplication.Create(child);
}
return new JsonResult(result);
}
#endregion
#region Create admin Employee
public IActionResult OnGetCreateEmployee()
{
return Partial("./CreateEmployee");
}
/// <summary>
/// ایجاد پرسنل در ادمین
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
public IActionResult OnPostCreateEmployee(CreateEmployee command)
{
var children = command.CreateEmployeChildrenList.Count(x => x.DateOfBirth != null);
command.NumberOfChildren = children.ToString();
var result = new OperationResult();
if (string.IsNullOrWhiteSpace(command.NationalCode))
return new JsonResult(result.Failed("لطفا کد ملی را وارد نمایید"));
if (string.IsNullOrWhiteSpace(command.MaritalStatus))
return new JsonResult(result.Failed("لطفا وضعیت تاهل را مشخص نمایید"));
if (string.IsNullOrWhiteSpace(command.InsuranceHistoryByYear) || string.IsNullOrWhiteSpace(command.InsuranceHistoryByMonth))
return new JsonResult(result.Failed("لطفا سابقه بیمه را مشخص نمایید"));
if (command.InsuranceHistoryByYear != "0")
{
var insuranceYear = command.InsuranceHistoryByYear.ExtractIntNumbers();
if(insuranceYear == 0)
return new JsonResult(result.Failed("لطفا سال را به عدد وارد کنید"));
}
if (command.InsuranceHistoryByMonth != "0")
{
var insuranceMonth = command.InsuranceHistoryByMonth.ExtractIntNumbers();
if (insuranceMonth == 0)
return new JsonResult(result.Failed("لطفا ماه را به عدد وارد کنید"));
}
result = _employeeApplication.Create(command);
Thread.Sleep(1000);
if (result.IsSuccedded)
for (var i = 0; i <= children - 1; i++)
if (command.CreateEmployeChildrenList[i].DateOfBirth != null)
{
var child = new CreateEmployeChildren
{
ParentNationalCode = command.NationalCode,
DateOfBirth = command.CreateEmployeChildrenList[i].DateOfBirth,
FName = command.CreateEmployeChildrenList[i].FName,
EmployeeId = result.SendId
};
_employeeChildrenApplication.Create(child);
}
return new JsonResult(result);
}
#endregion
public IActionResult OnGetEdit(long id)
{
var employee = _employeeApplication.GetDetails(id);
employee.EditEmployeChildrenList = _employeeChildrenApplication.GetChildren(employee.Id);
return Partial("Edit", employee);
}
public JsonResult OnPostEdit(EditEmployee command)
{
var childrenEdit = 0;
var children = 0;
if (ModelState.IsValid)
{
}
if (command.CreateEmployeChildrenList != null)
children = command.CreateEmployeChildrenList.Count(x => x.DateOfBirth != null);
if (command.EditEmployeChildrenList != null)
childrenEdit = command.EditEmployeChildrenList.Count(x => x.DateOfBirth != null);
//if (children > 0)
//{
// var oldChildrenNumber = Convert.ToInt32(command.NumberOfChildren);
// var sumChildren = oldChildrenNumber + children;
// command.NumberOfChildren = sumChildren.ToString();
//}
var result = _employeeApplication.Edit(command);
Thread.Sleep(1000);
if (result.IsSuccedded)
{
for (var i = 0; i <= childrenEdit - 1; i++)
if (command.EditEmployeChildrenList != null && command.EditEmployeChildrenList[i].DateOfBirth != null)
{
var child = new EditEmployeeChildren
{
ParentNationalCode = command.NationalCode,
DateOfBirth = command.EditEmployeChildrenList[i].DateOfBirth,
FName = command.EditEmployeChildrenList[i].FName,
EmployeeId = command.Id,
Id = command.EditEmployeChildrenList[i].Id,
IsRemoved = command.EditEmployeChildrenList[i].IsRemoved
};
_employeeChildrenApplication.Edit(child);
}
for (var i = 0; i <= children - 1; i++)
if (command.CreateEmployeChildrenList != null &&
command.CreateEmployeChildrenList[i].DateOfBirth != null)
{
var child = new CreateEmployeChildren
{
EmployeeId = command.Id,
ParentNationalCode = command.NationalCode,
DateOfBirth = command.CreateEmployeChildrenList[i].DateOfBirth,
FName = command.CreateEmployeChildrenList[i].FName
};
_employeeChildrenApplication.Create(child);
}
}
var childrenCunt = _employeeChildrenApplication.GetChildren(command.Id).Count;
command.NumberOfChildren = childrenCunt.ToString();
_employeeApplication.Edit(command);
return new JsonResult(result);
}
public IActionResult OnGetDetails(long id)
{
var emp = _employeeApplication.GetDetails(id);
emp.CreateEmployeChildrenList = _employeeChildrenApplication.GetChildren(id);
var path = "profilePhotos";
var directoryPath = $"{_webHostEnvironment.WebRootPath}\\ProductPictures\\{path}";
//string TestPath = "D:\\";
var odbf = new DbfFile(Encoding.GetEncoding(1256));
odbf.Open(Path.Combine(directoryPath, "DSKKAR00.dbf"), FileMode.Create);
//کد کارگاه
odbf.Header.AddColumn(new DbfColumn("DSK_ID", DbfColumn.DbfColumnType.Character, 10, 0));
//نام کارگاه
odbf.Header.AddColumn(new DbfColumn("DSK_NAME", DbfColumn.DbfColumnType.Character, 100, 0));
//نام کارفرما
odbf.Header.AddColumn(new DbfColumn("DSK_FARM", DbfColumn.DbfColumnType.Character, 100, 0));
//نام آدرس
odbf.Header.AddColumn(new DbfColumn("DSK_ADRS", DbfColumn.DbfColumnType.Character, 100, 0));
//نوع لیست
odbf.Header.AddColumn(new DbfColumn("DSK_KIND", DbfColumn.DbfColumnType.Number, 1, 0));
//سال عملکرد
odbf.Header.AddColumn(new DbfColumn("DSK_YY", DbfColumn.DbfColumnType.Number, 2, 0));
//ماه عملکرد
odbf.Header.AddColumn(new DbfColumn("DSK_MM", DbfColumn.DbfColumnType.Number, 2, 0));
//شماره لیست
odbf.Header.AddColumn(new DbfColumn("DSK_LISTNO", DbfColumn.DbfColumnType.Character, 12, 0));
//شرح لیست
odbf.Header.AddColumn(new DbfColumn("DSK_DISC", DbfColumn.DbfColumnType.Character, 100, 0));
//تعداد کارکنان
odbf.Header.AddColumn(new DbfColumn("DSK_NUM", DbfColumn.DbfColumnType.Number, 5, 0));
//تعداد کارکنان
odbf.Header.AddColumn(new DbfColumn("DSK_TDD", DbfColumn.DbfColumnType.Number, 6, 0));
//مجموع دستمزد روزانه
odbf.Header.AddColumn(new DbfColumn("DSK_TROOZ", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع دستمزد ماهانه
odbf.Header.AddColumn(new DbfColumn("DSK_TMAH", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع مزایای ماهانه
odbf.Header.AddColumn(new DbfColumn("DSK_TMAZ", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع دستمزد و مزایای ماهانه مشمول
odbf.Header.AddColumn(new DbfColumn("DSK_TMASH", DbfColumn.DbfColumnType.Number, 12, 0));
// مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول
odbf.Header.AddColumn(new DbfColumn("DSK_TTOTL", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع حق بیمه سهم بیمه شده
odbf.Header.AddColumn(new DbfColumn("DSK_TBIME", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع حق بیمه سهم کارفرما
odbf.Header.AddColumn(new DbfColumn("DSK_TKOSO", DbfColumn.DbfColumnType.Number, 12, 0));
//مجموع حق بیمه بیکاری
odbf.Header.AddColumn(new DbfColumn("DSK_BIC", DbfColumn.DbfColumnType.Number, 12, 0));
//نرخ حق بیمه
odbf.Header.AddColumn(new DbfColumn("DSK_RATE", DbfColumn.DbfColumnType.Number, 5, 0));
//نرخ پورسانتاژ
odbf.Header.AddColumn(new DbfColumn("DSK_PRATE", DbfColumn.DbfColumnType.Number, 2, 0));
//نرخ مشاغل سخت زیان آور
odbf.Header.AddColumn(new DbfColumn("DSK_BIMH", DbfColumn.DbfColumnType.Number, 12, 0));
//ردیف پیمان
odbf.Header.AddColumn(new DbfColumn("MON_PYM", DbfColumn.DbfColumnType.Character, 3, 0));
var orec = new DbfRecord(odbf.Header);
//کد کارگاه
orec[0] = GetSpecifiedCharactes("9008289145", 10);
orec[1] = GetSpecifiedCharactes("ریواس سیستم پارس", 100).ToIranSystem();
orec[2] = GetSpecifiedCharactes("ریواس سیستم پارس", 100).ToIranSystem();
orec[3] = GetSpecifiedCharactes(
"رشت - بلوار شهدای گمنام - کوچه شهید علی قربانی - ساختمان پیام نور - طبقه اول واحد 2", 100).ToIranSystem();
// نوع لیست
orec[4] = "0";
//سال
orec[5] = "2";
//ماه
orec[6] = "2";
//شماره لیست
orec[7] = GetSpecifiedCharactes("01", 12);
//شرح لیست
orec[8] = GetSpecifiedCharactes("", 100).ToIranSystem();
//تعداد کرکنان
orec[9] = "3";
//مجموع روزهای کارکرد
orec[10] = "93";
//مجموع دستمزد روزانه
orec[11] = "5308284";
//مجموع دستمزد ماهانه
orec[12] = "164556804";
//مجموع مزایای ماهانه مشمول
orec[13] = "60000000";
//مجموع دستمزد و مزایای ماهانه مشمول
orec[14] = "224556804";
//مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول
orec[15] = "224556804";
// مجموع حق بیمه سهم بیمه شده
orec[16] = "15718977";
//مجموع حق بیمه سهم کارفرما
orec[17] = "44911361";
//مجموع حق بیمه بیکاری
orec[18] = "6736704";
//نرخ حق بیمه
orec[19] = "23";
//نرخ پورسانتاژ
orec[20] = "0";
//نرخ مشاغل سخت زیان آور
orec[21] = "0";
//ردیف پیمان
orec[22] = GetSpecifiedCharactes("000", 12);
odbf.Write(orec);
//odbf.Header.RecordCount = 50;
odbf.WriteHeader();
odbf.Close();
//لیست پرسنل
var dsw = new DbfFile(Encoding.GetEncoding(1256));
dsw.Open(Path.Combine(directoryPath, "DSKWOR00.dbf"), FileMode.Create);
//کد کارگاه
dsw.Header.AddColumn(new DbfColumn("DSW_ID", DbfColumn.DbfColumnType.Character, 10, 0));
//سال عملکرد
dsw.Header.AddColumn(new DbfColumn("DSW_YY", DbfColumn.DbfColumnType.Number, 2, 0));
//ماه عملکرد
dsw.Header.AddColumn(new DbfColumn("DSW_MM", DbfColumn.DbfColumnType.Number, 2, 0));
//شماره لیست
dsw.Header.AddColumn(new DbfColumn("DSW_LISTNO", DbfColumn.DbfColumnType.Character, 12, 0));
//شماره بیمه
dsw.Header.AddColumn(new DbfColumn("DSW_ID1", DbfColumn.DbfColumnType.Character, 10, 0));
// نام
dsw.Header.AddColumn(new DbfColumn("DSW_FNAME", DbfColumn.DbfColumnType.Character, 100, 0));
// نام خانوادگی
dsw.Header.AddColumn(new DbfColumn("DSW_LNAME", DbfColumn.DbfColumnType.Character, 100, 0));
//نام پدر
dsw.Header.AddColumn(new DbfColumn("DSW_DNAME", DbfColumn.DbfColumnType.Character, 100, 0));
// شماره شناسنامه
dsw.Header.AddColumn(new DbfColumn("DSW_IDNO", DbfColumn.DbfColumnType.Character, 15, 0));
// محل صدور
dsw.Header.AddColumn(new DbfColumn("DSW_IDPLC", DbfColumn.DbfColumnType.Character, 100, 0));
// تاریخ صدور
dsw.Header.AddColumn(new DbfColumn("DSW_IDATE", DbfColumn.DbfColumnType.Character, 8, 0));
// تاریخ تولد
dsw.Header.AddColumn(new DbfColumn("DSW_BDATE", DbfColumn.DbfColumnType.Character, 8, 0));
// جنسیت
dsw.Header.AddColumn(new DbfColumn("DSW_SEX", DbfColumn.DbfColumnType.Character, 3, 0));
// ملیت
dsw.Header.AddColumn(new DbfColumn("DSW_NAT", DbfColumn.DbfColumnType.Character, 10, 0));
// شرح شغل
dsw.Header.AddColumn(new DbfColumn("DSW_OCP", DbfColumn.DbfColumnType.Character, 100, 0));
// تاریخ شروع بکار
dsw.Header.AddColumn(new DbfColumn("DSW_SDATE", DbfColumn.DbfColumnType.Character, 8, 0));
// تاریخ ترک کار
dsw.Header.AddColumn(new DbfColumn("DSW_EDATE", DbfColumn.DbfColumnType.Character, 8, 0));
// تعداد روزهای کارکرد
dsw.Header.AddColumn(new DbfColumn("DSW_DD", DbfColumn.DbfColumnType.Number, 2, 0));
// دستمزد روزانه
dsw.Header.AddColumn(new DbfColumn("DSW_ROOZ", DbfColumn.DbfColumnType.Number, 12, 0));
// دستمزد ماهانه
dsw.Header.AddColumn(new DbfColumn("DSW_MAH", DbfColumn.DbfColumnType.Number, 12, 0));
// مزایای ماهانه
dsw.Header.AddColumn(new DbfColumn("DSW_MAZ", DbfColumn.DbfColumnType.Number, 12, 0));
// جمع دستمزد و مزایای ماهانه مشمول
dsw.Header.AddColumn(new DbfColumn("DSW_MASH", DbfColumn.DbfColumnType.Number, 12, 0));
// جمع کل دستمزد و مزایای ماهانه
dsw.Header.AddColumn(new DbfColumn("DSW_TOTL", DbfColumn.DbfColumnType.Number, 12, 0));
//حق بیمه سهم بیمه شده
dsw.Header.AddColumn(new DbfColumn("DSW_BIME", DbfColumn.DbfColumnType.Number, 12, 0));
//نرخ پورسانتاژ
dsw.Header.AddColumn(new DbfColumn("DSW_PRATE", DbfColumn.DbfColumnType.Number, 2, 0));
// کد شغل
dsw.Header.AddColumn(new DbfColumn("DSW_JOB", DbfColumn.DbfColumnType.Character, 6, 0));
// کد ملی
dsw.Header.AddColumn(new DbfColumn("PER_NATCOD", DbfColumn.DbfColumnType.Character, 10, 0));
var dswrec = new DbfRecord(dsw.Header);
//کد کارگاه
dswrec[0] = GetSpecifiedCharactes("9008289145", 10);
//سال
dswrec[1] = "2";
//ماه
dswrec[2] = "2";
//شماره لیست
dswrec[3] = GetSpecifiedCharactes("01", 12);
//شماره بیمه
dswrec[4] = GetSpecifiedCharactes("48071464", 8);
// نام
dswrec[5] = GetSpecifiedCharactes("راضیه", 100).ToIranSystem();
//خانوادگی نام
dswrec[6] = GetSpecifiedCharactes("پیردهقان", 100).ToIranSystem();
//پدر نام
dswrec[7] = GetSpecifiedCharactes("غلام", 100).ToIranSystem();
//شماره شناسنامه
dswrec[8] = "2650230614";
//محل صدور
dswrec[9] = GetSpecifiedCharactes("رشت", 100).ToIranSystem();
;
//تاریخ صدور
dswrec[10] = "13770805";
//تاریخ تولد
dswrec[11] = "13770721";
//جنسیت
dswrec[12] = GetSpecifiedCharactes("زن", 3).ToIranSystem();
//ملیت
dswrec[13] = GetSpecifiedCharactes("ایرانی", 10).ToIranSystem();
//شرح شغل
dswrec[14] = GetSpecifiedCharactes("کارشناس نرم افزار کامپیوتر", 100).ToIranSystem();
//تاریخ شروع بکار
dswrec[15] = "14000201";
//تاریخ ترک کار
dswrec[16] = "";
//تعداد روزهای کارکرد
dswrec[17] = "31";
//دستمزد روزانه
dswrec[18] = "1769428";
//دستمزد مااهانه
dswrec[19] = "54852268";
//مزایای ماهانه
dswrec[20] = "20000000";
//دستمزد و مزایای ماهانه مشمول
dswrec[21] = "74852268";
//جمع کل دستمزد و مزایای ماهانه مسمول غیرمشمول
dswrec[22] = "74852268";
//حق بیمه سهم بیمه شده
dswrec[23] = "5239659";
//نرخ پورسانتاژ
dswrec[24] = "0";
//کد شغل
dswrec[25] = "033022";
//کد ملی
dswrec[26] = "2650230614";
dsw.Write(dswrec);
var dswrec2 = new DbfRecord(dsw.Header);
//کد کارگاه
dswrec2[0] = GetSpecifiedCharactes("9008289145", 10);
//سال
dswrec2[1] = "2";
//ماه
dswrec2[2] = "2";
//شماره لیست
dswrec2[3] = GetSpecifiedCharactes("01", 12);
//شماره بیمه
dswrec2[4] = GetSpecifiedCharactes("34157806", 8);
// نام
dswrec2[5] = GetSpecifiedCharactes("پیمان", 100).ToIranSystem();
//خانوادگی نام
dswrec2[6] = GetSpecifiedCharactes("افشاری بجاربنه", 100).ToIranSystem();
//پدر نام
dswrec2[7] = GetSpecifiedCharactes("علیرضا", 100).ToIranSystem();
//شماره شناسنامه
dswrec2[8] = "2580900713";
//محل صدور
dswrec2[9] = GetSpecifiedCharactes("رشت", 100).ToIranSystem();
;
//تاریخ صدور
dswrec2[10] = "";
//تاریخ تولد
dswrec2[11] = "13750229";
//جنسیت
dswrec2[12] = GetSpecifiedCharactes("مرد", 3).ToIranSystem();
//ملیت
dswrec2[13] = GetSpecifiedCharactes("ایرانی", 10).ToIranSystem();
//شرح شغل
dswrec2[14] = GetSpecifiedCharactes("کارشناس نرم افزار کامپیوتر", 100).ToIranSystem();
//تاریخ شروع بکار
dswrec2[15] = "14010701";
//تاریخ ترک کار
dswrec2[16] = "";
//تعداد روزهای کارکرد
dswrec2[17] = "31";
//دستمزد روزانه
dswrec2[18] = "1769428";
//دستمزد مااهانه
dswrec2[19] = "54852268";
//مزایای ماهانه
dswrec2[20] = "20000000";
//دستمزد و مزایای ماهانه مشمول
dswrec2[21] = "74852268";
//جمع کل دستمزد و مزایای ماهانه مسمول غیرمشمول
dswrec2[22] = "74852268";
//حق بیمه سهم بیمه شده
dswrec2[23] = "5239659";
//نرخ پورسانتاژ
dswrec2[24] = "0";
//کد شغل
dswrec2[25] = "033022";
//کد ملی
dswrec2[26] = "2580900713";
dsw.Write(dswrec2);
var dswrec3 = new DbfRecord(dsw.Header);
//کد کارگاه
dswrec3[0] = GetSpecifiedCharactes("9008289145", 10);
//سال
dswrec3[1] = "2";
//ماه
dswrec3[2] = "2";
//شماره لیست
dswrec3[3] = GetSpecifiedCharactes("01", 12);
//شماره بیمه
dswrec3[4] = GetSpecifiedCharactes("48076618", 8);
// نام
dswrec3[5] = GetSpecifiedCharactes("فاطمه", 100).ToIranSystem();
//خانوادگی نام
dswrec3[6] = GetSpecifiedCharactes("پادکان", 100).ToIranSystem();
//پدر نام
dswrec3[7] = GetSpecifiedCharactes("محمدفرشاد", 100).ToIranSystem();
//شماره شناسنامه
dswrec3[8] = "2581230231";
//محل صدور
dswrec3[9] = GetSpecifiedCharactes("رشت", 100).ToIranSystem();
;
//تاریخ صدور
dswrec3[10] = "";
//تاریخ تولد
dswrec3[11] = "13780926";
//جنسیت
dswrec3[12] = GetSpecifiedCharactes("زن", 3).ToIranSystem();
//ملیت
dswrec3[13] = GetSpecifiedCharactes("ایرانی", 10).ToIranSystem();
//شرح شغل
dswrec3[14] = GetSpecifiedCharactes("کارشناس نرم افزار کامپیوتر", 100).ToIranSystem();
//تاریخ شروع بکار
dswrec3[15] = "14010701";
//تاریخ ترک کار
dswrec3[16] = "";
//تعداد روزهای کارکرد
dswrec3[17] = "31";
//دستمزد روزانه
dswrec3[18] = "1769428";
//دستمزد مااهانه
dswrec3[19] = "54852268";
//مزایای ماهانه
dswrec3[20] = "20000000";
//دستمزد و مزایای ماهانه مشمول
dswrec3[21] = "74852268";
//جمع کل دستمزد و مزایای ماهانه مسمول غیرمشمول
dswrec3[22] = "74852268";
//حق بیمه سهم بیمه شده
dswrec3[23] = "5239659";
//نرخ پورسانتاژ
dswrec3[24] = "0";
//کد شغل
dswrec3[25] = "001094";
//کد ملی
dswrec3[26] = "2581230231";
dsw.Write(dswrec3);
dsw.WriteHeader();
dsw.Close();
return Partial("Details", emp);
}
private string GetSpecifiedCharactes(string str, int MaxLength)
{
return str.Length <= MaxLength ? str : str.Substring(0, MaxLength);
}
public IActionResult OnGetDeActive(long id)
{
var result = _employeeApplication.DeActive(id);
if (result.IsSuccedded)
return RedirectToPage("./Index");
Message = result.Message;
return RedirectToPage("./Index");
}
public IActionResult OnGetIsActive(long id)
{
var result = _employeeApplication.Active(id);
if (result.IsSuccedded)
return RedirectToPage("./Index");
Message = result.Message;
return RedirectToPage("./Index");
}
public IActionResult OnGetInsuranceRecords(long employeeId)
{
var editEIR = new EditEmployeeInsuranceRecord();
editEIR.WorkshopSelectList = new SelectList(_workShopApplication.GetWorkshopAll(), "Id", "WorkshopFullName");
editEIR.EmployeeId = employeeId;
editEIR.employeeInsuranceRecordViewModels = _employeeApplication
.SearchInsuranceRecord(new EmployeeInsuranceRecordSearchModel { EmployeeId = employeeId })
.OrderByDescending(x => x.Workshop.IsActiveString).ToList();
var emp = _employeeApplication.GetDetails(employeeId);
var fullname = string.Join(" ", emp.FName, emp.LName, "(" + emp.NationalCode + ")");
return Partial("./InsuranceRecords", editEIR);
}
public IActionResult OnPostInsuranceRecords(EditEmployeeInsuranceRecord eir)
{
var operationResult = new OperationResult();
var ids_Exist = new List<long>();
#region Validation
operationResult = _employeeApplication.ValidationEmployeeCompleteItem(eir.EmployeeId);
if (!operationResult.IsSuccedded) return new JsonResult(operationResult);
var eir_lst = new List<CreateEmployeeInsuranceRecord>();
if (eir.employeeInsuranceRecordViewModels != null)
foreach (var _eir in eir.employeeInsuranceRecordViewModels)
{
operationResult = _employeeApplication.ValidationEmployeeInsuranceRecord(_eir);
if (!operationResult.IsSuccedded) return new JsonResult(operationResult);
var create = new CreateEmployeeInsuranceRecord
{
EmployeeId = eir.EmployeeId,
WorkShopId = _eir.WorkShopId,
DateOfStart = _eir.DateOfStart.ToGeorgianDateTime(),
DateOfEnd = _eir.DateOfEnd == null ? null : _eir.DateOfEnd.ToGeorgianDateTime()
};
eir_lst.Add(create);
}
operationResult = _employeeApplication.ValidationEmployeeInsuranceRecord(eir_lst);
if (!operationResult.IsSuccedded) return new JsonResult(operationResult);
#endregion
#region Remove Items
try
{
if (eir.employeeInsuranceRecordViewModels != null)
foreach (var _eir in eir.employeeInsuranceRecordViewModels)
if (_eir.Id == 0) //new
{
}
else //Exist
{
ids_Exist.Add(_eir.Id);
}
var exist = _employeeApplication.SearchInsuranceRecord(new EmployeeInsuranceRecordSearchModel
{ EmployeeId = eir.EmployeeId });
if (exist != null)
foreach (var item in exist)
if (ids_Exist.Count != 0)
{
if (!ids_Exist.Contains(item.Id)) _employeeApplication.RemoveEmployeeInsuranceRecord(item.Id);
}
else
{
_employeeApplication.RemoveEmployeeInsuranceRecord(item.Id);
}
}
catch (Exception)
{
return new JsonResult(operationResult);
}
#endregion
#region Create_Edit
if (eir.employeeInsuranceRecordViewModels != null)
foreach (var _eir in eir.employeeInsuranceRecordViewModels)
if (_eir.Id == 0) //Create
{
var create = new CreateEmployeeInsuranceRecord
{
EmployeeId = eir.EmployeeId,
WorkShopId = _eir.WorkShopId,
DateOfStart = _eir.DateOfStart.ToGeorgianDateTime(),
DateOfEnd = _eir.DateOfEnd == null ? null : _eir.DateOfEnd.ToGeorgianDateTime()
};
operationResult = _employeeApplication.CreateEmployeeInsuranceRecord(create);
}
else //Edit
{
var edit = new EditEmployeeInsuranceRecord
{
Id = _eir.Id,
EmployeeId = eir.EmployeeId,
WorkShopId = _eir.WorkShopId,
DateOfStart = _eir.DateOfStart.ToGeorgianDateTime(),
DateOfEnd = _eir.DateOfEnd == null ? null : _eir.DateOfEnd.ToGeorgianDateTime()
};
operationResult = _employeeApplication.EditEmployeeInsuranceRecord(edit);
}
#endregion
//return Partial("./InsuranceRecords");
operationResult.IsSuccedded = true;
return new JsonResult(operationResult);
}
public IActionResult OnPostCaldate(string dateOfstart, string dateOfend)
{
if (string.IsNullOrEmpty(dateOfend)) dateOfend = DateTime.Now.ToFarsi();
var TotalDays =
Tools.BetweenDateGeorgianToDay(dateOfstart.ToGeorgianDateTime(), dateOfend.ToGeorgianDateTime());
return new JsonResult(TotalDays);
}
public IActionResult OnPostCaldatearr(List<string> dateOfstart, List<string> dateOfend)
{
var i = 0;
decimal TotalDays = 0;
foreach (var item in dateOfstart)
{
if (string.IsNullOrEmpty(dateOfend[i])) dateOfend[i] = DateTime.Now.ToFarsi();
if (!string.IsNullOrEmpty(item))
TotalDays += Tools.BetweenDateGeorgianToDay(dateOfstart[i].ToGeorgianDateTime(),
dateOfend[i].ToGeorgianDateTime());
i++;
}
var totalYears_ws = Math.Truncate(TotalDays / 365);
var totalMonths_ws = Math.Truncate(TotalDays % 365 / 30);
var remainingDays_ws = Math.Truncate(TotalDays % 365 % 30);
var result = new
{
TotalDays_ws = TotalDays,
totalYears_ws = totalYears_ws + " سال",
totalMonths_ws = totalMonths_ws + " ماه",
remainingDays_ws = remainingDays_ws + " روز"
};
return new JsonResult(result);
}
#region PersonelCode
public IActionResult OnPostGetPersonelCode(long workshopId, long employeeId)
{
var searchModel = new PersonnelCodeSearchModel();
searchModel.WorkshopId = workshopId;
searchModel.EmployeeId = employeeId;
var personnelCode = _personnelCodeApplication.GetPersonnelCodeViewModel(searchModel);
return new JsonResult(new
{
personnelCode.PersonnelCode, personnelCode.HasPersonelCode
});
}
#endregion
#region WorkshopInformation
public IActionResult OnPostGetWorkshopInformation(long workshopId)
{
var workshop = _workShopApplication.GetDetails(workshopId);
return new JsonResult(new
{
workshop.AddBonusesPay,
workshop.AddLeavePay,
workshop.AddYearsPay
});
}
#endregion
public IActionResult OnPostJobListByWorkshopId(long workshopId)
{
var jobs = _jobApplication.GetJobListByWorkshopId(workshopId);
return new JsonResult(new
{
IsSuccedded = true,
jobList = jobs
});
}
public IActionResult OnPostJobListByText(string textSearch, long workshopId)
{
var jobs = _jobApplication.GetJobListByTextAndWorkshopId(textSearch, workshopId);
jobs = jobs.OrderBy(x => x.JobName.Length).ToList().Select(x => new JobViewModel
{
Id = x.Id,
JobName = x.JobName,
JobCode = x.JobCode,
SearchResultTitle = x.JobName,
SearchResultCode = x.JobCode
}).ToList();
return new JsonResult(new
{
IsSuccedded = true,
jobList = jobs,
List = jobs
});
}
public IActionResult OnPostJobByTextSearch(string textSearch)
{
var jobs = _jobApplication.GetJobListByText(textSearch);
jobs = jobs.OrderBy(x => x.JobName.Length).ToList().Select(x => new JobViewModel
{
Id = x.Id,
JobName = x.JobName,
JobCode = x.JobCode,
SearchResultTitle = x.JobName,
SearchResultCode = x.JobCode
}).ToList();
return new JsonResult(new
{
IsSuccedded = true,
List = jobs
});
}
public IActionResult OnPostCheckDeleteLeftWork(long workshopId, long employeeId, string date, int type)
{
var result = new OperationResult();
if (!string.IsNullOrEmpty(date))
result = _leftWorkApplication.CheckDeleteLeftWork(workshopId, employeeId, date, type);
else
result.Succcedded();
return new JsonResult(result);
}
public IActionResult OnPostCheckDeleteLeftWorkInsurance(long workshopId, long employeeId, string date, int type)
{
var result = new OperationResult();
if (!string.IsNullOrEmpty(date))
result = _leftWorkInsuranceApplication.CheckDeleteLeftWorkInsurance(workshopId, employeeId, date, type);
else
result.Succcedded();
return new JsonResult(result);
}
public IActionResult OnPostCheckEditLeftWorkInsurance(long workshopId, long employeeId, string date, int type)
{
var result = new OperationResult();
if (!string.IsNullOrEmpty(date))
result = _leftWorkInsuranceApplication.CheckEditLeftWorkInsurance(workshopId, employeeId, date, type);
else
result.Succcedded();
return new JsonResult(result);
}
public IActionResult OnPostCheckBeforeSaveLeftWorkInsurance(long workshopId, long employeeId, string date, int type)
{
var result = new OperationResult();
if (!string.IsNullOrEmpty(date))
result = _leftWorkInsuranceApplication.CheckBeforeSaveLeftWorkInsurance(workshopId, employeeId, date, type);
else
result.Succcedded();
return new JsonResult(result);
}
public IActionResult OnPostCheckEditLeftWork(long workshopId, long employeeId, string date, int type)
{
var result = new OperationResult();
if (!string.IsNullOrEmpty(date))
result = _leftWorkApplication.CheckEditLeftWork(workshopId, employeeId, date, type);
else
result.Succcedded();
return new JsonResult(result);
}
#region CopyPsCode
public IActionResult OnGetCopyAllPsCode()
{
return Partial("./CopyPersonnelCode");
}
public IActionResult OnGetCopyPersonnelCode()
{
var workshops = _workShopApplication.GetWorkshop();
foreach (var workshop in workshops)
{
var a = new ContractSearchModel
{
WorkshopIds = workshop.Id,
EmployeeId = 0,
EditPersonnelCode = true
};
var ContractSearch = _contractApplication.Search(a);
var result = ContractSearch.GroupBy(c => c.PersonnelCode)
.Select(c => c.First())
.ToList();
var finalresult = result.OrderBy(x => x.PersonnelCode).ToList();
foreach (var contract in finalresult)
{
var command = new CreatePersonnelCode
{
WorkshopId = contract.WorkshopIds,
EmployeeId = contract.EmployeeId,
PersonnelCode = contract.PersonnelCode
};
var res = _personnelCodeApplication.Create(command);
//pscode= $"{contract.PersonnelCode}";
//emp = contract.EmployeeName;
//wk = contract.WorkshopName;
Console.WriteLine(
$"{res.IsSuccedded} [archiveCode: {contract.ArchiveCode}] personel code : {contract.PersonnelCode}");
Thread.Sleep(200);
}
}
return new JsonResult(new
{
success = true
});
}
#endregion
#region CodeChange
public IActionResult OnPostCheck(ExtensionViewModel command)
{
var a = command.ConvertYear;
var b = command.ConvertMonth;
var op = new OperationResult();
if (command.ContractsId == null)
{
op = op.Failed("هیچ قراردادی برای تمدید انتخاب نشده است");
return new JsonResult(op);
}
op = op.Succcedded();
return new JsonResult(op);
}
public IActionResult OnGetLoadContracts(long workshopId, long employeeId)
{
var contractListResult = new List<ContractViweModel>();
var LeftWorkSerchModel = new LeftWorkSearchModel
{
WorkshopId = workshopId,
EmployeeId = employeeId
};
var LeftWorkList = _leftWorkApplication.search(LeftWorkSerchModel);
var newContractList = new List<ContractViweModel>();
if (LeftWorkList.Count > 0)
{
var personelList = LeftWorkList.GroupBy(x => x.EmployeeId).Select(x => x.First()).ToList();
contractListResult = personelList.Select(x => new ContractViweModel
{
EmployeeName = x.EmployeeFullName,
WorkshopIds = x.WorkshopId,
EmployeeId = x.EmployeeId,
LaterThanEnd = true,
Extension = true,
RedColor = false
}).ToList();
foreach (var item in contractListResult)
{
long pCode = 0;
var search = new PersonnelCodeSearchModel
{
WorkshopId = item.WorkshopIds,
EmployeeId = item.EmployeeId
};
var pesronelcodelList = _personnelCodeApplication.Search(search);
if (pesronelcodelList.Count > 0)
{
PersonnelCodeViewModel first = null;
foreach (var model in pesronelcodelList)
{
first = model;
break;
}
if (first != null) pCode = first.PersonnelCode;
}
item.PersonnelCode = pCode;
newContractList.Add(item);
}
}
newContractList = newContractList.OrderBy(x => x.PersonnelCode).ToList();
var command2 = new CreateCheckout
{
Contracts = newContractList
};
return Partial("alert", command2);
}
public IActionResult OnGetChangeCode()
{
listArray = new List<string>();
var command = new CreateCheckout
{
WorkshopNameSelectList =
new SelectList(_workShopApplication.GetWorkshopAccount(), "Id", "WorkshopFullName"),
WorkshopCodeSelectList = new SelectList(_workShopApplication.GetWorkshopAccount(), "Id", "ArchiveCode")
};
return Partial("./ChangeCode", command);
}
public IActionResult GetProgress()
{
string progress = HttpContext.Response.Headers["X-Progress"];
if (string.IsNullOrEmpty(progress)) return new JsonResult(300);
return new JsonResult(int.Parse(progress));
}
public async Task<IActionResult> OnPostChangeCode(CreateCheckout command, CancellationToken cancellationToken)
{
var count = command.Contracts.Count;
if (count > 0)
{
IProgress<int> progress = new Progress<int>(value =>
{
// report progress to client
Response.Headers.Add($"X-Progress-{Guid.NewGuid()}", value.ToString());
});
for (var i = 0; i <= count - 1; i++)
if (command.Contracts[i].PersonnelCode > 0)
{
var search = new PersonnelCodeSearchModel
{
WorkshopId = command.WorkshopId,
EmployeeId = command.Contracts[i].EmployeeId
};
var contractSerachModel = new ContractSearchModel
{
EmployeeId = command.Contracts[i].EmployeeId,
WorkshopIds = command.WorkshopId
};
var chekoutSerachModel = new CheckoutSearchModel
{
EmployeeId = command.Contracts[i].EmployeeId,
WorkshopId = command.WorkshopId
};
var pesronelcodelList = _personnelCodeApplication.Search(search);
var contractSerachResult = _contractApplication.Search(contractSerachModel);
var chekoutSerchResult =
await _checkoutApplication.Search(chekoutSerachModel).ConfigureAwait(false);
if (pesronelcodelList.Count > 0)
{
foreach (var person in pesronelcodelList)
{
var getPeronel = _personnelCodeApplication.GetDetails(person.Id);
if (getPeronel != null)
{
var edit = new EditPersonnelCode
{
Id = getPeronel.Id,
PersonnelCode = command.Contracts[i].PersonnelCode
};
_personnelCodeApplication.Edit(edit);
}
progress.Report((i + 1) * 33 / count + 33);
}
}
else
{
var createCommand = new CreatePersonnelCode
{
WorkshopId = command.WorkshopId,
EmployeeId = command.Contracts[i].EmployeeId,
PersonnelCode = command.Contracts[i].PersonnelCode
};
_personnelCodeApplication.Create(createCommand);
}
if (contractSerachResult.Count > 0)
foreach (var contract in contractSerachResult)
{
var getContract = _contractRepository.Get(contract.Id);
getContract.EditPersonnelCode(command.Contracts[i].PersonnelCode, contract.ContractStartGr,
contract.ArchiveCode);
_contractRepository.SaveChanges();
progress.Report((i + 1) * 33 / count + 33); // report progress to client
}
if (chekoutSerchResult.Count > 0)
foreach (var checkout in chekoutSerchResult)
{
var getCeckout = _checkoutRepository.Get(checkout.Id);
getCeckout.EditPersonnelCode(command.Contracts[i].PersonnelCode, checkout.ContractStartGr,
checkout.ArchiveCode);
_contractRepository.SaveChanges();
progress.Report((i + 1) * 33 / count + 33); // report progress to client
}
}
}
var opration = new OperationResult
{
IsSuccedded = true,
Message = "عملیات با موفقیت انجام شد"
};
return new JsonResult(opration);
}
#endregion
#region LeftWorkInsurance
public PartialViewResult OnPostGetLeftWorkInsurance(long employeeId, string employeeName)
{
var search = new LeftWorkInsuranceSearchModel
{
EmployeeId = employeeId
};
//var employee = _employeeApplication.GetDetails(employeeId);
var serachResult = _leftWorkInsuranceApplication.search(search);
var ListGroup = new List<LeftWorkInsuranceGroup>();
if (serachResult.Count > 0)
{
var result = serachResult.GroupBy(c => c.WorkshopId)
.Select(c => c.First())
.ToList();
foreach (var item in result)
{
#region personelcode
var personelSearchModel = new PersonnelCodeSearchModel();
personelSearchModel.EmployeeId = item.EmployeeId;
personelSearchModel.WorkshopId = item.WorkshopId;
var personelcode = _personnelCodeApplication.GetPersonnelCodeViewModel(personelSearchModel);
#endregion
var isActive = 0;
var leftWorkInsuranceViewModels = serachResult.Where(x => x.WorkshopId == item.WorkshopId)
.OrderByDescending(x => x.StartWorkDateGr).ToList();
var activeCount = leftWorkInsuranceViewModels.Where(p => p.IsActiveWorkshop).Count();
if (activeCount > 0) isActive = 1;
var group = new LeftWorkInsuranceGroup
{
WorkshopId = item.WorkshopId,
WorkshopName = item.WorkshopName,
LeftworkInsuranceViewModels = leftWorkInsuranceViewModels,
IsActiveWorkshop = isActive,
PersonnelCode = personelcode.PersonnelCode,
HasPersonelCode = personelcode.HasPersonelCode,
JobId = item.JobId,
IncludeStatus = item.IncludeStatus,
JobList = _jobApplication.GetJobListByWorkshopId(item.WorkshopId)
};
ListGroup.Add(group);
}
}
ListGroup = ListGroup.OrderByDescending(p => p.IsActiveWorkshop).ThenBy(p => p.WorkshopName).ToList();
var command = new LeftworkInsuranceDividedList
{
EmployeeId = employeeId,
Workshops = new SelectList(_workShopApplication.GetWorkshopAll(), "Id", "WorkshopFullName"),
LeftWorkInsuranceGroups = ListGroup,
EmployeeName = employeeName //employee.EmployeeFullName
};
return Partial("./LeftWorkInsurance", command);
}
public IActionResult OnGetCreateLeftWorkInsurance(long employeeId, string employeeName)
{
var permissionIds = _authHelper.GetPermissions();
var search = new LeftWorkInsuranceSearchModel
{
EmployeeId = employeeId
};
var employee = _employeeApplication.GetDetails(employeeId);
var serachResult = _leftWorkInsuranceApplication.search(search);
var ListGroup = new List<LeftWorkInsuranceGroup>();
if (serachResult.Count > 0)
{
var result = serachResult.GroupBy(c => c.WorkshopId)
.Select(c => c.First())
.ToList();
foreach (var item in result)
{
#region personelcode
var personelSearchModel = new PersonnelCodeSearchModel();
personelSearchModel.EmployeeId = item.EmployeeId;
personelSearchModel.WorkshopId = item.WorkshopId;
var personelcode = _personnelCodeApplication.GetPersonnelCodeViewModel(personelSearchModel);
#endregion
var isActive = 0;
var leftWorkInsuranceViewModels = serachResult.Where(x => x.WorkshopId == item.WorkshopId)
.OrderByDescending(x => x.StartWorkDateGr).ToList();
var activeCount = leftWorkInsuranceViewModels.Where(p => p.IsActiveWorkshop).Count();
if (activeCount > 0) isActive = 1;
var group = new LeftWorkInsuranceGroup
{
WorkshopId = item.WorkshopId,
WorkshopName = item.WorkshopName,
LeftworkInsuranceViewModels = leftWorkInsuranceViewModels,
IsActiveWorkshop = isActive,
PersonnelCode = personelcode.PersonnelCode,
HasPersonelCode = personelcode.HasPersonelCode,
JobId = item.JobId,
IncludeStatus = item.IncludeStatus,
JobList = _jobApplication.GetJobListByWorkshopId(item.WorkshopId)
};
ListGroup.Add(group);
}
}
ListGroup = ListGroup.OrderByDescending(p => p.IsActiveWorkshop).ThenBy(p => p.WorkshopName).ToList();
var command = new LeftworkInsuranceDividedList
{
EmployeeId = employeeId,
Workshops = new SelectList(_workShopApplication.GetWorkshopAll(), "Id", "WorkshopFullName"),
LeftWorkInsuranceGroups = ListGroup,
EmployeeName = employee.EmployeeFullName,
PermissionIds = permissionIds
};
return Partial("./LeftWorkInsurance", command);
}
public IActionResult OnPostCreateLeftWorkInsurance(LeftworkInsuranceDividedList command)
{
var message = string.Empty;
var endResult = new OperationResult();
endResult.IsSuccedded = true;
var results = new List<OperationResult>();
if ((!command.IsDelete && command.LeftWorkInsuranceGroups == null) ||
(command.LeftWorkInsuranceGroups != null && command.LeftWorkInsuranceGroups.Count == 0))
return new JsonResult(new
{ endResult = endResult.Failed("پر کردن اطلاعات شرکت ضروری می باشد"), flag = "ok" });
if (endResult.IsSuccedded && command.PersonnelCode != null && command.PersonnelCode.Count > 0)
{
var personelcode = command.PersonnelCode.Where(x => x.HasPersonelCode == false && x.PersonnelCode == 0)
.FirstOrDefault();
if (personelcode != null)
return new JsonResult(new
{
endResult = endResult.Failed("شماره پرسنلی در کارگاه " + personelcode.WorkShopName +
" نامعتبر است. "),
flag = "ok"
});
}
if (endResult.IsSuccedded && command.LeftWorkInsuranceGroups != null &&
command.LeftWorkInsuranceGroups.Count > 0)
// int index = 0;
foreach (var item in command.LeftWorkInsuranceGroups)
if (item.LeftworkInsuranceViewModels != null && item.LeftworkInsuranceViewModels.Count > 0)
{
var leftworkInsurance = item.LeftworkInsuranceViewModels.Where(x => x.JobId == 0).FirstOrDefault();
if (leftworkInsurance != null)
return new JsonResult(new
{
endResult = endResult.Failed("سمت پرسنل در کارگاه " + leftworkInsurance.WorkshopName +
" انتخاب نشده است. "),
flag = "ok"
});
}
else if (!command.IsDelete)
{
return new JsonResult(new
{
endResult = endResult.Failed("پرکردن اطلاعات کارگاه " + item.WorkshopName +
" ضروری می باشد، در غیر اینصورت کارگاه مورد نظر را حذف نمایید "),
flag = "ok"
});
}
//if (endResult.IsSuccedded == true && (!command.IsDelete && command.LeftWorkInsuranceGroups != null && command.LeftWorkInsuranceGroups.Count > 0) || command.IsDelete)
//{
// return new JsonResult(new { endResult = endResult.Succcedded(-1,"ثبت با موفقیت انجام شد"), flag = "ok" });
//}
if ((endResult.IsSuccedded && !command.IsDelete && command.LeftWorkInsuranceGroups != null &&
command.LeftWorkInsuranceGroups.Count > 0) || command.IsDelete)
{
var employeeFullName = _employeeApplication.GetDetails(command.EmployeeId).EmployeeFullName;
if (command.LeftWorkInsuranceGroups != null)
endResult = _leftWorkInsuranceApplication.CreateLeftworkInsuranceByLeftworkGroups(employeeFullName,
command.EmployeeId, command.PersonnelCode, command.LeftWorkInsuranceGroups);
}
return new JsonResult(new { endResult, flag = "ok" });
// return new JsonResult(new { endResult = results, flag = "ok" });
}
public IActionResult OnPostBeforeDate(string date)
{
var persianBefore = "";
var year = Convert.ToInt32(date.Substring(0, 4));
var month = Convert.ToInt32(date.Substring(5, 2));
var day = Convert.ToInt32(date.Substring(8, 2));
var persianDate = new PersianDateTime(year, month, day);
var persianBeforeDate = persianDate.AddDays(-1);
persianBefore = persianBeforeDate.ToString("yyyy/MM/dd");
return new JsonResult(new
{
ResultDate = persianBefore
});
}
public IActionResult OnPostAfterDate(string date)
{
var persianAfter = "";
var year = Convert.ToInt32(date.Substring(0, 4));
var month = Convert.ToInt32(date.Substring(5, 2));
var day = Convert.ToInt32(date.Substring(8, 2));
var persianDate = new PersianDateTime(year, month, day);
var persianAfterDate = persianDate.AddDays(1);
persianAfter = persianAfterDate.ToString("yyyy/MM/dd");
return new JsonResult(new
{
ResultDate = persianAfter
});
}
public JsonResult OnPostDeleteLeftWorkInsuranceWorkshop(long workshopId, long employeeId)
{
var delResult = _leftWorkInsuranceApplication.RemoveAllLeftWorkInsurance(workshopId, employeeId);
return new JsonResult(delResult);
}
#endregion
#region LeftWork
public IActionResult OnGetLeftWork(long employeeId, string employeeName)
{
var permissionIds = _authHelper.GetPermissions();
var search = new LeftWorkSearchModel
{
EmployeeId = employeeId
};
var employee = _employeeApplication.GetDetails(employeeId);
var serachResult = _leftWorkApplication.SearchLeftWork(search);
var ListGroup = new List<LeftWorkGroup>();
if (serachResult.Count > 0)
{
var result = serachResult.GroupBy(c => c.WorkshopId)
.Select(c => c.First())
.ToList();
foreach (var item in result)
{
#region personelcode
var personelSearchModel = new PersonnelCodeSearchModel();
personelSearchModel.EmployeeId = item.EmployeeId;
personelSearchModel.WorkshopId = item.WorkshopId;
var personelcode = _personnelCodeApplication.GetPersonnelCodeViewModel(personelSearchModel);
#endregion
var isActive = 0;
var leftWorkViewModels = serachResult.Where(x => x.WorkshopId == item.WorkshopId)
.OrderByDescending(x => x.StartWorkDateGr).ToList();
var activeCount = leftWorkViewModels.Where(p => p.IsActiveWorkshop).Count();
if (activeCount > 0) isActive = 1;
var group = new LeftWorkGroup
{
WorkshopId = item.WorkshopId,
WorkshopName = item.WorkshopName,
LeftWorkViewModels = leftWorkViewModels,
IsActiveWorkshop = isActive,
PersonnelCode = personelcode.PersonnelCode,
HasPersonelCode = personelcode.HasPersonelCode,
JobId = item.JobId,
IncludeStatus = item.IncludeStatus
};
ListGroup.Add(group);
}
}
ListGroup = ListGroup.OrderByDescending(p => p.IsActiveWorkshop).ThenBy(p => p.WorkshopName).ToList();
var command = new LeftWorkDividedList
{
EmployeeId = employeeId,
Workshops = new SelectList(_workShopApplication.GetWorkshopAll(), "Id", "WorkshopFullName"),
LeftWorkGroups = ListGroup,
EmployeeName = employee.EmployeeFullName,
PermissionIds = permissionIds
};
var leftWorks = _leftWorkTempApplication.GetLeftWorkTempsByEmployeeId(employeeId).GetAwaiter().GetResult();
if (leftWorks.Any(x => x.LeftWorkType == LeftWorkTempType.LeftWork))
{
var resultError = new ErrorViewModel()
{
Message = "این پرسنل دارای یک درخواست ترک کار میباشد لطفا اول آن را در کارپوشه خود تعیین تکلیف نمایید",
};
return Partial("../Error/_ErrorModal", resultError);
}
//var clientTemps = _employeeClientTempApplication.GetByEmployeeId(employeeId).GetAwaiter().GetResult();
if (leftWorks.Any(x => x.LeftWorkType == LeftWorkTempType.StartWork) /*|| clientTemps.Any()*/)
{
var resultError = new ErrorViewModel()
{
Message = "این پرسنل دارای یک درخواست شروع به کار میباشد لطفا اول آن را در کارپوشه خود تعیین تکلیف نمایید",
};
return Partial("../Error/_ErrorModal", resultError);
}
return Partial("./LeftWork", command);
}
public IActionResult OnPostCreateLeftWork(LeftWorkDividedList command)
{
var message = string.Empty;
var endResult = new OperationResult();
endResult.IsSuccedded = true;
//List<OperationResult> results = new List<OperationResult>();
if ((!command.IsDelete && command.LeftWorkGroups == null) ||
(command.LeftWorkGroups != null && command.LeftWorkGroups.Count == 0))
return new JsonResult(new
{ endResult = endResult.Failed("پر کردن اطلاعات شرکت ضروری می باشد"), flag = "ok" });
if (endResult.IsSuccedded && command.PersonnelCode != null && command.PersonnelCode.Count > 0)
{
var personelcode = command.PersonnelCode.Where(x => x.HasPersonelCode == false && x.PersonnelCode == 0)
.FirstOrDefault();
if (personelcode != null)
return new JsonResult(new
{
endResult = endResult.Failed("شماره پرسنلی در کارگاه " + personelcode.WorkShopName +
" نامعتبر است. "),
flag = "ok"
});
}
if (endResult.IsSuccedded && command.LeftWorkGroups != null && command.LeftWorkGroups.Count > 0)
// int index = 0;
foreach (var item in command.LeftWorkGroups)
if (item.LeftWorkViewModels != null && item.LeftWorkViewModels.Count > 0)
{
var LeftWork = item.LeftWorkViewModels.Where(x => x.JobId == 0).FirstOrDefault();
if (LeftWork != null)
return new JsonResult(new
{
endResult = endResult.Failed("سمت پرسنل در کارگاه " + LeftWork.WorkshopName +
" انتخاب نشده است. "),
flag = "ok"
});
}
else if (!command.IsDelete)
{
return new JsonResult(new
{
endResult = endResult.Failed("پرکردن اطلاعات کارگاه " + item.WorkshopName +
" ضروری می باشد، در غیر اینصورت کارگاه مورد نظر را حذف نمایید "),
flag = "ok"
});
}
if ((endResult.IsSuccedded && !command.IsDelete && command.LeftWorkGroups != null &&
command.LeftWorkGroups.Count > 0) || command.IsDelete)
{
var employeeFullName = _employeeApplication.GetDetails(command.EmployeeId).EmployeeFullName;
if (command.LeftWorkGroups != null)
endResult = _leftWorkApplication.CreateLeftWorkByLeftWorkGroups(employeeFullName, command.EmployeeId,
command.PersonnelCode, command.LeftWorkGroups);
}
if (command.IsDelete && command.LeftWorkGroups == null)
return new JsonResult(new { endResult = "ثبت با موفقیت انجام شد", flag = "ok" });
return new JsonResult(new { endResult, flag = "ok" });
}
public JsonResult OnPostDeleteLeftWorkWorkshop(long workshopId, long employeeId)
{
var delResult = _leftWorkApplication.RemoveAllLeftWork(workshopId, employeeId);
return new JsonResult(delResult);
}
#endregion
#region New by heydari
public IActionResult OnGetWorkshopName(string searchText)
{
var result = _workShopApplication.GetWorkshopByTextSearch(searchText);
result = result.OrderBy(x => x.WorkshopFullName.Length).ToList();
return new JsonResult(new
{
IsSuccedded = true,
mylist = result
});
}
public IActionResult OnGetEmployerName(string searchText)
{
var result = _employerApplication.GetEmployerWithFNameOrLName(searchText);
result = result.OrderBy(x => x.LName.Length).ToList();
return new JsonResult(new
{
IsSuccedded = true,
mylist = result
});
}
#endregion
public async Task<IActionResult> OnPostEmployeeDataFromApi(string nationalCode, string birthDate)
{
var result = await _employeeApplication.GetEmployeeDataFromApi(nationalCode, birthDate);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
data = result.Data
});
}
}