protected void saveButton_Click(object sender, EventArgs e)
        {
            string msg = string.Empty;

            List<PurchaseRequisitionBLL> purchaseRequisitions = new List<PurchaseRequisitionBLL>();
            PurchaseRequisitionBLL purchaseRequisition;
            decimal quantity = 0;
            TextBox requisitionQuantityTextBox;
            TextBox requiredDateTextBox;
            TextBox productNarrationTextBox;
            int i = 0;

            try
            {
                if (warehouseDropDownList.SelectedValue == "")
                {
                    msgbox.Visible = true; msgTitleLabel.Text = "Exception!!!"; msgDetailLabel.Text = "Warehouse Name field is required.";
                }
                else
                {
                    for (i = 0; i < selectedProductListGridView.Rows.Count; i++)
                    {
                        requisitionQuantityTextBox = (TextBox)selectedProductListGridView.Rows[i].FindControl("requisitionQuantityTextBox");
                        requiredDateTextBox = (TextBox)selectedProductListGridView.Rows[i].FindControl("requiredDateTextBox");
                        productNarrationTextBox = (TextBox)selectedProductListGridView.Rows[i].FindControl("productNarrationTextBox");

                        if (!string.IsNullOrEmpty(requisitionQuantityTextBox.Text.Trim()) && decimal.TryParse(requisitionQuantityTextBox.Text.Trim(), out quantity))
                        {
                            purchaseRequisition = new PurchaseRequisitionBLL();

                            purchaseRequisition.ProductId = selectedProductListGridView.Rows[i].Cells[0].Text.ToString();
                            purchaseRequisition.RequisitionQuantity = quantity.ToString();
                            purchaseRequisition.RequiredDate = LumexLibraryManager.ParseAppDate(requiredDateTextBox.Text.ToString());
                            purchaseRequisition.ProductNarration = productNarrationTextBox.Text.ToString();

                            purchaseRequisitions.Add(purchaseRequisition);
                        }
                        else
                        {
                            msg = "Product ID [" + selectedProductListGridView.Rows[i].Cells[0].Text.ToString() + "] has no valid quantity.";
                            msgbox.Visible = true; msgTitleLabel.Text = "Exception!!!"; msgDetailLabel.Text = msg;
                            return;
                        }
                    }

                    if (purchaseRequisitions.Count == selectedProductListGridView.Rows.Count)
                    {
                        purchaseRequisition = new PurchaseRequisitionBLL();
                        string purchaseRequisitionId = purchaseRequisition.SavePurchaseRequisition(purchaseRequisitions, warehouseDropDownList.SelectedValue.Trim(), narrationTextBox.Text.Trim());


                        string message = "Purchase Requisition <span class='actionTopic'>Created</span> Successfully with Purchase Requisition ID: <span class='actionTopic'>" + purchaseRequisitionId + "</span>.";
                        MyAlertBox("var callbackOk = function () { MyOverlayStart(); window.location = \"/UI/PurchaseRequisition/RequisitionList.aspx\"; }; SuccessAlert(\"" + "Process Succeed" + "\", \"" + message + "\", callbackOk);");


                    }
                    else
                    {

                    }
                }
            }
            catch (Exception ex)
            {
                msgbox.Visible = true; msgTitleLabel.Text = "Exception!!!"; msgDetailLabel.Text = ex.Message;
            }
            finally
            {
                purchaseRequisition = null;
            }
        }