Commit 2cf0a8d0a6dff958b0532a8530403ce9fccc37e5

Authored by gabriel.damasceno
2 parents 2fcc54bd 59c398de
Exists in master

Merge branch 'tarefa-4583' into ecm-release-0001-sprint3

Showing 41 changed files with 402 additions and 142 deletions   Show diff stats
cit-tabelas-corp-api/pom.xml
... ... @@ -23,7 +23,7 @@
23 23 <parent>
24 24 <groupId>br.com.centralit</groupId>
25 25 <artifactId>cit-tabelas-corp</artifactId>
26   - <version>2.0.0</version>
  26 + <version>${cit-tabelas-corp.version}</version>
27 27 </parent>
28 28  
29 29 <artifactId>cit-tabelas-corp-api</artifactId>
... ... @@ -39,7 +39,7 @@
39 39 <dependency>
40 40 <groupId>br.com.centralit</groupId>
41 41 <artifactId>cit-portal-api</artifactId>
42   - <version>${cit-portal.version}</version>
  42 + <version>${cit-core.version}</version>
43 43 </dependency>
44 44 <dependency>
45 45 <groupId>br.com.centralit</groupId>
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/ColaboradorDao.java
... ... @@ -141,4 +141,11 @@ public interface ColaboradorDao extends CitGenericDAO {
141 141 */
142 142 Collection<Colaborador> findPessoaColaboradorUsuarioPorNome(String nome);
143 143  
  144 + /**
  145 + * Método responsável por obter permissão para assinatura de documento
  146 + * @author rogerio.cassimiro
  147 + * @param idUsuario
  148 + * @return {@link Boolean}
  149 + */
  150 + boolean getPermissaoAssinaturaDocumento(Long idUsuario);
144 151 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/PessoaDao.java
... ... @@ -39,5 +39,5 @@ public interface PessoaDao extends CitGenericDAO{
39 39 List<Pessoa> findByUsuario(Pessoa pessoa);
40 40  
41 41 Pessoa buscaPessoaPorUsuarioId(Long idUsuario);
42   -
  42 +
43 43 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/TerceirizadoDao.java
... ... @@ -25,4 +25,11 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
25 25 */
26 26 public interface TerceirizadoDao extends CitGenericDAO {
27 27  
  28 + /**
  29 + * Método responsável por obter permissão para assinatura de documento
  30 + * @author rogerio.cassimiro
  31 + * @param idUsuario
  32 + * @return {@link Boolean}
  33 + */
  34 + boolean getPermissaoAssinaturaDocumento(Long idUsuario);
28 35 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/impl/ColaboradorDaoHibernate.java
... ... @@ -10,7 +10,9 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
10 10 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
11 11 import br.com.centralit.framework.model.Dominio;
12 12 import br.com.centralit.framework.model.Usuario;
  13 +import br.com.centralit.framework.util.UtilObjeto;
13 14  
  15 +import com.googlecode.genericdao.search.Filter;
14 16 import com.googlecode.genericdao.search.Sort;
15 17  
16 18 /**
... ... @@ -98,7 +100,7 @@ public class ColaboradorDaoHibernate extends CitGenericDAOImpl implements Colabo
98 100  
99 101 SearchSeven search = new SearchSeven();
100 102  
101   - search.addFilterILike("pessoa.nome", "%" + nome + "%");
  103 + search.addFilterOr(Filter.ilike("pessoa.nome", "%" + nome + "%"), Filter.ilike("matricula", "%"+nome+"%"));
102 104  
103 105 search.addFilterEqual("pessoa.organizacao.id", idOrganizacao);
104 106  
... ... @@ -183,4 +185,19 @@ public class ColaboradorDaoHibernate extends CitGenericDAOImpl implements Colabo
183 185  
184 186 return this.search(search, Colaborador.class);
185 187 }
  188 +
  189 + /**
  190 + * Método responsável por obter permissão para assinatura de documento
  191 + * @author rogerio.cassimiro
  192 + * @param idUsuario
  193 + * @return {@link Boolean}
  194 + */
  195 + @Override
  196 + public boolean getPermissaoAssinaturaDocumento(Long idUsuario) {
  197 + SearchSeven searchSeven = new SearchSeven();
  198 + searchSeven.addFilterEqual("pessoa.usuario.id", idUsuario);
  199 + searchSeven.addFilterEqual("classeParceiro.dominioTipoParceiro.codigo", Dominio.TIPO_PARCEIRO_COLABORADOR_SERVIDOR);
  200 + searchSeven.addFilterNotEmpty("funcao.id");
  201 + return UtilObjeto.isReferencia(this.searchUnique(searchSeven));
  202 + }
186 203 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/impl/EstruturaOrganizacionalDaoHibernate.java
... ... @@ -799,5 +799,5 @@ public class EstruturaOrganizacionalDaoHibernate extends CitGenericDAOImpl imple
799 799  
800 800 return this.search(search);
801 801 }
802   -
  802 +
803 803 }
804 804 \ No newline at end of file
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/impl/PessoaDaoHibernate.java
... ... @@ -9,6 +9,8 @@ import org.springframework.stereotype.Repository;
9 9 import br.com.centralit.api.dao.PessoaDao;
10 10 import br.com.centralit.api.model.Pessoa;
11 11 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  12 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  13 +import br.com.centralit.framework.util.UtilObjeto;
12 14  
13 15 /**
14 16 * <p>
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/dao/impl/TerceirizadoDaoHibernate.java
... ... @@ -5,6 +5,9 @@ import org.springframework.stereotype.Repository;
5 5 import br.com.centralit.api.dao.TerceirizadoDao;
6 6 import br.com.centralit.api.model.Terceirizado;
7 7 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  8 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  9 +import br.com.centralit.framework.model.Dominio;
  10 +import br.com.centralit.framework.util.UtilObjeto;
8 11  
9 12  
10 13 /**
... ... @@ -40,4 +43,18 @@ public class TerceirizadoDaoHibernate extends CitGenericDAOImpl implements Terce
40 43 super(Terceirizado.class);
41 44 }
42 45  
  46 + /**
  47 + * Método responsável por obter permissão para assinatura de documento
  48 + * @author rogerio.cassimiro
  49 + * @param idUsuario
  50 + * @return {@link Boolean}
  51 + */
  52 + @Override
  53 + public boolean getPermissaoAssinaturaDocumento(Long idUsuario) {
  54 + SearchSeven searchSeven = new SearchSeven();
  55 + searchSeven.addFilterEqual("pessoa.usuario.id", idUsuario);
  56 + searchSeven.addFilterEqual("classeParceiro.dominioTipoParceiro.codigo", Dominio.TIPO_PARCEIRO_TERCEIRIZADO);
  57 + searchSeven.addFilterNotEmpty("funcao.id");
  58 + return UtilObjeto.isReferencia(this.searchUnique(searchSeven));
  59 + }
43 60 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Documento.java
... ... @@ -104,9 +104,13 @@ public class Documento extends PersistentObjectAuditOrganizacao {
104 104  
105 105 /** Atributo anexos. */
106 106 @NotAudited
107   - @OneToMany(fetch = FetchType.LAZY, mappedBy = "documento", cascade = CascadeType.ALL)
  107 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "documento", cascade = CascadeType.ALL, orphanRemoval = true)
108 108 @JsonView({ Views.GenericView.class })
109 109 private Collection<Anexo> anexos;
  110 +
  111 + @NotAudited
  112 + @JsonView({ Views.GenericView.class })
  113 + private String uuid;
110 114  
111 115 /**
112 116 * Retorna o valor do atributo <code>id</code>
... ... @@ -248,4 +252,12 @@ public class Documento extends PersistentObjectAuditOrganizacao {
248 252 this.emitenteEstrutura = emitenteEstrutura;
249 253 }
250 254  
  255 + public String getUuid() {
  256 + return uuid;
  257 + }
  258 +
  259 + public void setUuid(String uuid) {
  260 + this.uuid = uuid;
  261 + }
  262 +
251 263 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/EstruturaOrganizacional.java
... ... @@ -97,7 +97,7 @@ public class EstruturaOrganizacional extends PersistentObjectAuditOrganizacao im
97 97  
98 98 /** Atributo classificacao. */
99 99 @Column(length = 100)
100   - @JsonView({ Views.EstruturaOrganizacionalEditView.class, Views.EstruturaOrganizacionalAutoCompleteSimplesView.class, Views.EstruturaOrganizacionalAutoCompleteView.class, Views.PessoaEditView.class, Views.RequisicaoConsumo.class })
  100 + @JsonView({ Views.EstruturaOrganizacionalEditView.class, Views.EstruturaOrganizacionalAutoCompleteSimplesView.class, Views.EstruturaOrganizacionalAutoCompleteView.class, Views.PessoaEditView.class, Views.RequisicaoConsumo.class, Views.EntradaEditView.class })
101 101 private String classificacao;
102 102  
103 103 /** Atributo codigo. */
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/model/Pessoa.java
... ... @@ -14,6 +14,7 @@ import javax.persistence.ManyToOne;
14 14 import javax.persistence.OneToMany;
15 15 import javax.persistence.OneToOne;
16 16 import javax.persistence.PrimaryKeyJoinColumn;
  17 +import javax.persistence.Transient;
17 18  
18 19 import org.hibernate.envers.Audited;
19 20 import org.hibernate.envers.NotAudited;
... ... @@ -31,37 +32,37 @@ import com.fasterxml.jackson.annotation.JsonView;
31 32 * <p>
32 33 * <img src="http://centralit.com.br/images/logo_central.png">
33 34 * </p>
34   - *
  35 + *
35 36 * <p>
36 37 * <b>Company: </b> Central IT - Governança Corporativa -
37 38 * </p>
38   - *
  39 + *
39 40 * <p>
40 41 * <b>Title: </b>Pessoa
41 42 * </p>
42   - *
  43 + *
43 44 * <p>
44 45 * <b>Description: </b>Entidade <code>Pessoa</code>
45 46 * </p>
46   - *
  47 + *
47 48 * <p>
48 49 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
49 50 * </p>
50   - *
  51 + *
51 52 * <p>
52 53 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
53 54 * </p>
54   - *
  55 + *
55 56 * @since 27/11/2014 - 10:32:19
56   - *
  57 + *
57 58 * @version 1.0.0
58   - *
  59 + *
59 60 * @author rogerio.costa
60   - *
  61 + *
61 62 */
62 63 @Audited
63 64 @Entity
64   -@JsonIgnoreProperties({ "$checked"})
  65 +@JsonIgnoreProperties({ "$checked" })
65 66 public class Pessoa extends PersistentObjectAuditOrganizacao {
66 67  
67 68 /** Atributo serialVersionUID. */
... ... @@ -69,46 +70,14 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
69 70  
70 71 @Id
71 72 @GeneratedValue(strategy = GenerationType.AUTO)
72   - @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class })
  73 + @JsonView({ Views.GenericView.class, Views.FornecedorFindView.class, Views.SeguradoraAutoCompleteView.class, Views.InventarioMobileCompleto.class, Views.InventarioMobileSimples.class })
73 74 protected Long id;
74 75  
75 76 /** Atributo nome. */
76 77 // TODO acrescentar view do estrutura organizacional, substituir Views.LookupView.class pelo do estrutura organizacional
77   - @JsonView({ Views.FornecedorFindView.class,
78   - Views.LookupView.class,
79   - Views.PessoaListViewListView.class,
80   - Views.ColaboradorAutoCompleteView.class,
81   - Views.ComissaoListView.class,
82   - Views.BemPatrimonialAutoCompleteView.class,
83   - Views.EntradaListView.class,
84   - Views.EstruturaOrganizacionalEditView.class,
85   - Views.TransferenciaListView.class,
86   - Views.SaidaTemporariaListView.class,
87   - Views.AdicaoBemPatrimonialView.class,
88   - Views.ParceiroAutoCompleteView.class,
89   - Views.BaixaEditView.class,
90   - Views.SaidaTemporariaItemListView.class,
91   - Views.ColaboradorContratoAutoCompleteView.class,
92   - Views.SeguradoraAutoCompleteView.class,
93   - Views.ComissaoIntegranteEditView.class,
94   - Views.InventarioBemPatrimonialInconsistenciaView.class,
95   - Views.DadosBemPatrimonialEditView.class,
96   - Views.BemPatrimonialInventarioAutoCompleteView.class,
97   - Views.BaixaAlmoxarifadoView.class,
98   - Views.GenericView.class,
99   - Views.InventarioMobileCompleto.class,
100   - Views.InventarioMobileSimples.class,
101   - Views.InventarioMobileJEDI.class,
102   - Views.DefinicaoDetentorListView.class,
103   - ViewsTabelasCorp.CentroResultadoResponsavelTodosResponsaveis.class,
104   - ViewsTabelasCorp.CentroResultadoDelegacaoTodasDelegacoes.class,
105   - ViewsTabelasCorp.CentroResultadoSubstituicao.class,
106   - Views.BemPatrimonialEditView.class,
107   - Views.DocumentoGedEdit.class,
108   - Views.ProcessoEdit.class,
109   - Views.DocumentoGedEdit.class,
110   - Views.ContratoView.class,
111   - Views.PessoaAutoCompeteView.class})
  78 + @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,
  79 + 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,
  80 + 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 })
112 81 private String nome;
113 82  
114 83 /** Atributo email. */
... ... @@ -123,7 +92,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
123 92  
124 93 /** Atributo pessoaFisica. */
125 94 @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
126   - @JsonView({ Views.PessoaEditView.class})
  95 + @JsonView({ Views.PessoaEditView.class })
127 96 @PrimaryKeyJoinColumn
128 97 private PessoaFisica pessoaFisica;
129 98  
... ... @@ -157,8 +126,8 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
157 126  
158 127 /** Atributo usuario. */
159 128 @NotAudited
160   - @ManyToOne(fetch=FetchType.LAZY, optional=true)
161   - @JsonView({ Views.PessoaEditView.class})
  129 + @ManyToOne(fetch = FetchType.LAZY, optional = true)
  130 + @JsonView({ Views.PessoaEditView.class })
162 131 private Usuario usuario;
163 132  
164 133 /** Atributo codigo. */
... ... @@ -166,10 +135,13 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
166 135 @JsonView({ Views.GenericView.class })
167 136 private String codigo;
168 137  
  138 + @JsonView({ Views.PessoaEditView.class })
  139 + @Transient
  140 + private boolean exibirAssinarDocAnexo;
