private void CargarDatos()
        {
            // Busco los datos de la guía
            IGuia guia = GuiaFactory.GetGuia();

            guia.GuiaID = GuiaID ?? 0;
            guia.ConsultarCompletoByGuiaID();

            if (guia.GuiaID != 0)
            {
                // Cargo el número de guía
                lblGuia.Text = guia.TipoGuia + "-" + Int32.Parse(guia.NroSucursalGuia).ToString("0000") + "-" + guia.NroGuia.ToString("00000000");

                // Configuro la grilla
                SisPackController.AdministrarGrillas.Configurar(gridComprobantes, this.CantidadOpciones);
                gridComprobantes.Width = new Unit(750, UnitType.Pixel);

                // Cargo los datos en la grilla
                gridComprobantes.DataSource = guia.GetDetalleComprobantesAsociadosPendientes(null).Detalle;
                gridComprobantes.DataBind();
            }
            else
            {
                lblGuia.Text = "Guía no encontrada";
            }
        }
        private void CargarDatos()
        {
            try
            {
                IGuia guia = GuiaFactory.GetGuia();
                // Busco los datos de la guía
                guia.GuiaID = GuiaID;
                guia.ConsultarCompletoByGuiaID();
                // Cargo el número de guía / remito
                lblNroGuia.Text = Validaciones.obtieneEntero(guia.NroSucursalGuia).ToString("0000") + "-" + guia.NroGuia.ToString("00000000") + "-" + guia.TipoGuia;

                // Configuro la grilla
                SisPackController.AdministrarGrillas.ConfigurarChica(dtgFacturasAsociadas, "NroFactura");

                // Busco las facturas asociadas
                dtgFacturasAsociadas.DataSource = guia.ObtenerFacturasAsociadas().FacturasAsociadas;
                dtgFacturasAsociadas.DataBind();
            }
            catch (Exception ex)
            {
                ManejaErrores(new Exception("Error al consultar las facturas asociadas a la guía"));
            }
        }
