private void dtgOrdenRetiro_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                Session["OrdenRetiroID"] = e.Item.Cells[0].Text.ToString();
                IOrdenRetiro orden = OrdenRetiroFactory.GetOrdenRetiroFactory();
                orden.OrdenRetiroID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text.ToString());
                orden.Consultar();

                //controlar que la solicitud de retiro ya haya sido controlada
                ISolicitudRetiro solicitud = SolicitudRetiroFactory.GetSolicitudRetiroFactory();
                solicitud.SolicitudRetiroID = orden.SolicitudRetiroID;
                solicitud.Consultar();
                if (solicitud.EstadoSolicitudID == (int)NegociosSisPackInterface.SisPack.EstadoSolicitud.Controlada || solicitud.EstadoSolicitudID == (int)NegociosSisPackInterface.SisPack.EstadoSolicitud.ControladaWeb)               //esta en estado controlada
                {
                    //controlar que no haya  sido ya emitida
                    if (orden.Estado == "Generada")
                    {
                        Response.Redirect("OrdenRetiro.aspx?Llamador=OrdenRetiroConsul&index=0");
                    }
                    else
                    {
                        throw new Exception("La Orden de Retiro ya ha sido emitida.");
                    }
                }
                else
                {
                    throw new Exception("La solicitud de retiro no ha sido controlada aún.");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        private void BindGrid(int currentPage)
        {
            try
            {
                IOrdenRetiro orden = OrdenRetiroFactory.GetOrdenRetiroFactory();
                AdministrarGrillas.Configurar(dtgOrdenRetiro, "OrdenRetiroID", CantidadOpciones, true, false);
                dtgOrdenRetiro.CurrentPageIndex = currentPage;

                //ver si hace falta agregar parametros de busqueda
                orden.SolicitudRetiroID = Utiles.Validaciones.obtieneEntero(txtSolicitudRetiroID.Text);
                //orden.AgenciaID=usuario.AgenciaID; //la agencia conectada
                orden.NumeroOrden = txtNumOrden.Text;

                if (ddlModEntrega.SelectedItem.Text != "Todas")
                {
                    orden.ModalidadEntregaID = Utiles.Validaciones.obtieneEntero(ddlModEntrega.SelectedValue);
                }
                else
                {
                    orden.ModalidadEntregaID = 0;
                }
                if (ddlUnidadVenta.SelectedItem.Text != "Todas")
                {
                    orden.UnidadVentaID = Utiles.Validaciones.obtieneEntero(ddlUnidadVenta.SelectedValue);
                }
                else
                {
                    orden.UnidadVentaID = 0;
                }
                orden.RemitoClienteNro = txtNroRemito.Text;

                dtgOrdenRetiro.DataSource = orden.GetOrdenRetiroDataSet();
                dtgOrdenRetiro.DataBind();
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
Пример #3
0
        public List <datos> ValidaOrdenes(string nombrep, string AgenciaConcet)
        {
            var persons = new List <datos>();
            //elimina las llaves
            string prueba1 = nombrep.Replace("}", " ");
            string prueba  = prueba1.Replace("{", " ");
            //elimina los puntos
            string datos = prueba.Replace(":", " ");

            DsHojaRutaRepartidorOrdenes.DatosCBDataTable dso = new DsHojaRutaRepartidorOrdenes.DatosCBDataTable();
            string[] separadas;

            string[] CadaLinea;

            separadas = datos.Split('$');

            int tamaño = separadas.Count();

            for (int i = 0; i < separadas.Count(); i++)
            {
                CadaLinea = separadas[i].Split(new string[] { ",\"" }, StringSplitOptions.None);

                string ConceptoOrdenID = CadaLinea[0].Replace("OrdenRetiroConceptoFacturacion", " ");

                if (ConceptoOrdenID != "")
                {
                    string OrdenRetiro     = CadaLinea[1].Replace("ordenRetiro", " ");
                    string OrdenRetiroBien = OrdenRetiro.ToString().Replace('"', ' ').Trim();

                    string descripcion     = CadaLinea[2].Replace("descripProducto", " ");
                    string descripcionBien = descripcion.ToString().Replace('"', ' ').Trim();

                    string importe     = CadaLinea[3].Replace("Importe", " ");
                    string importeBien = importe.ToString().Replace('"', ' ').Trim();

                    string cb     = CadaLinea[4].Replace("CB", " ");
                    string cbBien = cb.ToString().Replace('"', ' ').Trim();


                    string ConceptoOrdenIDBien = ConceptoOrdenID.ToString().Replace('"', ' ').Trim();

                    dso.AddDatosCBRow(OrdenRetiroBien, descripcionBien, importeBien, cbBien, ConceptoOrdenIDBien);
                }
            }


            try
            {
                foreach (DsHojaRutaRepartidorOrdenes.DatosCBRow drr in dso.Rows)
                {
                    if (drr.CodigoBarras != "0")
                    {
                        ICodigoBarras cb2       = CodigoBarrasFactory.GetCodigoBarras();
                        string        NroCodigo = cb2.GetDatosByOrdenRetiroConceptoFacturacion(Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion));


                        if (NroCodigo != drr.CodigoBarras)
                        {
                            int conceptoid = 0;
                            int clienteid  = 0;
                            int uv         = 0;

                            IOrdenRetiro  or   = OrdenRetiroFactory.GetOrdenRetiroFactory();
                            DsOrdenRetiro dsor = new DsOrdenRetiro();
                            or.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID);
                            dsor             = or.ClienteCorporativoinOR();

                            foreach (DsOrdenRetiro.DatosOrdenCBRow drror in dsor.DatosOrdenCB)
                            {
                                clienteid  = drror.IsClienteIDNull() ? 0 : Convert.ToInt32(drror.ClienteID);
                                uv         = drror.IsUnidadVentaIDNull() ? 0 : Convert.ToInt32(drror.UnidadVentaID);
                                conceptoid = drror.IsConceptoFacturacionIDNull() ? 0 : Convert.ToInt32(drror.ConceptoFacturacionID);
                            }
                            ICodigoBarras cb = CodigoBarrasFactory.GetCodigoBarras();

                            if (clienteid == 0)//el codigo de barra tiene que salir de la agencia
                            {
                                cb.ConceptoFacturacionID = conceptoid;
                                cb.AgenciaID             = Convert.ToInt32(AgenciaConcet);
                                cb.OrdenRetiroID         = Convert.ToInt32(drr.OrdenRetiroID);
                                cb.UnidadVentaID         = uv;
                                if (cb.ValidaCBbyAgenciaID(drr.CodigoBarras) == 0)
                                {
                                    throw new Exception(" Codigo de barra " + drr.CodigoBarras + " inválido");
                                }
                            }
                            else
                            {
                                //tiene que sacar del stock del del cliente corporativo

                                cb.ConceptoFacturacionID = conceptoid;
                                cb.ClienteID             = Convert.ToInt32(clienteid);
                                cb.OrdenRetiroID         = Convert.ToInt32(drr.OrdenRetiroID);
                                cb.UnidadVentaID         = uv;


                                if (cb.ValidaCBbyClienteID(drr.CodigoBarras) == 0)
                                {
                                    throw new Exception(" Codigo de barra " + drr.CodigoBarras + " inválido");
                                }
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Debe ingresar un Código de Barras.");
                    }
                    datos person = new datos
                    {
                        OrdenRetiroConceptoFacturacion = Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion),
                        ordenRetiro     = Convert.ToInt32(drr.OrdenRetiroID),
                        descripProducto = drr.Descripcion,
                        Importe         = Convert.ToDouble(drr.ImporteConcepto),
                        CB = drr.CodigoBarras
                    };
                    persons.Add(person);
                }
            }
            catch (Exception ex)
            {
                string mensaje = ex.Message;

                if (mensaje.Trim() == "Codigo de barra <INPUT style= WIDTH  96%  id=1_  class= editable inline-edit-cell ui-widget-content ui-corner-all  role=textbox name=  rowid= 1 > inválido")
                {
                    throw new Exception("Guardar cambios antes de validar.");
                }
                else
                {
                    throw new Exception(ex.Message);
                }
                // if(mensaje=""
            }



            return(persons);
        }
Пример #4
0
        public List <datos> GuardarOrdenes(string nombrep, string AgenciaConcet)
        {
            var persons = new List <datos>();
            //elimina las llaves
            string prueba1 = nombrep.Replace("}", " ");
            string prueba  = prueba1.Replace("{", " ");
            //elimina los puntos
            string datos = prueba.Replace(":", " ");

            DsHojaRutaRepartidorOrdenes.DatosCBDataTable dso = new DsHojaRutaRepartidorOrdenes.DatosCBDataTable();
            string[] separadas;

            string[] CadaLinea;

            separadas = datos.Split('$');

            int tamaño = separadas.Count();

            for (int i = 0; i < separadas.Count(); i++)
            {
                CadaLinea = separadas[i].Split(',');



                string ConceptoOrdenID = CadaLinea[0].Replace("OrdenRetiroConceptoFacturacion", " ");

                if (ConceptoOrdenID != "")
                {
                    string OrdenRetiro     = CadaLinea[1].Replace("ordenRetiro", " ");
                    string OrdenRetiroBien = OrdenRetiro.ToString().Replace('"', ' ').Trim();

                    string descripcion     = CadaLinea[2].Replace("descripProducto", " ");
                    string descripcionBien = descripcion.ToString().Replace('"', ' ').Trim();

                    string importe     = CadaLinea[3].Replace("Importe", " ");
                    string importeBien = importe.ToString().Replace('"', ' ').Trim();

                    string cb     = CadaLinea[4].Replace("CB", " ");
                    string cbBien = cb.ToString().Replace('"', ' ').Trim();

                    string ConceptoOrdenIDBien = ConceptoOrdenID.ToString().Replace('"', ' ').Trim();

                    dso.AddDatosCBRow(OrdenRetiroBien, descripcionBien, importeBien, cbBien, ConceptoOrdenIDBien);
                }
            }



            foreach (DsHojaRutaRepartidorOrdenes.DatosCBRow drr in dso.Rows)
            {
                ICodigoBarras cb        = CodigoBarrasFactory.GetCodigoBarras();
                string        NroCodigo = cb.GetDatosByOrdenRetiroConceptoFacturacion(Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion));

                if (NroCodigo != drr.CodigoBarras)//quiere decir que se realizaron modificaciones en el numero de los CB
                //Se tiene que dar de baja el que tenia anteriormente y usar el que estan cargando.
                {
                    int conceptoid = 0;
                    int clienteid  = 0;
                    int uv         = 0;

                    IOrdenRetiro  or   = OrdenRetiroFactory.GetOrdenRetiroFactory();
                    DsOrdenRetiro dsor = new DsOrdenRetiro();
                    or.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID);
                    dsor             = or.ClienteCorporativoinOR();

                    foreach (DsOrdenRetiro.DatosOrdenCBRow drror in dsor.DatosOrdenCB)
                    {
                        clienteid  = drror.IsClienteIDNull() ? 0 : Convert.ToInt32(drror.ClienteID);
                        uv         = drror.IsUnidadVentaIDNull() ? 0 : Convert.ToInt32(drror.UnidadVentaID);
                        conceptoid = drror.IsConceptoFacturacionIDNull() ? 0 : Convert.ToInt32(drror.ConceptoFacturacionID);
                    }


                    if (clienteid == 0)//el codigo de barra tiene que salir de la agencia
                    {
                        cb.ConceptoFacturacionID = conceptoid;
                        cb.AgenciaID             = Convert.ToInt32(AgenciaConcet);
                        cb.OrdenRetiroID         = Convert.ToInt32(drr.OrdenRetiroID);
                        cb.UnidadVentaID         = uv;
                        cb.ClienteID             = 0;
                        //pasa primero el cb viejo y despues el nuevo

                        if (cb.CambiaEstadoCBOrdenRetiro(NroCodigo, drr.CodigoBarras, drr.OrdenRetiroConceptoFacturacion) == false)
                        {
                            throw new Exception("Codigo de barra" + drr.CodigoBarras + " inválido");
                        }
                    }
                    else
                    {//tiene que descontar del cliente corporativo
                        cb.ConceptoFacturacionID = conceptoid;
                        cb.ClienteID             = Convert.ToInt32(clienteid);
                        cb.OrdenRetiroID         = Convert.ToInt32(drr.OrdenRetiroID);
                        cb.UnidadVentaID         = uv;
                        cb.AgenciaID             = 0;
                        if (cb.CambiaEstadoCBOrdenRetiro(NroCodigo, drr.CodigoBarras, drr.OrdenRetiroConceptoFacturacion) == false)
                        {
                            throw new Exception("Codigo de barra " + drr.CodigoBarras + " inválido");
                        }
                    }
                }
                datos person = new datos
                {
                    OrdenRetiroConceptoFacturacion = Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion),
                    ordenRetiro     = Convert.ToInt32(drr.OrdenRetiroID),
                    descripProducto = drr.Descripcion,
                    Importe         = Convert.ToDouble(drr.ImporteConcepto),
                    CB = drr.CodigoBarras
                };
                persons.Add(person);
            }


            return(persons);
        }
