public bool Consultar()
        {
            DsPuntoRecepcionServicios ds = this.GetServiciosPuntoRecepcionDataSet();

            if (ds == null)
            {
                return(false);
            }

            DsPuntoRecepcionServicios.DatosRow dr = null;
            for (int i = 0; i < ds.Datos.Rows.Count; i++)
            {
                dr = (DsPuntoRecepcionServicios.DatosRow)ds.Datos.Rows[i];
                IServicioPuntoRecepcion servicioPunto = (IServicioPuntoRecepcion)this.AddServicio();
                ((ServicioPuntoRecepcion)servicioPunto).Cargar(dr);
                this.servicios.Add(servicioPunto);
            }
            return(true);
        }
        private void butGuardarAgencia_Click(object sender, System.EventArgs e)
        {
            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }

            IPuntoRecepcion puntoRecep = PuntoRecepcionFactory.GetPuntoRecepcion();

            puntoRecep.PuntoRecepcionID = this.txtPuntoRecepcionID.Text == "" ? 0 : Convert.ToInt32(this.txtPuntoRecepcionID.Text);

            if (this.txtCodigo.Text != "")
            {
                puntoRecep.Codigo = Convert.ToInt32(this.txtCodigo.Text).ToString();
            }
            puntoRecep.RazonSocial                 = this.txtRazonSocial.Text;
            puntoRecep.Email                       = this.txtEmail.Text;
            puntoRecep.Nombre                      = this.txtNombre.Text;
            puntoRecep.EsReceptora                 = true;//this.chkReceptora.Checked;
            puntoRecep.EntregaDomicilio            = this.chkEntregaDomicilio.Checked;
            puntoRecep.Responsable.ResponsableID   = Convert.ToInt32(this.busqResponsable.ResponsableID);
            puntoRecep.AgenciaReferenciaRedespacho = Convert.ToInt32(this.busqAgenciaRedespacho.AgenciaID);
            puntoRecep.EmpresaTercerosID           = Convert.ToInt32(this.busqEmpresaTerceros.EmpresaTercerosID);
            puntoRecep.UnidadNegocioID             = this.UnidadNegocioID;


            //Agrega servicios a la colección de servicios de la agencia
            foreach (DataGridItem item in dtgServicios.Items)
            {
                if (((CheckBox)item.FindControl("chkRecibe")).Checked)
                {
                    IServicioPuntoRecepcion servicio = puntoRecep.ServiciosPuntoRecepcionCol.AddServicio();
                    servicio.ServicioID = Convert.ToInt32(dtgServicios.DataKeys[item.DataSetIndex]);
                    servicio.Recibe     = ((CheckBox)item.FindControl("chkRecibe")).Checked;
                }
            }
            if (this.chkEntregaDomicilio.Checked)
            {
                puntoRecep.EntregaDomicilio         = true;
                puntoRecep.EmpresaTercerosEntregaID = Convert.ToInt32(this.busqEmpresaEntregaTerceros.EmpresaTercerosID);
                puntoRecep.TarifarioRetiroEntregaID = Convert.ToInt32(this.ddlTarifarioRetiroEntrega.SelectedValue);
            }

            if (puntoRecep.EstadoAgencia == NegociosSisPackInterface.SisPack.EstadoAgencia.Ninguno)
            {
                puntoRecep.EstadoAgencia = NegociosSisPackInterface.SisPack.EstadoAgencia.Habilitada;
            }


            IDatosDomicilio domicilio = (IDatosDomicilio)this.phDomicilio.FindControl("Domicilio");

            puntoRecep.Domicilio.DomicilioID           = domicilio.DomicilioID;
            puntoRecep.Domicilio.Calle                 = domicilio.Calle;
            puntoRecep.Domicilio.CalleNro              = domicilio.CalleNro;
            puntoRecep.Domicilio.Telefono              = domicilio.Telefono;
            puntoRecep.Domicilio.Fax                   = domicilio.Fax;
            puntoRecep.Domicilio.Localidad.LocalidadID = domicilio.LocalidadID;
            puntoRecep.Domicilio.Depto                 = domicilio.Depto;

            try
            {
                bool nuevoReg = this.txtPuntoRecepcionID.Text == "";
                if (puntoRecep.Guardar())
                {
                    this.txtPuntoRecepcionID.Text = Convert.ToString(puntoRecep.PuntoRecepcionID);
                    //this.butAsignarGastos.Enabled = true;
                    string mensaje = "Los datos se guardaron correctamente. ";
                    if (nuevoReg && this.EtapaProduccion)                               //si es agencia nueva
                    {
                        mensaje += "El número de sucursal asignado es: " + puntoRecep.Codigo.PadLeft(10, '0');
                    }


                    string script = "<script language='javascript'>\n";
                    script += "alert('" + mensaje + "');";
                    script += "window.location.href = 'PuntoRecepcion.aspx?PuntoRecepcionID=" + this.txtPuntoRecepcionID.Text + "';\n";
                    script += "</script>";

                    Page.RegisterStartupScript("scriptOk", script);
                }
                else
                {
                    string script = "<script language='javascript'>\n";
                    script += "alert('Los datos no se guardaron debido a errores.');\n";
                    script += "</script>";

                    Page.RegisterStartupScript("scriptError", script);
                }
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;
                try
                {
                    mensaje = this.TraducirTexto(ex.Message);
                    if (mensaje == "" || mensaje == null)
                    {
                        mensaje = ex.Message;
                    }
                }
                catch (Exception)
                {
                    mensaje = ex.Message;
                }
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }