public void anularFactura() {
   try {
     System.out.println("Ingreso a anularFactura");
     selectedFactura.setEstado("A");
     facturaRegistration.update(selectedFactura);
     FacesUtil.infoMessage("Factura Anulada.", "Nº " + selectedFactura.getNumeroFactura());
     loadValuesDefault();
   } catch (Exception e) {
     System.out.println("Error en anularFactura : " + e.getStackTrace());
   }
 }
  public void actionModificarFactura() {
    modificacionFactura2 = true;
    crear = false;
    modificacionFactura = false;
    seleccionarFactura = false;
    //
    selectedSucursal = selectedFactura.getSucursal();
    textSucursal = selectedSucursal.getNombre();
    selectetDosificacion = obtenerDosificacion(selectedSucursal);
    totalImporte = selectedFactura.getTotalFacturado();

    selectedCliente = selectedFactura.getCliente();
    textoAutoCompleteCliente = selectedCliente.getNombre();
    textoAutoCompleteNit = selectedCliente.getNit();
  }
 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 void onRowSelect(SelectEvent event) {
   // seleccionado = true ;
   crear = false;
   seleccionarFactura = true;
   if (selectedFactura.getCodigoControl().equals("0")) {
     modificacionFactura = true;
   } else {
     modificacionFactura = false;
   }
 }
  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) {

    }
  }
  private void loadValuesDefault() {
    System.out.println(
        "nombreUsuario:"
            + nombreUsuario
            + " - empresaLogin:"******" - fechaInicio:"
            + fechaInicio
            + " - fechaFin:"
            + fechaFin);
    consultar();
    urlFactura = "";
    seleccionado = false;
    modificacionFactura2 = false;
    modificacionFactura = false;
    seleccionarFactura = false;
    crear = true;
    nombreMes = "TODO";
    numeroFactura = 0;

    selectedFactura = new Factura();
    dosificacion = dosificacionRepository.findActivaBySucursal(selectedFactura.getSucursal());
  }
  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;
    }
  }
  public void modificarFactura() {
    System.out.println("Ingreso a registrarFactura...");
    if (selectedSucursal.getId().intValue() == 0) {
      FacesUtil.infoMessage("VALIDACION", "Seleccione una sucursal");
      return;
    }
    if (verificarNitCi()) {
      selectedFactura.setNombreFactura(textoAutoCompleteCliente);
      selectedFactura.setNitCi(textoAutoCompleteNit);
      selectedFactura.setTotalFacturado(totalImporte);
      selectedFactura.setTotalPagar(totalImporte);
      selectedFactura.setTotalEfectivo(totalImporte);
      selectedFactura.setTotalLiteral(obtenerMontoLiteral(totalImporte));
      selectedFactura.setCliente(selectedCliente);
      selectedFactura.setSucursal(selectedSucursal);
      selectedFactura.setNombreFactura(selectedCliente.getNombre());
      selectedFactura.setImporteSubTotal(
          selectedFactura.getTotalFacturado()
              - selectedFactura.getImporteICE()
              - selectedFactura.getImporteExportaciones()
              - selectedFactura.getImporteVentasGrabadasTasaCero());
      selectedFactura.setImporteBaseDebitoFiscal(
          selectedFactura.getImporteSubTotal()
              - selectedFactura.getImporteDescuentosBonificaciones());
      selectedFactura.setImporteBaseDebitoFiscal(
          selectedFactura.getImporteBaseDebitoFiscal() * 0.13);
      selectedFactura.setMes(Time.obtenerFormatoMM(selectedFactura.getFechaFactura()));

      facturaRegistration.update(selectedFactura);
      FacesUtil.infoMessage("Factura Modificada", "Nº " + selectedFactura.getNumeroFactura());
      loadValuesDefault();
    }
  }