private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];
            int       UV;
            bool      ok       = true;
            Hashtable hGuias   = new Hashtable(); // Guías que no se pueden Observar, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR = new Hashtable(); // Guías que no están en condiciones de ser Observadas

            int cant = Utiles.Validaciones.obtieneEntero(this.txtGuiaIndex.Text);

            for (int i = 0; i < cant; i++)
            {
                // ANTES DE RECIBIR CADA GUÍA HAY QUE REALIZAR LOS CONTROLES CORRESPONDIENTES
                // E IR GUARDANDO LAS GUÍAS QUE FALLAN, PARA LUEGO VISUALIZAR UNA LISTA DE ESAS GUÍAS

                string txt           = "txt" + i;
                string obs           = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo     = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip    = "Obs" + i.ToString() + "$txtObsDescrip";
                string txtODetallada = "txtODetallada" + i.ToString();//cargo la observacion
                string ddl           = "ddl" + i.ToString();

                string nroGuia       = Request.Form[txt].ToString();
                string observacionID = Request.Form[obs].ToString();
                string sObsCodigo    = Request.Form[obsCodigo].ToString();
                string sObsDescrip   = Request.Form[obsDescrip].ToString();
                string sobDetallada  = Request.Form[txtODetallada].ToString();


                // Lógica para observar guías
                string tGuia = "";

                tGuia = NegociosSisPackInterface.SisPack.TipoGuia(nroGuia.Substring(0, 1));
                string nroSucursal = nroGuia.Substring(1, 4);
                string nGuia       = nroGuia.Substring(5);

                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.NroGuia         = Utiles.Validaciones.obtieneEntero(nGuia);
                oGuia.NroSucursalGuia = nroSucursal;
                oGuia.TipoGuia        = tGuia;
                oGuia.Consultar();
                oGuia.EsRecepcion     = 1;
                oGuia.UnidadNegocioID = this.UnidadNegocioID;
                //oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                oGuia.UsuarioID = usuario.UsuarioID;


                if (sobDetallada == "")//quiere decir que no tiene una observacion detallada. Entonces no la guardo en la tabla ObservacionGuiaPersonalizada.FQuiroga
                {
                    // si la guía existe en el sistema, la observa
                    if (oGuia.GuiaID > 0)
                    {
                        // Reviso si la guía es observable
                        if (oGuia.EsObservable(oGuia.GuiaID, AgenciaConectadaID) && Utiles.Validaciones.obtieneEntero(observacionID) != 0)
                        {
                            //   Observar(oGuia.GuiaID, usuario.UsuarioID, Utiles.Validaciones.obtieneEntero(observacionID));
                            IGuia oGuiaObs = GuiaFactory.GetGuia();
                            oGuiaObs.GuiaID        = oGuia.GuiaID;
                            oGuiaObs.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            oGuiaObs.UsuarioID     = usuario.UsuarioID;
                            oGuiaObs.Observar();

                            UV = oGuiaObs.GetGuiaUnidadVenta();
                            if (oGuiaObs.ObservacionID == 95 && (UV == 6 || UV == 25))
                            {
                                oGuiaObs.GuiaID = oGuia.GuiaID;
                                ConfirmarGuia(oGuia.GuiaID);
                            }
                        }
                        else
                        {
                            hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                        }
                    }
                    else
                    {
                        // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no
                        // automatizada o bien porque se emitió en forma manual por una automatizada
                        // hay que visualizarla nuevamente para que se ingresen los datos correspondientes
                        ok = false;

                        string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                        if (hGuias.ContainsKey(nroGuia) == false)
                        {
                            hGuias.Add(nroGuia, obsTemp);
                        }
                    }
                    // fin for

                    Session["GuiasNR"] = hGuiasNR;

                    if (ok)
                    {
                        Session["GuiasDefectuosas"] = null;
                        string scriptString = "<script language=JavaScript>\n";
                        scriptString += "alert('Observacion cargada correctamente');\n";
                        scriptString += "</script>";
                        Page.RegisterStartupScript("scrip", scriptString);

                        Response.Redirect("ObservacionTransito.aspx");
                    }
                    else
                    {
                        this.txtGuiasDefectuosas.Text = "1";
                        Session["GuiasDefectuosas"]   = hGuias;
                        Response.Redirect("ObservacionTransito.aspx?d=1");
                    }
                }


                else//en caso que tenga una observacion detallada
                {
                    IGuiasSolicitudConfirmacionTurnoDominio _guiasDominio = IoC.GetObjectDominio <IGuiasSolicitudConfirmacionTurnoDominio>();
                    // si la guía existe en el sistema, la observa
                    if (oGuia.GuiaID > 0)
                    {
                        // Reviso si la guía es observable
                        if (oGuia.EsObservable(oGuia.GuiaID, AgenciaConectadaID) && Utiles.Validaciones.obtieneEntero(observacionID) != 0)
                        {
                            IGuia oGuiaObs = GuiaFactory.GetGuia();
                            oGuiaObs.GuiaID        = oGuia.GuiaID;
                            oGuiaObs.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            oGuiaObs.UsuarioID     = usuario.UsuarioID;
                            oGuiaObs.Observar();


                            UV = oGuiaObs.GetGuiaUnidadVenta();
                            if (oGuiaObs.ObservacionID == 95 && (UV == 6 || UV == 25))
                            {
                                oGuiaObs.GuiaID = oGuia.GuiaID;
                                ConfirmarGuia(oGuia.GuiaID);
                            }
                            _guiasDominio.ObservacionPersonalInsert(oGuia.GuiaID, Utiles.Validaciones.obtieneEntero(observacionID), sobDetallada);
                        }
                        else
                        {
                            hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                        }
                    }
                    else
                    {
                        // si la guía no existe en el sistema, ya sea porque fue emitida por una agencia no
                        // automatizada o bien porque se emitió en forma manual por una automatizada
                        // hay que visualizarla nuevamente para que se ingresen los datos correspondientes
                        ok = false;

                        string obsTemp = observacionID + "#" + sObsCodigo + "#" + sObsDescrip;
                        if (hGuias.ContainsKey(nroGuia) == false)
                        {
                            hGuias.Add(nroGuia, obsTemp);
                        }
                    }
                } // fin for

                Session["GuiasNR"] = hGuiasNR;

                if (ok)
                {
                    Session["GuiasDefectuosas"] = null;
                    Response.Redirect("ObservacionTransito.aspx");
                }
                else
                {
                    this.txtGuiasDefectuosas.Text = "1";
                    Session["GuiasDefectuosas"]   = hGuias;
                    Response.Redirect("ObservacionTransito.aspx?d=1");
                }
            }
        }