chekcoutRepository GetContractResultToCreateCheckout changes NOT FINISHED
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.RollCallEmployee;
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
||||||
|
|
||||||
@@ -6,6 +7,7 @@ namespace Company.Domain.RollCallEmployeeAgg;
|
|||||||
|
|
||||||
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
|
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
|
||||||
{
|
{
|
||||||
|
bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
|
||||||
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
|
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
|
||||||
EditRollCallEmployee GetDetails(long id);
|
EditRollCallEmployee GetDetails(long id);
|
||||||
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
|
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ public class CreateCheckoutListViewModel
|
|||||||
|
|
||||||
public long PersonnelCode { get; set; }
|
public long PersonnelCode { get; set; }
|
||||||
|
|
||||||
|
public long EmployeeId { get; set; }
|
||||||
|
|
||||||
public string ContractNo { get; set; }
|
public string ContractNo { get; set; }
|
||||||
|
|
||||||
public string EmployerName { get; set; }
|
public string EmployerName { get; set; }
|
||||||
|
|||||||
@@ -89,60 +89,9 @@ namespace CompanyManagment.Application
|
|||||||
}
|
}
|
||||||
|
|
||||||
public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
|
public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
|
||||||
{
|
{
|
||||||
//موقت
|
return _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd);
|
||||||
// دادمهرگستر 11 *
|
}
|
||||||
//585 کاشی گالری سرامیس (بابک ابراهیمی )
|
|
||||||
//آموزشگاه ملل 604 *
|
|
||||||
//کاریابی ملل 605 *
|
|
||||||
//368 پیتزا امیر آماده سازی
|
|
||||||
//367 پیتزا امیر رستوران
|
|
||||||
//286 مرکز توان بخشی رسالت *
|
|
||||||
//610 بیمارستان پارس - رازقی طعام
|
|
||||||
DateTime start1404 = new DateTime(2025, 03, 21);
|
|
||||||
bool skipRollCallByWorkshopId = false;
|
|
||||||
if (contractStart < start1404)
|
|
||||||
{
|
|
||||||
skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
skipRollCallByWorkshopId = workshopId is 368 or 367 or 585 or 610;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#if DEBUG
|
|
||||||
// skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367;
|
|
||||||
//#endif
|
|
||||||
if (skipRollCallByWorkshopId)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
// 42550 مصطفی مقدس نژاد فومنی
|
|
||||||
bool skipRollCallByEmployeeId = employeeId is 42550;
|
|
||||||
if (skipRollCallByEmployeeId)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
//9211 محسا تازه
|
|
||||||
if (employeeId == 9211 && contractStart >= start1404)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId);
|
|
||||||
|
|
||||||
if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date))
|
|
||||||
return false;
|
|
||||||
var rollCallEmployee =
|
|
||||||
_rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
|
|
||||||
|
|
||||||
if (rollCallEmployee == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id &&
|
|
||||||
x.StartDate.Date <= contractStart.Date &&
|
|
||||||
x.EndDate.Date >= contractEnd.Date);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<RollCallEmployeeStatusViewModel> GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr)
|
public List<RollCallEmployeeStatusViewModel> GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,16 +3,19 @@ using System.Collections.Generic;
|
|||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection.Metadata.Ecma335;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
using _0_Framework.InfraStructure;
|
using _0_Framework.InfraStructure;
|
||||||
using Company.Domain.CheckoutAgg;
|
using Company.Domain.CheckoutAgg;
|
||||||
using Company.Domain.LeftWorkAgg;
|
using Company.Domain.LeftWorkAgg;
|
||||||
using Company.Domain.RollCallAgg;
|
using Company.Domain.RollCallAgg;
|
||||||
|
using Company.Domain.RollCallEmployeeAgg;
|
||||||
using CompanyManagment.App.Contracts.Checkout;
|
using CompanyManagment.App.Contracts.Checkout;
|
||||||
using CompanyManagment.App.Contracts.Contract;
|
using CompanyManagment.App.Contracts.Contract;
|
||||||
using CompanyManagment.App.Contracts.Employee;
|
using CompanyManagment.App.Contracts.Employee;
|
||||||
using CompanyManagment.App.Contracts.HolidayItem;
|
using CompanyManagment.App.Contracts.HolidayItem;
|
||||||
|
using CompanyManagment.App.Contracts.InsuranceList;
|
||||||
using CompanyManagment.App.Contracts.Leave;
|
using CompanyManagment.App.Contracts.Leave;
|
||||||
using CompanyManagment.App.Contracts.LeftWork;
|
using CompanyManagment.App.Contracts.LeftWork;
|
||||||
using CompanyManagment.App.Contracts.Loan;
|
using CompanyManagment.App.Contracts.Loan;
|
||||||
@@ -21,6 +24,7 @@ using CompanyManagment.App.Contracts.SalaryAid;
|
|||||||
using CompanyManagment.App.Contracts.WorkingHours;
|
using CompanyManagment.App.Contracts.WorkingHours;
|
||||||
using CompanyManagment.App.Contracts.WorkingHoursTemp;
|
using CompanyManagment.App.Contracts.WorkingHoursTemp;
|
||||||
using CompanyManagment.App.Contracts.Workshop;
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
|
using CompanyManagment.EFCore.Migrations;
|
||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
@@ -41,8 +45,9 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
private readonly ILeftWorkRepository _leftWorkRepository;
|
private readonly ILeftWorkRepository _leftWorkRepository;
|
||||||
private readonly IRollCallRepository _rollCallRepository;
|
private readonly IRollCallRepository _rollCallRepository;
|
||||||
private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository;
|
private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository;
|
||||||
|
private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository;
|
||||||
|
|
||||||
public CheckoutRepository(IAuthHelper authHelper, CompanyContext context, IConfiguration configuration, ILeftWorkRepository leftWorkRepository, IWorkingHoursTempApplication workingHoursTempApplication, IRollCallRepository rollCallRepository, IRollCallMandatoryRepository rollCallMandatoryRepository) : base(context)
|
public CheckoutRepository(IAuthHelper authHelper, CompanyContext context, IConfiguration configuration, ILeftWorkRepository leftWorkRepository, IWorkingHoursTempApplication workingHoursTempApplication, IRollCallRepository rollCallRepository, IRollCallMandatoryRepository rollCallMandatoryRepository, IRollCallEmployeeRepository rollCallEmployeeRepository) : base(context)
|
||||||
{
|
{
|
||||||
|
|
||||||
_authHelper = authHelper;
|
_authHelper = authHelper;
|
||||||
@@ -52,6 +57,7 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
_workingHoursTempApplication = workingHoursTempApplication;
|
_workingHoursTempApplication = workingHoursTempApplication;
|
||||||
_rollCallRepository = rollCallRepository;
|
_rollCallRepository = rollCallRepository;
|
||||||
_rollCallMandatoryRepository = rollCallMandatoryRepository;
|
_rollCallMandatoryRepository = rollCallMandatoryRepository;
|
||||||
|
_rollCallEmployeeRepository = rollCallEmployeeRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -134,7 +140,7 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
/// <param name="contractEnd"></param>
|
/// <param name="contractEnd"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
/// <exception cref="NotImplementedException"></exception>
|
/// <exception cref="NotImplementedException"></exception>
|
||||||
public Task<CreateCheckoutListViewModel> GetContractResultToCreateCheckout(long workshopId,long employeeId, string year, string month, string contractStart,
|
public Task<CreateCheckoutListViewModel> GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart,
|
||||||
string contractEnd)
|
string contractEnd)
|
||||||
{
|
{
|
||||||
DateTime startSreach;
|
DateTime startSreach;
|
||||||
@@ -147,17 +153,28 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
if (month == "0" && year == "0")
|
if (month == "0" && year == "0")
|
||||||
{
|
{
|
||||||
DateTime now = DateTime.Now;
|
DateTime now = DateTime.Now;
|
||||||
startSreach = now;
|
startSreach = now;
|
||||||
endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime();
|
endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime();
|
||||||
} else if (month == "0" && year != "0")
|
}
|
||||||
|
else if (month == "0" && year != "0")
|
||||||
{
|
{
|
||||||
DateTime now = DateTime.Now;
|
DateTime now = DateTime.Now;
|
||||||
startSreach = now;
|
|
||||||
endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime();
|
string startStr = $"{year}/{now.ToFarsi().Substring(5, 2)}/01";
|
||||||
|
startSreach = startStr.ToGeorgianDateTime();
|
||||||
|
endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime();
|
||||||
|
}
|
||||||
|
else if (month != "0" && year == "0")
|
||||||
|
{
|
||||||
|
DateTime now = DateTime.Now;
|
||||||
|
|
||||||
|
string startStr = $"{now.ToFarsi().Substring(0, 4)}/{month}/01";
|
||||||
|
startSreach = startStr.ToGeorgianDateTime();
|
||||||
|
endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -165,10 +182,99 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
startSreach = startStr.ToGeorgianDateTime();
|
startSreach = startStr.ToGeorgianDateTime();
|
||||||
endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime();
|
endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var contracts = _context.Contracts
|
var contracts = _context.Contracts
|
||||||
.Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd && endSearch > x.ContarctStart);
|
.Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd &&
|
||||||
|
endSearch > x.ContarctStart)
|
||||||
|
.Join(_context.Workshops,
|
||||||
|
contract => contract.WorkshopIds,
|
||||||
|
workshop => workshop.id,
|
||||||
|
(contract, workshop) => new { contract, workshop })
|
||||||
|
.Join(_context.Employees,
|
||||||
|
contractWorkshop => contractWorkshop.contract.EmployeeId,
|
||||||
|
employee => employee.id,
|
||||||
|
(contractWorkshop, employee) => new { contractWorkshop, employee })
|
||||||
|
.Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId),
|
||||||
|
contractWorkshopEmployee => contractWorkshopEmployee.contractWorkshop.contract.EmployeeId,
|
||||||
|
leftwork => leftwork.EmployeeId,
|
||||||
|
(contractWorkshopEmployee, leftwork) => new { contractWorkshopEmployee, leftwork })
|
||||||
|
.Join(_context.PersonnelCodeSet.Where(p => p.WorkshopId == workshopId),
|
||||||
|
contractWorkshopEmployeeleftWork => contractWorkshopEmployeeleftWork.contractWorkshopEmployee
|
||||||
|
.contractWorkshop.contract.EmployerId,
|
||||||
|
personnelCode => personnelCode.EmployeeId,
|
||||||
|
(contractWorkshopEmployeeleftWork, personnelCode) =>
|
||||||
|
new { contractWorkshopEmployeeleftWork, personnelCode })
|
||||||
|
|
||||||
|
.GroupJoin(_context.CheckoutSet,
|
||||||
|
contractWorkshopEmployeeleftWorkPersonnelCode => contractWorkshopEmployeeleftWorkPersonnelCode
|
||||||
|
.contractWorkshopEmployeeleftWork.contractWorkshopEmployee.contractWorkshop.contract.id,
|
||||||
|
checkout => checkout.ContractId,
|
||||||
|
(contractWorkshopEmployeeleftWorkPersonnelCode, checkout) =>
|
||||||
|
new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout }).ToList();
|
||||||
|
|
||||||
|
var finalResult = contracts.Select(result =>
|
||||||
|
{
|
||||||
|
var hasChekout = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true");
|
||||||
|
|
||||||
|
if (hasChekout != null)
|
||||||
|
{
|
||||||
|
var checkout
|
||||||
|
return new CreateCheckoutListViewModel
|
||||||
|
{
|
||||||
|
Id = result.checkout.,
|
||||||
|
|
||||||
|
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),
|
||||||
|
LaterThanEnd = false,
|
||||||
|
Extension = false,
|
||||||
|
Description = "",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var employeeIjoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||||
|
.contractWorkshopEmployee.employee.id;
|
||||||
|
|
||||||
|
bool hasRollCall =
|
||||||
|
_rollCallEmployeeRepository.HasRollCallRecord(employeeIjoin, workshopId, startSreach, endSearch);
|
||||||
|
|
||||||
|
var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||||
|
.leftwork;
|
||||||
|
|
||||||
|
return new CreateCheckoutListViewModel
|
||||||
|
{
|
||||||
|
Id = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
|
||||||
|
.contractWorkshopEmployee.contractWorkshop.contract.id,
|
||||||
|
|
||||||
|
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),
|
||||||
|
LaterThanEnd = false,
|
||||||
|
Extension = false,
|
||||||
|
Description = "",
|
||||||
|
};
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
if (employeeId > 0)
|
if (employeeId > 0)
|
||||||
contracts = contracts.Where(x => x.EmployeeId == employeeId);
|
contracts = contracts.Where(x => x.EmployeeId == employeeId);
|
||||||
|
|
||||||
@@ -1209,13 +1315,13 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
|||||||
firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate;
|
firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate;
|
||||||
if (secondRollCall != null)
|
if (secondRollCall != null)
|
||||||
secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate;
|
secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return new CheckoutDailyRollCallViewModel()
|
return new CheckoutDailyRollCallViewModel()
|
||||||
{
|
{
|
||||||
StartDate1 = firstRollCall?.StartDate?.ToString("HH:mm") ?? "",
|
StartDate1 = firstRollCall?.StartDate?.ToString("HH:mm") ?? "",
|
||||||
EndDate1 =firstRCEndDate?.ToString("HH:mm") ?? "",
|
EndDate1 = firstRCEndDate?.ToString("HH:mm") ?? "",
|
||||||
|
|
||||||
StartDate2 = secondRollCall?.StartDate?.ToString("HH:mm") ?? "",
|
StartDate2 = secondRollCall?.StartDate?.ToString("HH:mm") ?? "",
|
||||||
EndDate2 = secondRCEndDate?.ToString("HH:mm") ?? "",
|
EndDate2 = secondRCEndDate?.ToString("HH:mm") ?? "",
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ using System.Linq;
|
|||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
using _0_Framework.InfraStructure;
|
using _0_Framework.InfraStructure;
|
||||||
using Company.Domain.RollCallEmployeeAgg;
|
using Company.Domain.RollCallEmployeeAgg;
|
||||||
|
using Company.Domain.RollCallEmployeeStatusAgg;
|
||||||
|
using Company.Domain.RollCallServiceAgg;
|
||||||
using CompanyManagment.App.Contracts.LeftWorkTemp;
|
using CompanyManagment.App.Contracts.LeftWorkTemp;
|
||||||
using CompanyManagment.App.Contracts.RollCallEmployee;
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
||||||
using CompanyManagment.App.Contracts.RollCallEmployeeStatus;
|
using CompanyManagment.App.Contracts.RollCallEmployeeStatus;
|
||||||
@@ -20,16 +22,77 @@ public class RollCallEmployeeRepository : RepositoryBase<long, RollCallEmployee>
|
|||||||
private readonly CompanyContext _context;
|
private readonly CompanyContext _context;
|
||||||
private readonly IPasswordHasher _passwordHasher;
|
private readonly IPasswordHasher _passwordHasher;
|
||||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||||
|
|
||||||
|
private IRollCallServiceRepository _rollCallServiceRepository;
|
||||||
|
|
||||||
|
private IRollCallEmployeeStatusRepository _employeeRollCallStatusRepository;
|
||||||
// private IRollCallEmployeeRepository _rollCallEmployeeRepositoryImplementation;
|
// private IRollCallEmployeeRepository _rollCallEmployeeRepositoryImplementation;
|
||||||
|
|
||||||
public RollCallEmployeeRepository(CompanyContext context, IPasswordHasher passwordHasher,
|
public RollCallEmployeeRepository(CompanyContext context, IPasswordHasher passwordHasher,
|
||||||
IWebHostEnvironment webHostEnvironment) : base(context)
|
IWebHostEnvironment webHostEnvironment, IRollCallServiceRepository rollCallServiceRepository, IRollCallEmployeeStatusRepository employeeRollCallStatusRepository) : base(context)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
_passwordHasher = passwordHasher;
|
_passwordHasher = passwordHasher;
|
||||||
_webHostEnvironment = webHostEnvironment;
|
_webHostEnvironment = webHostEnvironment;
|
||||||
|
_rollCallServiceRepository = rollCallServiceRepository;
|
||||||
|
_employeeRollCallStatusRepository = employeeRollCallStatusRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
|
||||||
|
{
|
||||||
|
//موقت
|
||||||
|
// دادمهرگستر 11 *
|
||||||
|
//585 کاشی گالری سرامیس (بابک ابراهیمی )
|
||||||
|
//آموزشگاه ملل 604 *
|
||||||
|
//کاریابی ملل 605 *
|
||||||
|
//368 پیتزا امیر آماده سازی
|
||||||
|
//367 پیتزا امیر رستوران
|
||||||
|
//286 مرکز توان بخشی رسالت *
|
||||||
|
//610 بیمارستان پارس - رازقی طعام
|
||||||
|
DateTime start1404 = new DateTime(2025, 03, 21);
|
||||||
|
bool skipRollCallByWorkshopId = false;
|
||||||
|
if (contractStart < start1404)
|
||||||
|
{
|
||||||
|
skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skipRollCallByWorkshopId = workshopId is 368 or 367 or 585 or 610;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//#if DEBUG
|
||||||
|
// skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367;
|
||||||
|
//#endif
|
||||||
|
if (skipRollCallByWorkshopId)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
// 42550 مصطفی مقدس نژاد فومنی
|
||||||
|
bool skipRollCallByEmployeeId = employeeId is 42550;
|
||||||
|
if (skipRollCallByEmployeeId)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//9211 محسا تازه
|
||||||
|
if (employeeId == 9211 && contractStart >= start1404)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId);
|
||||||
|
|
||||||
|
if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date))
|
||||||
|
return false;
|
||||||
|
var rollCallEmployee = GetByEmployeeIdAndWorkshopId(employeeId, workshopId);
|
||||||
|
|
||||||
|
if (rollCallEmployee == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id &&
|
||||||
|
x.StartDate.Date <= contractStart.Date &&
|
||||||
|
x.EndDate.Date >= contractEnd.Date);
|
||||||
|
}
|
||||||
public List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId)
|
public List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId)
|
||||||
{
|
{
|
||||||
var query = _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel()
|
var query = _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel()
|
||||||
|
|||||||
Reference in New Issue
Block a user