示例#1
0
        /// <summary>
        /// Get items used for specific shelter along with other details.
        /// </summary>
        /// <param name="shelterId">ShelterID for which to retrieive items.</param>
        public static List <SheltersDescInfo> GetShelterItemsForReport(int shelterId)
        {
            var slNo  = 1;
            var items = new List <SheltersDescInfo>();

            foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId)))
            {
                // Get item's details
                string iName, iSize, iMarking;
                SetItemValues(sd.I_Id, out iName, out iSize, out iMarking);

                var sdesc = sd;
                var sdi   = new SheltersDescInfo
                {
                    ShelterDescKey = slNo,
                    ShelterId      = sd.P_Id,
                    ItemName       = iName,
                    Size           = iSize,
                    Marking        = iMarking,
                    ItemQuantity   = sd.I_Qty,
                    InStock        = ItemRepository.GetItemTotalQuantity(sd.I_Id),
                    Vendor         = ItemRepository.Items.Where(i => i.ItemId.Equals(sdesc.I_Id)).Select(i => i.Vendor).FirstOrDefault(),
                    UpdatedOn      = ItemRepository.Items.Where(i => i.ItemId.Equals(sd.I_Id)).Select(i => i.UpdatedOn).FirstOrDefault()
                };

                items.Add(sdi);
                slNo++;
            }

            // Order list by to show items in ascending order
            return(items.OrderBy(sd => sd.ShelterDescKey).ToList());
        }
示例#2
0
        /// <summary>
        /// Get items used for specific shelter along with other details.
        /// </summary>
        /// <param name="shelterId">ShelterID for which to retrieive items.</param>
        public static List <SheltersDescInfo> GetShelterItemsDetail(int shelterId)
        {
            var items = new List <SheltersDescInfo>();

            foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId)))
            {
                var shd = sd; // For fixing compiler version issue (suggested by ReSharper)

                // Get item's details
                string iName, iSize, iMarking;
                SetItemValues(shd.I_Id, out iName, out iSize, out iMarking);

                var sdi = new SheltersDescInfo
                {
                    ShelterDescKey = shd.PD_Id,
                    ShelterId      = shd.P_Id,
                    ItemId         = shd.I_Id,
                    ItemName       = iName,
                    Size           = iSize,
                    Marking        = iMarking,
                    ItemQuantity   = shd.I_Qty,
                    InStock        = ItemRepository.GetItemTotalQuantity(shd.I_Id),
                    Vendor         = ItemRepository.Items.Where(i => i.ItemId.Equals(shd.I_Id)).Select(i => i.Vendor).FirstOrDefault()
                };

                items.Add(sdi);
            }

            return(items);
        }
示例#3
0
        /// <summary>
        /// Get items used for specific shelter.
        /// </summary>
        /// <param name="shelterId">ShelterID for which to retrieive items.</param>
        /// <param name="qtyMultiple">Number of shelter user is requesting.</param>
        public static List <SheltersDescInfo> GetShelterItemsByKey(int shelterId, int qtyMultiple)
        {
            var slNo  = 1;
            var items = new List <SheltersDescInfo>();

            foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId)))
            {
                // Get item's details
                string iName, iSize, iMarking;
                SetItemValues(sd.I_Id, out iName, out iSize, out iMarking);

                var sdi = new SheltersDescInfo
                {
                    ShelterDescKey = sd.PD_Id,
                    ShelterId      = sd.P_Id,
                    ItemId         = slNo,
                    ItemName       = iName,
                    Size           = iSize,
                    Marking        = iMarking,
                    ItemQuantity   = sd.I_Qty,
                    EnterQuantity  = Convert.ToString(sd.I_Qty * qtyMultiple)
                };

                items.Add(sdi);
                slNo++;
            }

            return(items);
        }
