Exemplo n.º 1
0
        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;
                }
                DsHojaRutaRepartidor ds = new DsHojaRutaRepartidor();
                if (Session["DsGuias"] != null)
                {
                    ds = (DsHojaRutaRepartidor)Session["DsGuias"];
                }
                string cadena = txtGuia.Text;
                if (cadena.Length >= 10)
                {
                    string tipo = cadena.Substring(0, 1);
//					tipo = tipo == "3" ? "A" : "B";
                    tipo = NegociosSisPackInterface.SisPack.TipoGuia(tipo);
                    string sucursal          = cadena.Substring(1, 4);
                    string guia              = cadena.Substring(5);
                    int    guiaID            = SisPackController.LlenarCombos.GuiaID(tipo, sucursal, Utiles.Validaciones.obtieneEntero(guia));
                    IHojaRutaRepartidor hoja = HojaRutaRepartidorFactory.GetHojaRutaRepartidor();
                    hoja.AgenciaID = AgenciaConectadaID;
                    DsHojaRutaRepartidor dsNuevo = new DsHojaRutaRepartidor();
                    dsNuevo = hoja.AgregarGuiaHRR(guiaID);
                    if (dsNuevo.Guias.Count == 1)
                    {
                        foreach (DsHojaRutaRepartidor.GuiasRow drNuevo in dsNuevo.Guias)
                        {
                            DsHojaRutaRepartidor.GuiasRow dr = ds.Guias.NewGuiasRow();
                            dr.GuiaID           = drNuevo.GuiaID;
                            dr.NroCompletoGuia  = drNuevo.NroCompletoGuia;
                            dr.LocalidadDescrip = drNuevo.LocalidadDescrip;
                            ds.Guias.Rows.Add(dr);
                        }
                    }
                    Session["DsGuias"]         = ds;
                    Session["DsGuiasAAgregar"] = ds;
                    txtGuia.Text = "";
                    BindGrid();
                }
                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);
            }
        }
Exemplo n.º 2
0
        public DsHojaRutaRepartidor ImprimirOrdenesMasiva(string OrdenR)
        {
            DsHojaRutaRepartidor ds = new DsHojaRutaRepartidor();

            SqlParameter pOrdenID = new SqlParameter("@OrdenRetiro", OrdenR);

            Config.Conexion.LlenarTypeDataSet(ds.Ordenes, System.Data.CommandType.StoredProcedure, "ReporteOrdenRetiromasivo", pOrdenID);

            return(ds);
        }
Exemplo n.º 3
0
 private void BindGrid()
 {
     try
     {
         DsHojaRutaRepartidor ds = (DsHojaRutaRepartidor)Session["DsGuias"];
         AdministrarGrillas.Configurar(dtgGuias, "GuiaID", CantidadOpciones, true, false);
         dtgGuias.CurrentPageIndex = Utiles.Validaciones.obtieneEntero(txtPagina.Text);
         dtgGuias.DataSource       = ds.Guias;
         dtgGuias.DataBind();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 4
0
        protected void btnReImprimirCliente_Click(object sender, EventArgs e)
        {
            string pagina = "";
            string ordens = Convert.ToString(Session["ImprimirOrdenes"]);
            //si son ordenes de tipo r que imprima la solicitud
            DsHojaRutaRepartidor dsoRdenes = new DsHojaRutaRepartidor();
            ISolicitudRetiro     sr        = SolicitudRetiroFactory.GetSolicitudRetiroFactory();

            dsoRdenes = sr.ImprimirOrdenesMasiva(ordens);

            Session["imprimirOrden"] = dsoRdenes;

            pagina = "ImprimirGuiaBlanco.aspx";


            //DsGuiaFacturaImpresion dsFactura = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            //string pagina = ObtienePaginaImpresion(drLista[0].TipoImpresionGuiaId);
            if (dsoRdenes.Ordenes.Count() > 0)
            {
                string script = "";
                System.Web.HttpBrowserCapabilities browser = Request.Browser;
                string name    = browser.Browser;
                float  version = (float)(browser.MajorVersion + browser.MinorVersion);
                if ((name == "IE" && (version == 8)))
                {
                    script += "		window.open('"+ pagina + "','','Height: 934px;Width: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "scriptOpen",
                                                            script,
                                                            true);
                }
                else
                {
                    script += "		window.open('"+ pagina + "','','Height: 934px;Width: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "scriptOpen",
                                                            script,
                                                            true);
                }
            }
        }
Exemplo n.º 5
0
 private void dtgGuias_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
 {
     try
     {
         int guiaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
         DsHojaRutaRepartidor ds = new DsHojaRutaRepartidor();
         if (Session["DsGuias"] != null)
         {
             ds = (DsHojaRutaRepartidor)Session["DsGuias"];
         }
         DsHojaRutaRepartidor.GuiasRow [] dr = (DsHojaRutaRepartidor.GuiasRow[])ds.Guias.Select("GuiaID = " + e.Item.Cells[0].Text);
         ds.Guias.RemoveGuiasRow(dr[0]);
         Session["DsGuias"] = ds;
         BindGrid();
     }
     catch (Exception ex)
     {
         ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
     }
 }
Exemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // configuro el acceso a los webservices
            ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);

            scriptManager.Services.Add(new ServiceReference("~/WebServices/Colectora.asmx"));

            // Si es la primer vez que ingreso a la pagina, traigo las guias que estan en condiciones de ser incluidas en la HRR
            if (!IsPostBack)
            {
                IHojaRutaRepartidor hojaRutaRepartidor = HojaRutaRepartidorFactory.GetHojaRutaRepartidor();
                hojaRutaRepartidor.AgenciaID = this.AgenciaConectadaID;
                ds = hojaRutaRepartidor.GetHojaRutaRepartidorDataSet();
                Session["HojaRutaRepartidorColectora"] = ds;
            }

            if (!Page.IsPostBack)
            {
                Session["GuiasDefectuosas"]            = null;
                Session["GuiasNRHojaRutaRepartidor"]   = null;
                Session["DsGuiasNRHojaRutaRepartidor"] = null;
            }
            //else
            //{
            //    Hashtable hGuiasNr = new Hashtable();
            //    if (Session["GuiasNRHojaRutaRepartidor"] != null)
            //    {
            //        hGuiasNr = (Hashtable)Session["GuiasNRHojaRutaRepartidor"];

            //        if (hGuiasNr.Count > 0)
            //        {
            //            MostrarGuiasNoRecepcionables(hGuiasNr);
            //        }
            //    }

            //}
        }
Exemplo n.º 7
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            bool            ok        = true;
            Hashtable       hGuiasNR  = new Hashtable(); // Guías que no están en condiciones de ser recibidas
            DsGuiaColectora dsGuiasNR = new DsGuiaColectora();

            string CBIngresados = txtCodigosBarraIngresado.Text.Split('-')[0];

            // Obtengo el listado de códigos ingresados
            string[] codigosIngresados = CBIngresados.Split('@');

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

            for (int i = 0; i < codigosIngresados.Length - 1; i++)
            {
                int guiaID = Utiles.Validaciones.obtieneEntero(codigosIngresados[i]);

                // si la guía existe en el sistema, la ingreso a la HRR
                if (guiaID > 0)
                {
                    ds = (DsHojaRutaRepartidor)Session["HojaRutaRepartidorColectora"];
                    // Reviso si la guía puede ser incluida en la HRRepartidor. Busco en el Ds que se cargo al principio
                    if (ds.Guias.Select("GuiaID = " + guiaID).Length > 0)
                    {
                        DsDetalleHojaRutaRepartidor.DatosRow drDetalle = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                        drDetalle.AgenciaID = AgenciaConectadaID;
                        drDetalle.EstadoGuiaHojaRutaRepartidor = 1;
                        drDetalle.GuiaID               = guiaID;
                        drDetalle.Prioridad            = 0;
                        drDetalle.GenerarFacturaRemito = false;
                        dsDetalle.Datos.AddDatosRow(drDetalle);
                    } // fin if EsRecepcionable
                    else
                    // La guia no puede ser incluida. Consulto el motivo. Guardo el nro y el motivo por el cual no puede ser incluida
                    {
                        // acá debería guardar las que no se pueden recibir y luego mostrarlas en un alert...
                        IGuia oGuia = GuiaFactory.GetGuia();
                        oGuia.GuiaID = guiaID;
                        oGuia.ConsultarGuiaColectora();
                        oGuia.UnidadNegocioID = this.UnidadNegocioID;
                        oGuia.UsuarioID       = usuario.UsuarioID;

                        string guia = oGuia.NroSucursalGuia + "-" + oGuia.NroGuia + "-" + oGuia.TipoGuia;
                        //if (hGuiasNR.ContainsKey(guia) == false)
                        //{
                        //    hGuiasNR.Add(guia, oGuia.MotivoNoRecepcionable);
                        //}
                        ok = false;

                        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);
                        }
                    }
                }
            } // fin for
            this.txtSeGuardo.Text           = "0";
            this.txtSeGuardoSinErrores.Text = "0";

            // Si hay guias que guardar, genero la Hoja de Ruta del Repartidor
            if (dsDetalle.Datos.Count > 0)
            {
                IHojaRutaRepartidor hojaRutaRepartidor = HojaRutaRepartidorFactory.GetHojaRutaRepartidor();
                hojaRutaRepartidor.DsDetalle = dsDetalle;
                hojaRutaRepartidor.Fecha     = DateTime.Now;
                hojaRutaRepartidor.EstadoHojaRutaRepartidor = (int)NegociosSisPackInterface.SisPack.EstadoHojaRutaRepartidor.GeneradaporColectoradeDatos; //Generada por Colectora de Datos
                hojaRutaRepartidor.UsuarioID = usuario.UsuarioID;
                hojaRutaRepartidor.AgenciaID = this.AgenciaConectadaID;
                hojaRutaRepartidor.Generar();
                hojaRutaRepartidor.Consultar();
                lblGuia.Text    = string.Empty;
                lblCliente.Text = string.Empty;
                lblDestino.Text = string.Empty;
                lblBultos.Text  = string.Empty;
                txtNroHojaRutaRepartidor.Text = hojaRutaRepartidor.NroHojaRutaRepartidor.ToString();
                //uppnlDatosGuias.Update();
                this.txtSeGuardo.Text = "1";
            }

            Session["GuiasNRHojaRutaRepartidor"] = hGuiasNR;
            if (ok)
            {
                Session["GuiasNRHojaRutaRepartidor"]   = null;
                Session["DsGuiasNRHojaRutaRepartidor"] = null;
                this.txtSeGuardoSinErrores.Text        = "1";
            }
            else
            {
                Session["GuiasNRHojaRutaRepartidor"]   = hGuiasNR;
                Session["DsGuiasNRHojaRutaRepartidor"] = dsGuiasNR;
                if (Session["DsGuiasNRHojaRutaRepartidor"] != null)
                {
                    dsGuiasNR = (DsGuiaColectora)Session["DsGuiasNRHojaRutaRepartidor"];

                    if (dsGuiasNR.Datos.Count > 0)
                    {
                        MostrarGuiasNoRecepcionables(dsGuiasNR);
                    }
                }
                //Response.Redirect("HojaRutaRepartidor.aspx?d=1");
            }


            string txtSeGuardo = this.txtSeGuardo.ClientID;
            string txtNroHojaRutaRepartidor1 = this.txtNroHojaRutaRepartidor.ClientID;
            string txtSeGuardoSinErrores     = this.txtSeGuardoSinErrores.ClientID;

            System.Text.StringBuilder scriptString = new System.Text.StringBuilder();
            scriptString.Append("<script language='javascript'>function MjeError(){\n");
            scriptString.Append("if (window.document.getElementById('" + txtSeGuardo + "').value == '0'){\n");
            scriptString.Append("	alert('No se genero Hoja de Ruta. Sin datos que guardar.');\n");
            scriptString.Append("if (window.document.getElementById('" + txtSeGuardoSinErrores + "').value == '0'){\n");
            scriptString.Append("		window.document.getElementById('tblGuias').style.display = 'none';\n");
            scriptString.Append("		window.document.getElementById('tblBotones').style.display = 'none';\n");
            scriptString.Append("		window.document.getElementById('tblDatos').style.display = 'none';\n");
            scriptString.Append("}\n");
            scriptString.Append("	} else {\n");
            scriptString.Append("	alert('Datos Guardados. Se generó la Hoja de Ruta de Reparto: Nº ' + window.document.getElementById('"+ txtNroHojaRutaRepartidor1 + "').value);\n");

            scriptString.Append("if (window.document.getElementById('" + txtSeGuardoSinErrores + "').value == '1'){\n");
            scriptString.Append("window.location = 'HojaRutaRepartidor.aspx';\n");
            scriptString.Append("}else{\n");
            scriptString.Append("		window.document.getElementById('tblGuias').style.display = 'none';\n");
            scriptString.Append("		window.document.getElementById('tblBotones').style.display = 'none';\n");
            scriptString.Append("		window.document.getElementById('tblDatos').style.display = 'none';\n");
            scriptString.Append("}\n");
            scriptString.Append("}\n");
            scriptString.Append("}\n</script>");

            Page.RegisterClientScriptBlock("MjeError", scriptString.ToString());

            //ScriptManager.RegisterClientScriptBlock(this.uppnlBotones,
            //                                                uppnlBotones.GetType(),
            //                                                "MjeError",
            //                                                script,
            //                                                true);
        }
