protected override void Page_Load(object sender, EventArgs e)
    {
        FiscalPeriodFormUI fiscalPeriodFormUI = new FiscalPeriodFormUI();

        if (!Page.IsPostBack)
        {
            if (Request.QueryString["FiscalPeriodId"] != null)
            {
                fiscalPeriodFormUI.Tbl_FiscalPeriodId        = Request.QueryString["FiscalPeriodId"];
                fiscalPeriodDetailsListUI.Tbl_FiscalPeriodId = Request.QueryString["FiscalPeriodId"];
                BindYearDropDownList();
                FillForm(fiscalPeriodFormUI, fiscalPeriodDetailsListUI);

                btnSave.Visible   = false;
                btnClear.Visible  = false;
                btnUpdate.Visible = true;
                btnDelete.Visible = true;
                lblHeading.Text   = "Update FiscalPeriod";
            }
            else
            {
                BindYearDropDownList();

                btnSave.Visible   = true;
                btnClear.Visible  = true;
                btnUpdate.Visible = false;
                btnDelete.Visible = false;
                lblHeading.Text   = "Add New FiscalPeriod";
            }
        }
    }
    public int DeleteFiscalPeriod(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        int resutl = 0;

        resutl = fiscalPeriodFormDAL.DeleteFiscalPeriod(fiscalPeriodFormUI);
        return(resutl);
    }
    public int AddFiscalPeriod(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        int resutl = 0;

        resutl = fiscalPeriodFormDAL.AddFiscalPeriod(fiscalPeriodFormUI);
        return(resutl);
    }
    public DataTable GetFiscalPeriodListById(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        DataTable dtb = new DataTable();

        dtb = fiscalPeriodFormDAL.GetFiscalPeriodListById(fiscalPeriodFormUI);
        return(dtb);
    }
    public int AddFiscalPeriod(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        int result = 0;

        try
        {
            using (SqlConnection SupportCon = new SqlConnection(connectionString))
            {
                SupportCon.Open();
                SqlCommand sqlCmd = new SqlCommand("SP_FiscalPeriod_Insert", SupportCon);
                sqlCmd.CommandType    = CommandType.StoredProcedure;
                sqlCmd.CommandTimeout = commandTimeout;

                sqlCmd.Parameters.Add("@CreatedBy", SqlDbType.NVarChar);
                sqlCmd.Parameters["@CreatedBy"].Value = fiscalPeriodFormUI.CreatedBy;

                sqlCmd.Parameters.Add("@tbl_OrganizationId", SqlDbType.NVarChar);
                sqlCmd.Parameters["@tbl_OrganizationId"].Value = fiscalPeriodFormUI.Tbl_OrganizationId;

                sqlCmd.Parameters.Add("@Opt_Year", SqlDbType.TinyInt);
                sqlCmd.Parameters["@Opt_Year"].Value = fiscalPeriodFormUI.Opt_Year;

                sqlCmd.Parameters.Add("@FirstDayDate", SqlDbType.DateTime);
                sqlCmd.Parameters["@FirstDayDate"].Value = fiscalPeriodFormUI.FirstDayDate;

                //sqlCmd.Parameters.Add("@FirstDayDate_Hijri", SqlDbType.BigInt);
                //sqlCmd.Parameters["@FirstDayDate_Hijri"].Value = fiscalPeriodFormUI.FirstDayDate_Hijri;

                sqlCmd.Parameters.Add("@LastDayDate", SqlDbType.DateTime);
                sqlCmd.Parameters["@LastDayDate"].Value = fiscalPeriodFormUI.LastDayDate;

                //sqlCmd.Parameters.Add("@LastDayDate_Hijri", SqlDbType.BigInt);
                //sqlCmd.Parameters["@LastDayDate_Hijri"].Value = fiscalPeriodFormUI.LastDayDate_Hijri;

                sqlCmd.Parameters.Add("@HistoricalYear", SqlDbType.Bit);
                sqlCmd.Parameters["@HistoricalYear"].Value = fiscalPeriodFormUI.HistoricalYear;

                sqlCmd.Parameters.Add("@NumberOfPeriod", SqlDbType.TinyInt);
                sqlCmd.Parameters["@NumberOfPeriod"].Value = fiscalPeriodFormUI.NumberOfPeriod;

                result = sqlCmd.ExecuteNonQuery();

                sqlCmd.Dispose();
                SupportCon.Close();
            }
        }
        catch (Exception exp)
        {
            logExcpUIobj.MethodName       = "AddFiscalPeriod()";
            logExcpUIobj.ResourceName     = "FiscalPeriodFormDAL.CS";
            logExcpUIobj.RecordId         = "";
            logExcpUIobj.ExceptionDetails = "Error Occured. System Generated Error is: " + exp.ToString();
            logExcpDALobj.SaveExceptionToDB(logExcpUIobj);

            log.Error("[FiscalPeriodFormDAL : AddFiscalPeriod] An error occured in the processing of Record. Details : [" + exp.ToString() + "]");
        }

        return(result);
    }
    public DataTable GetFiscalPeriodListById(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        DataSet   ds   = new DataSet();
        DataTable dtbl = new DataTable();

        try
        {
            using (SqlConnection SupportCon = new SqlConnection(connectionString))
            {
                SqlCommand sqlCmd = new SqlCommand("SP_FiscalPeriod_SelectById", SupportCon);
                sqlCmd.CommandType    = CommandType.StoredProcedure;
                sqlCmd.CommandTimeout = commandTimeout;

                sqlCmd.Parameters.Add("@tbl_FiscalPeriodId", SqlDbType.NVarChar);
                sqlCmd.Parameters["@tbl_FiscalPeriodId"].Value = fiscalPeriodFormUI.Tbl_FiscalPeriodId;

                using (SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd))
                {
                    adapter.Fill(ds);
                }
            }
            if (ds.Tables.Count > 0)
            {
                dtbl = ds.Tables[0];
            }
        }
        catch (Exception exp)
        {
            logExcpUIobj.MethodName       = "getFiscalPeriodListById()";
            logExcpUIobj.ResourceName     = "FiscalPeriodFormDAL.CS";
            logExcpUIobj.RecordId         = fiscalPeriodFormUI.Tbl_FiscalPeriodId;
            logExcpUIobj.ExceptionDetails = "Error Occured. System Generated Error is: " + exp.ToString();
            logExcpDALobj.SaveExceptionToDB(logExcpUIobj);

            log.Error("[FiscalPeriodFormDAL : getFiscalPeriodListById] An error occured in the processing of Record Id : " + fiscalPeriodFormUI.Tbl_FiscalPeriodId + ". Details : [" + exp.ToString() + "]");
        }
        finally
        {
            ds.Dispose();
        }

        return(dtbl);
    }
    //protected void gvFiscalPeriodDetails_RowEditing(object sender, GridViewEditEventArgs e)
    //{
    //    gvFiscalPeriodDetails.EditIndex = e.NewEditIndex;
    //    BindFiscalPeriodDetails(Convert.ToInt32(txtNumberOfPeriod.Text));

    //}

    //protected void gvFiscalPeriodDetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    //{
    //    gvFiscalPeriodDetails.EditIndex = -1;
    //    BindFiscalPeriodDetails(Convert.ToInt32(txtNumberOfPeriod.Text));

    //}

    //protected void gvFiscalPeriodDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
    //{
    //    int gvAccountLength = 0;
    //    try
    //    {
    //        for (int i = 0; i < Convert.ToInt32(txtNumberOfPeriod.Text); i++)
    //        {
    //            //if (e.RowIndex == i)
    //            //    gvAccountLength = gvAccountLength + Convert.ToInt32(((TextBox)(gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("txtLength"))).Text.Trim());
    //            //else
    //            //    gvAccountLength = gvAccountLength + Convert.ToInt32(((Label)gvFiscalPeriodDetails.Rows[i].FindControl("lblLength")).Text);
    //        }
    //        if (gvAccountLength <= Convert.ToInt32(txtNumberOfPeriod.Text) && gvAccountLength <= Convert.ToInt32(txtNumberOfPeriod.Text))
    //        {

    //            fiscalPeriodDetailsFormUI.ModifiedBy = SessionContext.UserGuid;
    //            fiscalPeriodDetailsFormUI.Tbl_OrganizationId = SessionContext.OrganizationId;
    //            fiscalPeriodDetailsFormUI.Tbl_FiscalPeriodId = Request.QueryString["FiscalPeriodDetailsId"];
    //            fiscalPeriodDetailsFormUI.Tbl_FiscalPeriodDetailsId = gvFiscalPeriodDetails.DataKeys[e.RowIndex]["tbl_FiscalPeriodDetailsId"].ToString();
    //            fiscalPeriodDetailsFormUI.PeriodSequence = Convert.ToInt32(((TextBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("txtPeriodSequence")).Text);
    //            fiscalPeriodDetailsFormUI.PeriodName = ((TextBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("txtPeriodName")).Text;
    //            fiscalPeriodDetailsFormUI.PeriodDate = Convert.ToDateTime(((TextBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("txtPeriodDate")).Text);


    //            CheckBox chckClosingFinancial = new CheckBox();
    //            chckClosingFinancial = (CheckBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("chkEditClosingFinancial");

    //            CheckBox ChckClosingHR = new CheckBox();
    //            ChckClosingHR = (CheckBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("chkEditClosingHR");

    //            CheckBox ChckClosingProcurement = new CheckBox();
    //            ChckClosingProcurement = (CheckBox)gvFiscalPeriodDetails.Rows[e.RowIndex].FindControl("chkEditClosingProcurement");

    //            if (chckClosingFinancial.Checked == true)
    //                fiscalPeriodDetailsFormUI.ClosingFinancial = true;
    //            else
    //                fiscalPeriodDetailsFormUI.ClosingFinancial = false;

    //            if (ChckClosingHR.Checked == true)
    //                fiscalPeriodDetailsFormUI.ClosingHR = true;
    //            else
    //                fiscalPeriodDetailsFormUI.ClosingHR = false;

    //            if (ChckClosingProcurement.Checked == true)
    //                fiscalPeriodDetailsFormUI.ClosingProcurement = true;
    //            else
    //                fiscalPeriodDetailsFormUI.ClosingProcurement = false;

    //            if (fiscalPeriodDetailsFormBAL.UpdateFiscalPeriodDetails(fiscalPeriodDetailsFormUI) == 1)
    //            {

    //                BindFiscalPeriodDetails(Convert.ToInt32(txtNumberOfPeriod.Text));
    //                divSuccess.Visible = true;
    //                divError.Visible = false;
    //                lblSuccess.Text = Resources.GlobalResource.msgRecordUpdatedSuccessfully;
    //            }
    //            else
    //            {
    //                divError.Visible = true;
    //                divSuccess.Visible = false;
    //                lblError.Text = Resources.GlobalResource.msgCouldNotUpdateRecord;
    //            }
    //        }
    //        else
    //        {
    //            divError.Visible = true;
    //            divSuccess.Visible = false;
    //            lblError.Text = "Addition of Length should not greater than Account Length and Maximum Acount length";
    //        }
    //    }
    //    catch (Exception exp)
    //    {
    //        logExcpUIobj.MethodName = "btnGridUpdate_Click()";
    //        logExcpUIobj.ResourceName = "System_Settings_GLAccountFormatForm.CS";
    //        logExcpUIobj.RecordId = ""; //gLAccountFormatDetailsFormUI.Tbl_GLAccountFormatDetialsId;
    //        logExcpUIobj.ExceptionDetails = "Error Occured. System Generated Error is: " + exp.ToString();
    //        logExcpDALobj.SaveExceptionToDB(logExcpUIobj);

    //        //log.Error("[System_Settings_GLAccountFormatForm : btnGridUpdate_Click] An error occured in the processing of Record Id : " + gLAccountFormatDetailsFormUI.Tbl_GLAccountFormatDetialsId + ". Details : [" + exp.ToString() + "]");
    //    }

    //}



    #endregion  gvFiscalPeriodDetails

    #endregion Events

    #region Methods
    private void FillForm(FiscalPeriodFormUI fiscalPeriodFormUI, FiscalPeriodDetailsListUI fiscalPeriodDetailsListUI)
    {
        try
        {
            DataTable dtb = fiscalPeriodFormBAL.GetFiscalPeriodListById(fiscalPeriodFormUI);

            if (dtb.Rows.Count > 0)
            {
                ddlOpt_Year.SelectedValue  = dtb.Rows[0]["Opt_Year"].ToString();
                chckHistoricalYear.Checked = Convert.ToBoolean(dtb.Rows[0]["HistoricalYear"].ToString());
                txtNumberOfPeriod.Text     = dtb.Rows[0]["NumberOfPeriod"].ToString();
                txtFirstDate.Text          = commonDateClasses.DateInTextBox(dtb.Rows[0]["FirstDayDate"].ToString());
                txtLastDate.Text           = commonDateClasses.DateInTextBox(dtb.Rows[0]["LastDayDate"].ToString());

                BindFiscalPeriod(fiscalPeriodDetailsListUI);
                BindFiscalPeriodDetails(Convert.ToInt32(txtNumberOfPeriod.Text));

                if (gvFiscalPeriodDetails.Rows.Count <= 0)
                {
                    InsertFicalPeriodDetails();
                }
            }
            else
            {
                lblError.Text    = Resources.GlobalResource.msgCouldNotLoadData;
                divError.Visible = true;
            }
        }
        catch (Exception exp)
        {
            logExcpUIobj.MethodName       = "FillForm()";
            logExcpUIobj.ResourceName     = "Reporting_Balance_Sheet_Supplier_Masters_FiscalPeriodForm.CS";
            logExcpUIobj.RecordId         = fiscalPeriodFormUI.Tbl_FiscalPeriodId;
            logExcpUIobj.ExceptionDetails = "Error Occured. System Generated Error is: " + exp.ToString();
            logExcpDALobj.SaveExceptionToDB(logExcpUIobj);

            log.Error("[Reporting_Balance_Sheet_Supplier_Masters_FiscalPeriodForm : FillForm] An error occured in the processing of Record Details : [" + exp.ToString() + "]");
        }
    }
    public int DeleteFiscalPeriod(FiscalPeriodFormUI fiscalPeriodFormUI)
    {
        int result = 0;

        try
        {
            using (SqlConnection SupportCon = new SqlConnection(connectionString))
            {
                SupportCon.Open();
                SqlCommand sqlCmd = new SqlCommand("SP_FiscalPeriod_Delete", SupportCon);

                sqlCmd.CommandType    = CommandType.StoredProcedure;
                sqlCmd.CommandTimeout = commandTimeout;

                sqlCmd.Parameters.Add("@tbl_FiscalPeriodId", SqlDbType.NVarChar);
                sqlCmd.Parameters["@tbl_FiscalPeriodId"].Value = fiscalPeriodFormUI.Tbl_FiscalPeriodId;

                result = sqlCmd.ExecuteNonQuery();

                sqlCmd.Dispose();
                SupportCon.Close();
            }
        }
        catch (Exception exp)
        {
            logExcpUIobj.MethodName       = "DeleteFiscalPeriod()";
            logExcpUIobj.ResourceName     = "FiscalPeriodFormDAL.CS";
            logExcpUIobj.RecordId         = fiscalPeriodFormUI.Tbl_FiscalPeriodId;
            logExcpUIobj.ExceptionDetails = "Error Occured. System Generated Error is: " + exp.ToString();
            logExcpDALobj.SaveExceptionToDB(logExcpUIobj);

            log.Error("[FiscalPeriodFormDAL : DeleteFiscalPeriod] An error occured in the processing of Record Id : " + fiscalPeriodFormUI.Tbl_FiscalPeriodId + ". Details : [" + exp.ToString() + "]");
        }

        return(result);
    }