private void butAsignar_Click(object sender, System.EventArgs e)
        {
            //Asignar automaticamente todas las guias que tengan como agencia destino
            //una agencia parada en el recorrido seleccionado

            DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
            if (dr.Length > 0)
            {
                dr1 = dr[0];
                if (dr1.AgenciaID > 0)
                {
                    ds.DatosAsociados.ImportRow(dr1);
                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                    this.lblMensajError.Text = "INFO: La guia se asocio a la Hoja de Ruta.";
                }
                else // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                {
                    IGuia oGuia = GuiaFactory.GetGuia();
                    oGuia.GuiaID = guiaID;
                    oGuia.ConsultarGuiaColectoraHojaRuta();

                    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    oGuia.MotivoNoRecepcionable = "No hay parada para el Destino de la Guía.";
                    if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                    {
                        dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                    }

                    this.lblMensajError.Text      = "ERROR: No hay parada para el Destino de la Guía. Seleccione una por favor, y vuelva a leer la guia.";
                    this.lblMensajError.ForeColor = Color.Red;
                }
            }
            else
            {
                // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta.
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                if (dsGuiasNR == null)
                {
                    dsGuiasNR = new DsGuiaColectora();
                }

                if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                {
                    dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                }

                this.lblMensajError.Text = "La guia no esta en condiciones de ser incluida en la hoja de ruta. Motivo: " + oGuia.MotivoNoRecepcionable;
            }
            //uppnlDatosParadas.Update();
            Session["HojaRutaColectora"] = ds;
            BindData(true);
            //this.txtSeleccion.Text = "";
            this.tblGuias.Attributes.Add("style", "display:none");

            datosGuias = this.txtGuia.Text + "@" + this.txtDestino.Text + "@" + this.txtBultos.Text + "@" + this.lblMensajError.Text;
        }
        private void butAsignarParada_Click(object sender, System.EventArgs e)
        {
            //Asignar una guia a una parada determinada
            ds = (DsHojaRuta)Session["HojaRutaColectora"];
            int idAgencia;
            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            if (this.ddlParada.SelectedValue != "")
            {
                idAgencia = Convert.ToInt32(this.ddlParada.SelectedValue);
                DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

                DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
                if (dr.Length > 0)
                {
                    dr1           = dr[0];
                    dr1.AgenciaID = idAgencia;
                    ds.DatosAsociados.ImportRow(dr1);

                    // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.

                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.
                    if (dsGuiasNR.Datos.FindByGuiaID(dr1.GuiaID) != null)
                    {
                        dsGuiasNR.Datos.RemoveDatosRow(dsGuiasNR.Datos.FindByGuiaID(dr1.GuiaID));
                    }

                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                    this.lblMensajError.Text = "INFO: La guia se asocio a la Hoja de Ruta.";
                }
                else
                {
                    // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta
                    IGuia oGuia = GuiaFactory.GetGuia();
                    oGuia.GuiaID = guiaID;
                    oGuia.ConsultarGuiaColectoraHojaRuta();

                    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                    this.lblMensajError.Text = "La guia no esta en condiciones de ser incluida en la hoja de ruta. Motivo: " + oGuia.MotivoNoRecepcionable;


                    if (dsGuiasNR == null)
                    {
                        dsGuiasNR = new DsGuiaColectora();
                    }

                    if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                    {
                        dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                    }
                }
            }
            else
            {
                // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;

                this.lblMensajError.Text = "";

                oGuia.MotivoNoRecepcionable = "No hay parada para el Destino de la Guía.";

                if (dsGuiasNR == null)
                {
                    dsGuiasNR = new DsGuiaColectora();
                }

                if (dsGuiasNR.Datos.FindByGuiaID(oGuia.GuiaID) == null)
                {
                    dsGuiasNR.Datos.AddDatosRow(oGuia.GuiaID, "", 0, 0, 0, 0, 0, 0, DateTime.Now, 0, 0, 0, "", DateTime.Now, "", DateTime.Now, "", "", 0, 0, 0, "", DateTime.Now, 0, "", false, 0, false, false, 0, 0, 0, 0, oGuia.MotivoNoRecepcionable, "", "", "", "", 0, 0, false, false, guia);
                }
            }
            //uppnlDatosParadas.Update();
            BindData(true);
            this.tblGuias.Attributes.Add("style", "display:none");
            //this.txtSeleccion.Text = "";
            datosGuias = this.txtGuia.Text + "@" + this.txtDestino.Text + "@" + this.txtBultos.Text + "@" + this.lblMensajError.Text;
        }
        private void butAsignarParada_Click(object sender, System.EventArgs e)
        {
            //Asignar una guia a una parada determinada
            ds = (DsHojaRuta)Session["HojaRutaVerificar"];
            int idAgencia;
            int guiaID = Utiles.Validaciones.obtieneEntero(txtGuiaID.Text);

            if (this.ddlParada.SelectedValue != "")
            {
                idAgencia = Convert.ToInt32(this.ddlParada.SelectedValue);
                DsHojaRuta.DatosNoAsociadosRow dr1 = (DsHojaRuta.DatosNoAsociadosRow)ds.DatosNoAsociados.NewRow();

                DsHojaRuta.DatosNoAsociadosRow[] dr = (DsHojaRuta.DatosNoAsociadosRow[])ds.DatosNoAsociados.Select("GuiaID = " + guiaID);
                // Si se encontro en el DataSet
                if (dr.Length > 0)
                {
                    dr1           = dr[0];
                    dr1.AgenciaID = idAgencia;
                    ds.DatosAsociados.ImportRow(dr1);
                }
                else
                {
                    dr1.GuiaID    = Utiles.Validaciones.obtieneEntero(this.txtGuiaID.Text);
                    dr1.AgenciaID = idAgencia;

                    string tGuia = "";
                    tGuia = NegociosSisPackInterface.SisPack.TipoGuia(txtNroCompletoGuia.Text.Substring(0, 1));
                    string nroSucursal = txtNroCompletoGuia.Text.Substring(1, 4);
                    string nGuia       = txtNroCompletoGuia.Text.Substring(5);
                    dr1.NroSucursalGuia     = Utiles.Validaciones.obtieneEntero(nroSucursal);
                    dr1.NroGuia             = Utiles.Validaciones.obtieneEntero(nGuia);
                    dr1.TipoGuia            = tGuia;
                    dr1.NroCompletoGuia     = dr1.NroSucursalGuia + "-" + dr1.NroGuia + "-" + dr1.TipoGuia;
                    dr1.CantidadBultosTotal = Utiles.Validaciones.obtieneEntero(txtCantidadBultosTotal.Text);
                    ds.DatosAsociados.AddDatosAsociadosRow(null, dr1.TipoGuia, dr1.GuiaID, 0, 0, dr1.AgenciaID, DateTime.Now, "", "", "", dr1.CantidadBultosTotal, 0, dr1.NroSucursalGuia, dr1.NroGuia, dr1.NroCompletoGuia, 0, 0, "", "", "", "", 0, true, 0, "", "", dr1.flete);
                }


                //if (dr.Length > 0)
                //{
                //    dr1 = dr[0];
                //dr1.AgenciaID = idAgencia;
                //ds.DatosAsociados.ImportRow(dr1);
                ds.DatosAsociados.AcceptChanges();

                // La guia debe incorporarse a la HR, pero ademas debe quedar verificada por colectora, por eso seteo el valor en true.
                DsHojaRuta.DatosAsociadosRow dr2 = (DsHojaRuta.DatosAsociadosRow)ds.DatosAsociados.Select("GuiaID = " + dr1.GuiaID).FirstOrDefault();
                if (dr2 != null && dr2.GuiaID > 0)
                {
                    dr2.VerificadaPorColectora = true;
                    ds.DatosAsociados.AcceptChanges();

                    // En las siguiente IF voy a comprobar si existe un ID de Hoja de Ruta seteado, si es asi, quiere decir que la guia estaba en esta HR sin confirmar y se debe sacar de la misma.
                    if (this.txtHojaRutaIDABorrar.Text.ToString() != string.Empty)
                    {
                        Utiles.Validaciones.obtieneEntero(this.txtHojaRutaIDABorrar.Text);
                        // Quiere decir que la guia estaba en otra HR sin confirmar y debo sacarla de la misma. Marco el ID en la fila para procesarla al momento de guardarla.
                        if (dr2 != null && dr2.GuiaID > 0)
                        {
                            dr2.HojaRutaIDABorrar = Utiles.Validaciones.obtieneEntero(this.txtHojaRutaIDABorrar.Text);
                            ds.DatosAsociados.AcceptChanges();
                        }
                        this.txtHojaRutaIDABorrar.Text = "";
                    }
                }
                this.lblMensajError.Text = "";

                // Debo buscar si la guia fue incluida en el listado de guias erroneas, si fue asi debo sacarla para no mostrarla como error, porque ya fue incluida.
                string guia = dr1.NroSucursalGuia + "-" + dr1.NroGuia + "-" + dr1.TipoGuia;
                if (hGuiasNR == null)
                {
                    hGuiasNR = new Hashtable();
                }
                if (hGuiasNR.ContainsKey(guia) == true)
                {
                    hGuiasNR.Remove(guia);
                }

                if (dr.Length > 0)
                {
                    ds.DatosNoAsociados.RemoveDatosNoAsociadosRow(dr1);
                }
                //}
                //else
                //{
                //    // Guías que no están en condiciones de ser incluidas en la Hoja de Ruta. Porque no esta en el dataset de Hojas de Ruta
                //    IGuia oGuia = GuiaFactory.GetGuia();
                //    oGuia.GuiaID = guiaID;
                //    oGuia.ConsultarGuiaColectoraHojaRuta();

                //    string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;
                //    if (hGuiasNR == null)
                //        hGuiasNR = new Hashtable();
                //    if (hGuiasNR.ContainsKey(guia) == false)
                //    {
                //        hGuiasNR.Add(guia, oGuia.MotivoNoRecepcionable);
                //    }
                //    this.lblMensajError.Text = "";

                //}
            }
            else
            {
                // No se le asigno una parada valida. La guia esta en el dataset pero no se asigno una parada valida
                IGuia oGuia = GuiaFactory.GetGuia();
                oGuia.GuiaID = guiaID;
                oGuia.ConsultarGuiaColectoraHojaRuta();

                string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;
                if (hGuiasNR == null)
                {
                    hGuiasNR = new Hashtable();
                }
                if (hGuiasNR.ContainsKey(guia) == false)
                {
                    hGuiasNR.Add(guia, "No hay parada para el Destino de la Guía.");
                }
                this.lblMensajError.Text = "";
            }
            //uppnlDatosParadas.Update();
            BindData(true);
            this.tblGuias.Style.Add(HtmlTextWriterStyle.Display, "none");
            this.tblAsignacion.Style.Add(HtmlTextWriterStyle.Display, "none");
            uppnlDatosGuias.Update();

            //this.txtSeleccion.Text = "";
            this.ddlParada.SelectedValue = "";
            this.ddlParada.Enabled       = true;
        }