//CRUD for PurchaseOrder
 public PurchaseOrder CreatePurchaseOrder(PurchaseOrder po)
 {
     bool isValid = false;
     PurchaseOrder purchaseOrder = new PurchaseOrder();
     try
     {
         if (ValidatePurchaseOrder(po, PurchaseOrderMethod.Create))
         {
             foreach (PurchaseOrderItem item in po.PurchaseOrderItems)
             {
                 isValid = ValidatePurchaseOrderItem(item, PurchaseOrderMethod.Create);
                 if (!isValid)
                     break;
             }
             if (isValid)
             {
                 purchaseOrder = purchaseOrderDAO.CreatePurchaseOrder(po);
             }
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex.Message);
     }
     return purchaseOrder;
 }
        // create Purchase Order and together with Purchase Order Items
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //justify how many suppliers involed
            List<Supplier> suppliers = SupplierInvolved();

            using (PurchaseOrderManager pom = new PurchaseOrderManager())
            {
                foreach (Supplier s in suppliers)
                {
                    PurchaseOrder purchaseOrder = new PurchaseOrder();

                    purchaseOrder.PONumber = pom.CreatePONumber();
                    purchaseOrder.DateOfOrder = DateTime.Now;
                    purchaseOrder.AttentionTo = Convert.ToInt32(ddlAttentionTo.SelectedValue);
                    purchaseOrder.CreatedBy = Membership.GetCurrentLoggedInUser().UserID;
                    purchaseOrder.IsDelivered = false;
                    DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
                    dtfi.ShortDatePattern = "MM/dd/yyyy";
                    dtfi.DateSeparator = "/";

                    purchaseOrder.DateToSupply = Convert.ToDateTime(txtDateToSupply.Text, dtfi);
                    purchaseOrder.SupplierID = s.SupplierID;

                    foreach (GridViewRow r in gvPOItems.Rows)
                    {
                        if (Convert.ToInt32(((DropDownList)r.FindControl("ddlSupplier")).SelectedValue.ToString()) == s.SupplierID)
                        {
                            PurchaseOrderItem item = new PurchaseOrderItem();
                            item.PurchaseOrder = purchaseOrder;
                            item.StationeryID = (int)gvPOItems.DataKeys[r.RowIndex].Value;
                            //item.QuantityToOrder = 5;
                            item.QuantityToOrder = Convert.ToInt32(((TextBox)r.FindControl("txtRecommend")).Text.ToString());
                            using (CatalogManager cm = new CatalogManager())
                            {
                                StationeryPriceSearchDTO criteria = new StationeryPriceSearchDTO();
                                criteria.SupplierID = Convert.ToInt32(((DropDownList)r.FindControl("ddlSupplier")).SelectedValue.ToString());
                                criteria.StationeryID = (int)item.StationeryID;
                                item.Price = cm.FindStationeryPricesByCriteria(criteria)[0].Price;

                                // record supplier ID for the PO
                                purchaseOrder.SupplierID = criteria.SupplierID;
                            }
                            purchaseOrder.PurchaseOrderItems.Add(item); // only this way works
                        }
                    }
                    pom.CreatePurchaseOrder(purchaseOrder);
                }
            }
        }
 public void DeletePurchaseOrder(PurchaseOrder purchaseOrder)
 {
     try
     {
         using (TransactionScope ts = new TransactionScope())
         {
             this.context.PurchaseOrders.Attach(purchaseOrder);
             this.context.PurchaseOrders.DeleteObject(purchaseOrder);
             this.context.SaveChanges();
             ts.Complete();
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
 public PurchaseOrder CreatePurchaseOrder(PurchaseOrder purchaseOrder)
 {
     try
     {
         using (TransactionScope ts = new TransactionScope())
         {
             this.context.PurchaseOrders.AddObject(purchaseOrder);
             this.context.SaveChanges();
             ts.Complete();
             return purchaseOrder;
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            List<Supplier> suppliers = SupplierInvolved();

            using (PurchaseOrderManager pom = new PurchaseOrderManager())
            {
                foreach (Supplier s in suppliers)
                {
                    PurchaseOrder purchaseOrder = new PurchaseOrder();

                    purchaseOrder.PONumber = pom.CreatePONumber();
                    purchaseOrder.DateOfOrder = DateTime.Now;
                    purchaseOrder.AttentionTo = Convert.ToInt32(ddlAttentionTo.SelectedValue);
                    purchaseOrder.CreatedBy = Membership.GetCurrentLoggedInUser().UserID;
                    purchaseOrder.IsDelivered = false;
                    DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
                    dtfi.ShortDatePattern = "MM/dd/yyyy";
                    dtfi.DateSeparator = "/";

                    purchaseOrder.DateToSupply = Convert.ToDateTime(txtDateToSupply.Text, dtfi);
                    purchaseOrder.SupplierID = s.SupplierID;

                    foreach (GridViewRow r in gvPOItems.Rows)
                    {
                        if (Convert.ToInt32(((DropDownList)r.FindControl("ddlSupplier")).SelectedValue.ToString()) == s.SupplierID)
                        {
                            PurchaseOrderItem item = new PurchaseOrderItem();
                            item.PurchaseOrder = purchaseOrder;
                            item.SpecialStationeryID = (int)gvPOItems.DataKeys[r.RowIndex].Value;
                            item.QuantityToOrder = Convert.ToInt32(((TextBox)r.FindControl("txtOrderQuantity")).Text.ToString());
                            item.Price = 5.0m;
                            purchaseOrder.SupplierID = Convert.ToInt32(((DropDownList)r.FindControl("ddlSupplier")).SelectedValue);
                            purchaseOrder.PurchaseOrderItems.Add(item); // only this way works
                        }
                    }
                    pom.CreatePurchaseOrder(purchaseOrder);
                }
            }
        }
        protected void ButtonAdd_Click(object sender, EventArgs e)
        {
            PurchaseOrderDAO poDAO = new PurchaseOrderDAO();
            PurchaseOrder po = new PurchaseOrder();
            DateTime t1 = new DateTime(2010, 12, 12);
            DateTime t2 = new DateTime(2010, 12, 20);
            po.SupplierID = 2;
            po.PONumber = "90000";
            po.DateOfOrder = t1;
            po.DateToSupply = t2;
            po.AttentionTo = 2;
            po.CreatedBy = 2;
            po.DateReceived = t2;
            po.IsDelivered = false;

            PurchaseOrderItem poitem1 = new PurchaseOrderItem();

            po.PurchaseOrderItems.Add(poitem1);

            PurchaseOrder savedPO = poDAO.CreatePurchaseOrder(po);
            //savedPO.PurchaseOrderID
            List<PurchaseOrderItem> poitems = savedPO.PurchaseOrderItems.ToList<PurchaseOrderItem>();
            //poitems[0].PurchaseOrderItemID
        }
 public PurchaseOrder UpdatePurchaseOrder(PurchaseOrder purchaseOrder)
 {
     try
     {
         PurchaseOrder purchaseOrderTemp = (from p in context.PurchaseOrders
                                            where p.PurchaseOrderID == purchaseOrder.PurchaseOrderID
                                            select p).FirstOrDefault();
         if (purchaseOrderTemp != null)
         {
             purchaseOrderTemp.PONumber = purchaseOrder.PONumber;
             purchaseOrderTemp.ReceivedBy = purchaseOrder.ReceivedBy;
             purchaseOrderTemp.AttentionTo = purchaseOrder.AttentionTo;
             purchaseOrderTemp.CreatedBy = purchaseOrder.CreatedBy;
             purchaseOrderTemp.DateOfOrder = purchaseOrder.DateOfOrder;
             purchaseOrderTemp.DateReceived = purchaseOrder.DateReceived;
             purchaseOrderTemp.DONumber = purchaseOrder.DONumber;
             purchaseOrderTemp.SupplierID = purchaseOrder.SupplierID;
             purchaseOrderTemp.IsDelivered = purchaseOrder.IsDelivered;
             purchaseOrderTemp.PurchaseOrderID = purchaseOrder.PurchaseOrderID;
             // add more properties here
         }
         using (TransactionScope ts = new TransactionScope())
         {
             this.context.SaveChanges();
             ts.Complete();
             return purchaseOrder;
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
        // validate puchase order
        private bool ValidatePurchaseOrder(PurchaseOrder purchaseOrder, PurchaseOrderMethod purchaseOrderMethod)
        {
            string errMsg = "";
            try
            {
                if (purchaseOrder != null)
                {
                    if (purchaseOrderMethod == PurchaseOrderMethod.Create)
                    {
                        errMsg = "Create Purchase Order failed. Please try again later";
                        if ((purchaseOrder.AttentionTo != 0 || purchaseOrder.AttentionToUser != null) &&
                            (purchaseOrder.CreatedBy != 0 || purchaseOrder.CreatedByUser != null) &&
                            (purchaseOrder.SupplierID != 0 || purchaseOrder.Supplier != null) &&
                            (purchaseOrder.PurchaseOrderItems != null) &&
                            (purchaseOrder.DateToSupply != null && DateTime.Compare(purchaseOrder.DateToSupply, DateTime.Now) >= 0) &&
                            (purchaseOrder.DateOfOrder != null && purchaseOrder.DateOfOrder.Date.ToShortDateString() == DateTime.Now.Date.ToShortDateString()))
                        {
                            return true;
                        }
                    }
                    if (purchaseOrderMethod == PurchaseOrderMethod.Update)
                    {
                        errMsg = "Update Purchase Order failed. Please try again later";
                        if ((purchaseOrder.AttentionTo != 0 || purchaseOrder.AttentionToUser != null) &&
                            (purchaseOrder.CreatedBy != 0 || purchaseOrder.CreatedByUser != null) &&
                            (purchaseOrder.SupplierID != 0 || purchaseOrder.Supplier != null) &&
                            (purchaseOrder.PurchaseOrderItems != null) &&
                            (purchaseOrder.DateToSupply != null) &&
                            (purchaseOrder.DateOfOrder != null))
                        {
                            return true;
                        }
                    }
                }
                return false;
            }

            catch (Exception)
            {
                throw new PurchaseOrderException(errMsg);
            }
        }
 public void DeletePurchaseOrder(PurchaseOrder po)
 {
     purchaseOrderDAO.DeletePurchaseOrder(po);
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the PurchaseOrders EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToPurchaseOrders(PurchaseOrder purchaseOrder)
 {
     base.AddObject("PurchaseOrders", purchaseOrder);
 }
 /// <summary>
 /// Create a new PurchaseOrder object.
 /// </summary>
 /// <param name="purchaseOrderID">Initial value of the PurchaseOrderID property.</param>
 /// <param name="pONumber">Initial value of the PONumber property.</param>
 /// <param name="dateOfOrder">Initial value of the DateOfOrder property.</param>
 /// <param name="attentionTo">Initial value of the AttentionTo property.</param>
 /// <param name="createdBy">Initial value of the CreatedBy property.</param>
 /// <param name="supplierID">Initial value of the SupplierID property.</param>
 /// <param name="isDelivered">Initial value of the IsDelivered property.</param>
 /// <param name="dateToSupply">Initial value of the DateToSupply property.</param>
 public static PurchaseOrder CreatePurchaseOrder(global::System.Int32 purchaseOrderID, global::System.String pONumber, global::System.DateTime dateOfOrder, global::System.Int32 attentionTo, global::System.Int32 createdBy, global::System.Int32 supplierID, global::System.Boolean isDelivered, global::System.DateTime dateToSupply)
 {
     PurchaseOrder purchaseOrder = new PurchaseOrder();
     purchaseOrder.PurchaseOrderID = purchaseOrderID;
     purchaseOrder.PONumber = pONumber;
     purchaseOrder.DateOfOrder = dateOfOrder;
     purchaseOrder.AttentionTo = attentionTo;
     purchaseOrder.CreatedBy = createdBy;
     purchaseOrder.SupplierID = supplierID;
     purchaseOrder.IsDelivered = isDelivered;
     purchaseOrder.DateToSupply = dateToSupply;
     return purchaseOrder;
 }