示例#3
0
        //private void MostrarGuiasNoIngresadas(Hashtable guias)
        //{
        //    this.txtGuiasDefectuosas.Text = "0";

        //    this.txtGuiaIndex.Attributes.Add("style", "display : none");

        //    HtmlTable tableNoRecep = new HtmlTable();
        //    tableNoRecep.ID= "tGuiasSx";

        //    // Encabezado
        //    HtmlTableRow trEnc = new HtmlTableRow();
        //    trEnc.ID = "trEncS";
        //    HtmlTableCell tdEnc = new HtmlTableCell();

        //    tdEnc.InnerHtml = "Nro. de Guía";
        //    tdEnc.Attributes.Add("class", "TextoBold");
        //    tdEnc.Attributes.Add("align", "center");
        //    trEnc.Controls.Add(tdEnc);

        //    tdEnc = new HtmlTableCell();
        //    tdEnc.InnerHtml = "Observación";
        //    tdEnc.Attributes.Add("class", "TextoBold");
        //    trEnc.Controls.Add(tdEnc);

        //    tdEnc = new HtmlTableCell();
        //    tdEnc.InnerHtml = "Datos Factura";
        //    tdEnc.Attributes.Add("class", "TextoBold");
        //    trEnc.Controls.Add(tdEnc);
        //    trEnc.Attributes.Add("style", "display: inline");
        //    tableNoRecep.Controls.Add(trEnc);

        //    int i = 0;
        //    foreach (DictionaryEntry entry in guias)
        //    {
        //        // Creo un Tr
        //        HtmlTableRow trNoRecepcionado = new HtmlTableRow();

        //        // Creo un txt oculto, para guardar el número de guía
        //        TextBox txt = new TextBox();
        //        txt.ID = "txt" + i.ToString();
        //        txt.Attributes.Add("style", "display : none");
        //        HtmlTableCell tdTxt = new HtmlTableCell();
        //        tdTxt.ID = "tdTxt" + i.ToString();
        //        tdTxt.Controls.Add(txt);
        //        tdTxt.InnerHtml = entry.Key.ToString();
        //        tdTxt.Attributes.Add("style", "display : none");
        //        trNoRecepcionado.Controls.Add(tdTxt);

        //        // Creo un td para el número de guía
        //        HtmlTableCell tdGuiaNoRecep = new HtmlTableCell();
        //        tdGuiaNoRecep.ID = "tdNRG" + i.ToString();
        //        tdGuiaNoRecep.InnerHtml = entry.Value.ToString();
        //        tdGuiaNoRecep.Attributes.Add("class", "Texto");
        //        trNoRecepcionado.Controls.Add(tdGuiaNoRecep);

        //        // Creo un td para el control de observaciones tipificadas
        //        HtmlTableCell tdObs = new HtmlTableCell();
        //        // Creo un control de observaciones tipificadas
        //        Control obsUC = Page.LoadControl("UC/BusqObservacion.ascx");
        //        obsUC.ID = "tdNRM" + i.ToString();
        //        ((TextBox)obsUC.FindControl("txtTipoObservacionID")).Text = "1";
        //        ((TextBox)obsUC.FindControl("txtSetearOrigen")).Text = "2";

        //        tdObs.Controls.Add(obsUC);
        //        trNoRecepcionado.Controls.Add(tdObs);

        //        // Creo un td para ingresar la información para facturar un remito
        //        HtmlTableCell tdDatosFacturaRemito = new HtmlTableCell();
        //        tdDatosFacturaRemito.InnerHtml = "<IMG id='btnInfoFactura" + i.ToString() + "' alt='Datos Destinatario' src='images/editarGris1.gif' border=0 onclick='CargarDatosFacturaRemito(" + i.ToString() + "); return false;' style='cursor: hand;'>";
        //        trNoRecepcionado.Controls.Add(tdDatosFacturaRemito);

        //        trNoRecepcionado.ID = "tr" + i.ToString();
        //        trNoRecepcionado.Attributes.Add("style", "display : inline");

        //        tableNoRecep.Controls.Add(trNoRecepcionado);
        //    }

        //    phGuias.Controls.Add(tableNoRecep);

        //    if (guias.Count > 0)
        //    {
        //        this.lblMensaje.Text = "Las siguientes guias no han sido marcadas como entregadas u observadas. Por favor indique los datos para completar la operacion.";
        //        this.trMensajeError.Visible = true;
        //    }
        //    else
        //    {
        //        this.trMensajeError.Visible = false;
        //    }
        //    Session["hGuiasSinCompletar"] = null;

        //}

        private void MostrarGuiasNoIngresadas()
        {
            Hashtable     hGuiasSinCompletar  = (Hashtable)Session["hGuiasSinCompletar"];
            StringBuilder remitosSinConformar = new StringBuilder();
            int           indice = 0;
            HtmlTable     table  = (HtmlTable)phGuias.FindControl("tGuiasRx");

            //table.Rows[0].Attributes.Remove("style");

            foreach (int guiaID in hGuiasSinCompletar.Keys)
            {
                //ICodigoBarraGuia cbGuia = CodigoBarraGuiaFactory.GetCodigoBarraGuia();
                //cbGuia.CodigoBarra = hGuiasSinCompletar[guiaID].ToString();
                //cbGuia.CargarInfoGuiaAPartirCodigoBarra();
                IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = guiaID;
                guia.ConsultarCompletoByGuiaID();
                // Cargo el remito al listado de remitos sin conformar
                //if (indice < hGuiasSinCompletar.Count - 1)
                //    remitosSinConformar.Append(cbGuia.NroSucursal.ToString("0000") + "-" + cbGuia.NroGuia.ToString("00000000") + "-" + cbGuia.TipoGuia + ", ");
                //else
                //    remitosSinConformar.Append(cbGuia.NroSucursal.ToString("0000") + "-" + cbGuia.NroGuia.ToString("00000000") + "-" + cbGuia.TipoGuia);


                if (table != null)
                {
                    table.Rows[indice + 1].Attributes.Remove("style");
                    // Cargo el código de barra del remito
                    LiteralControl lGuia = new LiteralControl();

                    string[] codigos = hGuiasSinCompletar[guiaID].ToString().Split('-');

                    string codigoBarraGuia = Utiles.Formatos.Tipo2Numero(codigos[2]) + codigos[0] + Utiles.Formatos.CerosIzq(Convert.ToInt32(codigos[1]), 5);

                    lGuia.Text = codigoBarraGuia.ToString();
                    table.Rows[indice + 1].Cells[1].Controls.Add(lGuia);
                    table.Rows[indice + 1].Cells[1].Attributes.Add("class", "Texto");

                    // Cargo en el txt oculto el código de barra
                    TextBox txt = (TextBox)table.Rows[indice + 1].Cells[0].FindControl("txt" + indice);
                    txt.Text = codigoBarraGuia.ToString();

                    // Cargo nuevamente la celda que contiene el botón para cargar los datos de un remito, para mostrarlo
                    table.Rows[indice + 1].Cells[3].InnerHtml = "<IMG id='btnInfoFactura" + indice.ToString() + "' alt='Datos Destinatario' src='images/editarGris1.gif' border=0 onclick='CargarDatosFacturaRemito(" + indice.ToString() + "); return false;' style='cursor: hand;'>";
                }
                indice++;
            }

            // Actualizo la cantidad de registros disponibles para agregar
            lblCantGuias.Text = (Utiles.Validaciones.obtieneEntero(lblCantGuias.Text) - indice).ToString();
            txtGuiaIndex.Text = indice.ToString();

            // Reviso si hay algun remito que no se conformo por falta de datos
            if (hGuiasSinCompletar.Count > 0)
            {
                // Si hay remitos que no se conformaron. Los muestro
                this.lblMensaje.Text   = "Las siguientes guias no han sido marcadas como entregadas u observadas. Por favor indique los datos para completar la operacion.";
                trMensajeError.Visible = true;
                //lblRemitosSinConformarFaltaDatos.Text = "Los siguientes remitos no se conformaron por falta de datos: " + remitosSinConformar.ToString();

                // Muestro el botón Confirmar
                butConfirmar.Attributes.Remove("style");
            }
            else
            {
                trMensajeError.Visible = false;
            }
            Session["hGuiasSinCompletar"] = null;
        }
        private void ImprimirGuiaBlanco()
        {
            DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            int    cantCopias         = 1;
            string nombreArchivo      = "";
            //SFE. Codigo barras AFIP
            string  nombreArchivoCBAFIP          = "";
            Boolean EsReImpresion                = false;
            bool    esFacturaRemito              = false;
            Boolean EsFacturaConceptoFacturacion = false;

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

            guiaDorso.UnidadNegocioID = UnidadNegocioID;
            guiaDorso.Consultar();
            string textoDorso = guiaDorso.Texto;

            // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
            //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;
            }

            bool   esGuiaRendicion  = false;
            string nroRendicionGuia = "";

            if (_esFacturaConceptoFacturacion == false)
            {
                IGuia guia = GuiaFactory.GetGuia();
                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
            }

            // Cargo los comprobantes
            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)
                //    {
                //        // Se trata de una factura de un concepto de facturación
                //        IFactura factura = FacturaFactory.GetFactura();
                //        cantCopias = factura.GetCantCuerposImprFacturaRemito();
                //        factura = null;
                //        EsFacturaConceptoFacturacion = true;
                //    }
                //    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    = 1;
                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 = 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(((SisPacK.IGuiaImpresion)impresion).TipoGuia, ((SisPacK.IGuiaImpresion)impresion).NroSucursal, ((SisPacK.IGuiaImpresion)impresion).NroGuia);

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

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

                    if (EsReImpresion == false)
                    {
                        ((SisPacK.IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1);
                        ((SisPacK.IGuiaImpresion)impresion).EsReimpresion         = false;
                    }
                    else
                    {
                        ((SisPacK.IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3);
                        ((SisPacK.IGuiaImpresion)impresion).EsReimpresion         = true;
                    }
                    ((SisPacK.IGuiaImpresion)impresion).TextoDorso      = textoDorso;
                    ((SisPacK.IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion;
                    ((SisPacK.IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;
                    ((SisPacK.IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion;
                    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...
                    if (i + 1 < cantCopias || ComprobanteActual < ds.Datos.Rows.Count)
                    {
                        phImpresion.Controls.Add(lt);
                    }
                }
                ComprobanteActual++;
            }
        }
        //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();
            }
        }