public ActionResult Create(int?id)
        {
            var organisationId = UserOrganisationId;
            var centreId       = UserCentreId;

            id = id ?? 0;

            var stockPurchase       = NidanBusinessService.RetrieveStockPurchase(organisationId, centreId, id.Value, e => true);
            var stockIssueData      = NidanBusinessService.RetrieveStockIssues(organisationId, centreId, e => e.StockPurchaseId == id.Value);
            var totalIssuedQuantity = stockIssueData.Items.Sum(e => e.IssuedQuantity);
            var viewModel           = new StockIssueViewModel()
            {
                StockPurchase   = stockPurchase,
                StockPurchaseId = id.Value,
                BalanceQuantity = stockPurchase.Quantity - totalIssuedQuantity
            };

            return(View(viewModel));
        }
        public ActionResult Create(StockIssueViewModel stockIssueViewModel)
        {
            var organisationId = UserOrganisationId;
            var centreId       = UserCentreId;
            var isbalanceItem  = stockIssueViewModel.BalanceQuantity >= stockIssueViewModel.StockIssue.IssuedQuantity;

            if (!isbalanceItem)
            {
                ModelState.AddModelError("", String.Format("Insufficient item, available item is {0}", stockIssueViewModel.BalanceQuantity));
                return(View(stockIssueViewModel));
            }
            if (ModelState.IsValid)
            {
                stockIssueViewModel.StockIssue.StockPurchaseId = stockIssueViewModel.StockPurchaseId;
                stockIssueViewModel.StockIssue.OrganisationId  = organisationId;
                stockIssueViewModel.StockIssue.CentreId        = centreId;
                stockIssueViewModel.StockIssue.BalanceQuantity = stockIssueViewModel.BalanceQuantity - stockIssueViewModel.StockIssue.IssuedQuantity;
                stockIssueViewModel.StockIssue = NidanBusinessService.CreateStockIssue(organisationId, stockIssueViewModel.StockIssue);
                return(RedirectToAction("Index", "StockPurchase"));
            }

            return(View(stockIssueViewModel));
        }