/// <summary>
 /// Create a new DiscrepancyDetail object.
 /// </summary>
 /// <param name="id">Initial value of the Id property.</param>
 /// <param name="discrepancyType">Initial value of the DiscrepancyType property.</param>
 /// <param name="qty">Initial value of the Qty property.</param>
 public static DiscrepancyDetail CreateDiscrepancyDetail(global::System.Int32 id, global::System.Int32 discrepancyType, global::System.Int32 qty)
 {
     DiscrepancyDetail discrepancyDetail = new DiscrepancyDetail();
     discrepancyDetail.Id = id;
     discrepancyDetail.DiscrepancyType = discrepancyType;
     discrepancyDetail.Qty = qty;
     return discrepancyDetail;
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the DiscrepancyDetails EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToDiscrepancyDetails(DiscrepancyDetail discrepancyDetail)
 {
     base.AddObject("DiscrepancyDetails", discrepancyDetail);
 }
        public Constants.DB_STATUS Delete(DiscrepancyDetail discrepancyDetail)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;

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

            return status;
        }
        public Constants.DB_STATUS Update(DiscrepancyDetail discrepancyDetail)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;
            try
            {
                discrepancyDetailObj = inventory.DiscrepancyDetails.Where(disDetailObj => disDetailObj.Id == discrepancyDetail.Id).First();
                Discrepancy disId = inventory.Discrepancies.Where(d => d.Id == discrepancyDetail.Discrepancy.Id).First();
                Item item = inventory.Items.Where(i => i.Id == discrepancyDetail.Item.Id).First();
                discrepancyDetailObj.Qty = discrepancyDetail.Qty;
                discrepancyDetailObj.Discrepancy = disId;
                discrepancyDetailObj.Item = item;
                discrepancyDetailObj.DiscrepancyType = discrepancyDetail.DiscrepancyType;
                discrepancyDetailObj.Qty = discrepancyDetail.Qty;
                discrepancyDetailObj.Remarks = discrepancyDetail.Remarks;
                inventory.SaveChanges();
                status = Constants.DB_STATUS.SUCCESSFULL;
            }
            catch (Exception e)
            {
                status = Constants.DB_STATUS.FAILED;
            }

            return status;
        }
        public Constants.DB_STATUS Insert(DiscrepancyDetail discrepancyDetail)
        {
            Constants.DB_STATUS status = Constants.DB_STATUS.UNKNOWN;
            //disDetail = inventory.DiscrepancyDetails.Where(disDetailObj => disDetailObj.Id == discrepancyDetail.Id).FirstOrDefault();
            //disDetail.ItemReference = discrepancyDetail.ItemReference;
            // disDetail.Qty = discrepancyDetail.Qty;
            // disDetail.Remarks = discrepancyDetail.Remarks;

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

            return status;
        }
 public DiscrepancyDetail GetDiscrepancyDetail(DiscrepancyDetail discrepancyDetail)
 {
     discrepancyDetailObj = inventory.DiscrepancyDetails.Where(disDetailObj => disDetailObj.Id == discrepancyDetail.Id).First();
     if (!discrepancyDetailObj.Equals(null))
         return discrepancyDetailObj;
     return null;
 }
        /// <summary>
        ///     Show the added item in the table
        ///     Created By:JinChengCheng
        ///     Created Date:26-01-2012
        ///     Modified By:
        ///     Modified Date:
        ///     Modification Reason:
        ///     Modified By:
        ///     Modified Date:
        ///     Modification Reason:
        /// </summary>
        /// <param name="discrepancyDetail"></param>
        /// <returns>The return type of this method is datatable.</returns>
        public Constants.ACTION_STATUS SelectAdd(string itemId, int qty, string reason)
        {
            Item item = new Item();
            item.Id = itemId;
            item = itemBroker.GetItem(item);

            if (item != null && reason != String.Empty)
            {
                DiscrepancyDetail dd = new DiscrepancyDetail();
                //dd.Discrepancy = discrepancy;
                dd.Item = item;
                int amount = qty * (int)item.Cost;
                if (amount >= 250)
                {
                    dd.DiscrepancyType = Converter.objToInt(Constants.DISCREPANCY_TYPE.MANAGER);
                }
                else
                {
                    dd.DiscrepancyType = Converter.objToInt(Constants.DISCREPANCY_TYPE.SUPERVISOR);
                }
                dd.Qty = qty;
                dd.Remarks = reason;
                dd.Status = Converter.objToInt(Constants.VISIBILITY_STATUS.SHOW);
                discrepancy.DiscrepancyDetails.Add(dd);
            }

            return Constants.ACTION_STATUS.SUCCESS;
        }