protected void BtnAddItem_Click(object sender, EventArgs e)
 {
     try
     {
         List <PORecordDetail> poRecordDetailsList = new List <PORecordDetail>();
         foreach (GridViewRow r in GridViewPO.Rows)
         {
             PORecordDetail poRecordDetails = new PORecordDetail();
             poRecordDetails.ItemID    = (r.FindControl("Txtitemid") as TextBox).Text;
             poRecordDetails.UOM       = PurchasingLogic.GetUOM(poRecordDetails.ItemID, DdlSli.SelectedValue);
             poRecordDetails.Quantity  = int.Parse((r.FindControl("Txtquantity") as TextBox).Text);
             poRecordDetails.UnitPrice = PurchasingLogic.GetUnitPrice(poRecordDetails.ItemID, DdlSli.SelectedValue);
             poRecordDetailsList.Add(poRecordDetails);
         }
         PORecordDetail poRecordDetailsNew = new PORecordDetail();
         poRecordDetailsList.Add(poRecordDetailsNew);
         GridViewPO.DataSource = poRecordDetailsList;
         GridViewPO.DataBind();
     }
     //In the event when a wrong Supplier was selected or Invalid Item ID is entered.
     catch (Exception)
     {
         statusMessage.Text      = "Error! Please check that the correct Supplier and ItemID has been selected.";
         statusMessage.ForeColor = System.Drawing.Color.Red;
         statusMessage.Visible   = true;
     }
 }
Ejemplo n.º 2
0
        // Creating a single PODetails entry
        public static bool CreateSinglePODetails(ReorderRecord r)
        {
            using (SA45Team12AD context = new SA45Team12AD())
            {
                try
                {
                    // Finding the newly created PO record
                    PORecord pr = context.PORecords.OrderByDescending(x => x.PONumber).First();

                    // Req to populate the values for the new entry
                    InventoryCatalogue iv = context.InventoryCatalogues.Where(x => x.ItemID.Equals(r.ItemID)).First();                                              // To retrieve UOM
                    SupplierCatalogue  sc = context.SupplierCatalogues.Where(x => x.ItemID.Equals(r.ItemID)).Where(y => y.SupplierID.Equals(r.SupplierID)).First(); // TO retrieve price

                    // Creating our new entry...
                    PORecordDetail pd = new PORecordDetail();
                    pd.PONumber  = pr.PONumber;
                    pd.ItemID    = r.ItemID;
                    pd.Quantity  = r.OrderedQuantity;
                    pd.UOM       = iv.UOM;
                    pd.UnitPrice = sc.Price;

                    context.PORecordDetails.Add(pd);
                    context.SaveChanges();

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
        protected void DisplayEmptyGrid()
        {
            List <PORecordDetail> emptyList = new List <PORecordDetail>();
            PORecordDetail        n         = new PORecordDetail();

            emptyList.Add(n);
            GridViewGR.DataSource = emptyList;
            GridViewGR.DataBind();
        }
        protected void BindGrid()
        {
            PORecordDetail        poRecordDetails     = new PORecordDetail();
            List <PORecordDetail> poRecordDetailsList = new List <PORecordDetail>();

            poRecordDetailsList.Add(poRecordDetails);
            GridViewPO.DataSource = poRecordDetailsList;
            GridViewPO.DataBind();
        }
 protected void GridViewPO_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         List <PORecordDetail> emptyPO = new List <PORecordDetail>();
         PORecordDetail        p       = new PORecordDetail();
         emptyPO.Add(p);
         GridViewPO.DataSource = emptyPO;
         GridViewPO.DataBind();
     }
 }
Ejemplo n.º 6
0
 public static void AddItem(string ItemID, int Quantity, string UOM, double UnitPrice)
 {
     using (SA45Team12AD entities = new SA45Team12AD())
     {
         PORecordDetail poRecordDetails = new PORecordDetail();
         poRecordDetails.ItemID    = ItemID;
         poRecordDetails.Quantity  = Quantity;
         poRecordDetails.UOM       = UOM;
         poRecordDetails.UnitPrice = UnitPrice;
         entities.PORecordDetails.Add(poRecordDetails);
         entities.SaveChanges();
     }
 }
Ejemplo n.º 7
0
 private PORecordDetail CheckForGRQuantity(dynamic grRecords, PORecordDetail orderedItem)
 {
     //for each GR record, check if the ItemID matches with the Order item ItemID
     foreach (var received in grRecords)
     {
         if (orderedItem.ItemID == received.ItemID)
         {
             //Minus ordered quantity with received quantity
             int qty = (int)orderedItem.Quantity - (int)received.Quantity;
             orderedItem.Quantity = qty;
         }
     }
     return(orderedItem);
 }
        protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow && ((PORecordDetail)e.Row.DataItem).ItemID != null)
            {
                PORecordDetail pR       = (PORecordDetail)e.Row.DataItem;
                string         itemId   = pR.ItemID;
                string         itemName = InventoryLogic.GetItemName(itemId);

                Label LblDesc = (e.Row.FindControl("LblDesc") as Label);
                if (LblDesc != null)
                {
                    LblDesc.Text = itemName;
                }
            }
        }
Ejemplo n.º 9
0
        public void CreatePurchaseOrderDetails(int poNumber, string itemId, int quantity, string uom, double unitPrice)
        {
            using (SA45Team12AD entities = new SA45Team12AD())
            {
                PORecordDetail poRecordDetail = new PORecordDetail
                {
                    PONumber = poNumber,

                    ItemID = itemId,

                    Quantity  = quantity,
                    UOM       = uom,
                    UnitPrice = unitPrice,
                };
                entities.PORecordDetails.Add(poRecordDetail);
                entities.SaveChanges();
            }
        }
