protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                // divLoading.Visible = true;
                ClassWiseFeesTemplateTBL objClassTemplateBL = new ClassWiseFeesTemplateTBL();
                ClassWiseFeesTemplateTBO objClassTemplateBO = new ClassWiseFeesTemplateTBO();
                #region RollBack Transaction Starts

                DatabaseTransaction.OpenConnectionTransation();

                foreach (GridViewRow row in gvFees.Rows)
                {
                    ViewState["FeesCategoryMID"] = Convert.ToInt32(row.Cells[0].Text);
                    if (((CheckBox)row.FindControl("chkChild")).Checked)
                    {
                        objClassTemplateBO.SchoolMID          = Convert.ToInt32(Session[ApplicationSession.SCHOOLID]);
                        objClassTemplateBO.TrustMID           = Convert.ToInt32(Session[ApplicationSession.TRUSTID]);
                        objClassTemplateBO.ClassMID           = Convert.ToInt32(ViewState["ClassMID"].ToString());
                        objClassTemplateBO.DivisionTID        = Convert.ToInt32(ViewState["DivisionName"].ToString());
                        objClassTemplateBO.FeesAmount         = Convert.ToDouble(((TextBox)row.FindControl("txtFeesAmount")).Text);
                        objClassTemplateBO.FeesCategoryMID    = Convert.ToInt32(row.Cells[0].Text);
                        objClassTemplateBO.AcademicYear       = ddlAcademicYear.SelectedItem.Text;
                        objClassTemplateBO.LastModifiedDate   = DateTime.UtcNow.AddHours(5.5).ToString();
                        objClassTemplateBO.LastModifiedUserID = Convert.ToInt32(Session[ApplicationSession.USERID]);
                        if (objClassTemplateBO.FeesAmount == 0.0)
                        {
                            ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script language='javascript'>alert('Please Fill Fees Amount " + row.Cells[0].Text + ".');</script>");
                        }
                        else
                        {
                            DataTable Dt = Select_ClassTemlate_FeeCategory();

                            if (((CheckBox)row.FindControl("chkChild")).Checked)
                            {
                                if (Dt.Rows.Count > 0)
                                {
                                    ViewState["ClassTemplateTID"] = Convert.ToInt32(Dt.Rows[0][ClassWiseFeesTemplateTBO.CLASSWISEFEESTEMPLATET_CLASSWISEFEESTEMPLATETID].ToString());
                                    ApplicationResult objResultsInsert = new ApplicationResult();
                                    objClassTemplateBO.ClassWiseFeesTemplateTID = Convert.ToInt32(ViewState["ClassTemplateTID"].ToString());
                                    objResultsInsert = objClassTemplateBL.ClassWiseFeesTemplateT_Update(objClassTemplateBO);
                                    if (objResultsInsert != null)
                                    {
                                        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script language='javascript'>alert('Fees Amount Successfully Saved.');</script>");
                                    }
                                }
                                else
                                {
                                    ApplicationResult objResultsInsert = new ApplicationResult();

                                    objResultsInsert = objClassTemplateBL.ClassWiseFeesTemplateT_Insert(objClassTemplateBO);
                                    if (objResultsInsert != null)
                                    {
                                        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script language='javascript'>alert('Fees Amount Successfully Saved.');</script>");
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        DataTable Dt = Select_ClassTemlate_FeeCategory();
                        if (Dt.Rows.Count > 0)
                        {
                            ViewState["ClassTemplateTID"] = Convert.ToInt32(Dt.Rows[0][ClassWiseFeesTemplateTBO.CLASSWISEFEESTEMPLATET_CLASSWISEFEESTEMPLATETID].ToString());

                            DataTable dtFeeCollection = ValidateFeesbyFeesCollection(Convert.ToInt32(ViewState["ClassTemplateTID"].ToString()), objClassTemplateBO.ClassMID, Convert.ToInt32(objClassTemplateBO.DivisionTID), objClassTemplateBO.AcademicYear, Convert.ToInt32(Session[ApplicationSession.SCHOOLID]), 0);
                            if (dtFeeCollection.Rows.Count > 0)
                            {
                                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script language='This Fee Category is Not Update/Delete.');</script>");
                            }
                            else
                            {
                                ApplicationResult objResultsDelete = new ApplicationResult();
                                objResultsDelete = objClassTemplateBL.ClassWiseFeesTemplateT_Delete(Convert.ToInt32(Dt.Rows[0][ClassWiseFeesTemplateTBO.CLASSWISEFEESTEMPLATET_CLASSWISEFEESTEMPLATETID].ToString()));
                                if (objResultsDelete.status == ApplicationResult.CommonStatusType.SUCCESS)
                                {
                                    StudentFeesTemplateTBL objStudentTemplate = new StudentFeesTemplateTBL();
                                    objResultsDelete = objStudentTemplate.StudentFeesTemplateT_Delete_By_ClassWiseTemplateTID(Convert.ToInt32(Dt.Rows[0][ClassWiseFeesTemplateTBO.CLASSWISEFEESTEMPLATET_CLASSWISEFEESTEMPLATETID].ToString()), 0);
                                    if (objResultsDelete.status == ApplicationResult.CommonStatusType.SUCCESS)
                                    {
                                    }
                                }
                            }
                        }
                    }
                }
                DatabaseTransaction.CommitTransation();
                #endregion
                ViewState["ClassMID"]     = 0;
                ViewState["DivisionName"] = 0;
                ViewState["AcademicYear"] = "";
                hfCLassMID.Value          = "0";
                hfDivisionTID.Value       = "0";
                // ClearAll();
                //  Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "BindClass();", true);
                // divLoading.Visible = false;
                //  Response.Redirect("Class_Template.aspx");
            }
            catch (Exception ex)
            {
                DatabaseTransaction.RollbackTransation();
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }
        /// <summary>
        /// To Update details of ClassWiseFeesTemplateT in tbl_ClassWiseFeesTemplate_T table
        /// Created By : NafisaMulla, 2/7/2014
        /// Modified By :
        /// </summary>
        /// <param name="objClassWiseFeesTemplateTBO"></param>
        /// <returns></returns>
        public ApplicationResult ClassWiseFeesTemplateT_Update(ClassWiseFeesTemplateTBO objClassWiseFeesTemplateTBO)
        {
            try
            {
                pSqlParameter = new SqlParameter[11];


                pSqlParameter[0]           = new SqlParameter("@ClassWiseFeesTemplateTID", SqlDbType.Int);
                pSqlParameter[0].Direction = ParameterDirection.Input;
                pSqlParameter[0].Value     = objClassWiseFeesTemplateTBO.ClassWiseFeesTemplateTID;

                pSqlParameter[1]           = new SqlParameter("@TrustMID", SqlDbType.Int);
                pSqlParameter[1].Direction = ParameterDirection.Input;
                pSqlParameter[1].Value     = objClassWiseFeesTemplateTBO.TrustMID;

                pSqlParameter[2]           = new SqlParameter("@ClassMID", SqlDbType.Int);
                pSqlParameter[2].Direction = ParameterDirection.Input;
                pSqlParameter[2].Value     = objClassWiseFeesTemplateTBO.ClassMID;

                pSqlParameter[3]           = new SqlParameter("@SchoolMID", SqlDbType.Int);
                pSqlParameter[3].Direction = ParameterDirection.Input;
                pSqlParameter[3].Value     = objClassWiseFeesTemplateTBO.SchoolMID;

                pSqlParameter[4]           = new SqlParameter("@FeesCategoryMID", SqlDbType.Int);
                pSqlParameter[4].Direction = ParameterDirection.Input;
                pSqlParameter[4].Value     = objClassWiseFeesTemplateTBO.FeesCategoryMID;

                pSqlParameter[5]           = new SqlParameter("@DivisionTID", SqlDbType.Int);
                pSqlParameter[5].Direction = ParameterDirection.Input;
                pSqlParameter[5].Value     = objClassWiseFeesTemplateTBO.DivisionTID;

                pSqlParameter[6]           = new SqlParameter("@FeesAmount", SqlDbType.Float);
                pSqlParameter[6].Direction = ParameterDirection.Input;
                pSqlParameter[6].Value     = objClassWiseFeesTemplateTBO.FeesAmount;

                pSqlParameter[7]           = new SqlParameter("@AcademicYear", SqlDbType.VarChar);
                pSqlParameter[7].Direction = ParameterDirection.Input;
                pSqlParameter[7].Value     = objClassWiseFeesTemplateTBO.AcademicYear;

                pSqlParameter[8]           = new SqlParameter("@LastModifiedUserID", SqlDbType.Int);
                pSqlParameter[8].Direction = ParameterDirection.Input;
                pSqlParameter[8].Value     = objClassWiseFeesTemplateTBO.LastModifiedUserID;

                pSqlParameter[9]           = new SqlParameter("@LastModifiedDate", SqlDbType.VarChar);
                pSqlParameter[9].Direction = ParameterDirection.Input;
                pSqlParameter[9].Value     = objClassWiseFeesTemplateTBO.LastModifiedDate;

                pSqlParameter[10]           = new SqlParameter("@Isdeleted", SqlDbType.Int);
                pSqlParameter[10].Direction = ParameterDirection.Input;
                pSqlParameter[10].Value     = objClassWiseFeesTemplateTBO.Isdeleted;


                sSql = "usp_tbl_ClassWiseFeesTemplate_T_Update";
                int iResult = DatabaseTransaction.ExecuteNonQuery(CommandType.StoredProcedure, sSql, pSqlParameter);

                if (iResult > 0)
                {
                    ApplicationResult objResults = new ApplicationResult();
                    objResults.status = ApplicationResult.CommonStatusType.SUCCESS;
                    return(objResults);
                }
                else
                {
                    ApplicationResult objResults = new ApplicationResult();
                    objResults.status = ApplicationResult.CommonStatusType.FAILURE;
                    return(objResults);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                objClassWiseFeesTemplateTBO = null;
            }
        }