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);
        }