public void armarUrl() {
    try {
      HttpServletRequest request =
          (HttpServletRequest) facesContext.getExternalContext().getRequest();
      String urlPath = request.getRequestURL().toString();
      urlPath =
          urlPath.substring(0, urlPath.length() - request.getRequestURI().length())
              + request.getContextPath()
              + "/";

      TamanoHoja tamanoHoja = tamanoHojaRepository.traerHojaActiva();
      String tamano = tamanoHoja.getTamano();
      String impresion = "" + selectedFactura.isImpresion();
      dosificacion = dosificacionRepository.findActivaBySucursal(selectedFactura.getSucursal());
      String leyenda1 = URLEncoder.encode(dosificacion.getLeyendaInferior1(), "ISO-8859-1");
      String leyenda2 = URLEncoder.encode(dosificacion.getLeyendaInferior2(), "ISO-8859-1");
      String leyendaInferior2 = URLEncoder.encode(dosificacion.getLeyendaInferior2(), "ISO-8859-1");

      url =
          urlPath
              + "ReportFactura?pIdFactura="
              + selectedFactura.getId()
              + "&pEmpresa="
              + URLEncoder.encode(empresaLogin.getRazonSocial(), "ISO-8859-1")
              + "&pCiudad="
              + URLEncoder.encode(empresaLogin.getCiudad(), "ISO-8859-1")
              + "&pPais=BOLIVIA&pIdEmpresa="
              + empresaLogin.getId()
              + "&pNit="
              + empresaLogin.getNIT()
              + "&pQr="
              + selectedFactura.getCodigoRespuestaRapida()
              + "&pLeyenda="
              + leyendaInferior2
              + "&pInpresion="
              + impresion
              + "&pTamano="
              + tamano
              + "&pLeyenda1="
              + leyenda1
              + "&pLeyenda2="
              + leyenda2;
      if (selectedFactura.isImpresion()) {
        selectedFactura.setImpresion(false);
        facturaRegistration.update(selectedFactura);
      }
      System.out.println("getURL() -> " + url);
    } catch (Exception e) {

    }
  }
 // reporte
 public String loadURL() {
   try {
     HttpServletRequest request =
         (HttpServletRequest) facesContext.getExternalContext().getRequest();
     String urlPath = request.getRequestURL().toString();
     urlPath =
         urlPath.substring(0, urlPath.length() - request.getRequestURI().length())
             + request.getContextPath()
             + "/";
     String urlPDFreporte =
         urlPath
             + "ReporteFactura?pGestion="
             + gestionLogin.getId()
             + "&pEmpresa="
             + empresaLogin.getId()
             + "&pNumero="
             + numeroFactura;
     urlFactura = urlPDFreporte;
     System.out.println("getURL() -> " + urlPDFreporte);
     return urlPDFreporte;
   } catch (Exception e) {
     System.out.println("getURL error: " + e.getMessage());
     return "error";
   }
 }
  public String armarCadenaQR(Factura factura) {
    String cadenaQR = "";
    try {
      cadenaQR = new String();

      // NIT emisor
      cadenaQR = cadenaQR.concat(empresaLogin.getNIT());
      cadenaQR = cadenaQR.concat("|");

      // Numero de Factura
      cadenaQR = cadenaQR.concat(factura.getNumeroFactura());
      cadenaQR = cadenaQR.concat("|");

      // Numero de Autorizacion
      cadenaQR = cadenaQR.concat(factura.getNumeroAutorizacion());
      cadenaQR = cadenaQR.concat("|");

      // Fecha de Emision
      cadenaQR = cadenaQR.concat(obtenerFechaEmision(factura.getFechaFactura()));
      cadenaQR = cadenaQR.concat("|");

      // Total Bs
      cadenaQR = cadenaQR.concat(String.valueOf(factura.getTotalFacturado()));
      cadenaQR = cadenaQR.concat("|");

      // Importe Base para el Credito Fiscal
      cadenaQR = cadenaQR.concat(String.valueOf(factura.getTotalFacturado()));
      cadenaQR = cadenaQR.concat("|");

      // Codigo de Control
      cadenaQR = cadenaQR.concat(factura.getCodigoControl());
      cadenaQR = cadenaQR.concat("|");

      // NIT / CI del Comprador
      cadenaQR = cadenaQR.concat(factura.getNitCi());
      cadenaQR = cadenaQR.concat("|");

      // Importe ICE/IEHD/TASAS [cuando corresponda]
      cadenaQR = cadenaQR.concat("0");
      cadenaQR = cadenaQR.concat("|");

      // Importe por ventas no Gravadas o Gravadas a Tasa Cero [cuando
      // corresponda]
      cadenaQR = cadenaQR.concat("0");
      cadenaQR = cadenaQR.concat("|");

      // Importe no Sujeto a Credito Fiscal [cuando corresponda]
      cadenaQR = cadenaQR.concat("0");
      cadenaQR = cadenaQR.concat("|");

      // Descuentos Bonificaciones y Rebajas Obtenidas [cuando
      // corresponda]
      cadenaQR = cadenaQR.concat("0");

      return cadenaQR;

    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("Error en armarCadenaQR: " + e.getMessage());
      return cadenaQR;
    }
  }