diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs
index db65625e..47de9e95 100644
--- a/0_Framework/Application/Tools.cs
+++ b/0_Framework/Application/Tools.cs
@@ -457,6 +457,18 @@ public static class Tools
return "-";
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
}
+
+ ///
+ /// اگر مبلغ صفر یا نال باشد خط تیره برمیگرداند
+ ///
+ ///
+ ///
+ public static string ToMoneyCheckZeroNullable(this double? myMoney)
+ {
+ if (myMoney == 0 || myMoney == null)
+ return "-";
+ return myMoney?.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
+ }
public static string ToMoneyNullable(this double? myMoney)
{
diff --git a/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs b/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
index a007e448..201d2679 100644
--- a/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
+++ b/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
@@ -63,6 +63,22 @@ public class CheckoutPrintDto
/// آیا کارقرما حقوقی است
///
public bool EmployerIslegal { get; set; }
+
+ ///
+ /// آیا ترک کار کرده
+ ///
+ public bool HasLeft { get; set; }
+
+ ///
+ /// آخرین روز کاری
+ ///
+ public string LastDayOfWork { get; set; }
+
+ ///
+ /// روز ترک کار
+ ///
+ public string LeftWorkDate { get; set; }
+
#endregion
//جدول مطالبات و کسورات
@@ -109,8 +125,8 @@ public class CheckoutPrintDto
#endregion
- //اقساط
- #region LoneAndInstallmentData
+ //اقساط - مساعده
+ #region SalaryAidAndInstallmentData
public List InstallmentViewModels { get; set; }
public List SalaryAidViewModels { get; set; }
@@ -213,7 +229,7 @@ public class PaymentAndDeductionList
///
public class CheckoutEmployersList
{
- public bool IsLegal { get; set; }
+ public string IsLegal { get; set; }
public string EmployerFullName { get; set; }
}
diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
index 637dcf1e..51f6b8c7 100644
--- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
+++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
@@ -78,7 +78,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
public (bool hasChekout, double FamilyAlloance, double OverTimePay, double RotatingShift, double Nightwork, double Fridaywork, double YraesPay) HasCheckout(long workshopId, long employeId, string year, string month)
{
var farisMonthName = Tools.ToFarsiMonthByNumber(month);
-
+
var res = _context.CheckoutSet.FirstOrDefault(x =>
x.WorkshopId == workshopId && x.EmployeeId == employeId && x.Year == year && x.Month == farisMonthName &&
x.IsActiveString == "true");
@@ -87,14 +87,14 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
var checkLeftDate = ($"{year}/{month}/01").ToGeorgianDateTime();
var hasLeftwork = _context.LeftWorkList.Any(x =>
x.EmployeeId == employeId && x.WorkshopId == workshopId && x.LeftWorkDate == checkLeftDate);
- if(hasLeftwork)
+ if (hasLeftwork)
return (true, 0, 0, 0, 0, 0, 0);
return (false, 0, 0, 0, 0, 0, 0);
}
-
- return (true, res.FamilyAllowance, res.OvertimePay, res.ShiftPay, res.NightworkPay, res.FridayPay,res.YearsPay);
+
+ return (true, res.FamilyAllowance, res.OvertimePay, res.ShiftPay, res.NightworkPay, res.FridayPay, res.YearsPay);
}
public EditCheckout GetDetails(long id)
@@ -253,7 +253,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
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 (chekoutCreated != null)
@@ -279,7 +279,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
}
var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
.contractWorkshopEmployee.employee.id;
-
+
var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork
.leftwork;
@@ -537,7 +537,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
entity.SetLoanInstallment(command.LoanInstallments, command.InstallmentDeduction);
entity.SetCheckoutRollCall(command.CheckoutRollCall);
entity.SetEmployeeMandatoryHours(command.EmployeeMandatoryHours);
- if(command.HasInsuranceShareTheSameAsList)
+ if (command.HasInsuranceShareTheSameAsList)
entity.SetInsuranceShare();
await _context.SaveChangesAsync();
@@ -902,108 +902,108 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
foreach (var item in checkouts)
{
var ch = new CheckoutViewModel()
+ {
+ Id = item.id,
+ WorkshopId = item.WorkshopId,
+ ContractId = item.ContractId,
+ EmployeeId = item.EmployeeId,
+ EmployeeFullName = item.EmployeeFullName,
+ FathersName = item.FathersName,
+ NationalCode = item.NationalCode,
+ DateOfBirth = item.DateOfBirth,
+ WorkshopName = item.WorkshopName,
+ Month = item.Month,
+ Year = item.Year,
+ PersonnelCode = item.PersonnelCode,
+ PersonnelCodeInt = Convert.ToInt32(item.PersonnelCode),
+ ContractNo = item.ContractNo,
+ MonthlySalary = item.MonthlySalary.ToMoney(),
+ BaseYearsPay = item.BaseYearsPay.ToMoney(),
+ ConsumableItems = item.ConsumableItems.ToMoney(),
+ HousingAllowance = item.HousingAllowance.ToMoney(),
+ OvertimePay = item.OvertimePay.ToMoney(),
+ NightworkPay = item.NightworkPay.ToMoney(),
+ FridayPay = item.FridayPay.ToMoney(),
+ MissionPay = item.MissionPay.ToMoney(),
+ ShiftPay = item.ShiftPay.ToMoney(),
+ FamilyAllowance = item.FamilyAllowance.ToMoney(),
+ BonusesPay = item.BonusesPay.ToMoney(),
+ YearsPay = item.YearsPay.ToMoney(),
+ LeavePay = item.LeavePay.ToMoney(),
+ InsuranceDeduction = item.InsuranceDeduction.ToMoney(),
+ TaxDeducation = item.TaxDeducation.ToMoney(),
+ InstallmentDeduction = item.InstallmentDeduction.ToMoney(),
+ SalaryAidDeduction = item.SalaryAidDeduction.ToMoney(),
+ AbsenceDeduction = item.AbsenceDeduction.ToMoney(),
+ TotalClaims = item.TotalClaims,
+ TotalDeductions = item.TotalDeductions,
+ TotalPayment = item.TotalPayment.ToMoney(),
+ RewardPay = item.RewardPay.ToMoneyNullable(),
+ ContractStartGr = item.ContractStart,
+ ContractEndGr = item.ContractEnd,
+ IsLeft = false,
+ LeftWorkDate = "",
+ LastDayOfWork = "",
+ MarriedAllowance = item.MarriedAllowance.ToMoney(),
+ HasRollCall = item.HasRollCall,
+ SumOfWorkingDays = "-",
+ OverTimeWorkValue = item.OverTimeWorkValue,
+ OverNightWorkValue = item.OverNightWorkValue,
+ FridayWorkValue = item.FridayWorkValue,
+ RotatingShiftValue = item.RotatingShiftValue,
+ AbsenceValue = item.AbsenceValue,
+ MaritalStatus = "",
+ TotalDayOfLeaveCompute = "-",
+ TotalDayOfYearsCompute = "-",
+ TotalDayOfBunosesCompute = "-",
+ InstallmentViewModels = item.LoanInstallments.Select(i => new LoanInstallmentViewModel()
{
- Id = item.id,
- WorkshopId = item.WorkshopId,
- ContractId = item.ContractId,
- EmployeeId = item.EmployeeId,
- EmployeeFullName = item.EmployeeFullName,
- FathersName = item.FathersName,
- NationalCode = item.NationalCode,
- DateOfBirth = item.DateOfBirth,
- WorkshopName = item.WorkshopName,
- Month = item.Month,
- Year = item.Year,
- PersonnelCode = item.PersonnelCode,
- PersonnelCodeInt = Convert.ToInt32(item.PersonnelCode),
- ContractNo = item.ContractNo,
- MonthlySalary = item.MonthlySalary.ToMoney(),
- BaseYearsPay = item.BaseYearsPay.ToMoney(),
- ConsumableItems = item.ConsumableItems.ToMoney(),
- HousingAllowance = item.HousingAllowance.ToMoney(),
- OvertimePay = item.OvertimePay.ToMoney(),
- NightworkPay = item.NightworkPay.ToMoney(),
- FridayPay = item.FridayPay.ToMoney(),
- MissionPay = item.MissionPay.ToMoney(),
- ShiftPay = item.ShiftPay.ToMoney(),
- FamilyAllowance = item.FamilyAllowance.ToMoney(),
- BonusesPay = item.BonusesPay.ToMoney(),
- YearsPay = item.YearsPay.ToMoney(),
- LeavePay = item.LeavePay.ToMoney(),
- InsuranceDeduction = item.InsuranceDeduction.ToMoney(),
- TaxDeducation = item.TaxDeducation.ToMoney(),
- InstallmentDeduction = item.InstallmentDeduction.ToMoney(),
- SalaryAidDeduction = item.SalaryAidDeduction.ToMoney(),
- AbsenceDeduction = item.AbsenceDeduction.ToMoney(),
- TotalClaims = item.TotalClaims,
- TotalDeductions = item.TotalDeductions,
- TotalPayment = item.TotalPayment.ToMoney(),
- RewardPay = item.RewardPay.ToMoneyNullable(),
- ContractStartGr = item.ContractStart,
- ContractEndGr = item.ContractEnd,
- IsLeft = false,
- LeftWorkDate = "",
- LastDayOfWork = "",
- MarriedAllowance = item.MarriedAllowance.ToMoney(),
- HasRollCall = item.HasRollCall,
- SumOfWorkingDays = "-",
- OverTimeWorkValue = item.OverTimeWorkValue,
- OverNightWorkValue = item.OverNightWorkValue,
- FridayWorkValue = item.FridayWorkValue,
- RotatingShiftValue = item.RotatingShiftValue,
- AbsenceValue = item.AbsenceValue,
- MaritalStatus = "",
- TotalDayOfLeaveCompute = "-",
- TotalDayOfYearsCompute = "-",
- TotalDayOfBunosesCompute = "-",
- InstallmentViewModels = item.LoanInstallments.Select(i => new LoanInstallmentViewModel()
+ Amount = i.AmountForMonth,
+ AmountDouble = i.AmountForMonth.MoneyToDouble(),
+ Year = i.Year,
+ Month = i.Month,
+ IsActive = i.IsActive,
+ RemainingAmount = i.LoanRemaining,
+ LoanAmount = i.LoanAmount
+ }).ToList(),
+ SalaryAidViewModels = item.SalaryAids.Select(s => new SalaryAidViewModel()
+ {
+ Amount = s.Amount,
+ AmountDouble = s.Amount.MoneyToDouble(),
+ SalaryAidDateTimeFa = s.SalaryAidDateTimeFa,
+ SalaryAidDateTimeGe = s.SalaryAidDateTime
+ }).ToList(),
+ CheckoutRollCall = item.CheckoutRollCall != null ? new CheckoutRollCallViewModel()
+ {
+ TotalPresentTimeSpan = item.CheckoutRollCall.TotalPresentTimeSpan,
+ TotalBreakTimeSpan = item.CheckoutRollCall.TotalBreakTimeSpan,
+ TotalWorkingTimeSpan = item.CheckoutRollCall.TotalWorkingTimeSpan,
+ TotalPaidLeaveTmeSpan = item.CheckoutRollCall.TotalPaidLeaveTmeSpan,
+ TotalMandatoryTimeSpan = item.CheckoutRollCall.TotalMandatoryTimeSpan,
+ TotalSickLeaveTimeSpan = item.CheckoutRollCall.TotalSickLeaveTimeSpan,
+ RollCallDaysCollection = item.CheckoutRollCall.RollCallDaysCollection.Select(d => new CheckoutRollCallDayViewModel()
{
- Amount = i.AmountForMonth,
- AmountDouble = i.AmountForMonth.MoneyToDouble(),
- Year = i.Year,
- Month = i.Month,
- IsActive = i.IsActive,
- RemainingAmount = i.LoanRemaining,
- LoanAmount = i.LoanAmount
+ WorkingTimeSpan = d.WorkingTimeSpan,
+ BreakTimeSpan = d.BreakTimeSpan,
+ IsSliced = d.IsSliced,
+ IsAbsent = d.IsAbsent,
+ IsFriday = d.IsFriday,
+ IsHoliday = d.IsHoliday,
+ LeaveType = d.LeaveType,
+ CheckoutId = d.CheckoutId,
+ Date = d.Date,
+ FirstEndDate = d.FirstEndDate,
+ FirstStartDate = d.FirstStartDate,
+ Id = d.Id,
+ SecondEndDate = d.SecondEndDate,
+ SecondStartDate = d.SecondStartDate,
}).ToList(),
- SalaryAidViewModels = item.SalaryAids.Select(s => new SalaryAidViewModel()
- {
- Amount = s.Amount,
- AmountDouble = s.Amount.MoneyToDouble(),
- SalaryAidDateTimeFa = s.SalaryAidDateTimeFa,
- SalaryAidDateTimeGe = s.SalaryAidDateTime
- }).ToList(),
- CheckoutRollCall = item.CheckoutRollCall != null ? new CheckoutRollCallViewModel()
- {
- TotalPresentTimeSpan = item.CheckoutRollCall.TotalPresentTimeSpan,
- TotalBreakTimeSpan = item.CheckoutRollCall.TotalBreakTimeSpan,
- TotalWorkingTimeSpan = item.CheckoutRollCall.TotalWorkingTimeSpan,
- TotalPaidLeaveTmeSpan = item.CheckoutRollCall.TotalPaidLeaveTmeSpan,
- TotalMandatoryTimeSpan = item.CheckoutRollCall.TotalMandatoryTimeSpan,
- TotalSickLeaveTimeSpan = item.CheckoutRollCall.TotalSickLeaveTimeSpan,
- RollCallDaysCollection = item.CheckoutRollCall.RollCallDaysCollection.Select(d => new CheckoutRollCallDayViewModel()
- {
- WorkingTimeSpan = d.WorkingTimeSpan,
- BreakTimeSpan = d.BreakTimeSpan,
- IsSliced = d.IsSliced,
- IsAbsent = d.IsAbsent,
- IsFriday = d.IsFriday,
- IsHoliday = d.IsHoliday,
- LeaveType = d.LeaveType,
- CheckoutId = d.CheckoutId,
- Date = d.Date,
- FirstEndDate = d.FirstEndDate,
- FirstStartDate = d.FirstStartDate,
- Id = d.Id,
- SecondEndDate = d.SecondEndDate,
- SecondStartDate = d.SecondStartDate,
- }).ToList(),
- } : null,
- HasAmountConflict =item.HasAmountConflict,
- EmployeeMandatoryHoursTimeSpan = item.EmployeeMandatoryHours,
- EmployeeMandatoryHoursStr = Tools.ToFarsiHoursAndMinutes(Convert.ToInt32(item.EmployeeMandatoryHours.TotalHours),item.EmployeeMandatoryHours.Minutes,"-")
- };
+ } : null,
+ HasAmountConflict = item.HasAmountConflict,
+ EmployeeMandatoryHoursTimeSpan = item.EmployeeMandatoryHours,
+ EmployeeMandatoryHoursStr = Tools.ToFarsiHoursAndMinutes(Convert.ToInt32(item.EmployeeMandatoryHours.TotalHours), item.EmployeeMandatoryHours.Minutes, "-")
+ };
var workshopName = _context.Workshops.FirstOrDefault(x => x.id == ch.WorkshopId);
ch.WorkshopName = workshopName.WorkshopName;
ch.TotalPaymentHide = workshopName.TotalPaymentHide;
@@ -2014,7 +2014,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
// );
var checkouts =
- _context.CheckoutSet.Include(w=>w.CheckoutWarningMessageList).Where(x => workshopAcounts.Contains(x.WorkshopId))
+ _context.CheckoutSet.Include(w => w.CheckoutWarningMessageList).Where(x => workshopAcounts.Contains(x.WorkshopId))
.Join(_context.Workshops.AsSplitQuery(),
ch => ch.WorkshopId,
workshop => workshop.id,
@@ -2037,7 +2037,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
{
res.ch,
res.workshop,
- option = _context.EmployeeComputeOptionsSet.FirstOrDefault(x=>x.WorkshopId == res.ch.WorkshopId &&x.EmployeeId == res.ch.EmployeeId),
+ option = _context.EmployeeComputeOptionsSet.FirstOrDefault(x => x.WorkshopId == res.ch.WorkshopId && x.EmployeeId == res.ch.EmployeeId),
res.workshopEmployer,
contractingParty = _context.PersonalContractingParties
.Include(p => p.Employers)
@@ -2070,7 +2070,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
hasEmployeeOrWorkshpSearch = true;
checkouts = checkouts.Where(x => x.ch.ContractNo == searchModel.ContractNo);
}
-
+
//if (searchModel.IsActiveString == null)
@@ -2250,50 +2250,50 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
}
-
+
#endregion
if (!hasSearch && !hasEmployeeOrWorkshpSearch)
{
-
+
return checkouts.Select(x => new CheckoutViewModel()
+ {
+
+ Id = x.ch.id,
+ EmployeeFullName = x.ch.EmployeeFullName,
+ ContractStart = x.ch.ContractStart.ToFarsi(),
+ ContractEnd = x.ch.ContractEnd.ToFarsi(),
+ ContractStartGr = x.ch.ContractStart,
+ ContractEndGr = x.ch.ContractEnd,
+ PersonnelCode = x.ch.PersonnelCode,
+ PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode),
+ ArchiveCode = x.workshop.ArchiveCode,
+ SumOfWorkingDays = x.ch.SumOfWorkingDays,
+ WorkshopName = x.workshop.WorkshopName,
+ Month = x.ch.Month,
+ Year = x.ch.Year,
+ ContractNo = x.ch.ContractNo,
+ ContractId = x.ch.ContractId,
+ WorkshopId = x.ch.WorkshopId,
+ EmployeeId = x.ch.EmployeeId,
+ EmployerId = x.workshopEmployer.EmployerId,
+ IsActiveString = x.ch.IsActiveString,
+ Signature = x.ch.Signature,
+ CreationDate = x.ch.CreationDate,
+ EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}",
+ IsBlockCantracingParty = x.contractingParty.IsBlock,
+ HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout,
+ IsUpdateNeeded = x.ch.IsUpdateNeeded,
+ CheckoutWarningMessageList = x.ch.CheckoutWarningMessageList.Select(wm => new CheckoutWarningMessageModel
{
+ WarningMessage = wm.WarningMessage,
+ TypeOfCheckoutWarning = wm.TypeOfCheckoutWarning,
- Id = x.ch.id,
- EmployeeFullName = x.ch.EmployeeFullName,
- ContractStart = x.ch.ContractStart.ToFarsi(),
- ContractEnd = x.ch.ContractEnd.ToFarsi(),
- ContractStartGr = x.ch.ContractStart,
- ContractEndGr = x.ch.ContractEnd,
- PersonnelCode = x.ch.PersonnelCode,
- PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode),
- ArchiveCode = x.workshop.ArchiveCode,
- SumOfWorkingDays = x.ch.SumOfWorkingDays,
- WorkshopName = x.workshop.WorkshopName,
- Month = x.ch.Month,
- Year = x.ch.Year,
- ContractNo = x.ch.ContractNo,
- ContractId = x.ch.ContractId,
- WorkshopId = x.ch.WorkshopId,
- EmployeeId = x.ch.EmployeeId,
- EmployerId = x.workshopEmployer.EmployerId,
- IsActiveString = x.ch.IsActiveString,
- Signature = x.ch.Signature,
- CreationDate = x.ch.CreationDate,
- EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}",
- IsBlockCantracingParty = x.contractingParty.IsBlock,
- HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout,
- IsUpdateNeeded = x.ch.IsUpdateNeeded,
- CheckoutWarningMessageList = x.ch.CheckoutWarningMessageList.Select(wm=> new CheckoutWarningMessageModel
- {
- WarningMessage = wm.WarningMessage,
- TypeOfCheckoutWarning = wm.TypeOfCheckoutWarning,
-
- }).ToList()
+ }).ToList()
- }).OrderByDescending(x=>x.Id).Take(3000).ToList().DistinctBy(x => x.Id)
+ }).OrderByDescending(x => x.Id).Take(3000).ToList().DistinctBy(x => x.Id)
.OrderByDescending(x => x.Id).ThenByDescending(x => x.Year)
.ThenBy(x => x.PersonnelCodeInt)
.Take(50).ToList();
@@ -2441,7 +2441,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
CreationDate = x.ch.CreationDate,
EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}",
IsBlockCantracingParty = x.contractingParty.IsBlock,
- HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout,
+ HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout,
IsUpdateNeeded = x.ch.IsUpdateNeeded,
CheckoutWarningMessageList = x.ch.CheckoutWarningMessageList.Select(wm => new CheckoutWarningMessageModel
{
@@ -2454,8 +2454,8 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
.Select(x => x.First()).ToList()
.OrderByDescending(x => x.Id)
.ThenByDescending(x => x.Year).ThenBy(x => x.PersonnelCodeInt).ToList();
-
-
+
+
}
}
@@ -2769,43 +2769,43 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
.Select(x => x.WorkshopId);
-
- var watch = new Stopwatch();
- watch.Start();
- var checkouts =
- (
- from workshop in _context.Workshops.Where(x => workshopAccounts.Contains(x.id))
- join x in _context.CheckoutSet
- on workshop.id equals x.WorkshopId
- select new
- {
- Id = x.id,
- EmployeeFullName = x.EmployeeFullName,
- EmployeeId = x.EmployeeId,
- ContractStart = x.ContractStart,
- ContractEnd = x.ContractEnd,
- PersonnelCode = x.PersonnelCode,
- SumOfWorkingDays = x.SumOfWorkingDays,
- Month = x.Month,
- Year = x.Year,
- ContractNo = x.ContractNo,
- IsActiveString = x.IsActiveString,
- Signature = x.Signature,
- IsUpdateNeeded = x.IsUpdateNeeded,
- WorkshopId = x.WorkshopId,
- ArchiveCode = workshop.ArchiveCode,
- WorkshopName = workshop.WorkshopFullName,
- WorkshopSignCheckout = workshop.SignCheckout,
-
- }
- ).OrderByDescending(x => x.Id)
- .ThenByDescending(x => x.Year)
- .ThenByDescending(x=>x.ContractStart)
- .ThenBy(x => x.PersonnelCode).AsNoTracking();
+ var watch = new Stopwatch();
+ watch.Start();
+ var checkouts =
+ (
+ from workshop in _context.Workshops.Where(x => workshopAccounts.Contains(x.id))
+ join x in _context.CheckoutSet
+ on workshop.id equals x.WorkshopId
+ select new
+ {
+ Id = x.id,
+ EmployeeFullName = x.EmployeeFullName,
+ EmployeeId = x.EmployeeId,
+ ContractStart = x.ContractStart,
+ ContractEnd = x.ContractEnd,
+ PersonnelCode = x.PersonnelCode,
+ SumOfWorkingDays = x.SumOfWorkingDays,
+ Month = x.Month,
+ Year = x.Year,
+ ContractNo = x.ContractNo,
+ IsActiveString = x.IsActiveString,
+ Signature = x.Signature,
+ IsUpdateNeeded = x.IsUpdateNeeded,
+ WorkshopId = x.WorkshopId,
+ ArchiveCode = workshop.ArchiveCode,
+ WorkshopName = workshop.WorkshopFullName,
+ WorkshopSignCheckout = workshop.SignCheckout,
+
+ }
+
+ ).OrderByDescending(x => x.Id)
+ .ThenByDescending(x => x.Year)
+ .ThenByDescending(x => x.ContractStart)
+ .ThenBy(x => x.PersonnelCode).AsNoTracking();
Console.WriteLine("getList======================= : " + watch.Elapsed);
-
+
#region SercheModel
if (!string.IsNullOrWhiteSpace(searchModel.ContractNo))
@@ -2839,7 +2839,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
(string.IsNullOrWhiteSpace(searchModel.ContractStart) ||
string.IsNullOrWhiteSpace(searchModel.ContractEnd)))
{
-
+
var startYear = searchModel.Year + "/01/01";
var startyearGr = startYear.ToGeorgianDateTime();
var endYear = $"{searchModel.Year}/12/01".FindeEndOfMonth();
@@ -2855,7 +2855,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
string.IsNullOrWhiteSpace(searchModel.ContractStart) &&
string.IsNullOrWhiteSpace(searchModel.ContractEnd))
{
-
+
//سرچ سال و ماه
string y1 = $"{searchModel.Year}/{searchModel.Month}/01";
var startDate = y1.ToGeorgianDateTime();
@@ -2975,7 +2975,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
!string.IsNullOrWhiteSpace(searchModel.ContractEnd) &&
string.IsNullOrWhiteSpace(searchModel.Year) && string.IsNullOrWhiteSpace(searchModel.Month))
{
-
+
//سرچ تاریخ
var start = searchModel.ContractStart.ToGeorgianDateTime();
var endd = searchModel.ContractEnd.ToGeorgianDateTime();
@@ -2992,19 +2992,19 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
watch.Reset();
watch.Start();
-
+
var checkoutQueryFilter = await checkouts.ApplyPagination(searchModel.PageIndex, searchModel.PageSize).ToListAsync();
Console.WriteLine("pagination===================== : " + watch.Elapsed);
- var employers =await
+ var employers = await
_context.WorkshopEmployers.Where(x => checkoutQueryFilter
.Select(c => c.WorkshopId).Contains(x.WorkshopId))
- .Select(x=> new {x.Employer, x.WorkshopId}).ToListAsync();
+ .Select(x => new { x.Employer, x.WorkshopId }).ToListAsync();
var contractingPartiesIds = employers.Select(x => x.Employer.ContractingPartyId).ToList();
var warningMessages = await _context.CheckoutWarningMessages.Where(x => checkoutQueryFilter
.Select(c => c.Id).Contains(x.CheckoutId)).ToListAsync();
-
+
var contractnigParties = await _context.PersonalContractingParties
.Where(x => contractingPartiesIds.Contains(x.id)).ToListAsync();
@@ -3078,40 +3078,58 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
.Where(x => x.WorkshopId == getCheckouts.First().WorkshopId).AsNoTracking()
.Select(x => new CheckoutEmployersList
{
- IsLegal = x.Employer.IsLegal == "true",
+ IsLegal = x.Employer.IsLegal,
EmployerFullName = x.Employer.FullName
}).ToListAsync();
var employees = (from x in _context.Employees.Where(x => getCheckouts.Select(ch => ch.EmployeeId).Contains(x.id))
- select new
- {
- EmployeeId = x.id,
- MaritalStatus = x.MaritalStatus
- }
+ select new
+ {
+ EmployeeId = x.id,
+ MaritalStatus = x.MaritalStatus
+ }
).AsNoTracking();
var workshop = await _context.Workshops.AsNoTracking().FirstAsync(x => x.id == getCheckouts.First().WorkshopId);
+ var showSumOfPayments = workshop.TotalPaymentHide;
+ bool isLegal = employers.Any(x => x.IsLegal == "حقوقی");
+
+ var leftWorks = await _context.LeftWorkList.AsNoTracking()
+ .Where(x => x.WorkshopId == workshop.id).ToListAsync();
- bool isLegal = employers.Any(x => x.IsLegal);
-
var result = getCheckouts.Select(x =>
{
+ var leftCheck = leftWorks
+ .FirstOrDefault(l => l.EmployeeId == x.EmployeeId && x.ContractStart >= l.StartWorkDate && x.ContractStart <= l.LeftWorkDate && l.HasLeft);
+ bool hasLeft = false;
+ var leftWorkDate = "";
+ var lastDayOfWork = "";
+ if (leftCheck != null)
+ {
+ var contractLeftWorkDate = x.ContractEnd.AddDays(1);
+ if (leftCheck.HasLeft && leftCheck.LeftWorkDate == contractLeftWorkDate)
+ {
+ hasLeft = true;
+ leftWorkDate = leftCheck.LeftWorkDate.ToFarsi();
+ lastDayOfWork = x.ContractEnd.ToFarsi();
+ }
+ }
var overTimeWorkValue = x.OvertimePay > 0 ? x.OverTimeWorkValue : "-";
- var overNightWorkValue = x.OvertimePay > 0 ? x.OverNightWorkValue : "-";
+ var overNightWorkValue = x.NightworkPay > 0 ? x.OverNightWorkValue : "-";
var fridayWorkValue = x.FridayPay > 0 ? x.FridayWorkValue : "-";
var maritalStatus = employees.First(e => e.EmployeeId == x.EmployeeId).MaritalStatus;
- var rewardPay = x.RewardPay == null ? "-" : x.RewardPay.ToMoneyNullable();
+ var rewardPay = x.RewardPay == null ? "-" : x.RewardPay.ToMoneyCheckZeroNullable();
var rotatingShiftValue = x.ShiftPay > 0 ? x.RotatingShiftValue : "-";
var totalDeduction = "-";
var totalPayment = "-";
var totalClaims = "-";
- if (!workshop.TotalPaymentHide)
+ if (showSumOfPayments)
{
totalDeduction = x.TotalDeductions;
totalPayment = x.TotalPayment.ToMoneyCheckZero();
totalClaims = x.TotalClaims;
}
-
+
return new CheckoutPrintDto()
{
Id = x.id,
@@ -3125,12 +3143,15 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
FathersName = x.FathersName,
NationalCode = x.NationalCode,
DateOfBirth = x.DateOfBirth,
- WorkshopName = x.WorkshopName,
+ WorkshopName = workshop.WorkshopName,
ContractNo = x.ContractNo,
Month = x.Month,
Year = x.Year,
EmployersLists = employers,
EmployerIslegal = isLegal,
+ HasLeft = hasLeft,
+ LastDayOfWork = lastDayOfWork,
+ LeftWorkDate = leftWorkDate,
#endregion
//جدول مطالبات و کسورات
@@ -3192,6 +3213,20 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
TotalDeductions = totalDeduction,
TotalClaims = totalClaims,
#endregion
+
+ //لیست ورود و خروج پرسنل
+ //اطلاعات ساعات کار و موظقی
+ #region RollCallData
+
+
+
+ #endregion
+
+
+ //اقساط - مساعده
+ #region SalaryAidAndInstallmentData
+
+ #endregion
};
diff --git a/ServiceHost/Areas/Admin/Controllers/CheckoutController.cs b/ServiceHost/Areas/Admin/Controllers/CheckoutController.cs
index 8f3df3e9..3056151b 100644
--- a/ServiceHost/Areas/Admin/Controllers/CheckoutController.cs
+++ b/ServiceHost/Areas/Admin/Controllers/CheckoutController.cs
@@ -3,6 +3,7 @@ using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Checkout.Dto;
using CompanyManagment.App.Contracts.InstitutionPlan;
using Microsoft.AspNetCore.Mvc;
+using NuGet.Packaging.Signing;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
@@ -39,5 +40,29 @@ public class CheckoutController : AdminBaseController
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;
+ }
+
}
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
index 09858586..a1a37028 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
+++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
@@ -26,7 +26,7 @@ public class CheckoutPrintAllModel : PageModel
var ids = ExtractNumbers(idlist);
- var test = _checkoutApplication.CheckoutPrint(ids).GetAwaiter().GetResult();
+
var resultList = new List();
var res = _checkoutApplication.PrintAll(ids);