package br.gov.mc.arquitetura.util; import java.util.ArrayList; import java.util.Collection; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import br.gov.mc.arquitetura.persistencia.impl.UniversalDaoImpl; import br.gov.mc.corporativo.entidade.CrpDocumentoPessoaFisica; import br.gov.mc.corporativo.entidade.CrpPessoaFisica; @Repository("pessoaFisicaUtil") public class PessoaFisicaUtil extends UniversalDaoImpl { @SuppressWarnings("unchecked") public Collection pesquisar(Integer idPessoa, Integer idTipDocumento) { Criteria c = getCurrentSession().createCriteria(CrpDocumentoPessoaFisica.class); c.createCriteria("tipoDocumento").add(Restrictions.idEq(idTipDocumento)); c.createCriteria("pessoaFisica").add(Restrictions.idEq(idPessoa)); return listByExample(c); } public Collection pesquisar(CrpPessoaFisica pf) { if (pf != null) { Criteria c = getCurrentSession().createCriteria(pf.getClass()); if (pf.getDataAlteracao() != null) { c.add(Restrictions.eq("dataAlteracao", pf.getDataAlteracao())); } if (pf.getId() != null) { c.add(Restrictions.idEq(pf.getId())); } if (pf.getTipoPessoa() != null && pf.getTipoPessoa().getId() != null) { c.createCriteria("tipoPessoa").add(Restrictions.idEq(pf.getTipoPessoa().getId())); } if (pf.getTipoOperacao() != null && !"".equals(pf.getTipoOperacao())) { c.add(Restrictions.ilike("tipoOperacao", "%" + pf.getTipoOperacao() + "%")); } if (pf.getSituacaoPessoaOrgao() != null && pf.getSituacaoPessoaOrgao().getId() != null) { c.createCriteria("situacaoPessoaOrgao").add(Restrictions.idEq(pf.getSituacaoPessoaOrgao().getId())); } if (pf.getSituacaoPessoaReceitaFederal() != null && pf.getSituacaoPessoaOrgao() != null) { c.createCriteria("situacaoPessoaReceitaFederal").add( Restrictions.idEq(pf.getSituacaoPessoaReceitaFederal().getId())); } if (pf.getDataEmissao() != null) { c.add(Restrictions.eq("dataEmissao", pf.getDataEmissao())); } if (pf.getDataNascimento() != null) { c.add(Restrictions.eq("dataNascimento", pf.getDataNascimento())); } if (pf.getDataSituacaoCadastral() != null) { c.add(Restrictions.eq("dataSituacaoCadastral", pf.getDataSituacaoCadastral())); } if (pf.getMunicipio() != null && !"".equals(pf.getMunicipio().getId())) { c.createCriteria("municipio").add(Restrictions.idEq(pf.getMunicipio().getId())); } if (pf.getNome() != null && !"".equals(pf.getNome())) { c.add(Restrictions.ilike("nome", "%" + pf.getNome().trim() + "%")); } if (pf.getNomeMae() != null && !"".equals(pf.getNomeMae())) { c.add(Restrictions.ilike("nomeMae", "%" + pf.getNomeMae() + "%")); } if (pf.getNomePai() != null && !"".equals(pf.getNomePai())) { c.add(Restrictions.ilike("nomePai", "%" + pf.getNomePai() + "%")); } if (pf.getPais() != null && pf.getPais().getId() != null) { c.createCriteria("pais").add(Restrictions.idEq(pf.getPais().getId())); } if (pf.getSexo() != null && !"".equals(pf.getSexo())) { c.add(Restrictions.eq("sexo", pf.getSexo())); } if (pf.getCorRaca() != null && pf.getCorRaca().getId() != null){ c.createCriteria("corRaca").add(Restrictions.idEq(pf.getCorRaca().getId())); } if (pf.getDocumentos() != null && pf.getDocumentos().size() > 0) { Collection ids = new ArrayList(); for (CrpDocumentoPessoaFisica d : pf.getDocumentos()) { Criteria documento = getCurrentSession().createCriteria(CrpDocumentoPessoaFisica.class); if (d.getId() != null) documento.add(Restrictions.idEq(d.getId())); if (d.getDataEmissao() != null) documento.add(Restrictions.eq("dataEmissao", d.getDataEmissao())); if (d.getNumero() != null && !"".equals(d.getNumero())) documento.add(Restrictions.eq("numero", d.getNumero())); if (d.getOrgaoEmissor() != null && !"".equals(d.getOrgaoEmissor())) documento.add(Restrictions.eq("orgaoEmissor", d.getOrgaoEmissor())); Collection documentos = listByExample(documento); if (documentos != null && documentos.size() > 0) { for (CrpDocumentoPessoaFisica doc : documentos) { ids.add(doc.getPessoaFisica().getId()); } } } if (ids != null && ids.size() > 0) { c.add(Restrictions.in("id", ids)); } else { return null; } } return listByExample(c); } return getAll(pf.getClass()); } }