Пример #1
0
        // GET: Debtor
        public async Task <IActionResult> Index(int?advisorId, string financialYear)
        {
            List <MLFSReportingPeriod> periods = await _periodData.GetPeriods();

            SelectList yearList = new SelectList(periods.Select(x => x.FinancialYear).Distinct());

            ViewBag.Year      = yearList;
            ViewBag.AdvisorId = await _advisorData.SelectList();

            if (advisorId == null)
            {
                BudgetReview review = new BudgetReview();
                return(View(review));
            }
            else
            {
                if (String.IsNullOrEmpty(financialYear))
                {
                    financialYear = yearList.FirstOrDefault().Value;
                }
                MLFSAdvisor advisor = await _advisorData.GetAdvisor((int)advisorId);

                List <MLFSBudget> budgets = await _budgetData.GetBudgets(periods.Where(x => x.FinancialYear == financialYear).ToList());

                BudgetReview review = new BudgetReview(advisor, budgets, periods, financialYear);
                return(View(review));
            }
        }
        public async Task <IActionResult> SalesReport(int?periodId, string entity = "advisor")
        {
            MLFSReportingPeriod period;
            List <SalesReport>  report = new List <SalesReport>();

            //get period
            if (periodId == null)
            {
                return(NotFound());
            }
            period = await _periodData.GetPeriodById((int)periodId);

            if (period == null)
            {
                return(NotFound());
            }

            //get advsiors
            List <MLFSAdvisor> advisors = await _advisorData.GetAdvisors();

            List <MLFSIncome> income = await _incomeData.GetIncome(period);

            List <MLFSSale> sales = await _salesData.GetSales(period);

            List <MLFSDebtorAdjustment> adjs = await _adjustmentData.GetAdjustments(period);

            List <MLFSBudget> budgets = await _budgetData.GetBudgets(period);

            if (entity.ToLower() == "advisor")
            {
                foreach (MLFSAdvisor adv in advisors)
                {
                    SalesReport line = new SalesReport(income, sales, adjs, budgets, adv, period);
                    report.Add(line);
                }
            }
            if (entity.ToLower() == "organisation")
            {
                report = report.GroupBy(x => x.Organisation).Select(y => new ViewModels.SalesReport()
                {
                    Period             = y.FirstOrDefault().Period,
                    PeriodId           = y.FirstOrDefault().PeriodId,
                    Advisor            = y.Key,
                    AdvisorId          = 0,
                    Organisation       = y.Key,
                    Budget             = y.Sum(z => z.Budget),
                    New_Business       = y.Sum(z => z.New_Business),
                    Renewals           = y.Sum(z => z.Renewals),
                    Unallocated        = y.Sum(z => z.Unallocated),
                    Clawback           = y.Sum(z => z.Clawback),
                    NotTakenUp         = y.Sum(z => z.NotTakenUp),
                    Adjustment         = y.Sum(z => z.Adjustment),
                    Debtors_Variance   = y.Sum(z => z.Debtors_Variance),
                    Debtors_Adjustment = y.Sum(z => z.Debtors_Adjustment),
                    Total = y.Sum(z => z.Total)
                }).ToList();
            }
            else if (entity.ToLower() == "campaign")
            {
                report = ViewModels.SalesReport.CreateByCampaign(income, period);
            }

            return(PartialView("_SalesReport", report.OrderBy(x => x.Advisor)));
        }