public void validarCedulaPersonaNatural() {
    String numDocumento = personaNatural.getNumeroDocumento();
    if (personaNatural.getNumeroDocumento().length() == 10) {
      if (!CedulaValidator.validate(personaNatural.getNumeroDocumento())) {
        // personaNatural.setNumeroDocumento(null);
        personaNatural = null;
        getPersonaNatural();
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_WARN, "Número de cédula inválida", null));
        return;
      }
    } else if (personaNatural.getNumeroDocumento().length() == 13) {
      if (!CedulaValidator.validacionRUC(personaNatural.getNumeroDocumento())) {
        // personaNatural.setNumeroDocumento(null);
        personaNatural = null;
        getPersonaNatural();
        FacesContext.getCurrentInstance()
            .addMessage(
                null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Número de ruc inválido", null));
        return;
      }
    } else {
      // personaNatural.setNumeroDocumento(null);
      personaNatural = null;
      getPersonaNatural();
      FacesContext.getCurrentInstance()
          .addMessage(
              null,
              new FacesMessage(FacesMessage.SEVERITY_WARN, "Número de documento inválido", null));
      return;
    }

    if (personaNatural.getNumeroDocumento() != null) {
      System.out.println("entra else");
      personaNatural =
          personaNaturalServicio.findByNumeroDocumento(personaNatural.getNumeroDocumento());
      System.out.println("personaNatural: " + personaNatural);
      if (personaNatural == null) {
        getPersonaNatural();
        personaNatural.setNumeroDocumento(numDocumento);
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(
                    FacesMessage.SEVERITY_INFO, "Número de documento no existente", null));
        System.out.println(
            "personaNatural.getNumeroDocumento(): " + personaNatural.getNumeroDocumento());
      } else {
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(
                    FacesMessage.SEVERITY_INFO, "Número de documento existente", null));
      }
    }
  }
 public void llenaPopUpPersonaNatural() {
   getPersonaNatural();
   personaNatural.setNumeroDocumento(licenciaComercializacion.getNumeroDocumento());
   /*personaNatural.setNombre(licenciaComercializacion.getNombre());
   personaNatural.setApellido(licenciaComercializacion.getApellido());
   personaNatural.setCelular(licenciaComercializacion.getTelefono());
   personaNatural.setCasilleroJudicial(licenciaComercializacion.getCasilleroJudicial());
   personaNatural.setDireccion(licenciaComercializacion.getDireccion());
   personaNatural.setEmail(licenciaComercializacion.getCorreoElectronico());*/
 }
  @Override
  public void guardarLicenciaComercializacion(LicenciaComercializacion licenciaComercializacion)
      throws Exception {
    PersonaNatural pn =
        personaNaturalServicio.findByNumeroDocumento(licenciaComercializacion.getNumeroDocumento());
    PersonaJuridica pj =
        personaJuridicaServicio.findByRuc(licenciaComercializacion.getNumeroDocumento());
    if (pn != null) {
      if (licenciaComercializacion.getNumeroDocumento().length() == 10) {
        CatalogoDetalle cd = catalogoDetalleServicio.obtenerPorNemonico("CED").get(0);
        pn.setTipoDocumento(cd.getCodigoCatalogoDetalle());
      } else if (licenciaComercializacion.getNumeroDocumento().length() == 13) {
        CatalogoDetalle cd = catalogoDetalleServicio.obtenerPorNemonico("RUC").get(0);
        pn.setTipoDocumento(cd.getCodigoCatalogoDetalle());
      }
      pn.setNombre(licenciaComercializacion.getNombre());
      pn.setApellido(licenciaComercializacion.getApellido());
      pn.setEmail(licenciaComercializacion.getCorreoElectronico());
      pn.setTelefono(licenciaComercializacion.getTelefono());
      pn.setCelular(licenciaComercializacion.getTelefono());
      pn.setDireccion(licenciaComercializacion.getDireccion());
      Localidad localidad = new Localidad();
      localidad.setCodigoLocalidad(
          Long.valueOf(licenciaComercializacion.getCodigoParroquida().toString()));
      pn.setCodigoLocalidad(localidad);
      pn.setCodigoProvincia(licenciaComercializacion.getCodigoProvincia());
      pn.setCodigoCanton(licenciaComercializacion.getCodigoCanton());
      pn.setCodigoParroquia(licenciaComercializacion.getCodigoParroquida());
      pn.setEstadoRegistro(true);
      pn.setUsuarioCreacion(BigInteger.valueOf(-1));
      pn.setUsuarioModificacion(licenciaComercializacion.getUsuarioModificacion());
      pn.setFechaModificacion(new Date());
      pn.setCasilleroJudicial(licenciaComercializacion.getCasilleroJudicial());
      personaNaturalServicio.actualizarPersonaNatural(pn);
    } else {
      PersonaNatural pnNuevo = new PersonaNatural();
      if (licenciaComercializacion.getNumeroDocumento().length() == 10) {
        CatalogoDetalle cd = catalogoDetalleServicio.obtenerPorNemonico("CED").get(0);
        pnNuevo.setTipoDocumento(cd.getCodigoCatalogoDetalle());
      } else if (licenciaComercializacion.getNumeroDocumento().length() == 13) {
        CatalogoDetalle cd = catalogoDetalleServicio.obtenerPorNemonico("RUC").get(0);
        pnNuevo.setTipoDocumento(cd.getCodigoCatalogoDetalle());
      }
      pnNuevo.setNombre(licenciaComercializacion.getNombre());
      pnNuevo.setApellido(licenciaComercializacion.getApellido());
      pnNuevo.setEmail(licenciaComercializacion.getCorreoElectronico());
      pnNuevo.setTelefono(licenciaComercializacion.getTelefono());
      pnNuevo.setCelular(licenciaComercializacion.getTelefono());
      pnNuevo.setDireccion(licenciaComercializacion.getDireccion());
      Localidad localidad = new Localidad();
      localidad.setCodigoLocalidad(
          Long.valueOf(licenciaComercializacion.getCodigoParroquida().toString()));
      pnNuevo.setCodigoLocalidad(localidad);
      pnNuevo.setCodigoProvincia(licenciaComercializacion.getCodigoProvincia());
      pnNuevo.setCodigoCanton(licenciaComercializacion.getCodigoCanton());
      pnNuevo.setCodigoParroquia(licenciaComercializacion.getCodigoParroquida());
      pnNuevo.setEstadoRegistro(true);
      pnNuevo.setUsuarioCreacion(BigInteger.valueOf(-1));
      pnNuevo.setUsuarioModificacion(licenciaComercializacion.getUsuarioModificacion());
      pnNuevo.setFechaModificacion(new Date());
      pnNuevo.setCasilleroJudicial(licenciaComercializacion.getCasilleroJudicial());
      personaNaturalServicio.create(pnNuevo);
    }

    if (pj != null) {
      pj.setRuc(licenciaComercializacion.getNumeroDocumento());
      pj.setNombreLegal("");
      pj.setDocumentoRepresentanteLegal("");
      pj.setNombreRepresentanteLegal(licenciaComercializacion.getNombre());
      pj.setApellidoRepresentanteLegal(licenciaComercializacion.getApellido());
      pj.setEmail(licenciaComercializacion.getCorreoElectronico());
      pj.setTelefono(licenciaComercializacion.getTelefono());
      pj.setCelular(licenciaComercializacion.getTelefono());
      pj.setDireccion(licenciaComercializacion.getDireccion());
      Localidad localidad = new Localidad();
      localidad.setCodigoLocalidad(
          Long.valueOf(licenciaComercializacion.getCodigoParroquida().toString()));
      pj.setCodigoLocalidad(localidad);
      pj.setCodigoProvincia(licenciaComercializacion.getCodigoProvincia());
      pj.setCodigoCanton(licenciaComercializacion.getCodigoCanton());
      pj.setCodigoParroquia(licenciaComercializacion.getCodigoParroquida());
      pj.setEstadoRegistro(true);
      pj.setUsuarioCreacion(BigInteger.valueOf(-1));
      pj.setUsuarioModificacion(licenciaComercializacion.getUsuarioModificacion());
      pj.setFechaModificacion(new Date());
      pj.setCasilleroJudicial(licenciaComercializacion.getCasilleroJudicial());
      personaJuridicaServicio.actualizarPersonaJuridica(pj);
    } else {
      PersonaJuridica pjNuevo = new PersonaJuridica();
      pjNuevo.setRuc(licenciaComercializacion.getNumeroDocumento());
      pjNuevo.setNombreLegal("");
      pjNuevo.setDocumentoRepresentanteLegal("");
      pjNuevo.setNombreRepresentanteLegal(licenciaComercializacion.getNombre());
      pjNuevo.setApellidoRepresentanteLegal(licenciaComercializacion.getApellido());
      pjNuevo.setEmail(licenciaComercializacion.getCorreoElectronico());
      pjNuevo.setTelefono(licenciaComercializacion.getTelefono());
      pjNuevo.setCelular(licenciaComercializacion.getTelefono());
      pjNuevo.setDireccion(licenciaComercializacion.getDireccion());
      Localidad localidad = new Localidad();
      localidad.setCodigoLocalidad(
          Long.valueOf(licenciaComercializacion.getCodigoParroquida().toString()));
      pjNuevo.setCodigoLocalidad(localidad);
      pjNuevo.setCodigoProvincia(licenciaComercializacion.getCodigoProvincia());
      pjNuevo.setCodigoCanton(licenciaComercializacion.getCodigoCanton());
      pjNuevo.setCodigoParroquia(licenciaComercializacion.getCodigoParroquida());
      pjNuevo.setEstadoRegistro(true);
      pjNuevo.setUsuarioCreacion(BigInteger.valueOf(-1));
      pjNuevo.setUsuarioModificacion(licenciaComercializacion.getUsuarioModificacion());
      pjNuevo.setFechaModificacion(new Date());
      pjNuevo.setCasilleroJudicial(licenciaComercializacion.getCasilleroJudicial());
    }
    this.create(licenciaComercializacion);
  }
 public void guardarPersonaNatural() {
   Usuario us = usuarioDao.obtenerPorLogin(login.getUserName());
   licenciaComercializacion.setNumeroDocumento(personaNatural.getNumeroDocumento());
   licenciaComercializacion.setNombre(personaNatural.getNombre());
   licenciaComercializacion.setApellido(personaNatural.getApellido());
   licenciaComercializacion.setDireccion(personaNatural.getDireccion());
   licenciaComercializacion.setTelefono(personaNatural.getTelefono());
   licenciaComercializacion.setCorreoElectronico(personaNatural.getEmail());
   licenciaComercializacion.setCasilleroJudicial(personaNatural.getCasilleroJudicial());
   PersonaNatural pn =
       personaNaturalServicio.findByNumeroDocumento(personaNatural.getNumeroDocumento());
   try {
     if (pn == null) {
       personaNatural.setFechaCreacion(new Date());
       personaNatural.setUsuarioCreacion(BigInteger.valueOf(us.getCodigoUsuario()));
       personaNaturalServicio.create(personaNatural);
       Auditoria auditoria = new Auditoria();
       auditoria.setAccion("INSERT");
       auditoria.setFecha(getCurrentTimeStamp());
       auditoria.setUsuario(BigInteger.valueOf(us.getCodigoUsuario()));
       auditoria.setDetalleAnterior(personaNatural.toString());
       auditoriaServicio.create(auditoria);
       FacesContext.getCurrentInstance()
           .addMessage(
               null,
               new FacesMessage(FacesMessage.SEVERITY_INFO, "Se ha guardado la persona", null));
       RequestContext.getCurrentInstance().execute("PF('dlgPerNat').hide()");
     } else {
       personaNatural.setFechaModificacion(new Date());
       personaNatural.setUsuarioModificacion(BigInteger.valueOf(us.getCodigoUsuario()));
       personaNaturalServicio.actualizarPersonaNatural(personaNatural);
       Auditoria auditoria = new Auditoria();
       auditoria.setAccion("UPDATE");
       auditoria.setFecha(getCurrentTimeStamp());
       auditoria.setUsuario(BigInteger.valueOf(us.getCodigoUsuario()));
       auditoria.setDetalleAnterior(pn.toString());
       auditoria.setDetalleCambios(personaNatural.toString());
       auditoriaServicio.create(auditoria);
       FacesContext.getCurrentInstance()
           .addMessage(
               null,
               new FacesMessage(FacesMessage.SEVERITY_INFO, "Se ha actualizado la persona", null));
       RequestContext.getCurrentInstance().execute("PF('dlgPerNat').hide()");
     }
   } catch (Exception ex) {
     FacesContext.getCurrentInstance()
         .addMessage(
             null,
             new FacesMessage(
                 FacesMessage.SEVERITY_ERROR, "No se pudo guardar la persona", ex.getMessage()));
   }
 }