protected void btnSaveOrder_Click(object sender, EventArgs e)
    {
        PCSN.InvoiceSystem.BusinessLogicLayer.Order Order = new PCSN.InvoiceSystem.BusinessLogicLayer.Order();
        long OrderMasterID = 0;
        long OrderDetailID = 0;

        if (txtItemID.Text == "")
        {
            // This runs When a new Order is Created or New Item Add in a Order
            if (txtOrderMasterID.Text != "")
            {
                OrderMasterID = Convert.ToInt32(txtOrderMasterID.Text);
            }
            if (ValidateClientSide())
            {
                if (txtOrderMasterID.Text == "")
                {
                    OrderMasterID         = Order.InsertOrderMaster(Convert.ToInt32(lblOrderNumber.Text), lblHeaderDate.Text.ToString(), txtDueDate.Text.ToString(), Convert.ToInt32(txtClientID.Text), lblTotalAmount.Text.ToString());
                    txtOrderMasterID.Text = OrderMasterID.ToString();
                }
                else
                {
                    OrderMasterID = Convert.ToInt32(txtOrderMasterID.Text);
                }
                if (OrderMasterID > 0)
                {
                    txtOrderMasterID.Text = OrderMasterID.ToString();
                    OrderDetailID         = Order.InsertOrderDetail(OrderMasterID, txtItem.Text.ToString(), txtDescription.Text.ToString(), Convert.ToInt32(txtQuantity.Text), Convert.ToInt32(txtUnitPrice.Text), Convert.ToInt32(txtItemAmount.Text));

                    dtOrderEdit         = Order.GetOrderByID(OrderMasterID);
                    lblTotalAmount.Text = "0";
                    for (int a = 0; a < dtOrderEdit.Rows.Count; a++)
                    {
                        if (dtOrderEdit.Rows[a]["ItemAmount"].ToString() == null || dtOrderEdit.Rows[a]["ItemAmount"].ToString() == "")
                        {
                        }
                        else
                        {
                            lblTotalAmount.Text = Convert.ToString(Convert.ToInt32(lblTotalAmount.Text) + Convert.ToInt32(dtOrderEdit.Rows[a]["ItemAmount"].ToString()));
                        }
                    }
                    Order.UpdateOrderMaster(Convert.ToInt32(txtOrderMasterID.Text.ToString()), Convert.ToInt32(lblOrderNumber.Text.ToString()), lblHeaderDate.Text.ToString(), txtDueDate.Text.ToString(), Convert.ToInt32(txtClientID.Text.ToString()), lblTotalAmount.Text.ToString());
                }


                if (OrderMasterID > 0)
                {
                    lblErrorMessage.Text = "This Item has been saved.";
                    if (lblTotalAmount.Text == "")
                    {
                        lblTotalAmount.Text = "0";
                    }
                    lblTotalAmount.Text = Convert.ToString(Convert.ToInt32(lblTotalAmount.Text) + Convert.ToInt32(txtItemAmount.Text));
                    ClearControlDetail();
                }
            }
        }
        else
        {
            // This runs when an Item is being Edited
            if (ValidateClientSide())
            {
                if (txtOrderMasterID.Text != "")
                {
                    OrderMasterID = Convert.ToInt32(txtOrderMasterID.Text);
                    Order.UpdateOrderDetail(Convert.ToInt32(txtItemID.Text), Convert.ToInt32(txtOrderMasterID.Text), txtItem.Text.ToString(), txtDescription.Text.ToString(), Convert.ToInt32(txtQuantity.Text), Convert.ToInt32(txtUnitPrice.Text), Convert.ToInt32(txtItemAmount.Text));

                    dtOrderEdit         = Order.GetOrderByID(OrderMasterID);
                    lblTotalAmount.Text = "0";
                    for (int a = 0; a < dtOrderEdit.Rows.Count; a++)
                    {
                        if (dtOrderEdit.Rows[a]["ItemAmount"].ToString() == null || dtOrderEdit.Rows[a]["ItemAmount"].ToString() == "")
                        {
                        }
                        else
                        {
                            lblTotalAmount.Text = Convert.ToString(Convert.ToInt32(lblTotalAmount.Text) + Convert.ToInt32(dtOrderEdit.Rows[a]["ItemAmount"].ToString()));
                        }
                    }
                    Order.UpdateOrderMaster(Convert.ToInt32(txtOrderMasterID.Text.ToString()), Convert.ToInt32(lblOrderNumber.Text.ToString()), lblHeaderDate.Text.ToString(), txtDueDate.Text.ToString(), Convert.ToInt32(txtClientID.Text.ToString()), lblTotalAmount.Text.ToString());
                }
                lblErrorMessage.Text = "This Item has been Updated.";
                ClearControlDetail();
            }
        }

        if (OrderMasterID != 0)
        {
            PopulateOrders(OrderMasterID);
            lblTotalAmount.Text = "0";
            dtOrderEdit         = Order.GetOrderByID(OrderMasterID);
            for (int a = 0; a < dtOrderEdit.Rows.Count; a++)
            {
                if (dtOrderEdit.Rows[a]["ItemAmount"].ToString() == null || dtOrderEdit.Rows[a]["ItemAmount"].ToString() == "")
                {
                }
                else
                {
                    lblTotalAmount.Text = Convert.ToString(Convert.ToInt32(lblTotalAmount.Text) + Convert.ToInt32(dtOrderEdit.Rows[a]["ItemAmount"].ToString()));
                }
            }
        }
    }