private void butAgregar_Click(object sender, System.EventArgs e)
        {
            try
            {
                BaseValidator bv;
                bv         = (BaseValidator)phGuiaValid.FindControl("guiaEntero");
                bv.Enabled = true;
                bv.Validate();
                if (!bv.IsValid)
                {
                    return;
                }

                DsGuias ds = new DsGuias();

                if (Session["DsGuias"] != null)
                {
                    ds = (DsGuias)Session["DsGuias"];
                }

                string cadena = txtGuia.Text;
                if (cadena.Length >= 10)
                {
                    string tipo = "";
//					tipo = tipo == "3" ? "A" : "B";
                    tipo = NegociosSisPackInterface.SisPack.TipoGuia(cadena.Substring(0, 1));

                    string sucursal = cadena.Substring(1, 4);
                    string guia     = cadena.Substring(5);
                    int    guiaID   = SisPackController.LlenarCombos.GuiaID(tipo, sucursal, Utiles.Validaciones.obtieneEntero(guia));

                    // Verificamos que la guía tenga al menos como remitente o destinatario un cliente.
                    IGuia     guiaIngresada         = GuiaFactory.GetGuia();
                    string    remitenteDestinatario = guiaIngresada.ObtenerRemitenteDestinatario(guiaID);
                    string [] remDes = remitenteDestinatario.Split('-');


                    if (remDes[0].Equals("0") && remDes[1].Equals("0"))
                    {
                        Exception ex = new Exception("La guía ingresada no es válida.");
                        throw ex;
                    }

                    if (guiaID > 0)
                    {
                        // Verificamos que el dato no exista o no se haya ingresado.
                        DsGuias.DatosRow[] unaGuia = (DsGuias.DatosRow[])ds.Datos.Select("GuiaID = " + guiaID);
                        if (unaGuia.Length == 0)
                        {
                            DsGuias.DatosRow dr = ds.Datos.NewDatosRow();
                            dr.GuiaID          = guiaID;
                            dr.TipoGuia        = tipo;
                            dr.NroSucursalGuia = Convert.ToInt32(sucursal);
                            dr.NroGuia         = Convert.ToInt32(guia);
                            ds.Datos.AddDatosRow(dr);
                        }
                        else
                        {
                            this.txtGuia.Text = "";
//							Exception ex = new Exception("La guía ya ha sido ingresada.");
//							throw ex;
                        }

                        Session["DsGuias"] = ds;
                        BindGrid();
                        // Limpiamos número de guía para seguir ingresando.
                        this.txtGuia.Text = "";
                    }
                    else
                    {
                        Exception ex = new Exception("La guía ingresada no existe.");
                        throw ex;
                    }
                }
                else if (cadena.Length == 0)
                {
                    Exception ex = new Exception("Debe ingresar el código de la guía");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }