public CreateDiscrepencyReportControl()
        {
            currentEmployee = Util.ValidateUser(Constants.EMPLOYEE_ROLE.STORE_CLERK);
            inventory = new InventoryEntities();

            discrepancyBroker = new DiscrepancyBroker(inventory);
            itemBroker = new ItemBroker(inventory);
            item = new Item();
            itemPriceBroker = new ItemPriceBroker(inventory);
            itemprice = new ItemPrice();

            discrepancy = new Discrepancy();
            discrepancy.Id = discrepancyBroker.GetDiscrepancyId();
            discrepancy.CreatedDate = DateTime.Now;
            discrepancy.CreatedBy = Util.GetEmployee(new EmployeeBroker(inventory));
            discrepancy.Status = Converter.objToInt(Constants.VISIBILITY_STATUS.SHOW);
               // discrepancyDetailList = new System.Data.Objects.DataClasses.EntityCollection<DiscrepancyDetail>();

            dataColumn = new DataColumn[] { new DataColumn(columnName[0]),
                                            new DataColumn(columnName[1]),
                                            new DataColumn(columnName[2]),
                                            new DataColumn(columnName[3]),
                                            new DataColumn(columnName[4]),
                                            new DataColumn(columnName[5]) };
        }
        /// <summary>
        ///  Logically delete the ItemPrice table by setting the status to 2 in the ItemPrice table
        ///   Return Constants.DB_STATUS
        /// </summary>
        /// <param name="itemPrice"></param>
        /// <returns></returns>
        public Constants.DB_STATUS Delete(ItemPrice itemPrice)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;

            try
            {
                itemPriceObj = inventory.ItemPrices.Where(iObj => iObj.ItemId == itemPrice.ItemId).First();
                itemPriceObj.Status = 2;
                inventory.SaveChanges();
                status = Constants.DB_STATUS.SUCCESSFULL;
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }
            return status;
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the ItemPrices EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToItemPrices(ItemPrice itemPrice)
 {
     base.AddObject("ItemPrices", itemPrice);
 }
 /// <summary>
 /// Create a new ItemPrice object.
 /// </summary>
 /// <param name="itemId">Initial value of the ItemId property.</param>
 /// <param name="supplierId">Initial value of the SupplierId property.</param>
 /// <param name="price">Initial value of the Price property.</param>
 /// <param name="createdDate">Initial value of the CreatedDate property.</param>
 /// <param name="status">Initial value of the Status property.</param>
 public static ItemPrice CreateItemPrice(global::System.String itemId, global::System.String supplierId, global::System.Decimal price, global::System.DateTime createdDate, global::System.Int32 status)
 {
     ItemPrice itemPrice = new ItemPrice();
     itemPrice.ItemId = itemId;
     itemPrice.SupplierId = supplierId;
     itemPrice.Price = price;
     itemPrice.CreatedDate = createdDate;
     itemPrice.Status = status;
     return itemPrice;
 }
        private List<Item> GetReorderItemList(string supplierCode)
        {
            List<Item> reorderList = new List<Item>();
            List<Item> itemList = itemBroker.GetAllItem();
            ItemPrice itemPrice;

            foreach (Item item in itemList)
            {
                itemPrice = new ItemPrice();
                itemPrice.ItemId = item.Id;
                itemPrice.SupplierId = supplierCode;
                itemPrice = itemPriceBroker.GetItemPrice(itemPrice);

                if (itemPrice != null)
                {
                    int bal = itemBroker.GetCurrentBalance(item);

                    decimal price = (decimal)Converter.objToDouble(itemPrice.Price);

                    item.Cost = price; // set the price

                    if (bal + purchaseOrderBroker.GetPendingQuantity(item) < item.ReorderLevel)
                    {
                        reorderList.Add(item);
                    }
                }

            }

            return reorderList;
        }
        public Constants.ACTION_STATUS SelectItemDescription(string itemDescription, string supplierId)
        {
            Constants.ACTION_STATUS selectStatus = Constants.ACTION_STATUS.UNKNOWN;

            item = Util.GetItem(itemBroker, itemDescription);

            itemPrice = new ItemPrice();
            itemPrice.SupplierId = supplierId;
            itemPrice.ItemId = item.Id;
            itemPrice = itemPriceBroker.GetItemPrice(itemPrice);

            if (item != null && itemPrice != null)
            {
                selectStatus = Constants.ACTION_STATUS.SUCCESS;
            }
            else
            {
                selectStatus = Constants.ACTION_STATUS.FAIL;
            }

            return selectStatus;
        }
 /// <summary>
 ///  Retrieve the ItemPrice Detail information  from ItemPrice Table according to the ItemPrice Parameter
 /// </summary>
 /// <param name="itemPrice"></param>
 /// <returns></returns>
 public ItemPrice GetItemPrice(ItemPrice itemPrice)
 {
     try
     {
         itemPriceObj = inventory.ItemPrices.Where(iObj => iObj.ItemId.Contains(itemPrice.ItemId) && iObj.SupplierId.Contains(itemPrice.SupplierId)).First();
     }
     catch (Exception e)
     {
         itemPriceObj = null;
     }
     return itemPriceObj;
 }
        /// <summary>
        ///  Update ItemPrice data to ItemPrice Table according to the ItemPrice Parameter
        ///   Return Constants.DB_STATUS 
        /// </summary>
        /// <param name="itemPrice"></param>
        /// <returns></returns>
        public Constants.DB_STATUS Update(ItemPrice itemPrice)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;

            try
            {
                itemPriceObj = inventory.ItemPrices.Where(iObj => iObj.ItemId == itemPrice.ItemId).First();
                if (!itemPriceObj.Equals(null))
                {
                    Employee createdBy = inventory.Employees.Where(eObj => eObj.Id == itemPrice.CreatedBy.Id).First();
                    itemPriceObj.SupplierId = itemPrice.SupplierId;
                    itemPriceObj.Price = itemPrice.Price;
                    itemPriceObj.CreatedDate = itemPrice.CreatedDate;
                    itemPriceObj.CreatedBy = createdBy;
                    inventory.SaveChanges();
                    status = Constants.DB_STATUS.SUCCESSFULL;
                }
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }

            return status;
        }
        /// <summary>
        ///  Insert ItemPrice data to the ItemPrice Table according to the ItemPrice Parameter
        ///   Return Constants.DB_STATUS 
        /// </summary>
        /// <param name="newItemPrice"></param>
        /// <returns></returns>
        public Constants.DB_STATUS Insert(ItemPrice newItemPrice)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;

            try
            {
                inventory.AddToItemPrices(newItemPrice);
                inventory.SaveChanges();
                status = Constants.DB_STATUS.SUCCESSFULL;
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }

            return status;
        }