private void BindGrid(int currentPage)
        {
            try
            {
                SisPackController.AdministrarGrillas.Configurar(dtgLocalidades, "LocalidadID", 400);


                ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();
                codigoPostalRetiro.ProvinciaID   = Utiles.Validaciones.obtieneEntero(ddlProvincia.SelectedValue);
                codigoPostalRetiro.CPDesdeFiltro = txtCodigoPostalDesde.Text;
                codigoPostalRetiro.CPHastaFiltro = txtCodigoPostalHasta.Text;
                string agrupacion       = txtAgrupacion.Text;
                string calle            = txtCalle.Text;
                DsCodigoPostalRetiro ds = codigoPostalRetiro.GetCodigoPostalRetiroByUnidadVentaID(UnidadVentaID, agrupacion, calle);

                IProvincia provincia = ProvinciaFactory.GetProvincia();
                provincia.ProvinciaID = codigoPostalRetiro.ProvinciaID;
                provincia.Consultar();
                lblProvinciaSel.Text = provincia.ProvinciaDescrip;
                txtProvinciaSel.Text = provincia.ProvinciaID.ToString();
                lblPais.Text         = provincia.Pais.PaisDescrip;
                txtPaisSel.Text      = provincia.Pais.PaisID.ToString();
                chkPais.Visible      = true;
                chkProvincia.Visible = true;

                dtgLocalidades.DataSource = ds;
                dtgLocalidades.DataBind();
                Session["DsCodigoPostalRetiroCliente"] = ds;

                if (ds.Datos.Count > 0)
                {
                    this.dtgLocalidades.CurrentPageIndex = currentPage;
                    this.dtgLocalidades.DataSource       = ds;
                    this.dtgLocalidades.DataBind();
                    MostrarBotones(true);
                }

                if (Utiles.Validaciones.obtieneEntero(this.ddlProvincia.SelectedValue) == (int)NegociosSisPackInterface.SisPack.Provincia.BsAs)
                {
                    dtgLocalidades.Columns[6].Visible = true;
                }
                else
                {
                    dtgLocalidades.Columns[6].Visible = false;
                }
            }
            catch (Exception ex)
            {
                ManejaErrores(ex);
            }
        }
        private void Eliminar()
        {
            if (opcionGeneral)
            {
                foreach (DataGridItem item in dtgLocalidadesCodigoPostal.Items)
                {
                    CheckBox chk = (CheckBox)item.FindControl("chkEliminar");
                    if (chk.Checked == true)
                    {
                        ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();
                        codigoPostalRetiro.CodigoPostalRetiroID = Utiles.Validaciones.obtieneEntero(item.Cells[0].Text);
                        codigoPostalRetiro.Eliminar(this.usuario);
                    }
                }
                HGDataBind(false);
                LimpiarSeleccion();
            }
            else
            {
                foreach (DataGridItem item in dtgLocalidadesCodigoPostalAgencia.Items)
                {
                    CheckBox chk = (CheckBox)item.FindControl("chkEliminar");
                    if (chk.Checked == true)
                    {
                        ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();
                        codigoPostalRetiro.CodigoPostalRetiroAgenciaID = Utiles.Validaciones.obtieneEntero(item.Cells[0].Text);
                        codigoPostalRetiro.EliminarAgencia(this.usuario);
                    }
                }
                HGDataBindAgencias(false);
                LimpiarSeleccion();
            }

            string script = "";

            script += "			alert('Los datos se guardaron correctamente.');\n";
            //if (opcionGeneral)
            //    script += "			window.location.href = 'CodigoPostalRetiro.aspx?Opcion=General';\n";
            //else
            //    script += "			window.location.href = 'CodigoPostalRetiro.aspx?Opcion=Particular';\n";

            ScriptManager.RegisterClientScriptBlock(this.UpdatePanel2,
                                                    UpdatePanel2.GetType(),
                                                    "muestraMensajeEliminar",
                                                    script,
                                                    true);
            Consultar();
            ConsultarAsignadas();
        }
        private void HGDataBindAgencias(bool configurarExportarExcel)
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgLocalidadesCodigoPostalAgencia, "CodigoPostalRetiroAgenciaID", 400);

            if (configurarExportarExcel == true)
            {
                // Tengo qu econfigurar para exportar a excel
                dtgLocalidadesCodigoPostal.AllowPaging         = false;
                dtgLocalidadesCodigoPostal.Columns[12].Visible = false;
                dtgLocalidadesCodigoPostal.BorderWidth         = Unit.Pixel(0);
                dtgLocalidadesCodigoPostal.BorderColor         = System.Drawing.Color.White;
                dtgLocalidadesCodigoPostal.BorderStyle         = BorderStyle.None;
            }

            ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();

            codigoPostalRetiro.ProvinciaID = Utiles.Validaciones.obtieneEntero(ddlProvincia.SelectedValue);

            codigoPostalRetiro.CPDesdeFiltro = this.txtCPDesdeFiltro.Text;
            codigoPostalRetiro.CPHastaFiltro = this.txtCPHastaFiltro.Text;
            string localidadDescrip            = this.txtLocalidadEditar.Text;
            string unidadVentaDescrip          = this.txtUnidadVenta.Text;
            string tarifarioDescrip            = this.txtTarifarioDescrip.Text;
            DsCodigoPostalRetiro dsLocalidades = codigoPostalRetiro.GetCodigoPostalRetiroAgencia(localidadDescrip, unidadVentaDescrip, tarifarioDescrip);

            Session["DsLocalidadesRetiroExcel"] = dsLocalidades;

            this.dtgLocalidadesCodigoPostalAgencia.DataSource = dsLocalidades;
            //this.hgLocalidadesCodigoPostal.DataMember = "Datos";
            this.dtgLocalidadesCodigoPostalAgencia.DataBind();

            if (Utiles.Validaciones.obtieneEntero(this.ddlProvincia.SelectedValue) == (int)NegociosSisPackInterface.SisPack.Provincia.BsAs)
            {
                dtgLocalidadesCodigoPostalAgencia.Columns[5].Visible = true;
            }
            else
            {
                dtgLocalidadesCodigoPostalAgencia.Columns[5].Visible = false;
            }
        }
        private void Guardar()
        {
            if (opcionGeneral)
            {
                Page.Validate();
                if (!Page.IsValid)
                {
                    return;
                }
                Validaciones();

                DsLocalidadesCodigosPostales ds = (DsLocalidadesCodigosPostales)Session["DsLocalidadesRetiro"];
                foreach (DataGridItem item in dtgLocalidades.Items)
                {
                    DsLocalidadesCodigosPostales.DatosRow dr = (DsLocalidadesCodigosPostales.DatosRow)ds.Datos.Rows[item.DataSetIndex];
                    CheckBox chk = (CheckBox)item.FindControl("chkAsignar");
                    dr.Seleccionado = chk.Checked;
                }
                Session["DsLocalidadesRetiro"] = ds;

                foreach (DsLocalidadesCodigosPostales.DatosRow dr in ds.Datos)
                {//Localidades
                    if (dr.Seleccionado == true)
                    {
                        ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();
                        codigoPostalRetiro.CodigoPostalRetiroID     = 0;
                        codigoPostalRetiro.LocalidadID              = dr.IsLocalidadIDNull() ? 0 : dr.LocalidadID;
                        codigoPostalRetiro.CodigoPostalID           = dr.IsCodigoPostalIDNull() ? 0 : dr.CodigoPostalID;
                        codigoPostalRetiro.TarifarioRetiroEntregaID = Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaID.Text);
                        codigoPostalRetiro.AgenciaWebID             = Utiles.Validaciones.obtieneEntero(this.busqAgenciaRetiro.AgenciaID);
                        //  codigoPostalRetiro.AgenciaRTID = Utiles.Validaciones.obtieneEntero(this.busqAgenciaReferencia.AgenciaID);
                        for (int i = 0; i <= lstUnidadesVenta.Items.Count - 1; i++)
                        {//recorro la lista de unidades de venta
                            if (lstUnidadesVenta.Items[i].Selected)
                            {
                                IUnidadVentaAgenciaCodigoPostal unidadesVenta = UnidadVentaAgenciaCodigoPostalFactory.GetUnidadVentaAgenciaCodigoPostalFactory();
                                if (!chkCambioUnVta.Checked)
                                {
                                    unidadesVenta.UnidadVentaID = Utiles.Validaciones.obtieneEntero(lstUnidadesVenta.Items[i].Value);
                                    codigoPostalRetiro.UnidadesVentas.Add(unidadesVenta.UnidadVentaID);
                                    codigoPostalRetiro.CategoriaUVenta.Add(0);
                                }
                                else
                                {
                                    unidadesVenta.CategoriaUVentaID = Utiles.Validaciones.obtieneEntero(lstUnidadesVenta.Items[i].Value);
                                    codigoPostalRetiro.UnidadesVentas.Add(0);
                                    codigoPostalRetiro.CategoriaUVenta.Add(unidadesVenta.CategoriaUVentaID);
                                }
                            }
                        }

                        codigoPostalRetiro.CategoriaUnVta = chkCambioUnVta.Checked;
                        codigoPostalRetiro.Guardar(this.usuario);
                    }
                }
                HGDataBind(false);
                LimpiarSeleccion();
            }
            else
            {
                Page.Validate();
                if (!Page.IsValid)
                {
                    return;
                }
                Validaciones();

                DsLocalidadesCodigosPostales ds = (DsLocalidadesCodigosPostales)Session["DsLocalidadesRetiro"];
                foreach (DataGridItem item in dtgLocalidades.Items)
                {
                    DsLocalidadesCodigosPostales.DatosRow dr = (DsLocalidadesCodigosPostales.DatosRow)ds.Datos.Rows[item.DataSetIndex];
                    CheckBox chk = (CheckBox)item.FindControl("chkAsignar");
                    dr.Seleccionado = chk.Checked;
                }
                Session["DsLocalidadesRetiro"] = ds;

                foreach (DsLocalidadesCodigosPostales.DatosRow dr in ds.Datos)
                {//Localidades
                    if (dr.Seleccionado == true)
                    {
                        ICodigoPostalRetiro codigoPostalRetiro = CodigoPostalRetiroFactory.GetCodigoPostal();
                        codigoPostalRetiro.CodigoPostalRetiroAgenciaID = 0;
                        codigoPostalRetiro.LocalidadID              = dr.IsLocalidadIDNull() ? 0 : dr.LocalidadID;
                        codigoPostalRetiro.CodigoPostalID           = dr.IsCodigoPostalIDNull() ? 0 : dr.CodigoPostalID;
                        codigoPostalRetiro.TarifarioRetiroEntregaID = Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaID.Text);
                        codigoPostalRetiro.AgenciaID = Utiles.Validaciones.obtieneEntero(this.busqAgenciaRetiro.AgenciaID);
                        for (int i = 0; i <= lstUnidadesVenta.Items.Count - 1; i++)
                        {//recorro la lista de unidades de venta
                            if (lstUnidadesVenta.Items[i].Selected)
                            {
                                IUnidadVentaAgenciaCodigoPostal unidadesVenta = UnidadVentaAgenciaCodigoPostalFactory.GetUnidadVentaAgenciaCodigoPostalFactory();
                                if (!chkCambioUnVta.Checked)
                                {
                                    unidadesVenta.UnidadVentaID = Utiles.Validaciones.obtieneEntero(lstUnidadesVenta.Items[i].Value);
                                    codigoPostalRetiro.UnidadesVentas.Add(unidadesVenta.UnidadVentaID);
                                    codigoPostalRetiro.CategoriaUVenta.Add(0);
                                }
                                else
                                {
                                    unidadesVenta.CategoriaUVentaID = Utiles.Validaciones.obtieneEntero(lstUnidadesVenta.Items[i].Value);
                                    codigoPostalRetiro.UnidadesVentas.Add(0);
                                    codigoPostalRetiro.CategoriaUVenta.Add(unidadesVenta.CategoriaUVentaID);
                                }
                            }
                        }

                        codigoPostalRetiro.CategoriaUnVta = chkCambioUnVta.Checked;
                        codigoPostalRetiro.GuardarAgencia(this.usuario);
                    }
                }
                HGDataBindAgencias(false);
                LimpiarSeleccion();
            }

            string script = "";

            script += "			alert('Los datos se guardaron correctamente.');\n";
            //if(opcionGeneral)
            //    script += "			window.location.href = 'CodigoPostalRetiro.aspx?Opcion=General';\n";
            //else
            //    script += "			window.location.href = 'CodigoPostalRetiro.aspx?Opcion=Particular';\n";

            ScriptManager.RegisterClientScriptBlock(this.UpdatePanel2,
                                                    UpdatePanel2.GetType(),
                                                    "muestraMensaje",
                                                    script,
                                                    true);

            Consultar();
            ConsultarAsignadas();
        }