@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 guardarPersonaJuridica() {
    Usuario us = usuarioDao.obtenerPorLogin(login.getUserName());

    licenciaComercializacion.setNumeroDocumento(personaJuridica.getRuc());
    licenciaComercializacion.setNombre(personaJuridica.getNombreLegal());
    licenciaComercializacion.setApellido(personaJuridica.getNombreComercial());
    licenciaComercializacion.setDireccion(personaJuridica.getDireccion());
    licenciaComercializacion.setTelefono(personaJuridica.getCelular());
    licenciaComercializacion.setCorreoElectronico(personaJuridica.getEmail());
    licenciaComercializacion.setCasilleroJudicial(personaJuridica.getCasilleroJudicial());
    PersonaJuridica pj = personaJuridicaServicio.findByRuc(personaJuridica.getRuc());
    try {
      if (pj == null) {
        personaJuridica.setFechaCreacion(new Date());
        personaJuridica.setUsuarioCreacion(BigInteger.valueOf(us.getCodigoUsuario()));
        Localidad localidad = new Localidad();
        localidad.setCodigoLocalidad(Long.valueOf("5"));
        personaJuridica.setCodigoLocalidad(null);
        CatalogoDetalle catalogoDetalle = new CatalogoDetalle();
        catalogoDetalle.setCodigoCatalogoDetalle(132L);
        personaJuridica.setClasePersona(catalogoDetalle);
        personaJuridicaServicio.create(personaJuridica);
        Auditoria auditoria = new Auditoria();
        auditoria.setAccion("INSERT");
        auditoria.setFecha(getCurrentTimeStamp());
        auditoria.setUsuario(BigInteger.valueOf(us.getCodigoUsuario()));
        auditoria.setDetalleAnterior(personaJuridica.toString());
        auditoriaServicio.create(auditoria);
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_INFO, "Se ha guardado la persona", null));
        RequestContext.getCurrentInstance().execute("PF('dlgPerJur').hide()");
      } else {
        personaJuridica.setFechaModificacion(new Date());
        personaJuridica.setUsuarioModificacion(BigInteger.valueOf(us.getCodigoUsuario()));
        Localidad localidad = new Localidad();
        localidad.setCodigoLocalidad(Long.valueOf("5"));
        personaJuridica.setCodigoLocalidad(null);
        CatalogoDetalle catalogoDetalle = new CatalogoDetalle();
        catalogoDetalle.setCodigoCatalogoDetalle(132L);
        personaJuridica.setClasePersona(catalogoDetalle);
        personaJuridicaServicio.actualizarPersonaJuridica(personaJuridica);
        Auditoria auditoria = new Auditoria();
        auditoria.setAccion("UPDATE");
        auditoria.setFecha(getCurrentTimeStamp());
        auditoria.setUsuario(BigInteger.valueOf(us.getCodigoUsuario()));
        auditoria.setDetalleAnterior(pj.toString());
        auditoria.setDetalleCambios(personaJuridica.toString());
        auditoriaServicio.create(auditoria);
        FacesContext.getCurrentInstance()
            .addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_INFO, "Se ha actualizado la persona", null));
        RequestContext.getCurrentInstance().execute("PF('dlgPerJur').hide()");
      }
    } catch (Exception ex) {
      FacesContext.getCurrentInstance()
          .addMessage(
              null,
              new FacesMessage(
                  FacesMessage.SEVERITY_ERROR, "No se pudo guardar la persona", ex.getMessage()));
      System.out.println("ex.getMessage()" + ex.getMessage());
      ex.printStackTrace();
    }
  }