Exemplo n.º 8
0
        private void butConfirmar_Click(object sender, System.EventArgs e)
        {
            usuario = (IUsuarios)Session["usuario"];

            bool      ok                         = true;
            Hashtable hGuias                     = new Hashtable(); // Guías que no se pueden recibir, porque son de ag. no automatizadas o no existen
            Hashtable hGuiasNR                   = new Hashtable(); // Guías que no están en condiciones de ser conformadas
            Hashtable hGuiasIncompletas          = new Hashtable(); // Guías que se pueden recibir, pero no se completaron los datos (valor declarado, bultos y agencias)
            Hashtable hRemitosFaltaIngresarDatos = new Hashtable(); // Remitos que no se pueden conformar por que le falta ingresar los datos para facturar

            DsFacturaImpresion.DatosRow drFac;
            Hashtable hGuiasSinCompletar = new Hashtable(); // Guías que pertenecen a la HRepartidor original pero que no se ingresaron en la conformacion/observacion masiva.
            Hashtable hGuiasIngresadas   = new Hashtable(); // Guías que se ingresaron, lo utilizo para hacer una validacion al final

            // Busco los datos de la agencia
            IAgencia datosAgencia = AgenciaFactory.GetAgencia();

            datosAgencia.AgenciaID = usuario.AgenciaID;
            datosAgencia.Consultar();

            DsDatosGenerarFactura dsDatosFacturasAGenerar;

            if (Session["DatosFacturasARealizarConformacionMasivaCB"] != null)
            {
                dsDatosFacturasAGenerar = (DsDatosGenerarFactura)Session["DatosFacturasARealizarConformacionMasivaCB"];
            }
            else
            {
                dsDatosFacturasAGenerar = new DsDatosGenerarFactura();
            }
            DsFacturaImpresion          dsFAImprimir = new DsFacturaImpresion();
            DsDetalleHojaRutaRepartidor dsDetalle    = new DsDetalleHojaRutaRepartidor();
            DsHojaRutaRepartidor        dsHR         = (DsHojaRutaRepartidor)Session["dsHojaRutaRepartidor"];

            if (Session["DsDetalleHojaRutaRepartidor"] != null)
            {
                dsDetalle = (DsDetalleHojaRutaRepartidor)Session["DsDetalleHojaRutaRepartidor"];
            }

            if (Session["hGuiasIngresadas"] != null)
            {
                hGuiasIngresadas = (Hashtable)Session["hGuiasIngresadas"];
            }

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

            for (int i = 0; i < cant; i++)
            {
                string txt        = "txt" + i;
                string obs        = "Obs" + i.ToString() + "$txtObservacionID";
                string obsCodigo  = "Obs" + i.ToString() + "$txtCodigo";
                string obsDescrip = "Obs" + i.ToString() + "$txtObsDescrip";
                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();

                // Lógica para recibir (y 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.UsuarioID       = usuario.UsuarioID;

                IGuiaFactura oGuiaFactura = GuiaFacturaFactory.GetGuiaFactura();
                oGuiaFactura.UsuarioID = usuario.UsuarioID;

                // si la guía existe en el sistema, verifco si está en condiciones de conformarse y si es así la conformo
                if (oGuia.GuiaID > 0)
                {
                    //SFE: 22/08/2012. Guardo las guias ingresadas para al final del foreach realizar una validacion.
                    hGuiasIngresadas.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);

                    // Reviso si la guía esta en condiciones de ser conformada (tanto por que tiene los estados necesarios
                    // en la cabecera de la guía o en los estados historicos)
                    if (EsConformable(oGuia))
                    {
                        // Reviso si se trata de un remito por un flete pago en destino y si es asi, si esta o no facturado
                        if (tGuia == "R" && oGuia.GuiaTieneFPD() && oGuia.RemitoEstaFacturado() == false)
                        {
                            // Se trata de un remito.
                            // Reviso si tengo que observar la guía o conformarla
                            if (Utiles.Validaciones.obtieneEntero(observacionID) > 0)
                            {
                                // tengo que observar la guía
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);
                            }

                            // Tengo que conformar la guía
                            // Reviso si la agencia es autoimpresora
                            if (datosAgencia.TipoImpresionGuiaId == (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.PreImpresa)
                            {
                                // la agencia no es autoimpresora. marco como que no se puede conformar la guía
                                hGuiasNR.Add(oGuia.GuiaID, nroSucursal + "-" + nGuia + "-" + tGuia);
                            }
                            else
                            {
                                // La agencia es autoimpresora
                                // Reviso si se ingreso la información para facturar el remito
                                if (Validaciones.obtieneEntero(dsDatosFacturasAGenerar.Datos.Compute("count(guiaid)", "guiaid=" + oGuia.GuiaID.ToString()).ToString()) == 0)
                                {
                                    dsDatosFacturasAGenerar.Datos.Select("guiaid =" + oGuia.GuiaID.ToString());
                                    // No se ingreso la información de la factura.
                                    if (hRemitosFaltaIngresarDatos.ContainsKey(oGuia.GuiaID) == false)
                                    {
                                        hRemitosFaltaIngresarDatos.Add(oGuia.GuiaID, nroGuia);//Validaciones.obtieneEntero(nroSucursal).ToString("0000") + " - " + Validaciones.obtieneEntero(nroGuia).ToString("00000000") + "-" + tGuia);
                                        ok = false;
                                    }
                                }
                                else
                                {
                                    // Si se ingreso la información de la factura
                                    ((IGuia)oGuiaFactura).GuiaID    = oGuia.GuiaID;
                                    ((IGuia)oGuiaFactura).UsuarioID = usuario.UsuarioID;

                                    // Cargo la información para realizar la factura
                                    IFactura oFactura = CargarDatosFactura(((IGuia)oGuiaFactura).GuiaID);
                                    ((IGuia)oGuiaFactura).OFactura = oFactura;

                                    DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                    dr.GuiaID        = oGuia.GuiaID;
                                    dr.ObservacionID = oGuia.ObservacionID;
                                    dr.Observaciones = sObsDescrip;
                                    dsDetalle.Datos.AddDatosRow(dr);
                                    dsDetalle.Datos.AcceptChanges();
                                }
                            }
                        }
                        else
                        {
                            // Se trata de una guía normal o de un remito de un cliente coorporativo. No de un remito por Flete pago en destino. O el remito ya esta facturado
                            ((IGuia)oGuiaFactura).GuiaID = oGuia.GuiaID;

                            IParametroUNegocio paramAdm = ParametroUNegocioFactory.GetParametroUNegocio();
                            paramAdm.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
                            paramAdm.UnidadNegocioID = this.UnidadNegocioID;
                            paramAdm.Consultar();
                            int agAdm = Utiles.Validaciones.obtieneEntero(paramAdm.ValorString);
                            paramAdm = null;

                            // Si la agencia conectada es igual a la agencia de destino, le permito conformar
                            if ((this.AgenciaConectadaID == oGuia.AgenciaDestinoID ||
                                 ((this.AgenciaConectadaID != oGuia.AgenciaDestinoID || this.AgenciaConectadaID == agAdm) && oGuia.EstadoSentidoViaje == (int)NegociosSisPackInterface.SisPack.ValorEstadoSentidoViaje.Devolucion) ||
                                 (this.EsGuiaDeAgenciaRedespachoReferenciada(oGuia)) ||
                                 (this.EsGuiaDePuntoRecepcionReferenciado(oGuia))))
                            {
                                oGuia.ObservacionID = Utiles.Validaciones.obtieneEntero(observacionID);

                                DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                //DsDetalleHojaRutaRepartidor.DatosRow dr = (DsDetalleHojaRutaRepartidor.DatosRow)dsDetalle.Datos.NewRow();
                                dr.GuiaID        = oGuia.GuiaID;
                                dr.ObservacionID = oGuia.ObservacionID;
                                dr.Observaciones = sObsDescrip;
                                dsDetalle.Datos.AddDatosRow(dr);
                                dsDetalle.Datos.AcceptChanges();
                            }
                            else
                            {
                                // No se puede conformar...
                                string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                                if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                                {
                                    hGuiasNR.Add(oGuia.GuiaID, guia);
                                    // SFE
                                    ok = false;
                                }
                            }
                        }
                    } // fin if EsConformable
                    else
                    {
                        // La guía no existe... no se puede conformar...
                        string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                        if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                        {
                            hGuiasNR.Add(oGuia.GuiaID, guia);
                        }
                        ok = false;
                    }
                }
                else
                {
                    // La guía no existe... no se puede conformar...
                    string guia = nroSucursal + "-" + nGuia + "-" + tGuia;
                    if (!hGuiasNR.ContainsKey(oGuia.GuiaID))
                    {
                        hGuiasNR.Add(oGuia.GuiaID, guia);
                    }
                    ok = false;
                }
            } // fin for


            //SFE: 22/08/2012. Recorro el detalle de las guias que componen la Hoja de Ruta del Repartidor
            foreach (DsHojaRutaRepartidor.GuiasRow item in dsHR.Guias)
            {
                //SFE: 22/08/2012. Valido que las guias que se ingresaron se correspondan y esten todas con las guias de la HRepartidor
                // Es decir verifico que en el HashTable de guias ingresadas exista el item que compone la HR, sino existe la coloco en el Hash de guias sin completar para mostrarla nuevamente.
                if (hGuiasIngresadas.ContainsKey(item.GuiaID) == false)
                {
                    ok = false;
                    hGuiasSinCompletar.Add(item.GuiaID, item.NroCompletoGuia);
                }
            }
            //SFE: 22/08/2012. Fin

            // Este dsDetalle contiene las guias ingresadas y que pertenecen a la HRepartidor, va a servir para marcarlas en la pagina de atras (la que llama).
            Session["DsDetalleHojaRutaRepartidor"] = dsDetalle;
            Session["GuiasNR"] = hGuiasNR;
            Session["hRemitosFaltaIngresarDatos"] = hRemitosFaltaIngresarDatos;
            Session["hGuiasSinCompletar"]         = hGuiasSinCompletar;
            Session["hGuiasIngresadas"]           = hGuiasIngresadas;

            StringBuilder scriptRedirect = new StringBuilder();

            if (ok)
            {
                Session["GuiasDefectuosas"]   = null;
                Session["hGuiasIngresadas"]   = null;
                Session["hGuiasSinCompletar"] = null;

                StringBuilder scriptFinal = new StringBuilder();
                scriptFinal.Append("<script type=\"text/javascript\">\n");
                scriptFinal.Append("window.close();\n");
                scriptFinal.Append("</script>");
                Page.RegisterStartupScript("DatosRegistrados", scriptFinal.ToString());
            }
            else
            {
                if (hGuiasIncompletas != null && hGuiasIncompletas.Count > 0)
                {
                    hGuias = hGuiasIncompletas;
                }

                this.txtGuiasDefectuosas.Text = "1";
                Session["GuiasDefectuosas"]   = hGuias;;

                Hashtable hGuiasNr = new Hashtable();
                if (Session["GuiasNR"] != null)
                {
                    hGuiasNr = (Hashtable)Session["GuiasNR"];

                    if (hGuiasNr.Count > 0)
                    {
                        MostrarGuiasNoConformables(hGuiasNr);
                    }
                }
                else
                {
                    this.lblMensaje.Visible = false;
                }

                if (Session["hRemitosFaltaIngresarDatos"] != null && ((Hashtable)Session["hRemitosFaltaIngresarDatos"]).Count > 0)
                {
                    // Si hay remitos que no se conformaron por falta de ingreso de datos. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarRemitosSinConformarPorFaltaDatos();
                }
                if (Session["hGuiasSinCompletar"] != null && ((Hashtable)Session["hGuiasSinCompletar"]).Count > 0)
                {
                    // Si hay guias que pertenecen a la HRepartidor y no se ingresaron. Muetro el mensaje de error y vuelvo a cargar los datos de estos remitos
                    MostrarGuiasNoIngresadas();
                }
            }
        }
        //DsOrdenRetiroImprimir.DatosRow dsoRdenes;
        #region Page_Load
        private void Page_Load(object sender, System.EventArgs e)
        {
            //TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput2.log", "myListener");
            //myListener.WriteLine("Inicia Load de Imprimirguiablanco.aspx.");

            DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            //DsOrdenRetiroImprimir dsoRdenes = (DsOrdenRetiroImprimir)Session["imprimirOrden"];

            DsHojaRutaRepartidor dsoRdenes = (DsHojaRutaRepartidor)Session["imprimirOrden"];

            DsOrdenRetiroImprimir.DatosRow dsOrdenR;
            int    cantCopias    = 0;
            string nombreArchivo = "";
            //SFE. Codigo barras AFIP
            string  nombreArchivoCBAFIP          = "";
            Boolean EsReImpresion                = false;
            bool    esFacturaRemito              = false;
            Boolean EsFacturaConceptoFacturacion = false;
            string  textoDorso      = "";
            bool    esGuiaRendicion = false;
            string  tipoGuia        = "";

            // Obtengo el texto del dorso de la guía
            //IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso();
            //guiaDorso.UnidadNegocioID = UnidadNegocioID;
            //guiaDorso.Consultar();
            //string textoDorso = guiaDorso.Texto;

            // Obtengo el texto del dorso de la guía por la empresa de facturacion
            IGuia guia = GuiaFactory.GetGuia();

            if (ds != null)
            {
                double pesototal50  = ds.Datos[0].PesoTotal != null ? ds.Datos[0].PesoTotal : 0; // ds.Datos[0].;
                double pesoButlos50 = ds.Datos[0].PesoBulto != null ? ds.Datos[0].PesoBulto : 0;
                string canBul       = ds.Datos[0].IsCantidadBultosTotalNull()?"0": ds.Datos[0].CantidadBultosTotal.ToString();
                string remito       = ds.Datos[0].IsRemitoClienteNroNull() ? "0" : ds.Datos[0].RemitoClienteNro.ToString();
                string DomicilioRem = ds.Datos[0].IsDireccionRemitenteNull()?"N/A": ds.Datos[0].DireccionRemitente.ToString();
                string remi         = ds.Datos[0].IsNombreRemitenteNull() ? "" : ds.Datos[0].NombreRemitente.ToString();
                if (remi == "")
                {
                    remi = ds.Datos[0].IsNombreEmpresaRemitenteNull() ? "" : ds.Datos[0].NombreEmpresaRemitente.ToString();
                }
                string doc = ds.Datos[0].IsCUITEmpresaNull() ? "" : ds.Datos[0].CUITEmpresa.ToString();
                if (pesototal50 > 50 || pesoButlos50 > 50)//mayor a 50
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirDeclaracionJuradaEV.ascx");

                    GuiaDominio gd   = new GuiaDominio();
                    string      text = gd.getTextoDorso(0).ToString();
                    textoDorso = text;

                    /* inicio declaracion jurada*/
                    //string existeDJ = gd.GetDeclaracionJurada(ds.Datos[0].GuiaID).ToString();

                    //if (existeDJ == "")//es para que no re imprima la declaracion jurada que se emitio
                    //    //FQuiroga 26/11
                    //{
                    //    //declaracion jurada
                    //    if (ds.Datos[0].EsFleteCobrar == true && remito == "0")
                    //    {//si es un fpd y pesa mas de 50 y no tiene remito
                    //     //tiene que gaurda el numero de declaracion jurada

                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);

                    //    }
                    //    if ((ds.Datos[0].TipoGuia == "B" || ds.Datos[0].TipoGuia == "A") && remito == "0")
                    //    {//eventuales sin remito
                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();                                                                 //tiene que guardar declaracion
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);
                    //    }
                    //}
                    /* fin declaracion jurada*/
                }
                else
                {
                    //34 y35 bultos
                    IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                    try
                    {
                        empresa.EmpresaFacturacionID = ds.Datos[0].EmpresaFacturacionID;
                    }
                    catch (Exception)
                    {
                        throw new Exception("No se configuró la empresa de facturacion para la agencia emisora de la guia.");
                    }
                    empresa.Consultar();
                    textoDorso = empresa.Texto;
                }

                // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                // IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = ds.Datos[0].GuiaID;
                guia.ConsultarCompletoByGuiaID();
                //if (ds.Datos.Rows[0].IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion

                //if (|| (ds.Datos.Rows[0].IsNull("EsFacturaConceptoFacturacion") == false && Convert.ToBoolean( ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]
                Boolean _esFacturaConceptoFacturacion = false;

                try
                {
                    _esFacturaConceptoFacturacion = Convert.ToBoolean(ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
                }
                catch
                {
                    _esFacturaConceptoFacturacion = false;
                }

                esGuiaRendicion = false;
                string nroRendicionGuia = "";

                if (_esFacturaConceptoFacturacion == false)
                {
                    guia.GuiaID = ds.Datos[0].GuiaID;
                    guia.ConsultarCompletoByGuiaID();
                    if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion)
                    {
                        esGuiaRendicion  = true;
                        nroRendicionGuia = guia.GetNroRendicionGuia();
                        if (nroRendicionGuia != "")
                        {
                            nroRendicionGuia = "Nro de Rendición: " + nroRendicionGuia;
                        }

                        ds.Datos[0].Observaciones = nroRendicionGuia;
                    }
                    // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                }
            }
            if (dsoRdenes != null)
            {
                IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                empresa.EmpresaFacturacionID = 1;// Convert.ToInt32(dsoRdenes.Ordenes.Rows.Datos[0].EmpresaFacturacion.ToString());
                empresa.Consultar();
                textoDorso = empresa.Texto;
                //cargo las ordenes de retiro
                DsOrdenRetiroImprimir dsOrdenes2 = new DsOrdenRetiroImprimir();
                IOrdenRetiro          ordenes    = OrdenRetiroFactory.GetOrdenRetiroFactory();
                string todas = "";
                foreach (DsHojaRutaRepartidor.OrdenesRow dsss in dsoRdenes.Ordenes.Rows)
                {
                    if (todas == "")
                    {
                        todas = dsss.OrdenRetiroID;
                    }
                    else
                    {
                        todas = todas + "," + dsss.OrdenRetiroID;
                    }
                }
                dsOrdenes2 = ordenes.GetOrdenRetiroPrint(todas);
                foreach (DsOrdenRetiroImprimir.DatosRow drOrd in dsOrdenes2.Datos)
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirOrdenRetiro.ascx");
                    LlenarControlOrdenes(drOrd, impresion, nombreArchivo);

                    phImpresion.Controls.Add(impresion);

                    // hago un salto de página
                    LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    // no hace salto de página para la última hoja...
                    phImpresion.Controls.Add(lt);
                }
            }

            //if (dsConcepto != null) {
            //    try
            //    {
            //        _esFacturaConceptoFacturacion = Convert.ToBoolean(dsoRdenes.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
            //    }
            //    catch
            //    {
            //        _esFacturaConceptoFacturacion = false;
            //    }

            //    foreach (DsGuiaFacturaImpresion.DatosRow drCon in dsConcepto.Datos.Rows)
            //    {
            //        System.Web.UI.Control impresion;
            //        impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");

            //        LlenarControl(drCon, impresion, nombreArchivo);

            //        phImpresion.Controls.Add(impresion);

            //        // hago un salto de página
            //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
            //        // no hace salto de página para la última hoja...
            //        phImpresion.Controls.Add(lt);

            //        if (drCon.IsEsFacturaConceptoFacturacionNull() == false && drCon.EsFacturaConceptoFacturacion)
            //        {
            //            EsFacturaConceptoFacturacion = true;
            //            // Se trata de una factura de un concepto de facturación.
            //            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
            //            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
            //            concepto.GetOne(148);
            //            if (concepto.CantCuerposImprGuia > 0)
            //            {
            //                cantCopias = concepto.CantCuerposImprGuia ?? 0;
            //            }
            //            else
            //            {
            //                IFactura factura = FacturaFactory.GetFactura();
            //                cantCopias = factura.GetCantCuerposImprFacturaRemito();
            //                factura = null;
            //            }
            //        }
            //    }

            //}
            // }Cargo los comprobantes
            if (ds != null)
            {
                int ComprobanteActual = 1;
                foreach (DsGuiaFacturaImpresion.DatosRow dr in ds.Datos.Rows)
                {
                    // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros
                    if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null)
                    {
                        // No se paso la cantidad de copias a imprimir.
                        // Obtengo de los parámetros generales cuántas copias del cuerpo se deben imprimir en la agencia origen

                        /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */
                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            EsFacturaConceptoFacturacion = true;
                            // Se trata de una factura de un concepto de facturación.
                            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
                            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                            concepto.GetOne(dr.ConceptoFacturacionID);
                            if (concepto.CantCuerposImprGuia > 0)
                            {
                                cantCopias = concepto.CantCuerposImprGuia ?? 0;
                            }
                            else
                            {
                                IFactura factura = FacturaFactory.GetFactura();
                                cantCopias = factura.GetCantCuerposImprFacturaRemito();
                                factura    = null;
                            }
                        }
                        else if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            // Se trata de una guía
                            // Verifico si en el campo "CantidadCopiasImprimir" viene asignada la cantidad de copias, si es asi, es porque se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                            // Si no se debe buscar en la base la cantidad de copias a imprimir.
                            if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsCantidadCopiasImprimirNull())
                            {
                                // Debo buscar en la base la cantidad de copias a imprimir.
                                IGuia cantAImprGuia = GuiaFactory.GetGuia();
                                cantAImprGuia.GuiaID          = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID;
                                cantAImprGuia.UnidadNegocioID = UnidadNegocioID;
                                cantCopias    = cantAImprGuia.GetCantCuerposImprGuia();
                                cantAImprGuia = null;
                            }
                            else
                            {
                                //Viene asignada la cantidad de copias, se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                                try
                                {
                                    cantCopias = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).CantidadCopiasImprimir;
                                }
                                catch { cantCopias = 1; }
                            }
                            esFacturaRemito = false;
                        }
                        else
                        {
                            // Se trata de una factura
                            IFactura factura = FacturaFactory.GetFactura();
                            cantCopias      = factura.GetCantCuerposImprFacturaRemito();
                            factura         = null;
                            esFacturaRemito = true;
                        }
                    }
                    else
                    {
                        // Si se paso la cantidad de copias a imprimir
                        cantCopias    = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]);
                        EsReImpresion = true;

                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            esFacturaRemito = false;
                        }
                        else if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                        else
                        {
                            esFacturaRemito = true;
                        }
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                    }

                    //}
                    // Cargo las copias del comprobante que se esta procesando
                    for (int i = 0; i < cantCopias; i++)
                    {
                        System.Web.UI.Control impresion;
                        if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica)
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaUnidadLogistica.ascx");
                        }
                        else
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");
                        }
                        LlenarControl(dr, impresion, nombreArchivo);
                        // cargo el control de impresión...
                        impresion.ID = "ImpreBlanco" + i.ToString();

                        // Creo la imagen del CB
                        if (i == 0)
                        {
                            nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NroGuia);

                            // SFE: Codigo Barras AFIP
                            nombreArchivoCBAFIP = CrearImagenCBAFIP(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NumeroCAI, ((IGuiaImpresion)impresion).FechaVencimientoCAI);
                        }
                        // Termino de cargar los datos
                        ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo + "-" + this.AgenciaConectadaID.ToString();

                        // SFE: Codigo Barras AFIP.
                        ((IGuiaImpresion)impresion).RutaCodigoBarrasAFIP = nombreArchivoCBAFIP + "-" + this.AgenciaConectadaID.ToString();

                        if (EsReImpresion == false)
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = false;
                        }
                        else
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = true;
                        }
                        ((IGuiaImpresion)impresion).TextoDorso      = textoDorso;
                        ((IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion;
                        ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;
                        ((IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion;
                        phImpresion.Controls.Add(impresion);

                        // hago un salto de página
                        //tipoGuia = dr.IsTipoGuiaNull() ? "" : dr.TipoGuia;
                        //System.Web.HttpBrowserCapabilities browser = Request.Browser;
                        //string name = browser.Browser;
                        //float version = (float)(browser.MajorVersion + browser.MinorVersion);
                        //if ((name != "Chrome" && version >= 8) && (name != "Firefox" && version >= 8) && (name == "IE" && version > 8) && (tipoGuia == "R"))
                        //{
                        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                        // no hace salto de página para la última hoja...
                        if (i + 1 < cantCopias || ComprobanteActual < ds.Datos.Rows.Count)
                        {
                            phImpresion.Controls.Add(lt);
                        }
                        //}
                    }
                    ComprobanteActual++;
                }

                //myListener.WriteLine("Finaliza Load de Imprimirguiablanco.aspx.");
                //myListener.Flush();
            }
        }
        private string ExportarPDF()
        {
            if (hdnHRR.Value == "")
            {
                hdnHRR.Value = Session["HRRID"].ToString();
            }
            Logger.Info("Entra a exportar");
            IMovilCompletoDominio _movilDominio            = IoC.GetObjectDominio <IMovilCompletoDominio>();
            List <Dominio.Entidades.MovilCompleto> Moviles = new List <Dominio.Entidades.MovilCompleto>();
            //  string txtNroHojaRuta = Convert.ToInt32(hdnHRR.Value);//es el mismo numero
            IHojaRutaRepartidor hojaRutaRepartidor = HojaRutaRepartidorFactory.GetHojaRutaRepartidor();

            hojaRutaRepartidor.HojaRutaRepartidorID = Convert.ToInt32(hdnHRR.Value);
            DataSet                    GenDS = new DataSet();
            ReportDocument             oRD   = new ReportDocument();
            ExportOptions              oExO;
            DiskFileDestinationOptions oExDo = new DiskFileDestinationOptions();
            DsHojaRutaRepartidor       ds    = hojaRutaRepartidor.GetGuiasHojaRutaRepartidor();
            DsHojaRutaRepartidor       dsag  = new DsHojaRutaRepartidor();

            DsHojaRutaRepartidor dsOrd = new DsHojaRutaRepartidor();

            dsOrd = hojaRutaRepartidor.LlenarDsHROrdenes();

            int nroHojaRuta = Convert.ToInt32(hdnHRR.Value);     // Convert.ToInt32(this.txtNroHojaRuta.Text);

            try
            {
                Logger.Info("Ruta");
                Logger.Info(Server.MapPath("~") + "/ReportesPDF/" + "HojaRutaRepartidor_" + nroHojaRuta + "_" + AgenciaConectadaID + ".pdf");
                string sNombrePDF = Server.MapPath("~") + "/ReportesPDF/" + "HojaRutaRepartidor_" + nroHojaRuta + "_" + AgenciaConectadaID + ".pdf";
                if (System.IO.File.Exists(sNombrePDF))
                {
                    System.IO.File.Delete(sNombrePDF);
                }
                Logger.Info("pasa");
                string nombrePDf = "HojaRutaRepartidor_" + nroHojaRuta + "_" + AgenciaConectadaID + ".pdf";
                //Load report
                //   oRD.Load(Server.MapPath("~" + "/Reportes/HojaRutaRepartidor.rpt"));
                oRD.Load(Server.MapPath("." + "/Reportes/HojaRutaRepartidor.rpt"));
                Logger.Info(Server.MapPath("." + "/Reportes/HojaRutaRepartidor.rpt"));
                Logger.Info("pasa cb");


                DsHojaRutaRepartidor.GuiasRow[]   dv   = (DsHojaRutaRepartidor.GuiasRow[])ds.Guias.Select("", "LocalidadDescrip");
                DsHojaRutaRepartidor.OrdenesRow[] dror = (DsHojaRutaRepartidor.OrdenesRow[])dsOrd.Ordenes.Select("", "");

                DsHojaRutaRepartidor.UnidadesLogisticaRow[] du = (DsHojaRutaRepartidor.UnidadesLogisticaRow[])ds.UnidadesLogistica.Select("", "");
                Logger.Info("Carga datos");
                //Creo un nuevo registro Datos
                DsHojaRutaRepartidor.DatosRow db = (DsHojaRutaRepartidor.DatosRow)dsag.Datos.NewDatosRow();

                db.AgenciaID = Convert.ToInt32(AgenciaConectadaID);
                IAgencia ag = AgenciaFactory.GetAgencia();
                ag.AgenciaID = Convert.ToInt32(AgenciaConectadaID);
                ag.Consultar();
                db.EstadoHojaRutaRepartidorDescrip = "";
                db.FechaEmision = Convert.ToDateTime(DateTime.Now);
                db.EstadoHojaRutaRepartidorID = 0;
                db.HojaRutaRepartidorID       = Convert.ToInt32(hdnHRR.Value); // Convert.ToInt32(this.txtHojaRutaID.Text);
                db.NroHojaRutaRepartidor      = nroHojaRuta;
                Logger.Info("va cargar imagen");
                db.imagenCB        = CrearImagenCB(ag.SucursalDGI.ToString(), nroHojaRuta.ToString());
                db.NroSucursalGuia = "";

                Moviles = _movilDominio.GetMovilByHojaRutaReparto(Convert.ToInt32(hdnHRR.Value));

                if (Moviles.Count > 0)
                {
                    db.MovilDescripcion = Moviles[0].Patente;
                    //fijarme porque guardaba el chofer!!!! REVISAR
                    db.Repartidor = Moviles[0].Chofer;
                }

                foreach (DsHojaRutaRepartidor.GuiasRow drr in ds.Guias)
                {
                    Logger.Info("va cargar imagen guia");
                    drr.CB = CrearImagenCBGUIA(drr.TipoGuia, drr.NroSucursalGuia, Convert.ToString(drr.NroGuia));
                }

                dsag.Datos.AddDatosRow(db);

                foreach (DsHojaRutaRepartidor.GuiasRow dr in dv)
                {
                    dsag.Guias.ImportRow(dr);
                }

                foreach (DsHojaRutaRepartidor.OrdenesRow dr in dror)
                {
                    dsag.Ordenes.ImportRow(dr);
                }

                foreach (DsHojaRutaRepartidor.UnidadesLogisticaRow dr in du)
                {
                    dsag.UnidadesLogistica.ImportRow(dr);
                }

                oRD.SetDataSource(dsag);


                //Export to PDF
                oExDo.DiskFileName = sNombrePDF;
                oExO = oRD.ExportOptions;
                oExO.ExportDestinationType = ExportDestinationType.DiskFile;
                oExO.ExportFormatType      = ExportFormatType.PortableDocFormat;
                oExO.DestinationOptions    = oExDo;
                oRD.Export();
                oRD.Close();
                oRD.Dispose();

                return(nombrePDf);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                HttpContext.Current.Response.Write("Error al exportar a PDF: " + ex.Message);
                throw new Exception(ex.Message);
            }
            finally
            {
                oRD.Close();
                oRD.Dispose();
            }
        }