public Dosificacion obtenerDosificacion(Sucursal suc) {
   for (Dosificacion dos : listDosificacion) {
     if (dos.getSucursal().getId().intValue() == suc.getId().intValue()) {
       return dos;
     }
   }
   return null;
 }
  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) {

    }
  }
 public void onRowSelectSucursalClick(SelectEvent event) {
   String nombre = event.getObject().toString();
   textSucursal = nombre;
   // Sucursal object = (Sucursal)event.getObject();
   // selectedSucursal = new Sucursal();
   for (Sucursal i : listSucursal) {
     if (i.getNombre().equals(nombre)) {
       selectedSucursal = i;
       Dosificacion dos = obtenerDosificacion(selectedSucursal);
       if (dos != null) {
         selectedFactura.setFechaLimiteEmision(dos.getFechaLimiteEmision());
         selectedFactura.setNumeroAutorizacion(dos.getNumeroAutorizacion());
         selectedFactura.setNumeroFactura(String.valueOf(dos.getNumeroSecuencia()));
         setSelectetDosificacion(obtenerDosificacion(i));
       }
       return;
     }
   }
 }
  public String obtenerCodigoControl(
      Date fechaFactura, Dosificacion dosificacion, int totalBolivianos, String nitCi) {
    try {
      System.out.println("Certificar Codigo Control... ");
      CodigoControl7 cc = new CodigoControl7();
      int montoFactura = totalBolivianos;

      cc.setNumeroAutorizacion(dosificacion.getNumeroAutorizacion());
      cc.setNumeroFactura(dosificacion.getNumeroSecuencia());
      cc.setNitci(nitCi);
      cc.setFechaTransaccion(fechaFactura);
      cc.setMonto(montoFactura);
      cc.setLlaveDosificacion(dosificacion.getLlaveControl());

      // Obtener Codigo Control V7
      String codigoControlV7 = cc.obtener();
      System.out.println("Codigo Control V7: " + codigoControlV7);
      return codigoControlV7;

    } catch (Exception e) {
      System.out.println("Error al generarCodigoControlV7: " + e.getMessage());
      return "Error CC";
    }
  }