private List <PlanPosteForTrackingDto> CalculatePlanPosteTracking(List <VPlanGlobal> vByPoste, List <PlanTrackingAmountStoreDto> planTrackingAmountStores, bool isAnnualPreview) { List <PlanPosteForTrackingDto> PlanPosteForTrackingDtos = new List <PlanPosteForTrackingDto>(); foreach (var planTrackingAmountStore in planTrackingAmountStores) { PlanPosteForTrackingDto planPosteForTracking = new PlanPosteForTrackingDto { IdPlanPoste = planTrackingAmountStore.Id, Label = planTrackingAmountStore.Label, AmountReal = Math.Round(planTrackingAmountStore.AmountReal, 2), AmountPreview = Math.Round(planTrackingAmountStore.AmountPreview, 2), IsAnnualPreview = isAnnualPreview, GaugeValue = CalculatePercentage(planTrackingAmountStore.AmountReal, planTrackingAmountStore.AmountPreview) }; var vByPlanPoste = vByPoste.Where(x => x.IdPlanPoste == planTrackingAmountStore.Id).ToList(); planPosteForTracking.PlanPosteUsers = GetPlanPosteUsersForTracking(planPosteForTracking, planTrackingAmountStore.Id); PlanPosteForTrackingDtos.Add(planPosteForTracking); } return(PlanPosteForTrackingDtos); }
private List <PlanPosteUserForTrackingDto> GetPlanPosteUsersForTracking(PlanPosteForTrackingDto planPosteForTrackingDto, int idPlanPoste) { List <PlanPosteUser> planPosteUsers = _planPosteUserRepository.GetByIdPlanPoste(idPlanPoste); List <PlanPosteUserForTrackingDto> planPosteUsersForTracking = new List <PlanPosteUserForTrackingDto>(); foreach (var planPosteUser in planPosteUsers) { if (planPosteUser.PercentagePart != 0) { PlanPosteUserForTrackingDto planPosteUserForTrackingDto = new PlanPosteUserForTrackingDto { FirstName = planPosteUser.PlanUser.User.FirstName, PercentagePart = planPosteUser.PercentagePart, AmountPreview = Math.Round(planPosteUser.PercentagePart * planPosteForTrackingDto.AmountPreview / 100, 2), AmountReal = Math.Round(planPosteUser.PercentagePart * planPosteForTrackingDto.AmountReal / 100, 2) }; planPosteUserForTrackingDto.GaugeValue = CalculatePercentage(planPosteUserForTrackingDto.AmountReal, planPosteUserForTrackingDto.AmountPreview); planPosteUsersForTracking.Add(planPosteUserForTrackingDto); } } return(planPosteUsersForTracking); }