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() }));
            }
        }
Example #2
0
        private void EvaluateItem(ReceiptItemModel receiptItem)
        {
            receiptItem.Taxes.ForEach(x => {
                receiptItem.SalesTaxes += ((receiptItem.Price * x) / 100).Round();
            });

            receiptItem.Total = (receiptItem.Price + receiptItem.SalesTaxes) * receiptItem.Qty;
        }
        private void PrepareReceiptItemModel(ReceiptItemModel model)
        {
            model.CurrentQuantity = _storeService.GetTotalQuantity(null, model.StoreLocatorId, model.ItemId);

            var uoms = _unitConversionService.GetFromUOMs(model.ItemUnitOfMeasureId.Value);

            model.AvailableUnitOfMeasures.Add(new SelectListItem
            {
                Value = model.ItemUnitOfMeasureId.ToString(),
                Text  = model.ItemUnitOfMeasureName
            });
            foreach (var c in uoms)
            {
                model.AvailableUnitOfMeasures.Add(new SelectListItem
                {
                    Value    = c.Id.ToString(),
                    Text     = c.Name,
                    Selected = model.ReceiptUnitOfMeasureId == c.Id
                });
            }
        }
        public ActionResult CreateReceiptItem(long receiptId)
        {
            //need to get receipt here to assign to new receiptItem
            //so when mapping to Model, we will have StoreId as defined
            //in AutoMapper configuration
            var receipt     = _receiptRepository.GetById(receiptId);
            var receiptItem = new ReceiptItem
            {
                IsNew   = true,
                Receipt = receipt
            };

            _receiptItemRepository.Insert(receiptItem);

            this._dbContext.SaveChanges();

            var model = new ReceiptItemModel();

            model = receiptItem.ToModel();
            var html = this.ReceiptItemPanel(model);

            return(Json(new { Id = receiptItem.Id, Html = html }));
        }
        public string ReceiptItemPanel(ReceiptItemModel model)
        {
            var html = this.RenderPartialViewToString("_ReceiptItemDetails", model);

            return(html);
        }