169 141  
170 142 /**
171 143 * Retorna o valor do atributo <code>id</code>
172   - *
  144 + *
173 145 * @return <code>Long</code>
174 146 */
175 147 public Long getId() {
... ... @@ -179,7 +151,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
179 151  
180 152 /**
181 153 * Define o valor do atributo <code>id</code>.
182   - *
  154 + *
183 155 * @param nome
184 156 */
185 157 public void setId(Long id) {
... ... @@ -189,7 +161,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
189 161  
190 162 /**
191 163 * Retorna o valor do atributo <code>email</code>
192   - *
  164 + *
193 165 * @return <code>String</code>
194 166 */
195 167 public String getEmail() {
... ... @@ -199,7 +171,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
199 171  
200 172 /**
201 173 * Define o valor do atributo <code>email</code>.
202   - *
  174 + *
203 175 * @param email
204 176 */
205 177 public void setEmail(String email) {
... ... @@ -209,7 +181,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
209 181  
210 182 /**
211 183 * Define o valor do atributo <code>tipoPessoa</code>.
212   - *
  184 + *
213 185 * @param tipoPessoa
214 186 */
215 187 public void setTipoPessoa(Dominio tipoPessoa) {
... ... @@ -218,7 +190,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
218 190  
219 191 /**
220 192 * Retorna o valor do atributo <code>pessoaFisica</code>
221   - *
  193 + *
222 194 * @return <code>PessoaFisica</code>
223 195 */
224 196 public PessoaFisica getPessoaFisica() {
... ... @@ -228,7 +200,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
228 200  
229 201 /**
230 202 * Define o valor do atributo <code>pessoaFisica</code>.
231   - *
  203 + *
232 204 * @param pessoaFisica
233 205 */
234 206 public void setPessoaFisica(PessoaFisica pessoaFisica) {
... ... @@ -238,7 +210,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
238 210  
239 211 /**
240 212 * Retorna o valor do atributo <code>pessoaJuridica</code>
241   - *
  213 + *
242 214 * @return <code>PessoaJuridica</code>
243 215 */
244 216 public PessoaJuridica getPessoaJuridica() {
... ... @@ -248,7 +220,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
248 220  
249 221 /**
250 222 * Define o valor do atributo <code>pessoaJuridica</code>.
251   - *
  223 + *
252 224 * @param pessoaJuridica
253 225 */
254 226 public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
... ... @@ -258,7 +230,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
258 230  
259 231 /**
260 232 * Retorna o valor do atributo <code>listaParceiro</code>
261   - *
  233 + *
262 234 * @return <code>Collection<Parceiro></code>
263 235 */
264 236 public Collection<Parceiro> getParceiros() {
... ... @@ -268,7 +240,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
268 240  
269 241 /**
270 242 * Define o valor do atributo <code>listaParceiro</code>.
271   - *
  243 + *
272 244 * @param listaParceiro
273 245 */
274 246 public void setParceiros(final Collection<Parceiro> listaParceiro) {
... ... @@ -278,7 +250,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
278 250  
279 251 /**
280 252 * Retorna o valor do atributo <code>nome</code>
281   - *
  253 + *
282 254 * @return <code>String</code>
283 255 */
284 256 public String getNome() {
... ... @@ -288,7 +260,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
288 260  
289 261 /**
290 262 * Define o valor do atributo <code>nome</code>.
291   - *
  263 + *
292 264 * @param nome
293 265 */
294 266 public void setNome(String nome) {
... ... @@ -298,7 +270,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
298 270  
299 271 /**
300 272 * Retorna o valor do atributo <code>listaTelefone</code>
301   - *
  273 + *
302 274 * @return <code>Collection<Telefone></code>
303 275 */
304 276 public Collection<Telefone> getTelefones() {
... ... @@ -308,7 +280,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
308 280  
309 281 /**
310 282 * Define o valor do atributo <code>listaTelefone</code>.
311   - *
  283 + *
312 284 * @param listaTelefone
313 285 */
314 286 public void setTelefones(Collection<Telefone> listaTelefone) {
... ... @@ -318,7 +290,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
318 290  
319 291 /**
320 292 * Retorna o valor do atributo <code>contatos</code>
321   - *
  293 + *
322 294 * @return <code>Collection<Contato></code>
323 295 */
324 296 public Collection<Contato> getContatos() {
... ... @@ -328,7 +300,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
328 300  
329 301 /**
330 302 * Define o valor do atributo <code>contatos</code>.
331   - *
  303 + *
332 304 * @param contatos
333 305 */
334 306 public void setContatos(Collection<Contato> contatos) {
... ... @@ -338,7 +310,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
338 310  
339 311 /**
340 312 * Retorna o valor do atributo <code>dominioPessoa</code>
341   - *
  313 + *
342 314 * @return <code>Dominio</code>
343 315 */
344 316 public Dominio getDominioPessoa() {
... ... @@ -348,7 +320,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
348 320  
349 321 /**
350 322 * Define o valor do atributo <code>dominioPessoa</code>.
351   - *
  323 + *
352 324 * @param dominioPessoa
353 325 */
354 326 public void setDominioPessoa(Dominio dominioPessoa) {
... ... @@ -358,7 +330,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
358 330  
359 331 /**
360 332 * Retorna o valor do atributo <code>enderecos</code>
361   - *
  333 + *
362 334 * @return <code>Collection<Endereco></code>
363 335 */
364 336 public Collection<Endereco> getEnderecos() {
... ... @@ -368,7 +340,7 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
368 340  
369 341 /**
370 342 * Define o valor do atributo <code>enderecos</code>.
371   - *
  343 + *
372 344 * @param enderecos
373 345 */
374 346 public void setEnderecos(Collection<Endereco> enderecos) {
... ... @@ -376,10 +348,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
376 348 this.enderecos = enderecos;
377 349 }
378 350  
379   -
380 351 /**
381 352 * Retorna o valor do atributo <code>codigo</code>
382   - *
  353 + *
383 354 * @return <code>String</code>
384 355 */
385 356 public String getCodigo() {
... ... @@ -387,10 +358,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
387 358 return codigo;
388 359 }
389 360  
390   -
391 361 /**
392 362 * Define o valor do atributo <code>codigo</code>.
393   - *
  363 + *
394 364 * @param codigo
395 365 */
396 366 public void setCodigo(String codigo) {
... ... @@ -398,10 +368,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
398 368 this.codigo = codigo;
399 369 }
400 370  
401   -
402 371 /**
403 372 * Retorna o valor do atributo <code>usuario</code>
404   - *
  373 + *
405 374 * @return <code>Usuario</code>
406 375 */
407 376 public Usuario getUsuario() {
... ... @@ -409,10 +378,9 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
409 378 return usuario;
410 379 }
411 380  
412   -
413 381 /**
414 382 * Define o valor do atributo <code>usuario</code>.
415   - *
  383 + *
416 384 * @param usuario
417 385 */
418 386 public void setUsuario(Usuario usuario) {
... ... @@ -420,6 +388,24 @@ public class Pessoa extends PersistentObjectAuditOrganizacao {
420 388 this.usuario = usuario;
421 389 }
422 390  
  391 + /**
  392 + * Retorna o valor do atributo <code>exibirAssinarDocAnexo</code>
  393 + *
  394 + * @return <code>boolean</code>
  395 + */
  396 + public boolean isExibirAssinarDocAnexo() {
  397 +
  398 + return exibirAssinarDocAnexo;
  399 + }
423 400  
  401 + /**
  402 + * Define o valor do atributo <code>exibirAssinarDocAnexo</code>.
  403 + *
  404 + * @param exibirAssinarDocAnexo
  405 + */
  406 + public void setExibirAssinarDocAnexo(boolean exibirAssinarDocAnexo) {
  407 +
  408 + this.exibirAssinarDocAnexo = exibirAssinarDocAnexo;
  409 + }
424 410  
425 411 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/ColaboradorService.java
... ... @@ -141,5 +141,11 @@ public interface ColaboradorService extends GenericService&lt;Colaborador, Long&gt; {
141 141 */
142 142 Collection<Colaborador> findPessoaColaboradorUsuarioPorNome(String nome);
143 143  
  144 + /**
  145 + * Método responsável por obter permissão para assinatura de documento
  146 + * @author rogerio.cassimiro
  147 + * @return {@link Boolean}
  148 + */
  149 + boolean getPermissaoAssinaturaDocumento();
144 150  
145 151 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/EnderecoService.java
... ... @@ -96,5 +96,7 @@ public interface EnderecoService extends GenericService&lt;Endereco, Long&gt; {
96 96 * @return
97 97 */
98 98 Endereco buscarEnderecoWSCorreio(String cep);
  99 +
  100 + String buscaUltimoCodigoEndereco();
99 101  
100 102 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/EstruturaOrganizacionalService.java
... ... @@ -472,4 +472,11 @@ public interface EstruturaOrganizacionalService extends GenericService&lt;Estrutura
472 472 */
473 473 EstruturaOrganizacional obterUGPorIdEstrutura(Long idEstrutura);
474 474  
  475 + /**
  476 + * Método responsável por buscar a UA por UL
  477 + * @author rogerio.cassimiro
  478 + * @param idUL
  479 + * @return
  480 + */
  481 + EstruturaOrganizacional listarEstruturaOrganizacionalAdministrativaPorUL(Long idUL);
475 482 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/PessoaService.java
... ... @@ -2,9 +2,6 @@ package br.com.centralit.api.service;
2 2  
3 3 import java.util.Collection;
4 4  
5   -import org.springframework.security.access.annotation.Secured;
6   -import org.springframework.security.access.prepost.PreAuthorize;
7   -
8 5 import br.com.centralit.api.model.Colaborador;
9 6 import br.com.centralit.api.model.Pessoa;
10 7 import br.com.centralit.api.viewHelper.PessoaVH;
... ... @@ -302,4 +299,11 @@ public interface PessoaService extends GenericService&lt;Pessoa, Long&gt; {
302 299 boolean removeTerceirizado(Long id);
303 300  
304 301 Pessoa buscaPessoaPorUsuarioId(Long idUsuario);
  302 +
  303 + /**
  304 + * Método responsável por obter permissão para assinatura de documento
  305 + * @author rogerio.cassimiro
  306 + * @return {@link Pessoa}
  307 + */
  308 + Pessoa getPermissaoAssinaturaDocumento();
305 309 }
306 310 \ No newline at end of file
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/TerceirizadoService.java
... ... @@ -26,4 +26,11 @@ import br.com.centralit.framework.service.arquitetura.GenericService;
26 26 */
27 27 public interface TerceirizadoService extends GenericService<Terceirizado, Long> {
28 28  
  29 + /**
  30 + * Método responsável por obter permissão para assinatura de documento
  31 + * @author rogerio.cassimiro
  32 + * @return {@link Boolean}
  33 + */
  34 + boolean getPermissaoAssinaturaDocumento();
  35 +
29 36 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/BairroServiceImpl.java
... ... @@ -161,7 +161,7 @@ public class BairroServiceImpl extends GenericServiceImpl&lt;Bairro, Long&gt; implemen
161 161  
162 162 if(this.enderecoService.existeBairroVinculadoAEndereco(bairroId)){
163 163  
164   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  164 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
165 165  
166 166 }
167 167  
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/CidadeServiceImpl.java
... ... @@ -157,7 +157,7 @@ public class CidadeServiceImpl extends GenericServiceImpl&lt;Cidade, Long&gt; implemen
157 157 public boolean removeById(Long idCidade) {
158 158  
159 159 if(this.bairroService.existeBairroVinculadoACidade(idCidade)){
160   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  160 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
161 161 }
162 162  
163 163 return this.dao.removeById(idCidade);
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ColaboradorServiceImpl.java
... ... @@ -4,6 +4,7 @@ import java.util.Collection;
4 4  
5 5 import org.springframework.beans.factory.annotation.Autowired;
6 6 import org.springframework.beans.factory.annotation.Qualifier;
  7 +import org.springframework.security.core.context.SecurityContextHolder;
7 8 import org.springframework.stereotype.Service;
8 9 import org.springframework.validation.Validator;
9 10  
... ... @@ -195,5 +196,16 @@ public class ColaboradorServiceImpl extends GenericServiceImpl&lt;Colaborador, Long
195 196  
196 197 return this.colaboradorDao.findPessoaColaboradorUsuarioPorNome(nome);
197 198 }
  199 +
  200 + /**
  201 + * Método responsável por obter permissão para assinatura de documento
  202 + * @author rogerio.cassimiro
  203 + * @return {@link Boolean}
  204 + */
  205 + @Override
  206 + public boolean getPermissaoAssinaturaDocumento() {
  207 + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  208 + return this.colaboradorDao.getPermissaoAssinaturaDocumento(usuario.getId());
  209 + }
198 210  
199 211 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/ComissaoServiceImpl.java
... ... @@ -218,7 +218,7 @@ public class ComissaoServiceImpl extends GenericServiceImpl&lt;Comissao, Long&gt; impl
218 218 clientRestAlmoxarifadoBaixa.addParametro("id", idComissao.toString());
219 219  
220 220 if(clientRestAlmoxarifadoBaixa.validarRegra("baixa/existeVinculo")) {
221   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue(), " Baixa de bens");
  221 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue(), " Baixa de bens");
222 222 }
223 223 }
224 224  
... ... @@ -241,7 +241,7 @@ public class ComissaoServiceImpl extends GenericServiceImpl&lt;Comissao, Long&gt; impl
241 241 clientRestAlmoxarifadoInventario.addParametro("id", idComissao.toString());
242 242  
243 243 if (clientRestAlmoxarifadoInventario.validarRegra("inventario/existeVinculo")) {
244   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue(), " Inventário");
  244 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue(), " Inventário");
245 245 }
246 246 }
247 247  
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/EnderecoServiceImpl.java
... ... @@ -219,7 +219,7 @@ public class EnderecoServiceImpl extends GenericServiceImpl&lt;Endereco, Long&gt; impl
219 219  
220 220 if(this.enderecoDao.existeEnderecoVinculadoALocalizacao(enderecoId)){
221 221  
222   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  222 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
223 223  
224 224 }
225 225  
... ... @@ -284,6 +284,18 @@ public class EnderecoServiceImpl extends GenericServiceImpl&lt;Endereco, Long&gt; impl
284 284  
285 285 entity.setCodigo(codigo);
286 286 }
  287 +
  288 + @Override
  289 + public String buscaUltimoCodigoEndereco(){
  290 + Endereco ultimoRegistro = (Endereco) this.enderecoDao.buscarUltimoRegistroComOrdenadoParametrizada("codigo");
  291 +
  292 + Long sequencial = null;
  293 + if (UtilObjeto.isReferencia(ultimoRegistro)) {
  294 + sequencial = ultimoRegistro.getCodigo() == null ? null : Long.parseLong(ultimoRegistro.getCodigo());
  295 + }
  296 +
  297 + return sequencial.toString();
  298 + }
287 299  
288 300 /**
289 301 * <p>
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/EstadoServiceImpl.java
... ... @@ -142,7 +142,7 @@ public class EstadoServiceImpl extends GenericServiceImpl&lt;Estado, Long&gt; implemen
142 142 public boolean removeById(Long idEstado) {
143 143  
144 144 if(this.cidadeService.existeCidadeVinculadoAoEstado(idEstado)){
145   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  145 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
146 146 }
147 147  
148 148 return this.dao.removeById(idEstado);
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/EstruturaOrganizacionalServiceImpl.java
... ... @@ -195,7 +195,7 @@ public class EstruturaOrganizacionalServiceImpl extends GenericServiceImpl&lt;Estru
195 195  
196 196 if (UtilDate.isPrimeiraDataMenorSegundaData(dataInicio, mapaOrganizacionalAtivo.getDataInicio())) {
197 197  
198   - throw new BusinessException("VALIDACAO.DATA_INICIO_MAPA_VIGENTE", CodigoErro.REGRA_NEGOCIO.getValue(), " " + UtilDate.getDataSemHorasString(mapaOrganizacionalAtivo.getDataInicio().getTime()));
  198 + throw new BusinessException("CORPORATIVO.VALIDACAO.DATA_INICIO_MAPA_VIGENTE", CodigoErro.REGRA_NEGOCIO.getValue(), " " + UtilDate.getDataSemHorasString(mapaOrganizacionalAtivo.getDataInicio().getTime()));
199 199 }
200 200  
201 201 }
... ... @@ -1546,4 +1546,16 @@ public class EstruturaOrganizacionalServiceImpl extends GenericServiceImpl&lt;Estru
1546 1546  
1547 1547 entity.setCodigo(codigo);
1548 1548 }
  1549 +
  1550 + /**
  1551 + * Método responsável por buscar a UA por UL
  1552 + * @author rogerio.cassimiro
  1553 + * @param idUL
  1554 + * @return {@link EstruturaOrganizacional}
  1555 + */
  1556 + @Override
  1557 + public EstruturaOrganizacional listarEstruturaOrganizacionalAdministrativaPorUL(Long idUL) {
  1558 + EstruturaOrganizacional estruturaOrganizacional = (EstruturaOrganizacional) this.estruturaOrganizacionalDao.find(idUL);
  1559 + return UtilObjeto.isReferencia(estruturaOrganizacional) && UtilObjeto.isReferencia(estruturaOrganizacional.getEstruturaOrganizacionalParent()) ? estruturaOrganizacional.getEstruturaOrganizacionalParent() : null;
  1560 + }
1549 1561 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/LocalizacaoServiceImpl.java
... ... @@ -242,7 +242,7 @@ public class LocalizacaoServiceImpl extends GenericServiceImpl&lt;Localizacao, Long
242 242  
243 243 if (clientRest.validarRegra("estruturaOrganizacional/existeVinculo")) {
244 244  
245   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  245 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
246 246  
247 247 }
248 248  
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/NivelAutoridadeServiceImpl.java
... ... @@ -185,7 +185,7 @@ public class NivelAutoridadeServiceImpl extends GenericServiceImpl&lt;NivelAutorida
185 185  
186 186 // TODO Auto-generated method stub
187 187 if (this.alcadaService.existeAlcadaVinculadaAoNivelAutoridade(idNivelAutoridade)) {
188   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  188 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
189 189 }
190 190  
191 191 return this.nivelAutoridadeDao.removeById(idNivelAutoridade);
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PaisServiceImpl.java
... ... @@ -141,7 +141,7 @@ public class PaisServiceImpl extends GenericServiceImpl&lt;Pais, Long&gt; implements P
141 141 public boolean removeById(Long idPais) {
142 142  
143 143 if(this.regiaoService.existeRegiaoVinculadoAoPais(idPais)){
144   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  144 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
145 145 }
146 146  
147 147 return this.dao.removeById(idPais);
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/PessoaServiceImpl.java
... ... @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest;
7 7  
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.beans.factory.annotation.Qualifier;
  10 +import org.springframework.security.core.context.SecurityContextHolder;
10 11 import org.springframework.stereotype.Service;
11 12 import org.springframework.validation.Validator;
12 13  
... ... @@ -23,6 +24,7 @@ import br.com.centralit.api.model.PessoaJuridica;
23 24 import br.com.centralit.api.model.Portador;
24 25 import br.com.centralit.api.model.Telefone;
25 26 import br.com.centralit.api.service.ColaboradorService;
  27 +import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
26 28 import br.com.centralit.api.service.ContatoService;
27 29 import br.com.centralit.api.service.DominioService;
28 30 import br.com.centralit.api.service.EnderecoService;
... ... @@ -45,6 +47,7 @@ import br.com.centralit.framework.exception.BusinessException;
45 47 import br.com.centralit.framework.exception.CodigoErro;
46 48 import br.com.centralit.framework.model.Dominio;
47 49 import br.com.centralit.framework.model.Modulo;
  50 +import br.com.centralit.framework.model.Usuario;
48 51 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
49 52 import br.com.centralit.framework.util.UtilColecao;
50 53 import br.com.centralit.framework.util.UtilObjeto;
... ... @@ -133,6 +136,10 @@ public class PessoaServiceImpl extends GenericServiceImpl&lt;Pessoa, Long&gt; implemen
133 136 /** Atributo seguradoraService. */
134 137 @Autowired
135 138 private SeguradoraService seguradoraService;
  139 +
  140 + /** Atributo configuracaoParametroSistemaService. */
  141 + @Autowired
  142 + private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService;
136 143  
137 144 /** Atributo moduloService. */
138 145 @Autowired
... ... @@ -399,12 +406,20 @@ public class PessoaServiceImpl extends GenericServiceImpl&lt;Pessoa, Long&gt; implemen
399 406 telefone.setPessoa(pessoaVH.getPessoa());
400 407  
401 408 }
  409 +
402 410 // Percorre a lista de endereco para setar a referencia da pessoa
  411 + String ultimoCodigoEndereco = enderecoService.buscaUltimoCodigoEndereco();
403 412 for (Endereco endereco : pessoaVH.getPessoa().getEnderecos()) {
404 413  
405 414 endereco.setPessoa(pessoaVH.getPessoa());
  415 +
  416 + if(endereco.getCodigo() == null || endereco.getCodigo().equals("")){
  417 + ultimoCodigoEndereco = configuracaoParametroSistemaService.gerarNumeroIdentificacaoSeguencial(Long.valueOf(ultimoCodigoEndereco));
  418 + endereco.setCodigo(ultimoCodigoEndereco);
  419 + }
406 420  
407 421 }
  422 +
408 423 // Percorre a lista de contatos para setar a referencia de pessoa
409 424 for (Contato contato : pessoaVH.getPessoa().getContatos()) {
410 425  
... ... @@ -1256,4 +1271,24 @@ public class PessoaServiceImpl extends GenericServiceImpl&lt;Pessoa, Long&gt; implemen
1256 1271 return this.pessoaDao.buscaPessoaPorUsuarioId(idUsuario);
1257 1272  
1258 1273 }
  1274 +
  1275 + /**
  1276 + * Método responsável por obter permissão para assinatura de documento
  1277 + * @author rogerio.cassimiro
  1278 + * @return {@link Pessoa}
  1279 + */
  1280 + @Override
  1281 + public Pessoa getPermissaoAssinaturaDocumento() {
  1282 + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  1283 + Pessoa pessoa = this.pessoaDao.buscaPessoaPorUsuarioId(usuario.getId());
  1284 + if(!UtilObjeto.isReferencia(pessoa)){
  1285 + throw new BusinessException("ECM.MSG.USUARIO_SEM_PESSOA", CodigoErro.REGRA_NEGOCIO.getValue(), "");
  1286 + }
  1287 + pessoa.setExibirAssinarDocAnexo(Boolean.FALSE);
  1288 + if(this.colaboradorService.getPermissaoAssinaturaDocumento())
  1289 + pessoa.setExibirAssinarDocAnexo(Boolean.TRUE);
  1290 + if(this.terceirizadoService.getPermissaoAssinaturaDocumento())
  1291 + pessoa.setExibirAssinarDocAnexo(Boolean.TRUE);
  1292 + return pessoa;
  1293 + }
1259 1294 }
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/RegiaoServiceImpl.java
... ... @@ -165,7 +165,7 @@ public class RegiaoServiceImpl extends GenericServiceImpl&lt;Regiao, Long&gt; implemen
165 165 public boolean removeById(Long idRegiao) {
166 166  
167 167 if (this.estadoService.existeEstadoVinculadoARegiao(idRegiao)) {
168   - throw new BusinessException("MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
  168 + throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
169 169 }
170 170  
171 171 return this.dao.removeById(idRegiao);
... ...
cit-tabelas-corp-api/src/main/java/br/com/centralit/api/service/impl/TerceirizadoServiceImp.java
... ... @@ -2,6 +2,7 @@ package br.com.centralit.api.service.impl;
2 2  
3 3 import org.springframework.beans.factory.annotation.Autowired;
4 4 import org.springframework.beans.factory.annotation.Qualifier;
  5 +import org.springframework.security.core.context.SecurityContextHolder;
5 6 import org.springframework.stereotype.Service;
6 7 import org.springframework.validation.Validator;
7 8  
... ... @@ -10,6 +11,7 @@ import br.com.centralit.api.model.Terceirizado;
10 11 import br.com.centralit.api.service.ClasseParceiroService;
11 12 import br.com.centralit.api.service.TerceirizadoService;
12 13 import br.com.centralit.framework.model.Dominio;
  14 +import br.com.centralit.framework.model.Usuario;
13 15 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
14 16  
15 17  
... ... @@ -36,7 +38,6 @@ import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
36 38 @Service("terceirizadoService")
37 39 public class TerceirizadoServiceImp extends GenericServiceImpl<Terceirizado, Long> implements TerceirizadoService {
38 40  
39   - @SuppressWarnings("unused")
40 41 private TerceirizadoDao terceirizadoDao;
41 42  
42 43 /** Atributo classeParceiroService. */
... ... @@ -68,5 +69,16 @@ public class TerceirizadoServiceImp extends GenericServiceImpl&lt;Terceirizado, Lon
68 69  
69 70 return super.save(entity);
70 71 }
  72 +
  73 + /**
  74 + * Método responsável por obter permissão para assinatura de documento
  75 + * @author rogerio.cassimiro
  76 + * @return {@link Boolean}
  77 + */
  78 + @Override
  79 + public boolean getPermissaoAssinaturaDocumento() {
  80 + Usuario usuario = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  81 + return this.terceirizadoDao.getPermissaoAssinaturaDocumento(usuario.getId());
  82 + }
71 83  
72 84 }
... ...
cit-tabelas-corp-web/pom.xml
... ... @@ -23,7 +23,7 @@
23 23 <parent>
24 24 <groupId>br.com.centralit</groupId>
25 25 <artifactId>cit-tabelas-corp</artifactId>
26   - <version>2.0.0</version>
  26 + <version>${cit-tabelas-corp.version}</version>
27 27 </parent>
28 28  
29 29 <artifactId>cit-tabelas-corp-web</artifactId>
... ... @@ -41,6 +41,7 @@
41 41 <dependency>
42 42 <groupId>br.com.centralit</groupId>
43 43 <artifactId>cit-tabelas-corp-api</artifactId>
  44 + <version>${cit-tabelas-corp.version}</version>
44 45 </dependency>
45 46 </dependencies>
46 47 </project>
... ...
cit-tabelas-corp-web/src/main/java/br/com/centralit/controller/ColaboradorController.java
... ... @@ -93,5 +93,5 @@ public class ColaboradorController extends GenericController&lt;Colaborador&gt; {
93 93  
94 94 return responseBody;
95 95 }
96   -
  96 +
97 97 }
... ...
cit-tabelas-corp-web/src/main/java/br/com/centralit/controller/ComissaoController.java
... ... @@ -2,8 +2,11 @@ package br.com.centralit.controller;
2 2  
3 3 import java.util.List;
4 4  
  5 +import org.apache.commons.lang3.SerializationUtils;
  6 +import org.hibernate.exception.ConstraintViolationException;
5 7 import org.springframework.beans.factory.annotation.Autowired;
6 8 import org.springframework.stereotype.Controller;
  9 +import org.springframework.web.bind.annotation.RequestBody;
7 10 import org.springframework.web.bind.annotation.RequestMapping;
8 11 import org.springframework.web.bind.annotation.RequestMethod;
9 12 import org.springframework.web.bind.annotation.RequestParam;
... ... @@ -76,6 +79,37 @@ public class ComissaoController extends GenericController&lt;Comissao&gt; {
76 79 return responseBody;
77 80 }
78 81  
  82 + @RequestMapping(method = RequestMethod.POST, value = "")
  83 + @ResponseBody
  84 + public ResponseBodyWrapper save(@RequestBody Comissao entity) throws Exception{
  85 + boolean uniqueConstraintViolate = true;
  86 +
  87 + Comissao comissao = new Comissao();
  88 +
  89 + //TODO Solução temporária para evitar que sejam criados registros com o código duplicado. Alterar solução quando for implementado o cache compartilhado
  90 + for(int i = 5; i > 0 && uniqueConstraintViolate; i--){
  91 + try{
  92 + comissao = this.comissaoService.save(SerializationUtils.clone(entity));
  93 + uniqueConstraintViolate = false;
  94 + }catch(Throwable e){
  95 + if(e.getCause() instanceof ConstraintViolationException){
  96 + ConstraintViolationException ex = (ConstraintViolationException) e.getCause();
  97 + if(ex.getSQLException().getMessage().contains("codigo_unico")){
  98 + uniqueConstraintViolate = true;
  99 + }else{
  100 + throw e;
  101 + }
  102 + }else{
  103 + throw e;
  104 + }
  105 + }
  106 + }
  107 +
  108 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(comissao, getEditView());
  109 +
  110 + return responseBody;
  111 + }
  112 +
79 113 /**
80 114 * Método responsável por listar <code>Comissao</code> por nome e <code>Organizacao</code> e <code>Dominio</code>
81 115 *
... ...
cit-tabelas-corp-web/src/main/java/br/com/centralit/controller/EstruturaOrganizacionalController.java
... ... @@ -426,5 +426,16 @@ public class EstruturaOrganizacionalController extends GenericController&lt;Estrutu
426 426  
427 427 return responseBody;
428 428 }
  429 +
  430 + @RequestMapping(value = "/listarEstruturaOrganizacionalAdministrativaPorUL", method = RequestMethod.GET, produces = "application/json")
  431 + @ResponseBody
  432 + public ResponseBodyWrapper listarEstruturaOrganizacionalAdministrativaPorUL(@RequestParam(value = "idUL") String idUL) {
  433 +
  434 + ResultResponseVH<EstruturaOrganizacional> resultResponseVH = new ResultResponseVH<EstruturaOrganizacional>(estruturaOrganizacionalService.listarEstruturaOrganizacionalAdministrativaPorUL(Long.parseLong(idUL)));
  435 +
  436 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, getEditView());
  437 +
  438 + return responseBody;
  439 + }
429 440  
430 441 }
431 442 \ No newline at end of file
... ...
cit-tabelas-corp-web/src/main/java/br/com/centralit/controller/PessoaController.java
... ... @@ -18,7 +18,6 @@ import br.com.centralit.api.viewHelper.PessoaVH;
18 18 import br.com.centralit.framework.controller.GenericController;
19 19 import br.com.centralit.framework.json.ResponseBodyWrapper;
20 20 import br.com.centralit.framework.json.Views;
21   -import br.com.centralit.framework.json.Views.GenericView;
22 21  
23 22 /**
24 23 * <p>
... ... @@ -449,6 +448,18 @@ public class PessoaController extends GenericController&lt;Pessoa&gt; {
449 448  
450 449 return responseBody;
451 450 }
  451 +
  452 + /**
  453 + * Método responsável por obter permissão para assinatura de documento
  454 + * @author rogerio.cassimiro
  455 + * @return {@link Boolean}
  456 + */
  457 + @RequestMapping(value = "/getPermissaoAssinaturaDocumento", method = RequestMethod.GET)
  458 + @ResponseBody
  459 + public ResponseBodyWrapper getPermissaoAssinaturaDocumento() {
  460 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.getPessoaService().getPermissaoAssinaturaDocumento(), this.getEditView());
  461 + return responseBody;
  462 + }
452 463  
453 464 @Override
454 465 public Class<Views.PessoaAutoCompeteView> getAutoCompleteView() {
... ...
cit-tabelas-corp-web/src/main/java/br/com/centralit/listener/StartupListenerTabelasCorp.java
... ... @@ -304,9 +304,12 @@ public class StartupListenerTabelasCorp extends UtilStartup implements Applicati
304 304 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.VALIDACAO.SELECIONAR_UM_RESPONSAVEL", "Você precisa selecionar um responsável!", dominio, modulo));
305 305 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.VALIDACAO.ULTIMO_MAPA_VIGENTE", "O sistema deve sempre ter um Mapa Organizacional vigente, portanto esse Mapa não pode ser excluído. Caso precise de um novo Mapa é só inserir um mapa e o sistema imediatamente finalizará a vigência do mapa anterior.", dominio, modulo));
306 306 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.VALIDACAO.CENTRO_CUSTO_VINCULADO", "Centro de custo pai já está vinculado ao centro de custo selecionado para edição.", dominioPT_BR, moduloSelecionado));
  307 + internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.VALIDACAO.DATA_INICIO_MAPA_VIGENTE", "Data início não pode ser inferior a data início do Mapa Organizacional vigente!", dominioPT_BR, moduloSelecionado));
  308 +
307 309 }
308 310  
309 311 private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
  312 + internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.MSG.UNIDADES_COM_RESPONSAVEL_PODE_SER_LOCALIZADORA", "Apenas unidades com responsável definido podem ser localizadoras de bens!", dominioPT_BR, moduloSelecionado));
310 313 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.MSG.CONFIRMA_DATA_FIM", "Ao alterar data fim de uma estrutura, o processamento poderá levar um tempo até preencher a data fim das estruturas filhas, se houver. Deseja prosseguir?", dominio, modulo));
311 314 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.MSG.CONFIRMA_EXCLUIR_BAIRRO", "Confirma a exclusão do bairro?", dominio, modulo));
312 315 internacionalizacaoList.add(new Internacionalizacao("CORPORATIVO.MSG.CONFIRMA_EXCLUIR_CARACTERISTICA", "Confirma a exclusão da característica?", dominio, modulo));
... ...
cit-tabelas-corp-web/src/main/webapp/assets/js/angular/custom/directive/AssociarDocumentoDirective.js
... ... @@ -68,16 +68,24 @@ citApp.directive(&quot;componenteAssociarDocumentos&quot;, [&quot;$translate&quot;,
68 68 scope: this
69 69 });
70 70 };
71   -
72   - $scope.inicializarModalDocumentos = function(){
73   - $scope.editDocumento = true;
  71 +
  72 + function resetModalDocumentos(){
74 73 $scope.documento = {
75 74 anexos : [],
76 75 $uuid : getUuid()
77 76 };
  77 +
78 78 if($scope.uploader.queue && $scope.uploader.queue.length > 0){
79 79 $scope.uploader.queue.splice($scope.uploader.queue[0], 1);
80 80 }
  81 + }
  82 +
  83 + $scope.inicializarModalDocumentos = function(){
  84 + $scope.editDocumento = true;
  85 + $scope.showButtonSalvarDoc = false;
  86 +
  87 + resetModalDocumentos();
  88 +
81 89 $scope.openModal('modal-documentos.html', 'md');
82 90 };
83 91  
... ... @@ -86,34 +94,44 @@ citApp.directive(&quot;componenteAssociarDocumentos&quot;, [&quot;$translate&quot;,
86 94 console.info('onCompleteAll');
87 95 };
88 96  
89   - $scope.salvarAdicionarDocumento = function(formDialogDocumentos){
  97 + $scope.salvarAdicionarDocumento = function(formDialogDocumentos, continuarEditando){
90 98 var hoje = new Date();
91 99 formDialogDocumentos.$submitted = true;
92   - if(formDialogDocumentos.$valid && !(converterStringEmDate($scope.documento.dataEmissao).getTime() > hoje)){
93   - $scope.documento.uploadsDocumento = $scope.uploader.getNotUploadedItems();
94   -
95   - if ($scope.documentos == undefined || $scope.documentos == null) {
96   - $scope.documentos = [];
97   - }
98   - $scope.dominiosTipoDocumento.forEach(function (tipoDocumento, key) {
99   - if($scope.documento.dominioTipoDocumento.id === tipoDocumento.id){
100   - $scope.documento.dominioTipoDocumento = tipoDocumento.originalElement;
101   - }
102   - });
103   - $scope.documentos.forEach(function (documento, key) {
104   - if(documento.$uuid && $scope.documento.$uuid && documento.$uuid === $scope.documento.$uuid || documento.id && $scope.documento.id && documento.id === $scope.documento.id ){
105   - $scope.documentos.splice(key, 1);
106   - }
107   - });
108   - $scope.documentos.push($scope.documento);
109   - $scope.$modalInstance.dismiss('cancel');
110   - } else if(formDialogDocumentos.$valid && (converterStringEmDate($scope.documento.dataEmissao).getTime() > hoje)){
111   -
112   - $scope.$parent.showAlert('error', $translate.instant('CORPORATIVO.VALIDACAO.CPF_OBRIGATORIO_REPRESENTANTE_LEGAL'));
113   - }else if(formDialogDocumentos.$invalid){
114   -
  100 +
  101 + if(formDialogDocumentos.$invalid){
115 102 $scope.$parent.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'));
  103 + return;
116 104 }
  105 +
  106 + if(converterStringEmDate($scope.documento.dataEmissao).getTime() > hoje){
  107 + $scope.$parent.showAlert('error', $translate.instant('VALIDACAO.DATA_EMISSAO_DATA_ATUAL'));
  108 + return;
  109 + }
  110 +
  111 + $scope.documento.uploadsDocumento = $scope.uploader.getNotUploadedItems();
  112 +
  113 + if ($scope.documentos == undefined || $scope.documentos == null) {
  114 + $scope.documentos = [];
  115 + }
  116 + $scope.dominiosTipoDocumento.forEach(function (tipoDocumento, key) {
  117 + if($scope.documento.dominioTipoDocumento.id === tipoDocumento.id){
  118 + $scope.documento.dominioTipoDocumento = tipoDocumento.originalElement;
  119 + }
  120 + });
  121 + $scope.documentos.forEach(function (documento, key) {
  122 + if(documento.$uuid && $scope.documento.$uuid && documento.$uuid === $scope.documento.$uuid || documento.id && $scope.documento.id && documento.id === $scope.documento.id ){
  123 + $scope.documentos.splice(key, 1);
  124 + }
  125 + });
  126 + $scope.documentos.push($scope.documento);
  127 +
  128 + if(continuarEditando){
  129 + formDialogDocumentos.$submitted = false;
  130 + formDialogDocumentos.$setPristine();
  131 + resetModalDocumentos();
  132 + }else{
  133 + $scope.$modalInstance.dismiss('cancel');
  134 + }
117 135 };
118 136  
119 137 $scope.removerDocumento = function(){
... ... @@ -130,10 +148,11 @@ citApp.directive(&quot;componenteAssociarDocumentos&quot;, [&quot;$translate&quot;,
130 148  
131 149 $scope.excluir = function(){
132 150 var documento = this.item;
133   - if(documento.id !== undefined) {
134   - DocumentoRepository.remove(documento);
135   - $scope.appController.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
136   - }
  151 +// [luis.camargo - 19/04/2016] O orphanRemoval do hibernate cuida da exclusão do documento ao gravar a alteração do cadastro.
  152 +// if(documento.id !== undefined) {
  153 +// DocumentoRepository.remove(documento);
  154 +// $scope.appController.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  155 +// }
137 156 $scope.documentos.splice(documento.$index, 1);
138 157 $scope.appController.$modalConfirmInstance.dismiss('cancel');
139 158 };
... ... @@ -145,6 +164,7 @@ citApp.directive(&quot;componenteAssociarDocumentos&quot;, [&quot;$translate&quot;,
145 164 if(documento !== undefined){
146 165  
147 166 $scope.editDocumento = edit;
  167 + $scope.showButtonSalvarDoc = edit;
148 168 $scope.documento = documento;
149 169 $scope.documento.dataEmissao = $filter('date')(documento.dataEmissao, "dd/MM/yyyy");
150 170 if($scope.documento.id && $scope.documento.emitente){
... ... @@ -228,13 +248,14 @@ citApp.directive(&quot;componenteAssociarDocumentos&quot;, [&quot;$translate&quot;,
228 248 $scope.excluirAnexo = function(){
229 249 var anexo = this.item;
230 250 if(anexo.id) {
231   - AnexoRepository.remove(anexo);
  251 +// [luis.camargo - 19/04/2016] O orphanRemoval do hibernate cuida da exclusão do anexo ao gravar a alteração do cadastro.
  252 +// AnexoRepository.remove(anexo);
232 253 $scope.documento.anexos.forEach(function (entity, key) {
233 254 if(entity.id === anexo.id){
234 255 $scope.documento.anexos.splice(key, 1);
235 256 }
236 257 });
237   - $scope.appController.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  258 +// $scope.appController.showAlertSucesso("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
238 259 $scope.appController.$modalConfirmInstance.dismiss('cancel');
239 260 }
240 261 };
... ...
cit-tabelas-corp-web/src/main/webapp/assets/js/angular/custom/directive/html/dialog_associar_documetos.html
1 1 <form name="formDialogDocumentos" novalidade>
2 2 <div class="modal-header">
3   - <button class="btn btn-clear" type="button" ng-show="editDocumento" ng-click="salvarAdicionarDocumento(formDialogDocumentos)">
  3 + <button class="btn btn-clear" type="button" ng-show="editDocumento && !showButtonSalvarDoc" ng-click="salvarAdicionarDocumento(formDialogDocumentos, false)">
  4 + <i class="fa fa-save green"></i>
  5 + <translate>LABEL.ADICIONAR</translate>
  6 + </button>
  7 +
  8 + <button class="btn btn-clear" type="button" ng-show="editDocumento && showButtonSalvarDoc" ng-click="salvarAdicionarDocumento(formDialogDocumentos, false)">
4 9 <i class="fa fa-save green"></i>
5 10 <translate>LABEL.SALVAR</translate>
6 11 </button>
  12 +
  13 + <button class="btn btn-clear" type="button" ng-show="editDocumento && !showButtonSalvarDoc" ng-click="salvarAdicionarDocumento(formDialogDocumentos, true)">
  14 + <i class="fa fa-save green"></i>
  15 + <translate>LABEL.ADICIONAR_CONTINUAR</translate>
  16 + </button>
7 17  
8 18 <button ng-click="$dismiss('cancel');" type="button" class="btn btn-clear">
9 19 <i class="fa fa-times red"></i>
... ...
cit-tabelas-corp-web/src/main/webapp/assets/js/angular/custom/repository/ColaboradorRepository.js
... ... @@ -11,7 +11,8 @@ citApp.factory(&#39;ColaboradorRepository&#39;, [&#39;RestangularTabelasCorp&#39;, &#39;AbstractRepo
11 11  
12 12 this.findPorNomeAndOrganizacao = function(nome, idOrganizacao) {
13 13 return restangularTabelasCorp.one('rest/colaborador').getList("findPorNomeAndOrganizacao", {"nome": nome, "idOrganizacao" : idOrganizacao}).then();
14   - };
  14 + };
  15 +
15 16 }
16 17  
17 18 AbstractRepository.extend(ColaboradorRepository);
... ...
cit-tabelas-corp-web/src/main/webapp/assets/js/angular/custom/repository/EstruturaOrganizacionalRepository.js
... ... @@ -102,6 +102,11 @@ citApp.factory(&#39;EstruturaOrganizacionalRepository&#39;, [&#39;RestangularTabelasCorp&#39;, &#39;
102 102 this.listarEstruturasOrganizacionaisPorOrganizacaoNotIn = function(value, idOrganizacao, idsEstruturasNotIn) {
103 103 return restangularTabelasCorp.one(this.route).getList("listarEstruturasOrganizacionaisPorOrganizacaoNotIn", {nome : value, idOrganizacao : idOrganizacao, idsEstruturasNotIn : idsEstruturasNotIn}).then();
104 104 };
  105 +
  106 + // Listar estruturas organizacionais administrativas por id da filha
  107 + this.listarEstruturaOrganizacionalAdministrativaPorUL = function(idUL) {
  108 + return restangularTabelasCorp.one(this.route + '/listarEstruturaOrganizacionalAdministrativaPorUL').get({idUL : idUL}).then();
  109 + };
105 110  
106 111 }
107 112  
... ...
cit-tabelas-corp-web/src/main/webapp/assets/js/angular/custom/repository/PessoaRepository.js
... ... @@ -80,7 +80,11 @@ citApp.factory(&#39;PessoaRepository&#39;, [&#39;RestangularTabelasCorp&#39;,&#39;AbstractRepository
80 80 this.findPessoaColaboradorUsuarioPorNome = function(nome) {
81 81 return restangularTabelasCorp.one('rest/pessoa').getList("findPessoaColaboradorUsuarioPorNome", {"nome": nome}).then();
82 82 };
83   -
  83 +
  84 + this.getPermissaoAssinaturaDocumento = function() {
  85 + return restangularTabelasCorp.one(this.route + "/getPermissaoAssinaturaDocumento").get().then();
  86 + };
  87 +
84 88 }
85 89  
86 90 AbstractRepository.extend(PessoaRepository);
... ...
pom.xml
... ... @@ -30,24 +30,26 @@
30 30 <artifactId>cit-tabelas-corp</artifactId>
31 31 <packaging>pom</packaging>
32 32 <name>cit-tabelas-corp</name>
33   -
  33 + <version>${cit-tabelas-corp.version}</version>
  34 +
34 35 <properties>
35 36 <findbugs.config.path>${project.parent.parent.basedir}/filterfile.xml</findbugs.config.path>
36 37 <license.config.path>${project.parent.basedir}/src/licensing</license.config.path>
37 38 </properties>
38 39  
39 40 <!-- Gerencia as versoes dos modulos filhos -->
  41 + <!-- testar pull request -->
40 42 <dependencyManagement>
41 43 <dependencies>
42 44 <dependency>
43 45 <groupId>br.com.centralit</groupId>
44 46 <artifactId>cit-tabelas-corp-web</artifactId>
45   - <version>${project.version}</version>
  47 + <version>${cit-tabelas-corp.version}</version>
46 48 </dependency>
47 49 <dependency>
48 50 <groupId>br.com.centralit</groupId>
49 51 <artifactId>cit-tabelas-corp-api</artifactId>
50   - <version>${project.version}</version>
  52 + <version>${cit-tabelas-corp.version}</version>
51 53 </dependency>
52 54 </dependencies>
53 55 </dependencyManagement>
... ...