diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java index fee7bd5..cffe719 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java @@ -14,6 +14,7 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.PrimaryKeyJoinColumn; +import javax.persistence.Transient; import org.hibernate.envers.Audited; import org.hibernate.envers.NotAudited; @@ -31,37 +32,37 @@ import com.fasterxml.jackson.annotation.JsonView; *

* *

- * + * *

* Company: Central IT - Governança Corporativa - *

- * + * *

* Title: Pessoa *

- * + * *

* Description: Entidade Pessoa *

- * + * *

* Iniciativa(s): NUMERO_INICIATIVA *

- * + * *

* Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO *

- * + * * @since 27/11/2014 - 10:32:19 - * + * * @version 1.0.0 - * + * * @author rogerio.costa - * + * */ @Audited @Entity -@JsonIgnoreProperties({ "$checked"}) +@JsonIgnoreProperties({ "$checked" }) public class Pessoa extends PersistentObjectAuditOrganizacao { /** Atributo serialVersionUID. */ @@ -69,46 +70,14 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { @Id @GeneratedValue(strategy = GenerationType.AUTO) - @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class }) + @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class }) protected Long id; /** Atributo nome. */ // TODO acrescentar view do estrutura organizacional, substituir Views.LookupView.class pelo do estrutura organizacional - @JsonView({ Views.FornecedorFindView.class, - Views.LookupView.class, - Views.PessoaListViewListView.class, - Views.ColaboradorAutoCompleteView.class, - Views.ComissaoListView.class, - Views.BemPatrimonialAutoCompleteView.class, - Views.EntradaListView.class, - Views.EstruturaOrganizacionalEditView.class, - Views.TransferenciaListView.class, - Views.SaidaTemporariaListView.class, - Views.AdicaoBemPatrimonialView.class, - Views.ParceiroAutoCompleteView.class, - Views.BaixaEditView.class, - Views.SaidaTemporariaItemListView.class, - Views.ColaboradorContratoAutoCompleteView.class, - Views.SeguradoraAutoCompleteView.class, - Views.ComissaoIntegranteEditView.class, - Views.InventarioBemPatrimonialInconsistenciaView.class, - Views.DadosBemPatrimonialEditView.class, - Views.BemPatrimonialInventarioAutoCompleteView.class, - Views.BaixaAlmoxarifadoView.class, - Views.GenericView.class, - Views.InventarioMobileCompleto.class, - Views.InventarioMobileSimples.class, - Views.InventarioMobileJEDI.class, - Views.DefinicaoDetentorListView.class, - ViewsTabelasCorp.CentroResultadoResponsavelTodosResponsaveis.class, - ViewsTabelasCorp.CentroResultadoDelegacaoTodasDelegacoes.class, - ViewsTabelasCorp.CentroResultadoSubstituicao.class, - Views.BemPatrimonialEditView.class, - Views.DocumentoGedEdit.class, - Views.ProcessoEdit.class, - Views.DocumentoGedEdit.class, - Views.ContratoView.class, - Views.PessoaAutoCompeteView.class}) + @JsonView({ Views.FornecedorFindView.class, Views.LookupView.class, Views.PessoaListViewListView.class, Views.ColaboradorAutoCompleteView.class, Views.ComissaoListView.class, Views.BemPatrimonialAutoCompleteView.class, Views.EntradaListView.class, Views.EstruturaOrganizacionalEditView.class, Views.TransferenciaListView.class, Views.SaidaTemporariaListView.class, Views.AdicaoBemPatrimonialView.class, Views.ParceiroAutoCompleteView.class, Views.BaixaEditView.class, + Views.SaidaTemporariaItemListView.class, Views.ColaboradorContratoAutoCompleteView.class, Views.SeguradoraAutoCompleteView.class, Views.ComissaoIntegranteEditView.class, Views.InventarioBemPatrimonialInconsistenciaView.class, Views.DadosBemPatrimonialEditView.class, Views.BemPatrimonialInventarioAutoCompleteView.class, Views.BaixaAlmoxarifadoView.class, Views.GenericView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class, + Views.InventarioMobileJEDI.class, Views.DefinicaoDetentorListView.class, ViewsTabelasCorp.CentroResultadoResponsavelTodosResponsaveis.class, ViewsTabelasCorp.CentroResultadoDelegacaoTodasDelegacoes.class, ViewsTabelasCorp.CentroResultadoSubstituicao.class, Views.BemPatrimonialEditView.class, Views.DocumentoGedEdit.class, Views.ProcessoEdit.class, Views.DocumentoGedEdit.class, Views.ContratoView.class, Views.PessoaAutoCompeteView.class }) private String nome; /** Atributo email. */ @@ -123,7 +92,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** Atributo pessoaFisica. */ @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) - @JsonView({ Views.PessoaEditView.class}) + @JsonView({ Views.PessoaEditView.class }) @PrimaryKeyJoinColumn private PessoaFisica pessoaFisica; @@ -157,8 +126,8 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** Atributo usuario. */ @NotAudited - @ManyToOne(fetch=FetchType.LAZY, optional=true) - @JsonView({ Views.PessoaEditView.class}) + @ManyToOne(fetch = FetchType.LAZY, optional = true) + @JsonView({ Views.PessoaEditView.class }) private Usuario usuario; /** Atributo codigo. */ @@ -166,10 +135,13 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { @JsonView({ Views.GenericView.class }) private String codigo; + @JsonView({ Views.PessoaEditView.class }) + @Transient + private boolean isAssinarDocumento; /** * Retorna o valor do atributo id - * + * * @return Long */ public Long getId() { @@ -179,7 +151,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo id. - * + * * @param nome */ public void setId(Long id) { @@ -189,7 +161,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo email - * + * * @return String */ public String getEmail() { @@ -199,7 +171,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo email. - * + * * @param email */ public void setEmail(String email) { @@ -209,7 +181,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo tipoPessoa. - * + * * @param tipoPessoa */ public void setTipoPessoa(Dominio tipoPessoa) { @@ -218,7 +190,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo pessoaFisica - * + * * @return PessoaFisica */ public PessoaFisica getPessoaFisica() { @@ -228,7 +200,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo pessoaFisica. - * + * * @param pessoaFisica */ public void setPessoaFisica(PessoaFisica pessoaFisica) { @@ -238,7 +210,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo pessoaJuridica - * + * * @return PessoaJuridica */ public PessoaJuridica getPessoaJuridica() { @@ -248,7 +220,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo pessoaJuridica. - * + * * @param pessoaJuridica */ public void setPessoaJuridica(PessoaJuridica pessoaJuridica) { @@ -258,7 +230,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo listaParceiro - * + * * @return Collection */ public Collection getParceiros() { @@ -268,7 +240,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo listaParceiro. - * + * * @param listaParceiro */ public void setParceiros(final Collection listaParceiro) { @@ -278,7 +250,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo nome - * + * * @return String */ public String getNome() { @@ -288,7 +260,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo nome. - * + * * @param nome */ public void setNome(String nome) { @@ -298,7 +270,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo listaTelefone - * + * * @return Collection */ public Collection getTelefones() { @@ -308,7 +280,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo listaTelefone. - * + * * @param listaTelefone */ public void setTelefones(Collection listaTelefone) { @@ -318,7 +290,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo contatos - * + * * @return Collection */ public Collection getContatos() { @@ -328,7 +300,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo contatos. - * + * * @param contatos */ public void setContatos(Collection contatos) { @@ -338,7 +310,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo dominioPessoa - * + * * @return Dominio */ public Dominio getDominioPessoa() { @@ -348,7 +320,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo dominioPessoa. - * + * * @param dominioPessoa */ public void setDominioPessoa(Dominio dominioPessoa) { @@ -358,7 +330,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Retorna o valor do atributo enderecos - * + * * @return Collection */ public Collection getEnderecos() { @@ -368,7 +340,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { /** * Define o valor do atributo enderecos. - * + * * @param enderecos */ public void setEnderecos(Collection enderecos) { @@ -376,10 +348,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { this.enderecos = enderecos; } - /** * Retorna o valor do atributo codigo - * + * * @return String */ public String getCodigo() { @@ -387,10 +358,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { return codigo; } - /** * Define o valor do atributo codigo. - * + * * @param codigo */ public void setCodigo(String codigo) { @@ -398,10 +368,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { this.codigo = codigo; } - /** * Retorna o valor do atributo usuario - * + * * @return Usuario */ public Usuario getUsuario() { @@ -409,10 +378,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { return usuario; } - /** * Define o valor do atributo usuario. - * + * * @param usuario */ public void setUsuario(Usuario usuario) { @@ -420,6 +388,24 @@ public class Pessoa extends PersistentObjectAuditOrganizacao { this.usuario = usuario; } + /** + * Retorna o valor do atributo isAssinarDocumento + * + * @return boolean + */ + public boolean isAssinarDocumento() { + + return isAssinarDocumento; + } + /** + * Define o valor do atributo isAssinarDocumento. + * + * @param isAssinarDocumento + */ + public void setAssinarDocumento(boolean isAssinarDocumento) { + + this.isAssinarDocumento = isAssinarDocumento; + } } diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java index cf45151..7b2a021 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java @@ -303,7 +303,7 @@ public interface PessoaService extends GenericService { /** * Método responsável por obter permissão para assinatura de documento * @author rogerio.cassimiro - * @return {@link Boolean} + * @return {@link Pessoa} */ - boolean getPermissaoAssinaturaDocumento(); + Pessoa getPermissaoAssinaturaDocumento(); } \ No newline at end of file diff --git a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java index b01a70a..5141d4f 100644 --- a/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java +++ b/cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.validation.Validator; @@ -45,6 +46,7 @@ import br.com.centralit.framework.exception.BusinessException; import br.com.centralit.framework.exception.CodigoErro; import br.com.centralit.framework.model.Dominio; import br.com.centralit.framework.model.Modulo; +import br.com.centralit.framework.model.Usuario; import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; import br.com.centralit.framework.util.UtilColecao; import br.com.centralit.framework.util.UtilObjeto; @@ -1260,12 +1262,20 @@ public class PessoaServiceImpl extends GenericServiceImpl implemen /** * Método responsável por obter permissão para assinatura de documento * @author rogerio.cassimiro - * @return {@link Boolean} + * @return {@link Pessoa} */ @Override - public boolean getPermissaoAssinaturaDocumento() { - if(this.colaboradorService.getPermissaoAssinaturaDocumento()) - return this.terceirizadoService.getPermissaoAssinaturaDocumento(); - return Boolean.FALSE; + public Pessoa getPermissaoAssinaturaDocumento() { + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); + Pessoa pessoa = this.pessoaDao.buscaPessoaPorUsuarioId(usuario.getId()); + if(!UtilObjeto.isReferencia(pessoa)){ + throw new BusinessException("ECM.MSG.USUARIO_SEM_PESSOA", CodigoErro.REGRA_NEGOCIO.getValue(), ""); + } + pessoa.setAssinarDocumento(Boolean.FALSE); + if(this.colaboradorService.getPermissaoAssinaturaDocumento()) + pessoa.setAssinarDocumento(Boolean.TRUE); + if(this.terceirizadoService.getPermissaoAssinaturaDocumento()) + pessoa.setAssinarDocumento(Boolean.TRUE); + return pessoa; } } -- libgit2 0.21.2