Ejemplo n.º 10
0
        //------------ Lim Chang Siang's Code Start Here-------------------------------//
        //This method Returns a list of PO details for Goods Receipt
        public List <PORecordDetail> GetPurchaseOrdersForGR(int POnumber)
        {
            using (SA45Team12AD ctx = new SA45Team12AD())
            {
                //Get a existing list of Order details
                List <PORecordDetail> poDetailList = ctx.PORecordDetails.Where(x => x.PONumber == POnumber).ToList();
                //fresh list to record updated list of Order details
                List <PORecordDetail> poDetailListWithGR = new List <PORecordDetail>();
                //Create a joined table GoodReceipt with GoodsReceiptDetails to check if the item has existing GR record
                var grRecords = ctx.GoodReceipts.Join(ctx.GoodReceiptDetails,
                                                      gr => gr.GRNumber,
                                                      grd => grd.GRNumber,
                                                      (gr, grd) => new
                {
                    PONumber = gr.PONumber,
                    ItemID   = grd.ItemID,
                    Quantity = grd.Quantity,
                    GRNumber = gr.GRNumber,
                }).Where(x => x.PONumber == POnumber).ToList();

                //Check for remaiaing GR quantity
                foreach (PORecordDetail orderedItem in poDetailList)
                {
                    //Add the updated Order detail into the fresh list.
                    PORecordDetail prd = CheckForGRQuantity(grRecords, orderedItem);
                    if (prd.Quantity > 0)
                    {
                        poDetailListWithGR.Add(prd);
                    }
                }
                try
                {
                    //Check for PO completion and if yes, change the PO Status
                    IsPOCompleted(poDetailListWithGR.Count, POnumber);
                }
                catch (Exception ex)
                {
                    //Exception will be thrown if an invalid PO number is entered, returning null value;
                    Console.WriteLine(ex.ToString());
                }
                //Return the Order list that has the updated reamining quantity.
                return(poDetailListWithGR);
            }
        }
        protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow && ((PORecordDetail)e.Row.DataItem).ItemID != null)
            {
                PORecordDetail poR      = (PORecordDetail)e.Row.DataItem;
                string         itemId   = poR.ItemID;
                double         poRPrice = (double)(poR.UnitPrice * poR.Quantity);

                Label LblDesc = (e.Row.FindControl("LblDesc") as Label);
                if (LblDesc != null)
                {
                    LblDesc.Text = InventoryLogic.GetItemName(itemId);
                }
                Label PriceLbl = (e.Row.FindControl("LblPrice") as Label);
                if (PriceLbl != null)
                {
                    PriceLbl.Text = ((double)(poR.UnitPrice * poR.Quantity)).ToString("c");
                }
            }
        }
        protected void OnRowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            Label LblSn = GridViewPO.Rows[e.RowIndex].Cells[0].FindControl("LblSn") as Label;
            int   sN    = int.Parse(LblSn.Text);

            List <PORecordDetail> poRecordDetailList = new List <PORecordDetail>();

            foreach (GridViewRow r in GridViewPO.Rows)
            {
                PORecordDetail poRecordDetails = new PORecordDetail();
                poRecordDetails.ItemID    = (r.FindControl("Txtitemid") as TextBox).Text;
                poRecordDetails.Quantity  = Convert.ToInt32((r.FindControl("Txtquantity") as TextBox).Text.ToString());
                poRecordDetails.UOM       = PurchasingLogic.GetUOM(poRecordDetails.ItemID, DdlSli.SelectedValue);
                poRecordDetails.UnitPrice = (double)(PurchasingLogic.GetUnitPrice(poRecordDetails.ItemID, DdlSli.SelectedValue));
                poRecordDetailList.Add(poRecordDetails);
            }
            poRecordDetailList.RemoveAt(sN - 1);
            GridViewPO.DataSource = poRecordDetailList;
            GridViewPO.DataBind();
        }
        protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow && ((PORecordDetail)e.Row.DataItem).ItemID != null)
            {
                PORecordDetail poR = (PORecordDetail)e.Row.DataItem;

                string itemId   = poR.ItemID;
                double poRPrice = (double)(PurchasingLogic.GetUnitPrice(itemId, DdlSli.SelectedValue) * poR.Quantity);

                Label DesLbl = (e.Row.FindControl("LblDes") as Label);
                if (DesLbl != null)
                {
                    DesLbl.Text = InventoryLogic.GetItemName(itemId);
                }
                Label UnpLbl = (e.Row.FindControl("LblUnp") as Label);
                if (UnpLbl != null)
                {
                    UnpLbl.Text = PurchasingLogic.GetUnitPrice(itemId, DdlSli.SelectedValue).ToString("c");
                }
                Label LblUOM = (e.Row.FindControl("LblUOM") as Label);
                if (LblUOM != null)
                {
                    LblUOM.Text = PurchasingLogic.GetUOM(itemId, DdlSli.SelectedValue);
                }
                Label LblPrice = (e.Row.FindControl("LblPrice") as Label);
                if (LblPrice != null)
                {
                    LblPrice.Text = ((double)(poR.Quantity * PurchasingLogic.GetUnitPrice(itemId, DdlSli.SelectedValue))).ToString("c");
                }

                TextBox Txtquantity = e.Row.FindControl("Txtquantity") as TextBox;
                int     Quantity    = int.Parse(Txtquantity.Text);
                total        += (PurchasingLogic.GetUnitPrice(itemId, DdlSli.SelectedValue) * Quantity);
                LblTotal.Text = total.ToString("c");
            }
        }