示例#4
0
        /// <summary>
        ///     Update row of grid.
        /// </summary>
        public ActionResult UpdateGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;
            try
            {
                if (ModelState.IsValid)
                {
                    if (ShelterRepository.IsUniqueItem(model, Action.Update))
                    {
                        ShelterRepository.UpdateShelterItem(model);
                    }
                    else
                    {
                        TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist;
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = Common.ErrorMsgForGrid;
                }
            }
            catch (Exception exc)
            {
                TempData["ErrorMessage"] = exc.Message;
                Logger.LogError(exc, "Error while updating shelter's items from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
示例#5
0
        /// <summary>
        /// New row of grid.
        /// </summary>
        public ActionResult NewGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;

            try
            {
                ModelState["InStock"].Errors.Clear(); // Don't want to check InStock

                if (ModelState.IsValid)
                {
                    if (ShelterRepository.IsUniqueItem(model, Action.New))
                    {
                        ShelterRepository.NewShelterItem(model);
                    }
                    else
                    {
                        TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist;
                    }
                }
                else
                {
                    TempData["ErrorMessage"] = Common.ErrorMsgForGrid;
                }
            }
            catch (Exception exc)
            {
                TempData["ErrorMessage"] = exc.Message;
                Logger.LogError(exc, "Error while saving new shelter item in Shelters grid from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
示例#6
0
        /// <summary>
        /// Delete product with specific product id.
        /// </summary>
        public static void DeleteShelterItem(SheltersDescInfo shelterItem)
        {
            var editProductItem = GetEditableShelterItem(shelterItem.ShelterId, shelterItem.ShelterDescKey, shelterItem.ItemId);

            if (editProductItem == null)
            {
                return;
            }

            OimsDataContext.Delete(editProductItem);
            OimsDataContext.SaveChanges();
        }
示例#7
0
        /// <summary>
        /// Insert new shelter item for specific shelter.
        /// </summary>
        public static void NewShelterItem(SheltersDescInfo sheltertem)
        {
            var newShelterItem = new Shelterdescription
            {
                P_Id  = sheltertem.ShelterId,
                I_Id  = sheltertem.ItemId,
                I_Qty = sheltertem.ItemQuantity
            };

            OimsDataContext.Add(newShelterItem);
            OimsDataContext.SaveChanges();
        }
示例#8
0
        /// <summary>
        /// Update shelter's item.
        /// </summary>
        public static void UpdateShelterItem(SheltersDescInfo shelterItem)
        {
            var editProductItem = GetEditableShelterItem(shelterItem.ShelterId, shelterItem.ShelterDescKey, 0);

            if (editProductItem == null)
            {
                return;
            }

            editProductItem.I_Id  = shelterItem.ItemId;
            editProductItem.I_Qty = shelterItem.ItemQuantity;
            OimsDataContext.SaveChanges();
        }
示例#9
0
        /// <summary>
        ///     Delete row of grid.
        /// </summary>
        public ActionResult DeleteGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId)
        {
            ViewData["ShelterId"] = shelterId;
            try
            {
                ShelterRepository.DeleteShelterItem(model);
            }
            catch (Exception exc)
            {
                TempData["DeleteErrorMsg"] = exc.Message;
                Logger.LogError(exc, "Error while deleting shelter's items from Supervisor zone");
            }

            return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId)));
        }
示例#10
0
        /// <summary>
        /// Check if the item modified for current product is unique for same. That is, it not exist already.
        /// </summary>
        /// <param name="sDesc">ProductDescInfo model.</param>
        /// <param name="action">Name of action for which need to check.</param>
        /// <returns>Return true if item is unique else false.</returns>
        public static bool IsUniqueItem(SheltersDescInfo sDesc, Action action)
        {
            var unique = false;

            switch (action)
            {
            case Action.New:
                // Check if ItemId selected already exists for this ShelterId
                var siN = (from sd in ShelterItems
                           where sd.I_Id == sDesc.ItemId && sd.P_Id == sDesc.ShelterId
                           select sd).FirstOrDefault();

                unique = siN == null;
                break;

            case Action.Update:
                var siU = (from sd in ShelterItems
                           where sd.I_Id == sDesc.ItemId && sd.P_Id == sDesc.ShelterId
                           select sd).FirstOrDefault();

                if (siU != null)
                {
                    if (siU.PD_Id == sDesc.ShelterDescKey)
                    {
                        unique = true;
                    }
                }
                else
                {
                    unique = true;
                }
                break;
            }

            return(unique);
        }