public List<Purchase_Order_Detail> getPurchaseOrderDetail(Purchase_Order_Detail para)
        {
            var q = from p in ContextDB.Purchase_Order_Detail
                    where (p.Item_Code == para.Item_Code || para.Item_Code == null)
                    && (p.Description == para.Description || para.Description == null)
                    && (p.Qty == para.Qty || para.Qty == null)
                    && (p.Price == para.Price || para.Price == null)
                    && (p.Amount == para.Amount || para.Amount == null)
                    select p;

            return q.ToList<Purchase_Order_Detail>();
        }
        public bool deletePurchaseOrderDetail(Purchase_Order_Detail del)
        {
            try
            {
                ContextDB.Purchase_Order_Detail.DeleteObject(del);
                ContextDB.SaveChanges();

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public bool updatePurchaseOrderDetail(Purchase_Order_Detail upd)
        {
            try
            {
                Purchase_Order_Detail p = new Purchase_Order_Detail();
                p.Item_Code = upd.Item_Code == null ? p.Item_Code : upd.Item_Code;
                p.Description = upd.Description == null ? p.Description : upd.Description;
                p.Qty = upd.Qty == null ? p.Qty : upd.Qty;
                p.Price = upd.Price == null ? p.Price : upd.Price;
                p.Amount = upd.Amount == null ? p.Amount : upd.Amount;

                ContextDB.SaveChanges();

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        protected void btn_Submit_Click(object sender, EventArgs e)
        {
            try
            {
                int currentPO = (Convert.ToInt32(lblPONumber.Text));
                int maxPO = Convert.ToInt32(purchaseOrderController.checkMaxPO());

                if (lblDate.Text == "")
                {
                    if (currentPO == maxPO)
                    {
                        lblError.Text = "PO has already been generated";
                    }
                }
                else
                {
                    Purchase_Order po = new Purchase_Order();
                    po.Supplier_ID = supplier.Supplier_ID;
                    po.Purchase_Order_No = lblPONumber.Text;
                    po.Deliver_To = txtAttn.Text;
                    lblDate.Text = Calendar1.SelectedDate.ToShortDateString();
                    DateTime dt = DateTime.Parse(lblDate.Text);
                    po.Expected_Date = dt;
                    po.Order_By = null;
                    po.Approve_By = null;
                    po.Approve_Date = DateTime.Now;
                    po.Receive_Flag = false;

                    purchaseOrderController.createPurchaseOrder(po);

                    List<Purchase_Order_Detail> pod = new List<Purchase_Order_Detail>();

                    foreach (GridViewRow row in PurOrderGridView.Rows)
                    {
                        Purchase_Order_Detail poDetail = new Purchase_Order_Detail(); //have to keep this initialising here for
                        poDetail.Purchase_Order_No = lblPONumber.Text;

                        poDetail.Item_Code = row.Cells[0].Text;

                        System.Diagnostics.Debug.WriteLine("foreach poDetail.Item_Code = " + poDetail.Item_Code);

                        poDetail.Description = row.Cells[1].Text;
                        poDetail.Qty = Convert.ToInt32(row.Cells[2].Text);
                        poDetail.Price = Convert.ToDecimal(row.Cells[3].Text);
                        poDetail.Amount = Convert.ToDecimal(row.Cells[4].Text);
                        pod.Add(poDetail);
                    }

                    purchaseOrderController.createPruchaseOrderDetail(pod);
                    lblError.Text = "Succcessfully generate the PO";

                    purchaseOrderController.update_GenID(Purchase_Order);
                    if (emailSupplier(supplier.Email))
                    {
                        lblEmailStatus.Text = "Email sent to supplier";

                    }

                    else
                    {
                        lblEmailStatus.Text = "Incorrect Email address, email not sent";
                    }

                }
            }

            catch (Exception error)
            {

                lblError.Text = error.ToString();
            }
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the Purchase_Order_Detail EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToPurchase_Order_Detail(Purchase_Order_Detail purchase_Order_Detail)
 {
     base.AddObject("Purchase_Order_Detail", purchase_Order_Detail);
 }
 /// <summary>
 /// Create a new Purchase_Order_Detail object.
 /// </summary>
 /// <param name="purchase_Order_No">Initial value of the Purchase_Order_No property.</param>
 /// <param name="item_Code">Initial value of the Item_Code property.</param>
 public static Purchase_Order_Detail CreatePurchase_Order_Detail(global::System.String purchase_Order_No, global::System.String item_Code)
 {
     Purchase_Order_Detail purchase_Order_Detail = new Purchase_Order_Detail();
     purchase_Order_Detail.Purchase_Order_No = purchase_Order_No;
     purchase_Order_Detail.Item_Code = item_Code;
     return purchase_Order_Detail;
 }