private void dtgLocalidades_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        {
            DsCodigoPostalEntrega ds = new DsCodigoPostalEntrega();

            ds = (DsCodigoPostalEntrega)Session["DsCodigoPostalEntregaCliente"];
            foreach (DataGridItem item in dtgLocalidades.Items)
            {
                DsCodigoPostalEntrega.DatosRow dr = (DsCodigoPostalEntrega.DatosRow)ds.Datos.Rows[item.DataSetIndex];
                CheckBox chk = (CheckBox)item.FindControl("chkAsignar");
                dr.Seleccionado = chk.Checked;
            }
            Session["DsCodigoPostalEntregaCliente"] = ds;
            BindGridPaginacion(e.NewPageIndex);
        }
        private void Validaciones()
        {
            bool tieneLocalidades = false;

            if (Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaID.Text) == 0)
            {
                throw new Exception("Debe seleccionar un Tarifario Retiro/Entrega.");
            }

            if (chkPais.Checked || chkProvincia.Checked)
            {
                tieneLocalidades = true;
            }

            for (int i = 0; i < lstAgrupacionRetiroEntrega.Items.Count; i++)
            {
                if (lstAgrupacionRetiroEntrega.Items[i].Selected)
                {
                    tieneLocalidades = true; break;
                }
            }
            if (!tieneLocalidades)
            {
                DsCodigoPostalEntrega ds = (DsCodigoPostalEntrega)Session["DsCodigoPostalEntregaCliente"];
                foreach (DataGridItem item in dtgLocalidades.Items)
                {
                    DsCodigoPostalEntrega.DatosRow dr = (DsCodigoPostalEntrega.DatosRow)ds.Datos.Rows[item.DataSetIndex];
                    CheckBox chk = (CheckBox)item.FindControl("chkAsignar");
                    dr.Seleccionado = chk.Checked;
                    if (dr.Seleccionado)
                    {
                        tieneLocalidades = true; break;
                    }
                }
            }

            if (!tieneLocalidades)
            {
                throw new Exception("Debe seleccionar un Codigo Postal, Provincia, PaĆ­s o Agrupacion.");
            }
        }
        private void Guardar()
        {
            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }
            Validaciones();

            DsCodigoPostalEntrega ds = (DsCodigoPostalEntrega)Session["DsCodigoPostalEntregaCliente"];

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

            ICodigoPostalEntregaCliente codigoPostalEntrega = CodigoPostalEntregaClienteFactory.GetCodigoPostalEntregaCliente();

            codigoPostalEntrega.CodigoPostalEntregaClienteID    = 0;
            codigoPostalEntrega.TarifarioClienteRetiroEntregaID = Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaID.Text);
            codigoPostalEntrega.ClienteID = ClienteID;
            codigoPostalEntrega.UnidadesVentas.Add(UnidadVentaID);

            //Se guarda la provincia como entrega
            if (chkProvincia.Checked)
            {
                if (Utiles.Validaciones.obtieneEntero(txtProvinciaSel.Text) == 0)
                {
                    throw new Exception("Debe seleccionar la provincia.");
                }
                else
                {
                    codigoPostalEntrega.ProvinciaID = Utiles.Validaciones.obtieneEntero(txtProvinciaSel.Text);
                }
            }

            //Se guarda el pais como entrega
            if (chkPais.Checked)
            {
                if (Utiles.Validaciones.obtieneEntero(txtPaisSel.Text) == 0)
                {
                    throw new Exception("Debe seleccionar el pais.");
                }
                else
                {
                    codigoPostalEntrega.PaisID = Utiles.Validaciones.obtieneEntero(txtPaisSel.Text);
                }
            }

            // Se guardan las agrupaciones como entregas
            for (int i = 0; i < lstAgrupacionRetiroEntrega.Items.Count; i++)
            {
                if (lstAgrupacionRetiroEntrega.Items[i].Selected)
                {
                    codigoPostalEntrega.Agrupaciones.Add(Utiles.Validaciones.obtieneEntero(lstAgrupacionRetiroEntrega.Items[i].Value));
                }
            }

            if (ds != null)
            {
                // Se guardan las localidades como entregas
                foreach (DsCodigoPostalEntrega.DatosRow dr in ds.Datos)
                {
                    if ((dr.IsSeleccionadoNull() ? false : dr.Seleccionado) == true)
                    {
                        codigoPostalEntrega.Localidades.Add(dr.LocalidadID);
                        codigoPostalEntrega.CodigosPostales.Add(dr.IsCodigoPostalIDNull() ? 0 : dr.CodigoPostalID);
                    }
                }
            }

            codigoPostalEntrega.Guardar(usuario);

            HGDataBind(false);
            LimpiarSeleccion();

            string script = "";

            script += "			alert('Los datos se guardaron correctamente.');\n";

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

            Consultar();
            ConsultarAsignadas();
        }