diff --git a/IRaCIS.Core.Application.Contracts/Financial/DTO/CalculateViewModel.cs b/IRaCIS.Core.Application.Contracts/Financial/DTO/CalculateViewModel.cs index 2ff6682..e5a3041 100644 --- a/IRaCIS.Core.Application.Contracts/Financial/DTO/CalculateViewModel.cs +++ b/IRaCIS.Core.Application.Contracts/Financial/DTO/CalculateViewModel.cs @@ -8,7 +8,9 @@ namespace IRaCIS.Application.ViewModels public Guid DoctorId { get; set; } public string YearMonth { get; set; } public bool IsLock { get; set; } - } + + public int DataFrom { get; set; } + } public class DoctorPrice { diff --git a/IRaCIS.Core.Application/Financial/CalculateService.cs b/IRaCIS.Core.Application/Financial/CalculateService.cs index e2084e6..fe48686 100644 --- a/IRaCIS.Core.Application/Financial/CalculateService.cs +++ b/IRaCIS.Core.Application/Financial/CalculateService.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Linq.Expressions; using IRaCIS.Core.Domain.Interfaces; using IRaCIS.Core.Domain.Models; +using System.Data; namespace IRaCIS.Application.Services { @@ -36,7 +37,8 @@ namespace IRaCIS.Application.Services ITrialRepository trialRepository, IDoctorRepository doctorRepository, IWorkloadRepository workloadRepository, - IRankPriceRepository rankPriceRepository, + IDoctorRepository doctorRepository, + IRankPriceRepository rankPriceRepository, IPaymentDetailRepository paymentDetailRepository, IVolumeRewardService volumeRewardService, IExchangeRateRepository exchangeRateRepository, @@ -893,7 +895,8 @@ namespace IRaCIS.Application.Services { Expression> calculateLambda = u => !u.IsLock; - Expression> workloadLambda = u => u.IsLock==false && u.DataFrom==(int)WorkLoadFromStatus.FinalConfirm; + // u => u.IsLock==false && u.DataFrom==(int)WorkLoadFromStatus.FinalConfirm; + Expression> workloadLambda = x=>true; if (reviewerId != Guid.Empty) { calculateLambda = calculateLambda.And(u => u.DoctorId == reviewerId); @@ -910,10 +913,31 @@ namespace IRaCIS.Application.Services { DoctorId = x.DoctorId, YearMonth = x.YearMonth, - IsLock = x.IsLock + IsLock = x.IsLock, + DataFrom=x.DataFrom, }).Distinct().ToList(); + var doctor = _doctorRepository.GetAll().Select(x => x.Id).ToList(); - return workloadlist; + doctor.ForEach(x => + { + + if (!workloadlist.Any(y => y.DoctorId == x)) + { + workloadlist.Add(new CalculateNeededDTO() + { + DoctorId = x, + IsLock = false, + YearMonth = yearMonth, + + DataFrom= (int)WorkLoadFromStatus.FinalConfirm + }); + + } + }); + + workloadlist= workloadlist.Where(u=>u.IsLock == false && u.DataFrom == (int)WorkLoadFromStatus.FinalConfirm).Distinct().ToList(); + + return workloadlist; // return _paymentRepository.Find(calculateLambda).ProjectTo(_mapper.ConfigurationProvider).ToList(); }