change metod
This commit is contained in:
@@ -21,6 +21,8 @@ public class CreateCheckoutListViewModel
|
||||
|
||||
public string ContractEnd { get; set; }
|
||||
|
||||
public string LeftWorkDate { get; set; }
|
||||
|
||||
//public string NextMonthStart { get; set; }
|
||||
|
||||
//public bool RedColor { get; set; }
|
||||
|
||||
@@ -196,7 +196,7 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
contractWorkshop => contractWorkshop.contract.EmployeeId,
|
||||
employee => employee.id,
|
||||
(contractWorkshop, employee) => new { contractWorkshop, employee })
|
||||
.Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId),
|
||||
.Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId && l.StartWorkDate < endSearch && l.LeftWorkDate > startSreach),
|
||||
contractWorkshopEmployee => contractWorkshopEmployee.contractWorkshop.contract.EmployeeId,
|
||||
leftwork => leftwork.EmployeeId,
|
||||
(contractWorkshopEmployee, leftwork) => new { contractWorkshopEmployee, leftwork })
|
||||
@@ -216,41 +216,117 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
|
||||
var finalResult = contracts.Select(result =>
|
||||
{
|
||||
var hasChekout = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true");
|
||||
var now = DateTime.Now;
|
||||
DateTime currentStart = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime();
|
||||
DateTime currentEnd = ($"{DateTime.Now.ToFarsi().FindeEndOfMonth()}").ToGeorgianDateTime();
|
||||
var chekoutCreated = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true");
|
||||
|
||||
if (hasChekout != null)
|
||||
if (chekoutCreated != null)
|
||||
{
|
||||
var checkout
|
||||
|
||||
return new CreateCheckoutListViewModel
|
||||
{
|
||||
Id = result.checkout.,
|
||||
Id = chekoutCreated.ContractId,
|
||||
|
||||
EmployeeId = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.contractWorkshopEmployee.employee.id,
|
||||
ContractNo = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.contractWorkshopEmployee.contractWorkshop.contract.ContractNo,
|
||||
//EmployerName = result.contract.EmployerName,
|
||||
WorkshopName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.contractWorkshopEmployee.contractWorkshop.workshop.WorkshopFullName,
|
||||
EmployeeName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.contractWorkshopEmployee.employee.FullName,
|
||||
|
||||
PersonnelCode = result.contractWorkshopEmployeeleftWorkPersonnelCode.personnelCode.PersonnelCode,
|
||||
//PersonnelCodeInt = Convert.ToInt32(result.contract.PersonnelCode),
|
||||
EmployeeId = chekoutCreated.EmployeeId,
|
||||
ContractNo = chekoutCreated.ContractNo,
|
||||
WorkshopName = chekoutCreated.WorkshopName,
|
||||
EmployeeName = chekoutCreated.EmployeeFullName,
|
||||
ContractStart = chekoutCreated.ContractStart.ToFarsi(),
|
||||
ContractEnd = chekoutCreated.ContractEnd.ToFarsi(),
|
||||
PersonnelCode = Convert.ToInt64(chekoutCreated.PersonnelCode),
|
||||
LaterThanEnd = false,
|
||||
Extension = false,
|
||||
Description = "",
|
||||
Description = "دارای فیش حقوقی",
|
||||
};
|
||||
}
|
||||
var employeeIjoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.contractWorkshopEmployee.employee.id;
|
||||
|
||||
bool hasRollCall =
|
||||
_rollCallEmployeeRepository.HasRollCallRecord(employeeIjoin, workshopId, startSreach, endSearch);
|
||||
_rollCallEmployeeRepository.HasRollCallRecord(employeeJoin, workshopId, startSreach, endSearch);
|
||||
|
||||
var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
.leftwork;
|
||||
|
||||
bool extension = false;
|
||||
bool laterThanEnd = false;
|
||||
string description = "";
|
||||
string leftWorkDate;
|
||||
string contractStart = "";
|
||||
string contractEnd = "";
|
||||
|
||||
//اگر حضورعیاب داشت
|
||||
// اگر ترک کار کرده بود
|
||||
// اگر ترک کارش در بازه انتخاب شده بود
|
||||
if (hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch)
|
||||
{
|
||||
//اگر بازه انتخاب شده در تاریخ جاری بود
|
||||
if (startSreach == currentStart && endSearch == currentEnd)
|
||||
{
|
||||
//اگر ترک کارش قبل یا مساوی تاریخ جاری بود
|
||||
if (leftWork.LeftWorkDate <= now)
|
||||
{
|
||||
//مجاز به ایجاد تصفیه
|
||||
extension = true;
|
||||
leftWorkDate = leftWork.LeftWorkDate.ToFarsi();
|
||||
contractStart = leftWork.StartWorkDate > startSreach
|
||||
? leftWork.StartWorkDate.ToFarsi()
|
||||
: startSreach.ToFarsi();
|
||||
contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// مجاز نیست
|
||||
extension = false;
|
||||
description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید";
|
||||
leftWorkDate = leftWork.LeftWorkDate.ToFarsi();
|
||||
contractStart = leftWork.StartWorkDate > startSreach
|
||||
? leftWork.StartWorkDate.ToFarsi()
|
||||
: startSreach.ToFarsi();
|
||||
contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi();
|
||||
|
||||
}
|
||||
}
|
||||
else if(endSearch < currentStart)
|
||||
{
|
||||
extension = true;
|
||||
leftWorkDate = leftWork.LeftWorkDate.ToFarsi();
|
||||
contractStart = leftWork.StartWorkDate > startSreach
|
||||
? leftWork.StartWorkDate.ToFarsi()
|
||||
: startSreach.ToFarsi();
|
||||
contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi();
|
||||
}
|
||||
else if (startSreach > currentEnd)
|
||||
{
|
||||
// مجاز نیست
|
||||
extension = false;
|
||||
description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید";
|
||||
leftWorkDate = leftWork.LeftWorkDate.ToFarsi();
|
||||
contractStart = leftWork.StartWorkDate > startSreach
|
||||
? leftWork.StartWorkDate.ToFarsi()
|
||||
: startSreach.ToFarsi();
|
||||
contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi();
|
||||
}
|
||||
|
||||
}
|
||||
else if(hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate <= startSreach)
|
||||
{
|
||||
// مجاز نیست
|
||||
extension = false;
|
||||
description = "به دلیل ترک کار پرسنل مجاز به ایجاد فیش نمی باشید";
|
||||
leftWorkDate = leftWork.LeftWorkDate.ToFarsi();
|
||||
|
||||
}
|
||||
else if(hasRollCall && !leftWork.HasLeft && startSreach == currentStart)
|
||||
{
|
||||
// مجاز نیست
|
||||
extension = false;
|
||||
description = "به دلیل داشتن حضورغیاب تا پایان ماه مجاز به ایجاد فیش نمی باشید";
|
||||
|
||||
}
|
||||
|
||||
return new CreateCheckoutListViewModel
|
||||
{
|
||||
Id = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||
|
||||
Reference in New Issue
Block a user