Пример #5
0
        /**Realiza los controles correspondientes sobre el codigo de barra de la orden de retiro y si
         * pasa los controles abre la pantalla de la orden de retiro
         * para saber si es una orden de retiro el codigo debe comenzar con 7
         * modelo de codigo de barra = 70010915000010
         * 7-(orden retiro) 001-(cant bultos) 0915- (codigo cliente corporativo) 000010- (numero orden)
         * */
        private bool verificarControles()
        {
            try
            {
                if ((txtCodBarraOrden.Text.Length != 0) && (txtCodBarraOrden.Text.Length == 14))
                //tiene que tener 14 caracteres el codigo
                {
                    if (verificarOrdenRetiro())
                    //es orden de retiro, comienza con 7
                    {
                        //nroOrdenRetiro=Utiles.Validaciones.obtieneEntero(txtCodBarraOrden.Text.Substring(8,6));
                        //extraigo el nro de orden y consulto los datos de la orden
                        nroOrdenR  = txtCodBarraOrden.Text;
                        nroCliente = Utiles.Validaciones.obtieneEntero(txtCodBarraOrden.Text.Substring(4, 4));
                        IOrdenRetiro orden = OrdenRetiroFactory.GetOrdenRetiroFactory();
                        orden.NumeroOrden = nroOrdenR;                      // nroOrdenRetiro.ToString();
                        orden.Consultar(nroCliente);
                        if (orden.OrdenRetiroID != 0)
                        {                        //es una orden de retiro correcta
                            if (orden.Estado == "Generada")
                            {
                                Session["SolicitudRetiroID"] = orden.SolicitudRetiroID;
                                Session["OrdenRetiroID"]     = orden.OrdenRetiroID;
                                //consulto los datos de la solicitud de retiro
                                ISolicitudRetiro solicitud = SolicitudRetiroFactory.GetSolicitudRetiroFactory();
                                solicitud.SolicitudRetiroID = orden.SolicitudRetiroID;
                                solicitud.Consultar();
                                Session ["NumeroSolicitud"] = solicitud.NumeroSolicitud;
                                lblNroSolicitud.Text        = solicitud.NumeroSolicitud.ToString();
                                cantBultosTotal             = orden.Bultos;
                                if (verificarCantidadBultosEnCodigo(orden.Bultos))
                                {                                //el codigo de barra tiene bien puesto la cantidad de bultos
                                    if (solicitud.EstadoSolicitudID == 4)
                                    {                            //la solicitud de retiro esta en estado controlada
                                        if (verificarCantidadBultos(orden.Bultos))
                                        {                        //ha ingresado tantos codigos de barra como la cantidad de bultos
                                            if (verificarCliente(nroCliente))
                                            {                    //la nueva orden es del mismo cliente
                                                cantBultosIngresado = 0;
                                                //le dejo seguir para que abra la orden de retiro
                                                return(true);
                                            }

                                            else
                                            {
                                                cantBultosIngresado = 0;
                                                throw new Exception("La orden de retiro ingresada no corresponde al mismo cliente.");
                                            }
                                        }
                                        else
                                        {
                                            throw new Exception("La cantidad de bultos ingresada no es correcta. Ingrese tantos códigos de barra como bultos tiene la orden de retiro.");
                                        }
                                    }
                                    else
                                    {
                                        cantBultosIngresado           = 0;
                                        lblNroSolicitudRetiro.Visible = true;
                                        lblNroSolicitud.Visible       = true;
                                        throw new Exception("La solicitud de retiro " + solicitud.NumeroSolicitud + " no ha sido controlada aún.");
                                    }
                                }
                                else
                                {
                                    cantBultosIngresado = 0;
                                    throw new Exception("La cantidad de bultos indicada en el código no coincide con la cantidad de bultos de la orden de retiro.");
                                }
                            }
                            else if (orden.Estado == "Emitida")
                            {
                                cantBultosIngresado = 0;
                                throw new Exception("La Orden de Retiro ya ha sido emitida.");
                            }
                            else
                            {
                                cantBultosIngresado = 0;
                                throw new Exception("La Orden de Retiro no tiene el estado correcto para emitir la guía.");
                            }
                        }
                        else
                        {
                            cantBultosIngresado = 0;
                            throw new Exception("El código de barra ingresado no es correcto, verifique número de orden, cliente y cantidad de bultos.");
                        }
                    }
                    else
                    {
                        cantBultosIngresado = 0;
                        throw new Exception("El código ingresado no corresponde con una órden de retiro.");
                    }
                }
                else
                {
                    cantBultosIngresado = 0;
                    throw new Exception("Debe ingresar un código de barras correcto.");
                }
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                return(false);
            }
        }
        //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();
            }
        }