public async Task <IActionResult> Create(MLFSSale sale)
        {
            sale.Advisor = await _advisorData.GetAdvisor(sale.AdvisorId);

            sale.Organisation = sale.Advisor.Department;
            sale.IOId         = sale.IOReference.Substring(2);
            int newId = await _salesData.Add(sale);

            if (sale.ReportingPeriodId == null)
            {
                return(NotFound());
            }
            sale.ReportingPeriod = await _periodData.GetPeriodById((int)sale.ReportingPeriodId);

            List <MLFSReportingPeriod> periods = await _periodData.GetPeriods();

            MLFSReportingPeriod period;

            if (sale.ReportingPeriod.ReportOrder == 12)
            {
                period = periods.Where(x => x.Year == sale.ReportingPeriod.Year && x.ReportOrder == 1).FirstOrDefault();
            }
            else
            {
                period = periods.Where(x => x.FinancialYear == sale.ReportingPeriod.FinancialYear && x.ReportOrder == sale.ReportingPeriod.ReportOrder + 1).FirstOrDefault();
            }
            //create an entry in the next month to balance out
            MLFSDebtorAdjustment adj = new MLFSDebtorAdjustment()
            {
                DebtorId          = newId,
                Amount            = sale.GrossAmount * -1,
                ReportingPeriodId = period.Id
            };

            _adjData.Insert(adj);
            return(RedirectToAction("Index", "MLFSReport"));
        }