public ActionResult SaveReceiptItem(ReceiptItemModel model)
        {
            if (ModelState.IsValid)
            {
                var receiptItem = _receiptItemRepository.GetById(model.Id);
                //always set IsNew to false when saving
                receiptItem.IsNew = false;
                receiptItem       = model.ToEntity(receiptItem);

                // unit conversion
                var item = _itemRepository.GetById(model.ItemId);
                if (item.UnitOfMeasureId != model.ReceiptUnitOfMeasureId)
                {
                    var uc = _unitConversionService.GetUnitConversion(model.ReceiptUnitOfMeasureId.Value, item.UnitOfMeasureId.Value);
                    receiptItem.Quantity  = receiptItem.ReceiptQuantity * uc.ConversionFactor;
                    receiptItem.UnitPrice = receiptItem.ReceiptUnitPrice / uc.ConversionFactor;
                }
                else
                {
                    receiptItem.Quantity  = receiptItem.ReceiptQuantity;
                    receiptItem.UnitPrice = receiptItem.ReceiptUnitPrice;
                }

                _receiptItemRepository.UpdateAndCommit(receiptItem);
                return(new NullJsonResult());
            }
            else
            {
                return(Json(new { Errors = ModelState.Errors().ToHtmlString() }));
            }
        }
        public ActionResult SaveIssueItem(IssueItemModel model)
        {
            if (ModelState.IsValid)
            {
                var issueItem = _issueItemRepository.GetById(model.Id);

                //always set IsNew to false when saving
                issueItem.IsNew = false;
                issueItem       = model.ToEntity(issueItem);

                // unit conversion
                var item = _itemRepository.GetById(model.ItemId);
                if (item.UnitOfMeasureId != model.IssueUnitOfMeasureId)
                {
                    var uc = _unitConversionService.GetUnitConversion(model.IssueUnitOfMeasureId.Value, item.UnitOfMeasureId.Value);
                    issueItem.Quantity = issueItem.IssueQuantity * uc.ConversionFactor;
                }
                else
                {
                    issueItem.Quantity = issueItem.IssueQuantity;
                }

                //update issue cost
                _issueService.UpdateIssueCost(issueItem);
                _issueItemRepository.UpdateAndCommit(issueItem);
                return(new NullJsonResult());
            }
            else
            {
                return(Json(new { Errors = ModelState.Errors().ToHtmlString() }));
            }
        }