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();
        }
        private void Editar()
        {
            if (Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaEditarID.Text) > 0 || Utiles.Validaciones.obtieneEntero(this.txtAgenciaID.Text) > 0)// || Utiles.Validaciones.obtieneEntero(this.txtAgenciaRTID.Text) > 0)
            {
                if (opcionGeneral)
                {
                    Page.Validate();
                    if (!Page.IsValid)
                    {
                        return;
                    }
                    //Validaciones();

                    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.LocalidadID              = Utiles.Validaciones.obtieneEntero(item.Cells[1].Text);
                            codigoPostalRetiro.CodigoPostalID           = Utiles.Validaciones.obtieneEntero(item.Cells[2].Text);
                            codigoPostalRetiro.TarifarioRetiroEntregaID = Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaEditarID.Text);
                            codigoPostalRetiro.AgenciaWebID             = Utiles.Validaciones.obtieneEntero(this.txtAgenciaID.Text);
                            // codigoPostalRetiro.AgenciaRTID = Utiles.Validaciones.obtieneEntero(this.txtAgenciaRTID.Text);
                            codigoPostalRetiro.Guardar(this.usuario);
                        }
                    }
                    HGDataBind(false);
                    LimpiarSeleccion();
                }
                else
                {
                    Page.Validate();
                    if (!Page.IsValid)
                    {
                        return;
                    }
                    //Validaciones();

                    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.LocalidadID              = Utiles.Validaciones.obtieneEntero(item.Cells[1].Text);
                            codigoPostalRetiro.CodigoPostalID           = Utiles.Validaciones.obtieneEntero(item.Cells[2].Text);
                            codigoPostalRetiro.TarifarioRetiroEntregaID = Utiles.Validaciones.obtieneEntero(this.txtTarifarioRetiroEntregaEditarID.Text);
                            codigoPostalRetiro.AgenciaWebID             = Utiles.Validaciones.obtieneEntero(this.txtAgenciaID.Text);
                            //codigoPostalRetiro.AgenciaRTID = Utiles.Validaciones.obtieneEntero(this.txtAgenciaRTID.Text);
                            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(),
                                                        "muestraMensajeEdicion",
                                                        script,
                                                        true);
                Consultar();
                ConsultarAsignadas();
            }
        }