Esempio n. 1
0
        public ActionResult AddIngredient(ReceiptNoteModels data)
        {
            ReceiptNoteModels model = new ReceiptNoteModels();

            if (data.ListItem != null && data.ListItem.Count > 0)
            {
                foreach (var item in data.ListItem)
                {
                    var ProIngre = new ReceiptNoteIngredient()
                    {
                        IngredientId   = item.IngredientId,
                        IngredientCode = item.IngredientCode,
                        IngredientName = item.IngredientName,
                        Description    = item.Description,
                        Qty            = (item.Qty == 0) ? 1 : item.Qty, // Receiving Quantity
                        BaseUOMId      = item.BaseUOMId
                    };
                    //=====================
                    var lstItem = _UOMFactory.GetDataUOMRecipe(item.IngredientId).ToList();
                    if (lstItem != null)
                    {
                        foreach (UnitOfMeasureModel uom in lstItem)
                        {
                            ProIngre.ListUOM.Add(new SelectListItem
                            {
                                Text  = uom.Name,
                                Value = uom.Id,
                                //Selected = uom.Id.Equals(ProIngre.BaseUOMId) ? true : false
                            });
                        }
                    }
                    //=========
                    model.ListItem.Add(ProIngre);
                }
            }
            return(PartialView("_ListItem", model));
        }
Esempio n. 2
0
        public ActionResult LoadIngredient(ReceiptNoteModels data)
        {
            IngredientFactory IngFactory = new IngredientFactory();

            //Get Data from Client
            List <ReceiptNoteIngredient> listReceiptNoteIngre = listReceiptNoteIngre = data.ListItem;

            ReceiptNoteModels model = new ReceiptNoteModels();

            //var m_CompanyIds = GetListCompany().Select(x => x.Value).ToList();
            //var listIng = new List<IngredientModel>();
            //if (m_CompanyIds.Count > 0)
            //    listIng = IngFactory.GetIngredient("").Where(x => m_CompanyIds.Contains(x.CompanyId)).ToList();
            //else
            //    listIng = IngFactory.GetIngredient("").ToList();

            ////==== Only get list Ingredients of the company of Receipt Note Store
            var lstStoreInfo = (List <StoreModels>)ViewBag.StoreID.Items;
            var compId       = lstStoreInfo.Where(w => w.Id == data.StoreId).Select(s => s.CompanyId).FirstOrDefault();

            var listIng = new List <IngredientModel>();

            if (!string.IsNullOrEmpty(compId))
            {
                listIng = _IngredientFactory.GetIngredient("").Where(x => x.CompanyId == compId).ToList();
                if (listIng != null && listIng.Any())
                {
                    listIng = listIng.Where(x => x.IsActive == true && !x.IsSelfMode).ToList();

                    foreach (var item in listIng)
                    {
                        var ProIngre = new ReceiptNoteIngredient()
                        {
                            BaseUOM        = item.BaseUOMName,
                            IngredientId   = item.Id,
                            IngredientCode = item.Code,
                            IngredientName = item.Name,
                            Description    = item.Description,

                            //=======Set Qty
                            Qty = listReceiptNoteIngre.Where(x => x.IngredientId.Equals(item.Id)).FirstOrDefault() == null
                                                            ? 1 : listReceiptNoteIngre.FirstOrDefault(x => x.IngredientId.Equals(item.Id)).Qty,

                            //=====Set UOM: Priority| ReceivingUOM -> BaseUOM
                            BaseUOMId = listReceiptNoteIngre.Where(x => x.IngredientId.Equals(item.Id)).FirstOrDefault() != null
                                                            ? listReceiptNoteIngre.FirstOrDefault(x => x.IngredientId.Equals(item.Id)).BaseUOMId
                                                            : item.ReceivingUOMId,
                            //=======Set Ing Select
                            IsSelect = listReceiptNoteIngre.Any(x => x.IngredientId.Equals(item.Id))
                        };

                        var lstItem = _UOMFactory.GetDataUOMRecipe(item.Id).ToList();
                        if (lstItem != null)
                        {
                            foreach (UnitOfMeasureModel uom in lstItem)
                            {
                                ProIngre.ListUOM.Add(new SelectListItem
                                {
                                    Text  = uom.Name,
                                    Value = uom.Id,
                                    //Selected = uom.Id.Equals(ProIngre.BaseUOMId) ? true :  false
                                });
                            }
                            //=====Reset UOM from BaseUOM If lstItemUOM not ReceivingUOM
                            var isExists = lstItem.Exists(z => z.Id.Equals(ProIngre.BaseUOMId));
                            if (!isExists)
                            {
                                ProIngre.BaseUOMId = item.BaseUOMId;
                            }
                        }
                        //======
                        model.ListItem.Add(ProIngre);
                    }
                    model.ListItem = model.ListItem.OrderByDescending(x => x.IsSelect ? 1 : 0).ThenBy(x => x.IngredientName).ToList();
                }
            }

            return(PartialView("_TableChooseIngredient", model));
        }