private void InsertExchangeRateFactor()
        {
            //Validate
            Page.Validate("valInsertExchangeRates");
            if (!Page.IsValid)
            {
                mpeSaveUndo.Hide();
                msgView.SetMessage("Payment exchange rate details not saved – invalid or missing data!", MessageType.Warning, PositionType.Auto);
                return;
            }

            string userCode    = Convert.ToString(Session["UserCode"]);
            int    month       = Convert.ToInt32(txtPaymentMonth.Text.Split('/')[0].ToString());
            int    year        = Convert.ToInt32(txtPaymentMonth.Text.Split('/')[1].ToString());
            string companyCode = ddlCompany.SelectedValue == "" ? txtCompany.Text.Split('-')[0].ToString().Trim() : ddlCompany.SelectedValue;

            paymentExchangeRatesBL = new PaymentExchangeRatesBL();
            DataSet updatedData = paymentExchangeRatesBL.InsertPaymentExchangeRates(companyCode, txtCurrency.Text.ToUpper(), month, year, Convert.ToDouble(txtExchangeRate.Text), userCode, out errorId);

            paymentExchangeRatesBL = null;

            if (errorId == 3)
            {
                msgView.SetMessage("Invalid month and year combination. Failed to save payment exchange rate details.", MessageType.Warning, PositionType.Auto);
            }
            else if (errorId == 4)
            {
                msgView.SetMessage("Invalid currency code. Failed to save payment exchange rate details. ", MessageType.Warning, PositionType.Auto);
            }
            else if (errorId == 1)
            {
                msgView.SetMessage("Payment exchange rate exists for this payment month and currency code.", MessageType.Success, PositionType.Auto);
            }
            else if (updatedData.Tables.Count != 0 && errorId != 2)
            {
                Session["ExchangeRateFactorData"] = updatedData.Tables[0];
                gvExchangeRateDetails.PageIndex   = 0;

                //WUIN-746 clearing sort hidden files
                hdnSortExpression.Value = string.Empty;
                hdnSortDirection.Value  = string.Empty;

                BindGrid(updatedData.Tables[0]);

                hdnInsertDataNotSaved.Value     = "N";
                txtPaymentMonth.Text            = string.Empty;
                txtExchangeRate.Text            = string.Empty;
                txtCurrency.Text                = string.Empty;
                gvExchangeRateDetails.PageIndex = 0;
                msgView.SetMessage("Payment exchange rate created successfully.", MessageType.Success, PositionType.Auto);
            }
            else
            {
                msgView.SetMessage("Failed to save payment exchange rate details.", MessageType.Warning, PositionType.Auto);
            }
        }
        protected void ddlCompany_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (ddlCompany.SelectedIndex > 0)
                {
                    txtCurrency.Enabled     = true;
                    txtExchangeRate.Enabled = true;
                    txtPaymentMonth.Enabled = true;

                    paymentExchangeRatesBL = new PaymentExchangeRatesBL();
                    DataSet paymentExchangeRateData = paymentExchangeRatesBL.GetPaymentExchangeRateData(ddlCompany.SelectedValue, out errorId);
                    paymentExchangeRatesBL = null;


                    if (paymentExchangeRateData.Tables.Count != 0 && errorId != 2)
                    {
                        Session["ExchangeRateFactorData"] = paymentExchangeRateData.Tables[0];
                        gvExchangeRateDetails.PageIndex   = 0;

                        //WUIN-746 clearing sort hidden files
                        hdnSortExpression.Value = string.Empty;
                        hdnSortDirection.Value  = string.Empty;

                        BindGrid(paymentExchangeRateData.Tables[0]);
                    }
                    else
                    {
                        ExceptionHandler("Error in fetching data", string.Empty);
                    }
                }
                else
                {
                    txtCurrency.Enabled     = false;
                    txtExchangeRate.Enabled = false;
                    txtPaymentMonth.Enabled = false;
                    imgBtnInsert.Enabled    = false;

                    dtEmpty = new DataTable();
                    gvExchangeRateDetails.DataSource = dtEmpty;
                    gvExchangeRateDetails.DataBind();
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler("Error in selecting company.", ex.Message);
            }
        }
        private void UpdateExchangeRateFactor()
        {
            if (!string.IsNullOrEmpty(hdnGridRowSelectedPrvious.Value))
            {
                string userCode = Convert.ToString(Session["UserCode"]);
                int    rowIndex = Convert.ToInt32(hdnGridRowSelectedPrvious.Value);

                //Calculate the rowindex for validation
                int rowIndexValidation = (gvExchangeRateDetails.PageIndex * gvExchangeRateDetails.PageSize) + rowIndex;

                Page.Validate("GroupUpdate_" + rowIndexValidation + "");
                if (!Page.IsValid)
                {
                    msgView.SetMessage("Payment exchange rate details not saved – invalid or missing data!", MessageType.Warning, PositionType.Auto);
                    return;
                }

                //int rowIndex = ((GridViewRow)((ImageButton)(e.CommandSource)).NamingContainer).RowIndex;
                string companyCode        = ((HiddenField)gvExchangeRateDetails.Rows[rowIndex].FindControl("hdnCompanyCode")).Value;
                string currencyCode       = ((Label)gvExchangeRateDetails.Rows[rowIndex].FindControl("lblCurrencyCode")).Text;
                string monthId            = ((HiddenField)gvExchangeRateDetails.Rows[rowIndex].FindControl("hdnMonthId")).Value;
                string exchangeRateFactor = ((TextBox)gvExchangeRateDetails.Rows[rowIndex].FindControl("txtExchangeRateFactor")).Text;

                paymentExchangeRatesBL = new PaymentExchangeRatesBL();
                DataSet updatedData = paymentExchangeRatesBL.UpdatePaymentExchangeRates(companyCode, currencyCode, Convert.ToInt32(monthId), Convert.ToDouble(exchangeRateFactor), userCode, out errorId);
                paymentExchangeRatesBL = null;

                if (updatedData.Tables.Count != 0 && errorId != 2)
                {
                    Session["ExchangeRateFactorData"] = updatedData.Tables[0];

                    //WUIN-746 clearing sort hidden files
                    hdnSortExpression.Value = string.Empty;
                    hdnSortDirection.Value  = string.Empty;

                    BindGrid(updatedData.Tables[0]);

                    hdnChangeNotSaved.Value         = "N";
                    hdnGridRowSelectedPrvious.Value = null;
                    msgView.SetMessage("Payment exchange rate details saved successfully.", MessageType.Success, PositionType.Auto);
                }
                else
                {
                    msgView.SetMessage("Failed to save payment exchange rate details.", MessageType.Warning, PositionType.Auto);
                }
            }
        }
        private void LoadData()
        {
            string primaryCompanyCode = string.Empty;

            paymentExchangeRatesBL = new PaymentExchangeRatesBL();
            DataSet initialData = paymentExchangeRatesBL.GetInitialData(out primaryCompanyCode, out errorId);

            paymentExchangeRatesBL = null;

            if (initialData.Tables.Count != 0 && errorId != 2)
            {
                hdnPageNumber.Value = "1";

                if (initialData.Tables.Count > 1)
                {
                    txtCompany.Text      = primaryCompanyCode;
                    ddlCompany.Visible   = false;
                    txtCompany.Visible   = true;
                    rfddlCompany.Enabled = false;
                    if (initialData.Tables[1].Rows.Count > 0)
                    {
                        Session["ExchangeRateFactorData"] = initialData.Tables[1];
                        BindGrid(initialData.Tables[1]);
                    }
                    else
                    {
                        dtEmpty = new DataTable();
                        gvExchangeRateDetails.DataSource = dtEmpty;
                        gvExchangeRateDetails.DataBind();
                    }
                }
                else
                {
                    ddlCompany.DataSource     = initialData.Tables[0];
                    ddlCompany.DataTextField  = "company_data";
                    ddlCompany.DataValueField = "company_code";
                    ddlCompany.DataBind();
                    ddlCompany.Items.Insert(0, new ListItem("-"));

                    ddlCompany.Visible   = true;
                    rfddlCompany.Enabled = true;
                    txtCompany.Visible   = false;
                }
            }
        }