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();
    }
  }
  public boolean verificarNitCi() {
    System.out.println("verificarNitCi() cliente id:" + selectedCliente.getId());
    try {
      System.out.println(
          "textoAutoCompleteNit: "
              + textoAutoCompleteNit
              + " - textoAutoCompleteCliente: "
              + textoAutoCompleteCliente);
      if (textoAutoCompleteNit.trim().length() == 0
          || textoAutoCompleteCliente.trim().length() == 0) {
        FacesUtil.infoMessage("VALIDACION", "Agregue un Cliente");
        return false;
      }
      if (selectedCliente.getId() == 0) {

        Cliente cliente = new Cliente();
        cliente.setCi(textoAutoCompleteNit);
        cliente.setNit(textoAutoCompleteNit);
        cliente.setCodigo("");
        cliente.setCorreo("Ninguno");
        cliente.setDiasPermitidosCredito(0);
        cliente.setDireccion("Ninguna");
        cliente.setEmpresa(empresaLogin);
        cliente.setEstado("AC");
        cliente.setFechaRegistro(new Date());
        cliente.setTelefono("0");
        cliente.setNombre(textoAutoCompleteCliente);
        cliente.setRazonSocial(textoAutoCompleteCliente);
        cliente.setTipo("JURIDICO");
        cliente.setUsuarioRegistro(nombreUsuario);
        try {
          selectedCliente = clienteRegistration.create(cliente);
          System.out.println("Nit registrado...." + selectedCliente.getNit());
        } catch (Exception e) {
          System.out.println("22222");
          if (e.getCause()
              .getMessage()
              .equals(
                  "org.hibernate.exception.ConstraintViolationException: could not execute statement")) {
            try {
              Cliente c2 = clienteRepository.findByNombre(textoAutoCompleteCliente);
              c2.setCi(textoAutoCompleteNit);
              c2.setNit(textoAutoCompleteNit);
              c2.setNombre(textoAutoCompleteCliente);
              c2.setRazonSocial(textoAutoCompleteCliente);
              clienteRegistration.update(c2);
              selectedCliente = c2;
            } catch (Exception e2) {
              System.out.println("Error al actualizar cliente");
            }
          }
        }
      }
      return true;

    } catch (Exception e) {
      System.out.println("verificarNitCi Error:" + e.getMessage());
      return false;
    }
  }
 public void actualizarFormReg() {
   System.out.println("actualizarFormReg");
   seleccionarFactura = false;
   crear = true;
   selectedFactura = new Factura();
   FacesUtil.resetDataTable("formTableFactura:dataTableFactura");
 }
 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());
   }
 }