Commit 540e6077f229b128d6ceaf56b186e57a205ea12d
Exists in
master
Merge branch 'cnt-1.0.0-alfa11'
Showing
27 changed files
with
830 additions
and
746 deletions
Show diff stats
cit-contratos-api/src/main/java/br/com/centralit/api/dao/EventoAditivoDao.java
... | ... | @@ -7,7 +7,7 @@ import br.com.centralit.api.model.EventoAditivo; |
7 | 7 | import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
8 | 8 | |
9 | 9 | /** |
10 | - * | |
10 | + * | |
11 | 11 | * <p><img src="http://centralit.com.br/images/logo_central.png"></p> |
12 | 12 | * |
13 | 13 | * <p><b>Company: </b> Central IT - Governança Corporativa - </p> |
... | ... | @@ -15,11 +15,11 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
15 | 15 | * <p><b>Title: </b></p> |
16 | 16 | * |
17 | 17 | * <p><b>Description: </b></p> |
18 | - * | |
18 | + * | |
19 | 19 | * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> |
20 | 20 | * |
21 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
22 | - * | |
21 | + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
22 | + * | |
23 | 23 | * @since 15/03/2016 - 18:35:42 |
24 | 24 | * |
25 | 25 | * @version 1.0.0 |
... | ... | @@ -30,10 +30,10 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; |
30 | 30 | public interface EventoAditivoDao extends CitGenericDAO { |
31 | 31 | |
32 | 32 | /** |
33 | - * | |
33 | + * | |
34 | 34 | * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> |
35 | 35 | * |
36 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
36 | + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
37 | 37 | * |
38 | 38 | * Método responsável por |
39 | 39 | * |
... | ... | @@ -45,10 +45,10 @@ public interface EventoAditivoDao extends CitGenericDAO { |
45 | 45 | Collection<EventoAditivo> findAllByContrato(Long contratoId); |
46 | 46 | |
47 | 47 | /** |
48 | - * | |
48 | + * | |
49 | 49 | * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> |
50 | 50 | * |
51 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
51 | + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
52 | 52 | * |
53 | 53 | * Método responsável por buscar o último registro de aditivo de um determinado contrato no ano da data de emissão |
54 | 54 | * |
... | ... | @@ -61,4 +61,6 @@ public interface EventoAditivoDao extends CitGenericDAO { |
61 | 61 | * @return |
62 | 62 | */ |
63 | 63 | EventoAditivo buscarUltimoRegistroPorDataEmissaoEContrato(String property, Calendar dataEmissao, Long contratoId, Long organizacaoId); |
64 | + | |
65 | + boolean existeAditivoPosterior(Calendar dataInicioAditivo, Long idContrato); | |
64 | 66 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/dao/impl/EventoAditivoDaoHibernate.java
... | ... | @@ -2,6 +2,7 @@ package br.com.centralit.api.dao.impl; |
2 | 2 | |
3 | 3 | import java.util.Calendar; |
4 | 4 | import java.util.Collection; |
5 | +import java.util.List; | |
5 | 6 | |
6 | 7 | import org.springframework.stereotype.Repository; |
7 | 8 | |
... | ... | @@ -13,37 +14,37 @@ import br.com.centralit.framework.dao.arquitetura.SearchSeven; |
13 | 14 | import com.googlecode.genericdao.search.Search; |
14 | 15 | |
15 | 16 | /** |
16 | - * | |
17 | + * | |
17 | 18 | * <p> |
18 | 19 | * <img src="http://centralit.com.br/images/logo_central.png"> |
19 | 20 | * </p> |
20 | - * | |
21 | + * | |
21 | 22 | * <p> |
22 | 23 | * <b>Company: </b> Central IT - Governança Corporativa - |
23 | 24 | * </p> |
24 | - * | |
25 | + * | |
25 | 26 | * <p> |
26 | 27 | * <b>Title: </b> |
27 | 28 | * </p> |
28 | - * | |
29 | + * | |
29 | 30 | * <p> |
30 | 31 | * <b>Description: </b> |
31 | 32 | * </p> |
32 | - * | |
33 | + * | |
33 | 34 | * <p> |
34 | 35 | * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> |
35 | 36 | * </p> |
36 | - * | |
37 | + * | |
37 | 38 | * <p> |
38 | 39 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
39 | 40 | * </p> |
40 | - * | |
41 | + * | |
41 | 42 | * @since 15/03/2016 - 18:36:13 |
42 | - * | |
43 | + * | |
43 | 44 | * @version 1.0.0 |
44 | - * | |
45 | + * | |
45 | 46 | * @author geovane.filho |
46 | - * | |
47 | + * | |
47 | 48 | */ |
48 | 49 | @Repository("eventoAditivoDao") |
49 | 50 | public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements EventoAditivoDao { |
... | ... | @@ -100,4 +101,16 @@ public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements Even |
100 | 101 | return searchUnique(search); |
101 | 102 | } |
102 | 103 | |
104 | + @Override | |
105 | + public boolean existeAditivoPosterior(Calendar dataInicioAditivo, Long idContrato) { | |
106 | + SearchSeven search = new SearchSeven(); | |
107 | + | |
108 | + search.addFilterIn("contrato.id", idContrato); | |
109 | + search.addFilterGreaterThan("dataEmissao", dataInicioAditivo); | |
110 | + | |
111 | + List<Object> list = this.search(search); | |
112 | + | |
113 | + return list != null && list.size() > 0 ? true : false; | |
114 | + } | |
115 | + | |
103 | 116 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/model/Contrato.java
... | ... | @@ -66,8 +66,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
66 | 66 | */ |
67 | 67 | @Entity |
68 | 68 | @Table(name = "cnt_contrato") |
69 | -@JsonIgnoreProperties({ "valorTotalItens", "cnpjFornecedor", | |
70 | - "valorTotalLiberado", "ultimaDataVigenciaFinal" }) | |
69 | +@JsonIgnoreProperties({ "valorTotalItens", "cnpjFornecedor", "valorTotalLiberado", "ultimaDataVigenciaFinal" }) | |
71 | 70 | public class Contrato extends PersistentObjectAuditOrganizacao { |
72 | 71 | |
73 | 72 | /** Atributo serialVersionUID. */ |
... | ... | @@ -87,13 +86,13 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
87 | 86 | /** Atributo numeroProcesso. */ |
88 | 87 | @Column(length = 30, nullable = false) |
89 | 88 | @JsonView({ ViewsContrato.ContratoEditView.class, |
90 | - ViewsContrato.ContratoAutoCompleteView.class, | |
91 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
92 | - ViewsContrato.EncerramentoContratoEditView.class, | |
93 | - ViewsContrato.ContratoEventoEditView.class, | |
94 | - ViewsContrato.EventoApostilamentoEditView.class, | |
95 | - ViewsContrato.EventoPenalidadeEditView.class, | |
96 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
89 | + ViewsContrato.ContratoAutoCompleteView.class, | |
90 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
91 | + ViewsContrato.EncerramentoContratoEditView.class, | |
92 | + ViewsContrato.ContratoEventoEditView.class, | |
93 | + ViewsContrato.EventoApostilamentoEditView.class, | |
94 | + ViewsContrato.EventoPenalidadeEditView.class, | |
95 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
97 | 96 | private Long numeroProcesso; |
98 | 97 | |
99 | 98 | /** Atributo exercicio. */ |
... | ... | @@ -106,46 +105,46 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
106 | 105 | /** Atributo numeroAnoContrato. */ |
107 | 106 | @Column(length = 30, nullable = false) |
108 | 107 | @JsonView({ ViewsContrato.ContratoEditView.class, |
109 | - ViewsContrato.ContratoAutoCompleteView.class, | |
110 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
111 | - ViewsContrato.OrdemFornecimentoListView.class, | |
112 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
113 | - ViewsContrato.NotificacaoContratoEditView.class, | |
114 | - ViewsContrato.ContratoEventoEditView.class, | |
115 | - ViewsContrato.EventoApostilamentoEditView.class, | |
116 | - ViewsContrato.EventoPenalidadeEditView.class, | |
117 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
108 | + ViewsContrato.ContratoAutoCompleteView.class, | |
109 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
110 | + ViewsContrato.OrdemFornecimentoListView.class, | |
111 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
112 | + ViewsContrato.NotificacaoContratoEditView.class, | |
113 | + ViewsContrato.ContratoEventoEditView.class, | |
114 | + ViewsContrato.EventoApostilamentoEditView.class, | |
115 | + ViewsContrato.EventoPenalidadeEditView.class, | |
116 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
118 | 117 | private String numeroAnoContrato; |
119 | 118 | |
120 | 119 | /** Atributo numeroAnoContrato. */ |
121 | 120 | @Transient |
122 | 121 | @JsonView({ ViewsContrato.ContratoEditView.class, |
123 | - ViewsContrato.OrdemFornecimentoListView.class, | |
124 | - ViewsContrato.ContratoAutoCompleteView.class, | |
125 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
126 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
127 | - ViewsContrato.NotificacaoContratoEditView.class, | |
128 | - ViewsContrato.EncerramentoContratoListView.class, | |
129 | - ViewsContrato.ContratoEventoEditView.class, | |
130 | - ViewsContrato.EventoApostilamentoEditView.class, | |
131 | - ViewsContrato.EventoPenalidadeEditView.class, | |
132 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
122 | + ViewsContrato.OrdemFornecimentoListView.class, | |
123 | + ViewsContrato.ContratoAutoCompleteView.class, | |
124 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
125 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
126 | + ViewsContrato.NotificacaoContratoEditView.class, | |
127 | + ViewsContrato.EncerramentoContratoListView.class, | |
128 | + ViewsContrato.ContratoEventoEditView.class, | |
129 | + ViewsContrato.EventoApostilamentoEditView.class, | |
130 | + ViewsContrato.EventoPenalidadeEditView.class, | |
131 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
133 | 132 | private String numeroAnoContratoFormatado; |
134 | 133 | |
135 | 134 | /** Atributo dominioTipoContrato. */ |
136 | 135 | @ManyToOne(fetch = FetchType.LAZY, optional = false) |
137 | 136 | @JsonView({ ViewsContrato.ContratoEditView.class, |
138 | - ViewsContrato.ContratoAutoCompleteView.class, | |
139 | - ViewsContrato.EncerramentoContratoEditView.class, | |
140 | - ViewsContrato.RegistroOcorrenciaEditView.class }) | |
137 | + ViewsContrato.ContratoAutoCompleteView.class, | |
138 | + ViewsContrato.EncerramentoContratoEditView.class, | |
139 | + ViewsContrato.RegistroOcorrenciaEditView.class }) | |
141 | 140 | private Dominio dominioTipoContrato; |
142 | 141 | |
143 | 142 | /** Atributo dominioTipoAquisicao. */ |
144 | 143 | @ManyToOne(fetch = FetchType.LAZY, optional = false) |
145 | 144 | @JsonView({ ViewsContrato.ContratoEditView.class, |
146 | - ViewsContrato.ContratoAutoCompleteView.class, | |
147 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
148 | - ViewsContrato.EncerramentoContratoEditView.class }) | |
145 | + ViewsContrato.ContratoAutoCompleteView.class, | |
146 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
147 | + ViewsContrato.EncerramentoContratoEditView.class }) | |
149 | 148 | private Dominio dominioTipoAquisicao; |
150 | 149 | |
151 | 150 | /** Atributo dataCelebracao. */ |
... | ... | @@ -154,8 +153,8 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
154 | 153 | @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) |
155 | 154 | @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) |
156 | 155 | @JsonView({ ViewsContrato.ContratoEditView.class, |
157 | - ViewsContrato.ContratoAutoCompleteView.class, | |
158 | - ViewsContrato.EncerramentoContratoEditView.class }) | |
156 | + ViewsContrato.ContratoAutoCompleteView.class, | |
157 | + ViewsContrato.EncerramentoContratoEditView.class }) | |
159 | 158 | private Calendar dataCelebracao; |
160 | 159 | |
161 | 160 | /** Atributo dataVigenciaInicial. */ |
... | ... | @@ -164,14 +163,14 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
164 | 163 | @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) |
165 | 164 | @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) |
166 | 165 | @JsonView({ ViewsContrato.ContratoEditView.class, |
167 | - ViewsContrato.ContratoAutoCompleteView.class, | |
168 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
169 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
170 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
171 | - ViewsContrato.NotificacaoContratoEditView.class, | |
172 | - ViewsContrato.EncerramentoContratoEditView.class, | |
173 | - ViewsContrato.EventoApostilamentoEditView.class, | |
174 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
166 | + ViewsContrato.ContratoAutoCompleteView.class, | |
167 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
168 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
169 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
170 | + ViewsContrato.NotificacaoContratoEditView.class, | |
171 | + ViewsContrato.EncerramentoContratoEditView.class, | |
172 | + ViewsContrato.EventoApostilamentoEditView.class, | |
173 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
175 | 174 | private Calendar dataVigenciaInicial; |
176 | 175 | |
177 | 176 | /** Atributo dataVigenciaFinal. */ |
... | ... | @@ -180,51 +179,51 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
180 | 179 | @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) |
181 | 180 | @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) |
182 | 181 | @JsonView({ ViewsContrato.ContratoEditView.class, |
183 | - ViewsContrato.ContratoAutoCompleteView.class, | |
184 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
185 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
186 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
187 | - ViewsContrato.NotificacaoContratoEditView.class, | |
188 | - ViewsContrato.EncerramentoContratoEditView.class, | |
189 | - ViewsContrato.EventoApostilamentoEditView.class, | |
190 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
182 | + ViewsContrato.ContratoAutoCompleteView.class, | |
183 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
184 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
185 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
186 | + ViewsContrato.NotificacaoContratoEditView.class, | |
187 | + ViewsContrato.EncerramentoContratoEditView.class, | |
188 | + ViewsContrato.EventoApostilamentoEditView.class, | |
189 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
191 | 190 | private Calendar dataVigenciaFinal; |
192 | 191 | |
193 | 192 | @Transient |
194 | 193 | @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) |
195 | 194 | @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) |
196 | 195 | @JsonView({ ViewsContrato.ContratoEditView.class, |
197 | - ViewsContrato.ContratoAutoCompleteView.class, | |
198 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
199 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
200 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
201 | - ViewsContrato.NotificacaoContratoEditView.class, | |
202 | - ViewsContrato.EncerramentoContratoEditView.class, | |
203 | - ViewsContrato.EventoApostilamentoEditView.class, | |
204 | - ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
196 | + ViewsContrato.ContratoAutoCompleteView.class, | |
197 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
198 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
199 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
200 | + ViewsContrato.NotificacaoContratoEditView.class, | |
201 | + ViewsContrato.EncerramentoContratoEditView.class, | |
202 | + ViewsContrato.EventoApostilamentoEditView.class, | |
203 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
205 | 204 | private Calendar dataUltimaVigenciaFinal; |
206 | 205 | |
207 | 206 | /** Atributo dominioSituacaoAtual. */ |
208 | 207 | @ManyToOne(fetch = FetchType.LAZY, optional = false) |
209 | 208 | @JsonView({ ViewsContrato.ContratoEditView.class, |
210 | - ViewsContrato.ContratoAutoCompleteView.class, | |
211 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
212 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
213 | - ViewsContrato.ContratoEventoEditView.class, | |
214 | - ViewsContrato.EventoApostilamentoEditView.class }) | |
209 | + ViewsContrato.ContratoAutoCompleteView.class, | |
210 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
211 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
212 | + ViewsContrato.ContratoEventoEditView.class, | |
213 | + ViewsContrato.EventoApostilamentoEditView.class }) | |
215 | 214 | private Dominio dominioSituacaoAtual; |
216 | 215 | |
217 | 216 | /** Atributo fornecedor. */ |
218 | 217 | @ManyToOne(fetch = FetchType.LAZY, optional = false) |
219 | 218 | @JsonView({ ViewsContrato.ContratoEditView.class, |
220 | - ViewsContrato.ContratoAutoCompleteView.class, | |
221 | - ViewsContrato.OrdemFornecimentoEditView.class, | |
222 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
223 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
224 | - ViewsContrato.NotificacaoContratoEditView.class, | |
225 | - ViewsContrato.EncerramentoContratoListView.class, | |
226 | - ViewsContrato.EventoApostilamentoEditView.class, | |
227 | - ViewsContrato.EventoPenalidadeEditView.class }) | |
219 | + ViewsContrato.ContratoAutoCompleteView.class, | |
220 | + ViewsContrato.OrdemFornecimentoEditView.class, | |
221 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
222 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
223 | + ViewsContrato.NotificacaoContratoEditView.class, | |
224 | + ViewsContrato.EncerramentoContratoListView.class, | |
225 | + ViewsContrato.EventoApostilamentoEditView.class, | |
226 | + ViewsContrato.EventoPenalidadeEditView.class }) | |
228 | 227 | private Fornecedor fornecedor; |
229 | 228 | |
230 | 229 | /** Atributo disponivel. */ |
... | ... | @@ -233,9 +232,10 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
233 | 232 | |
234 | 233 | /** Atributo objetoContratacao. */ |
235 | 234 | @JsonView({ ViewsContrato.ContratoEditView.class, |
236 | - ViewsContrato.ContratoAutoCompleteView.class, | |
237 | - ViewsContrato.EncerramentoContratoEditView.class, | |
238 | - ViewsContrato.EventoApostilamentoEditView.class }) | |
235 | + ViewsContrato.ContratoAutoCompleteView.class, | |
236 | + ViewsContrato.EncerramentoContratoEditView.class, | |
237 | + ViewsContrato.EventoApostilamentoEditView.class, | |
238 | + ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
239 | 239 | @Column(length = 1024, nullable = false) |
240 | 240 | private String objetoContratacao; |
241 | 241 | |
... | ... | @@ -243,20 +243,20 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
243 | 243 | @Column(precision = 20, scale = 4) |
244 | 244 | @JsonDeserialize(using = MoneyDeserializer.class) |
245 | 245 | @JsonView({ ViewsContrato.ContratoEditView.class, |
246 | - ViewsContrato.ContratoAutoCompleteView.class, | |
247 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
248 | - ViewsContrato.EncerramentoContratoEditView.class, | |
249 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
250 | - ViewsContrato.ContratoEventoEditView.class }) | |
246 | + ViewsContrato.ContratoAutoCompleteView.class, | |
247 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
248 | + ViewsContrato.EncerramentoContratoEditView.class, | |
249 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
250 | + ViewsContrato.ContratoEventoEditView.class }) | |
251 | 251 | private BigDecimal valorContrato; |
252 | 252 | |
253 | 253 | @Transient |
254 | 254 | @JsonView({ ViewsContrato.ContratoEditView.class, |
255 | - ViewsContrato.ContratoAutoCompleteView.class, | |
256 | - ViewsContrato.CronogramaExecucaoEditView.class, | |
257 | - ViewsContrato.EncerramentoContratoEditView.class, | |
258 | - ViewsContrato.RegistroOcorrenciaEditView.class, | |
259 | - ViewsContrato.ContratoEventoEditView.class }) | |
255 | + ViewsContrato.ContratoAutoCompleteView.class, | |
256 | + ViewsContrato.CronogramaExecucaoEditView.class, | |
257 | + ViewsContrato.EncerramentoContratoEditView.class, | |
258 | + ViewsContrato.RegistroOcorrenciaEditView.class, | |
259 | + ViewsContrato.ContratoEventoEditView.class }) | |
260 | 260 | private BigDecimal valorTotalContrato; |
261 | 261 | |
262 | 262 | /** Atributo dominioFormaPagamentoContrato. */ |
... | ... | @@ -287,8 +287,8 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
287 | 287 | /** Atributo ctrtEmpenhos. */ |
288 | 288 | @OneToMany(fetch = FetchType.LAZY, mappedBy = "contratoAditivo", cascade = CascadeType.ALL, targetEntity = EventoAditivo.class) |
289 | 289 | @JsonView({ ViewsContrato.EventoAditivoEditView.class, |
290 | - ViewsContrato.ContratoEventoEditView.class, | |
291 | - ViewsContrato.ContratoEditView.class }) | |
290 | + ViewsContrato.ContratoEventoEditView.class, | |
291 | + ViewsContrato.ContratoEditView.class }) | |
292 | 292 | private Collection<EventoAditivo> aditivos; |
293 | 293 | |
294 | 294 | /** Atributo valorGarantia. */ |
... | ... | @@ -321,8 +321,7 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
321 | 321 | |
322 | 322 | /** Atributo ctrtEmpenhos. */ |
323 | 323 | @OneToMany(fetch = FetchType.LAZY, mappedBy = "contrato", cascade = CascadeType.ALL) |
324 | - @JsonView({ ViewsContrato.ContratoEditView.class, | |
325 | - ViewsContrato.CronogramaExecucaoEditView.class }) | |
324 | + @JsonView({ ViewsContrato.ContratoEditView.class, ViewsContrato.CronogramaExecucaoEditView.class }) | |
326 | 325 | private Collection<ContratoItem> ctrtItens; |
327 | 326 | |
328 | 327 | /** Atributo garantias. ctrtEnvolvidos */ |
... | ... | @@ -330,10 +329,6 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
330 | 329 | @JsonView({ ViewsContrato.ContratoEditView.class }) |
331 | 330 | private Collection<ContratoEnvolvido> ctrtEnvolvidos; |
332 | 331 | |
333 | - @OneToMany(fetch = FetchType.LAZY, mappedBy = "contrato", cascade = CascadeType.ALL) | |
334 | - @JsonView({ ViewsContrato.ContratoEditView.class }) | |
335 | - private Collection<ContratoEnvolvidoJustificativa> justificativas; | |
336 | - | |
337 | 332 | /** Atributo dominioModalidadeGarantia. */ |
338 | 333 | @ManyToOne(fetch = FetchType.LAZY) |
339 | 334 | @JsonView({ ViewsContrato.ContratoEditView.class }) |
... | ... | @@ -593,6 +588,7 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
593 | 588 | * @return <code>Calendar</code> |
594 | 589 | */ |
595 | 590 | public Calendar getDataUltimaVigenciaFinal() { |
591 | + | |
596 | 592 | if (this.aditivos == null || this.aditivos.isEmpty()) { |
597 | 593 | return this.dataVigenciaFinal; |
598 | 594 | } else { |
... | ... | @@ -724,6 +720,7 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
724 | 720 | * @return <code>BigDecimal</code> |
725 | 721 | */ |
726 | 722 | public BigDecimal getValorTotalContrato() { |
723 | + | |
727 | 724 | if (this.aditivos == null || this.aditivos.isEmpty()) { |
728 | 725 | return this.valorContrato; |
729 | 726 | } else { |
... | ... | @@ -1005,6 +1002,7 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
1005 | 1002 | * @return the ordensFornecimento |
1006 | 1003 | */ |
1007 | 1004 | public Collection<OrdemFornecimento> getOrdensFornecimento() { |
1005 | + | |
1008 | 1006 | return ordensFornecimento; |
1009 | 1007 | } |
1010 | 1008 | |
... | ... | @@ -1012,18 +1010,9 @@ public class Contrato extends PersistentObjectAuditOrganizacao { |
1012 | 1010 | * @param ordensFornecimento |
1013 | 1011 | * the ordensFornecimento to set |
1014 | 1012 | */ |
1015 | - public void setOrdensFornecimento( | |
1016 | - Collection<OrdemFornecimento> ordensFornecimento) { | |
1017 | - this.ordensFornecimento = ordensFornecimento; | |
1018 | - } | |
1013 | + public void setOrdensFornecimento(Collection<OrdemFornecimento> ordensFornecimento) { | |
1019 | 1014 | |
1020 | - public Collection<ContratoEnvolvidoJustificativa> getJustificativas() { | |
1021 | - return justificativas; | |
1022 | - } | |
1023 | - | |
1024 | - public void setJustificativas( | |
1025 | - Collection<ContratoEnvolvidoJustificativa> justificativas) { | |
1026 | - this.justificativas = justificativas; | |
1015 | + this.ordensFornecimento = ordensFornecimento; | |
1027 | 1016 | } |
1028 | 1017 | |
1029 | 1018 | /** | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvido.java
1 | 1 | package br.com.centralit.api.model; |
2 | 2 | |
3 | +import java.util.Collection; | |
4 | + | |
5 | +import javax.persistence.CascadeType; | |
3 | 6 | import javax.persistence.Entity; |
4 | 7 | import javax.persistence.FetchType; |
5 | 8 | import javax.persistence.GeneratedValue; |
... | ... | @@ -7,29 +10,41 @@ import javax.persistence.GenerationType; |
7 | 10 | import javax.persistence.Id; |
8 | 11 | import javax.persistence.JoinColumn; |
9 | 12 | import javax.persistence.ManyToOne; |
13 | +import javax.persistence.OneToMany; | |
10 | 14 | import javax.persistence.Table; |
11 | 15 | |
16 | +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | |
17 | +import com.fasterxml.jackson.annotation.JsonView; | |
18 | + | |
12 | 19 | import br.com.centralit.api.viewHelper.ViewsContrato; |
13 | 20 | import br.com.centralit.framework.json.Views; |
14 | 21 | import br.com.centralit.framework.model.Dominio; |
15 | 22 | import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; |
16 | 23 | |
17 | -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | |
18 | -import com.fasterxml.jackson.annotation.JsonView; | |
19 | - | |
20 | - | |
21 | 24 | /** |
22 | - * <p><img src="http://centralit.com.br/images/logo_central.png"></p> | |
25 | + * <p> | |
26 | + * <img src="http://centralit.com.br/images/logo_central.png"> | |
27 | + * </p> | |
23 | 28 | * |
24 | - * <p><b>Company: </b> Central IT - Governança Corporativa - </p> | |
29 | + * <p> | |
30 | + * <b>Company: </b> Central IT - Governança Corporativa - | |
31 | + * </p> | |
25 | 32 | * |
26 | - * <p><b>Title: </b></p> | |
33 | + * <p> | |
34 | + * <b>Title: </b> | |
35 | + * </p> | |
27 | 36 | * |
28 | - * <p><b>Description: </b></p> | |
37 | + * <p> | |
38 | + * <b>Description: </b> | |
39 | + * </p> | |
29 | 40 | * |
30 | - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> | |
41 | + * <p> | |
42 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | |
43 | + * </p> | |
31 | 44 | * |
32 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
45 | + * <p> | |
46 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | |
47 | + * </p> | |
33 | 48 | * |
34 | 49 | * @since 19/01/2016 - 16:47:54 |
35 | 50 | * |
... | ... | @@ -39,18 +54,18 @@ import com.fasterxml.jackson.annotation.JsonView; |
39 | 54 | * |
40 | 55 | */ |
41 | 56 | @Entity |
42 | -@Table(name="cnt_cn_envolvido") | |
43 | -@JsonIgnoreProperties({ "$checked" }) | |
57 | +@Table(name = "cnt_cn_envolvido") | |
58 | +@JsonIgnoreProperties({ "$checked", "justificativasAnterioresLength" }) | |
44 | 59 | public class ContratoEnvolvido extends PersistentObjectAudit { |
45 | 60 | |
46 | - /** Atributo serialVersionUID. */ | |
47 | - private static final long serialVersionUID = 1L; | |
61 | + /** Atributo serialVersionUID. */ | |
62 | + private static final long serialVersionUID = 1L; | |
48 | 63 | |
49 | - /** Atributo id. */ | |
50 | - @Id | |
51 | - @GeneratedValue(strategy = GenerationType.AUTO) | |
52 | - @JsonView({ Views.GenericView.class }) | |
53 | - private Long id; | |
64 | + /** Atributo id. */ | |
65 | + @Id | |
66 | + @GeneratedValue(strategy = GenerationType.AUTO) | |
67 | + @JsonView({ Views.GenericView.class }) | |
68 | + private Long id; | |
54 | 69 | |
55 | 70 | /** Atributo contrato. */ |
56 | 71 | @ManyToOne(fetch = FetchType.LAZY, optional = true) |
... | ... | @@ -61,15 +76,19 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
61 | 76 | private Contrato contratoInativo; |
62 | 77 | |
63 | 78 | /** Atributo colaborador. */ |
64 | - @ManyToOne(fetch = FetchType.LAZY, optional=false) | |
65 | - @JsonView({ ViewsContrato.ContratoEditView.class, Views.ContratoView.class }) | |
79 | + @ManyToOne(fetch = FetchType.LAZY, optional = false) | |
80 | + @JsonView({ ViewsContrato.ContratoEditView.class, Views.ContratoView.class }) | |
66 | 81 | private Colaborador envolvido; |
67 | 82 | |
68 | 83 | /** Atributo dominioFormaPagamentoContrato. */ |
69 | - @ManyToOne(fetch = FetchType.LAZY, optional=false) | |
70 | - @JoinColumn(name = "papelenvolvidocontrato_id") | |
71 | - @JsonView({ ViewsContrato.ContratoEditView.class }) | |
72 | - private Dominio dominioPapelEnvolvidoContrato; | |
84 | + @ManyToOne(fetch = FetchType.LAZY, optional = false) | |
85 | + @JoinColumn(name = "papelenvolvidocontrato_id") | |
86 | + @JsonView({ ViewsContrato.ContratoEditView.class }) | |
87 | + private Dominio dominioPapelEnvolvidoContrato; | |
88 | + | |
89 | + @OneToMany(fetch = FetchType.LAZY, mappedBy = "contratoEnvolvido", cascade = CascadeType.ALL) | |
90 | + @JsonView({ ViewsContrato.ContratoEditView.class }) | |
91 | + private Collection<ContratoEnvolvidoJustificativa> justificativas; | |
73 | 92 | |
74 | 93 | /** |
75 | 94 | * Retorna o valor do atributo <code>id</code> |
... | ... | @@ -81,7 +100,6 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
81 | 100 | return id; |
82 | 101 | } |
83 | 102 | |
84 | - | |
85 | 103 | /** |
86 | 104 | * Define o valor do atributo <code>id</code>. |
87 | 105 | * |
... | ... | @@ -92,7 +110,6 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
92 | 110 | this.id = id; |
93 | 111 | } |
94 | 112 | |
95 | - | |
96 | 113 | /** |
97 | 114 | * Retorna o valor do atributo <code>contrato</code> |
98 | 115 | * |
... | ... | @@ -103,7 +120,6 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
103 | 120 | return contrato; |
104 | 121 | } |
105 | 122 | |
106 | - | |
107 | 123 | /** |
108 | 124 | * Define o valor do atributo <code>contrato</code>. |
109 | 125 | * |
... | ... | @@ -114,7 +130,6 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
114 | 130 | this.contrato = contrato; |
115 | 131 | } |
116 | 132 | |
117 | - | |
118 | 133 | /** |
119 | 134 | * Retorna o valor do atributo <code>contratoInativo</code> |
120 | 135 | * |
... | ... | @@ -125,7 +140,6 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
125 | 140 | return contratoInativo; |
126 | 141 | } |
127 | 142 | |
128 | - | |
129 | 143 | /** |
130 | 144 | * Define o valor do atributo <code>contratoInativo</code>. |
131 | 145 | * |
... | ... | @@ -136,25 +150,34 @@ public class ContratoEnvolvido extends PersistentObjectAudit { |
136 | 150 | this.contratoInativo = contratoInativo; |
137 | 151 | } |
138 | 152 | |
139 | - | |
140 | 153 | public Colaborador getEnvolvido() { |
154 | + | |
141 | 155 | return envolvido; |
142 | 156 | } |
143 | 157 | |
144 | - | |
145 | 158 | public void setEnvolvido(Colaborador envolvido) { |
159 | + | |
146 | 160 | this.envolvido = envolvido; |
147 | 161 | } |
148 | 162 | |
149 | - | |
150 | 163 | public Dominio getDominioPapelEnvolvidoContrato() { |
164 | + | |
151 | 165 | return dominioPapelEnvolvidoContrato; |
152 | 166 | } |
153 | 167 | |
168 | + public void setDominioPapelEnvolvidoContrato(Dominio dominioPapelEnvolvidoContrato) { | |
154 | 169 | |
155 | - public void setDominioPapelEnvolvidoContrato( | |
156 | - Dominio dominioPapelEnvolvidoContrato) { | |
157 | 170 | this.dominioPapelEnvolvidoContrato = dominioPapelEnvolvidoContrato; |
158 | 171 | } |
159 | 172 | |
173 | + public Collection<ContratoEnvolvidoJustificativa> getJustificativas() { | |
174 | + | |
175 | + return justificativas; | |
176 | + } | |
177 | + | |
178 | + public void setJustificativas(Collection<ContratoEnvolvidoJustificativa> justificativas) { | |
179 | + | |
180 | + this.justificativas = justificativas; | |
181 | + } | |
182 | + | |
160 | 183 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvidoJustificativa.java
... | ... | @@ -52,7 +52,7 @@ public class ContratoEnvolvidoJustificativa extends PersistentObjectAudit { |
52 | 52 | private String descricao; |
53 | 53 | |
54 | 54 | @ManyToOne(fetch = FetchType.LAZY, optional = true) |
55 | - private Contrato contrato; | |
55 | + private ContratoEnvolvido contratoEnvolvido; | |
56 | 56 | |
57 | 57 | public Long getId() { |
58 | 58 | |
... | ... | @@ -67,17 +67,21 @@ public class ContratoEnvolvidoJustificativa extends PersistentObjectAudit { |
67 | 67 | public String getDescricao() { |
68 | 68 | return descricao; |
69 | 69 | } |
70 | - | |
70 | + | |
71 | 71 | public void setDescricao(String descricao) { |
72 | 72 | this.descricao = descricao; |
73 | 73 | } |
74 | - | |
75 | - public Contrato getContrato() { | |
76 | - return contrato; | |
74 | + | |
75 | + | |
76 | + public ContratoEnvolvido getContratoEnvolvido() { | |
77 | + | |
78 | + return contratoEnvolvido; | |
77 | 79 | } |
78 | 80 | |
79 | - public void setContrato(Contrato contrato) { | |
80 | - this.contrato = contrato; | |
81 | + | |
82 | + public void setContratoEnvolvido(ContratoEnvolvido contratoEnvolvido) { | |
83 | + | |
84 | + this.contratoEnvolvido = contratoEnvolvido; | |
81 | 85 | } |
82 | 86 | |
83 | 87 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/model/EventoRecebimentoObjeto.java
... | ... | @@ -97,11 +97,6 @@ public class EventoRecebimentoObjeto extends ContratoEvento { |
97 | 97 | @JsonView({ ViewsContrato.EventoRecebimentoObjetoEditView.class }) |
98 | 98 | private Dominio tipoAvaliacaoAdesao; |
99 | 99 | |
100 | - /** Atributo nomeObjeto. */ | |
101 | - @Column(length = 200, nullable = false) | |
102 | - @JsonView({ ViewsContrato.EventoRecebimentoObjetoEditView.class }) | |
103 | - private String nomeObjeto; | |
104 | - | |
105 | 100 | /** Atributo justificativa. */ |
106 | 101 | @Column(length = 2000, nullable = true) |
107 | 102 | @JsonView({ ViewsContrato.EventoRecebimentoObjetoEditView.class }) |
... | ... | @@ -177,27 +172,6 @@ public class EventoRecebimentoObjeto extends ContratoEvento { |
177 | 172 | this.tipoStatus = tipoStatus; |
178 | 173 | } |
179 | 174 | |
180 | - | |
181 | - /** | |
182 | - * Retorna o valor do atributo <code>nomeObjeto</code> | |
183 | - * | |
184 | - * @return <code>String</code> | |
185 | - */ | |
186 | - public String getNomeObjeto() { | |
187 | - | |
188 | - return nomeObjeto; | |
189 | - } | |
190 | - | |
191 | - /** | |
192 | - * Define o valor do atributo <code>nomeObjeto</code>. | |
193 | - * | |
194 | - * @param nomeObjeto | |
195 | - */ | |
196 | - public void setNomeObjeto(String nomeObjeto) { | |
197 | - | |
198 | - this.nomeObjeto = nomeObjeto; | |
199 | - } | |
200 | - | |
201 | 175 | public Dominio getTipoAvaliacaoPrazo() { |
202 | 176 | |
203 | 177 | return tipoAvaliacaoPrazo; | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/model/RegistroSequencial.java
... | ... | @@ -39,7 +39,7 @@ public class RegistroSequencial { |
39 | 39 | @Transient |
40 | 40 | @JsonView({ ViewsContrato.EventoPenalidadeEditView.class, Views.GenericView.class }) |
41 | 41 | private String sequencialAnoFormatado; |
42 | - | |
42 | + | |
43 | 43 | public RegistroSequencial() {}; |
44 | 44 | |
45 | 45 | public RegistroSequencial( Long numeroSequencial, String sequencialAno ) { |
... | ... | @@ -70,12 +70,12 @@ public class RegistroSequencial { |
70 | 70 | |
71 | 71 | public String getSequencialAnoFormatado() { |
72 | 72 | if (StringUtils.isNotEmpty(sequencialAno)) { |
73 | - sequencialAnoFormatado = StringUtils.leftPad(sequencialAno, 7, '0'); | |
74 | - sequencialAnoFormatado = sequencialAnoFormatado.substring(0, 3).concat("/").concat(sequencialAnoFormatado.substring(3)); | |
73 | + sequencialAnoFormatado = StringUtils.leftPad(sequencialAno, 9, '0'); | |
74 | + sequencialAnoFormatado = sequencialAnoFormatado.substring(0, 5).concat("/").concat(sequencialAnoFormatado.substring(5)); | |
75 | 75 | } |
76 | 76 | return sequencialAnoFormatado; |
77 | 77 | } |
78 | - | |
78 | + | |
79 | 79 | public void setSequencialAnoFormatado(String sequencialAnoFormatado) { |
80 | 80 | this.sequencialAnoFormatado = sequencialAnoFormatado; |
81 | 81 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/EventoAditivoService.java
1 | 1 | package br.com.centralit.api.service; |
2 | 2 | |
3 | -import java.io.InputStream; | |
4 | 3 | import java.sql.Connection; |
5 | 4 | import java.util.Collection; |
6 | 5 | |
... | ... | @@ -28,4 +27,8 @@ public interface EventoAditivoService extends GenericService<EventoAditivo, Long |
28 | 27 | Collection<EventoAditivo> findAllByContrato(Long contratoId); |
29 | 28 | |
30 | 29 | JasperPrint getJasperPrintAditivo(Long idAditivo, Connection conn, Usuario user, String titulo) throws JRException; |
30 | + | |
31 | + Boolean permiteExclusaoAditivo(Long idAditivo); | |
32 | + | |
33 | + Boolean existeAditivoPrazoPosterior(Long idAditivo); | |
31 | 34 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java
... | ... | @@ -8,6 +8,7 @@ import java.util.Currency; |
8 | 8 | import java.util.Iterator; |
9 | 9 | import java.util.List; |
10 | 10 | |
11 | +import org.apache.commons.collections.CollectionUtils; | |
11 | 12 | import org.springframework.beans.factory.annotation.Autowired; |
12 | 13 | import org.springframework.beans.factory.annotation.Qualifier; |
13 | 14 | import org.springframework.security.core.context.SecurityContextHolder; |
... | ... | @@ -38,7 +39,6 @@ import br.com.centralit.api.service.EstudoTecnicoService; |
38 | 39 | import br.com.centralit.api.service.EventoAditivoService; |
39 | 40 | import br.com.centralit.api.service.FornecedorService; |
40 | 41 | import br.com.centralit.api.service.InternacionalizacaoService; |
41 | -import br.com.centralit.api.service.OrdemFornecimentoService; | |
42 | 42 | import br.com.centralit.api.service.ParceiroService; |
43 | 43 | import br.com.centralit.api.service.UsuarioService; |
44 | 44 | import br.com.centralit.framework.exception.CodigoErro; |
... | ... | @@ -115,9 +115,6 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl |
115 | 115 | @Autowired |
116 | 116 | private EventoAditivoService aditivoService; |
117 | 117 | |
118 | - @Autowired | |
119 | - private OrdemFornecimentoService ordemFornecimentoService; | |
120 | - | |
121 | 118 | /** |
122 | 119 | * Responsável pela criação de novas instâncias desta classe. |
123 | 120 | * @param contratoDao |
... | ... | @@ -277,25 +274,19 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl |
277 | 274 | } |
278 | 275 | } |
279 | 276 | |
280 | - // cria vinculo do contrato com as ctrtItens | |
281 | - if (!UtilColecao.isVazio(contrato.getCtrtEnvolvidos())){ | |
282 | - | |
277 | + // cria vinculo do contrato com os envolvidos | |
278 | + if (CollectionUtils.isNotEmpty(contrato.getCtrtEnvolvidos())){ | |
283 | 279 | for (ContratoEnvolvido contratoEnvolvido : contrato.getCtrtEnvolvidos()) { |
284 | - | |
285 | 280 | contratoEnvolvido.setEnvolvido(this.colaboradorService.find(contratoEnvolvido.getEnvolvido().getId())); |
286 | - | |
287 | 281 | contratoEnvolvido.setContrato(contrato); |
282 | + if (CollectionUtils.isNotEmpty(contratoEnvolvido.getJustificativas())){ | |
283 | + for(ContratoEnvolvidoJustificativa justificativa : contratoEnvolvido.getJustificativas()){ | |
284 | + justificativa.setContratoEnvolvido(contratoEnvolvido); | |
285 | + justificativa.setAutor(this.usuarioService.find(justificativa.getAutor().getId())); | |
286 | + } | |
287 | + } | |
288 | 288 | } |
289 | - } | |
290 | - | |
291 | - // cria vinculo do contrato com as justificativas de alterções dos envolvidos | |
292 | - if (!UtilColecao.isVazio(contrato.getJustificativas())){ | |
293 | - | |
294 | - for (ContratoEnvolvidoJustificativa justificativa : contrato.getJustificativas()) { | |
295 | - | |
296 | - justificativa.setContrato(contrato); | |
297 | 289 | } |
298 | - } | |
299 | 290 | |
300 | 291 | if (!UtilColecao.isVazio(contrato.getAditivos())){ |
301 | 292 | for (EventoAditivo aditivo : contrato.getAditivos()) { | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EventoAditivoServiceImpl.java
... | ... | @@ -6,6 +6,7 @@ import java.text.DecimalFormat; |
6 | 6 | import java.text.SimpleDateFormat; |
7 | 7 | import java.util.Calendar; |
8 | 8 | import java.util.Collection; |
9 | +import java.util.GregorianCalendar; | |
9 | 10 | import java.util.HashMap; |
10 | 11 | import java.util.Map; |
11 | 12 | |
... | ... | @@ -40,6 +41,7 @@ import br.com.centralit.framework.model.Usuario; |
40 | 41 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
41 | 42 | import br.com.centralit.framework.util.Util; |
42 | 43 | import br.com.centralit.framework.util.UtilDataBase; |
44 | +import br.com.centralit.framework.util.UtilDate; | |
43 | 45 | import br.com.centralit.framework.util.UtilObjeto; |
44 | 46 | |
45 | 47 | /** |
... | ... | @@ -257,4 +259,32 @@ public class EventoAditivoServiceImpl extends GenericServiceImpl<EventoAditivo, |
257 | 259 | } |
258 | 260 | } |
259 | 261 | |
262 | + @Override | |
263 | + public Boolean permiteExclusaoAditivo(Long idAditivo) { | |
264 | + EventoAditivo aditivo = this.find(idAditivo); | |
265 | + | |
266 | + if(aditivo.getDataInicio().before(GregorianCalendar.getInstance()) ){ | |
267 | + return false; | |
268 | + } | |
269 | + | |
270 | + if(UtilDate.isMesmaData(aditivo.getDataInicio(), GregorianCalendar.getInstance())){ | |
271 | + return false; | |
272 | + } | |
273 | + | |
274 | + if(this.eventoAditivoDao.existeAditivoPosterior(aditivo.getDataInicio(), aditivo.getContrato().getId())){ | |
275 | + return false; | |
276 | + } | |
277 | + | |
278 | + return true; | |
279 | + } | |
280 | + | |
281 | + @Override | |
282 | + public Boolean existeAditivoPrazoPosterior(Long idAditivo) { | |
283 | + EventoAditivo aditivo = this.find(idAditivo); | |
284 | + if(this.eventoAditivoDao.existeAditivoPosterior(aditivo.getDataInicio(), aditivo.getContrato().getId())){ | |
285 | + return true; | |
286 | + } | |
287 | + return false; | |
288 | + } | |
289 | + | |
260 | 290 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/InicializarContratosServiceImpl.java
... | ... | @@ -60,11 +60,11 @@ public class InicializarContratosServiceImpl extends UtilStartup { |
60 | 60 | this.menuContratos = this.menuService.mergeIfNotExist(this.menuContratos); |
61 | 61 | |
62 | 62 | // Submenu Demandas |
63 | - criarSubMenuDemandas(moduloSelecionado); | |
63 | +// criarSubMenuDemandas(moduloSelecionado); | |
64 | 64 | // Submenu Planejamento da contratação |
65 | 65 | criarSubMenuPlanejamentoContratacao(moduloSelecionado); |
66 | 66 | // Submenu Seleção de fornecedor |
67 | - criarSubMenuSelecaoFornecedor(moduloSelecionado); | |
67 | +// criarSubMenuSelecaoFornecedor(moduloSelecionado); | |
68 | 68 | // Submenu Gestão e fiscalização de contrato |
69 | 69 | criarSubMenuGestaoFiscalizacaoContrato(moduloSelecionado); |
70 | 70 | // Submenu Controles |
... | ... | @@ -98,7 +98,7 @@ public class InicializarContratosServiceImpl extends UtilStartup { |
98 | 98 | // Menu Termo de referência / Projeto básico |
99 | 99 | criarOpcaoTermoReferenciaProjetoBasico(modulo, menuPlanejamentoContrat); |
100 | 100 | // Menu Gestão de riscos |
101 | - criarOpcaoGestaoRiscos(modulo, menuPlanejamentoContrat); | |
101 | +// criarOpcaoGestaoRiscos(modulo, menuPlanejamentoContrat); | |
102 | 102 | } |
103 | 103 | |
104 | 104 | private void criarSubMenuSelecaoFornecedor(Modulo modulo) { |
... | ... | @@ -136,17 +136,17 @@ public class InicializarContratosServiceImpl extends UtilStartup { |
136 | 136 | menuControles = this.menuService.mergeIfNotExist(menuControles); |
137 | 137 | |
138 | 138 | // Menu Controle de registro de preços |
139 | - criarOpcaoControleRegistroPrecos(modulo, menuControles); | |
139 | +// criarOpcaoControleRegistroPrecos(modulo, menuControles); | |
140 | 140 | // Menu Checklist de verificação do planejamento da contratação |
141 | - criarOpcaoChecklistVerificacaoPlanejamentoContratacao(modulo, menuControles); | |
141 | +// criarOpcaoChecklistVerificacaoPlanejamentoContratacao(modulo, menuControles); | |
142 | 142 | // Menu Questionarios |
143 | 143 | criarOpcaoQuestionario(modulo, menuControles); |
144 | 144 | // Menu Alertas |
145 | - criarOpcaoAlertas(modulo, menuControles); | |
145 | +// criarOpcaoAlertas(modulo, menuControles); | |
146 | 146 | // Menu Indicadores |
147 | - criarOpcaoIndicacores(modulo, menuControles); | |
147 | +// criarOpcaoIndicacores(modulo, menuControles); | |
148 | 148 | // Menu Definições de contratos |
149 | - criarOpcaoDefinicoesContratos(modulo, menuControles); | |
149 | +// criarOpcaoDefinicoesContratos(modulo, menuControles); | |
150 | 150 | } |
151 | 151 | |
152 | 152 | private void criarSubMenuTermosRelatorios(Modulo modulo) { |
... | ... | @@ -287,23 +287,8 @@ public class InicializarContratosServiceImpl extends UtilStartup { |
287 | 287 | paginaGestaoRisco = this.paginaService.saveIfNotExist(paginaGestaoRisco); |
288 | 288 | Menu menuGestaoRisco = new Menu("Gestão de riscos", paginaGestaoRisco, menuPlanejamentoContrat, null, 5, null, null, null, null, modulo, "GESTAO_RISCOS"); |
289 | 289 | |
290 | - List<MenuFile> filesMenuFileTermo = new ArrayList<MenuFile>(); | |
291 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "controller/TermoReferenciaListController.js", this.dominioJS, menuGestaoRisco)); | |
292 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "controller/TermoReferenciaListController.min.js", this.dominioJS, menuGestaoRisco)); | |
293 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "controller/TermoReferenciaController.js", this.dominioJS, menuGestaoRisco)); | |
294 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "controller/TermoReferenciaController.min.js", this.dominioJS, menuGestaoRisco)); | |
295 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaRepository.js", this.dominioJS, menuGestaoRisco)); | |
296 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaRepository.min.js", this.dominioJS, menuGestaoRisco)); | |
297 | - | |
298 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaSancaoRepository.js", this.dominioJS, menuGestaoRisco)); | |
299 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaSancaoRepository.min.js", this.dominioJS, menuGestaoRisco)); | |
300 | - | |
301 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaPenalidadeRepository.js", this.dominioJS, menuGestaoRisco)); | |
302 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaPenalidadeRepository.min.js", this.dominioJS, menuGestaoRisco)); | |
303 | - | |
304 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaDetalhamentoSolucaoRepository.js", this.dominioJS, menuGestaoRisco)); | |
305 | - filesMenuFileTermo.add(new MenuFile(CIT_CONTRATOS_WEB_ANGULAR_CUSTOM + "repository/TermoReferenciaDetalhamentoSolucaoRepository.min.js", this.dominioJS, menuGestaoRisco)); | |
306 | - menuGestaoRisco.setIncludes(filesMenuFileTermo); | |
290 | + List<MenuFile> filesMenuFileGestao = new ArrayList<MenuFile>(); | |
291 | + menuGestaoRisco.setIncludes(filesMenuFileGestao); | |
307 | 292 | |
308 | 293 | this.menuService.mergeIfNotExist(menuGestaoRisco); |
309 | 294 | } | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/validation/EventoAditivoValidator.java
1 | 1 | package br.com.centralit.api.service.validation; |
2 | 2 | |
3 | 3 | import java.math.BigDecimal; |
4 | +import java.sql.Timestamp; | |
4 | 5 | import java.util.Calendar; |
5 | 6 | |
6 | 7 | import org.springframework.stereotype.Component; |
... | ... | @@ -11,11 +12,12 @@ import org.springframework.validation.Validator; |
11 | 12 | import br.com.centralit.api.model.DominioContrato; |
12 | 13 | import br.com.centralit.api.model.EventoAditivo; |
13 | 14 | import br.com.centralit.framework.exception.CodigoErro; |
15 | +import br.com.centralit.framework.util.UtilDate; | |
14 | 16 | import br.com.centralit.framework.util.UtilObjeto; |
15 | 17 | |
16 | 18 | |
17 | 19 | /** |
18 | - * | |
20 | + * | |
19 | 21 | * <p><img src="http://centralit.com.br/images/logo_central.png"></p> |
20 | 22 | * |
21 | 23 | * <p><b>Company: </b> Central IT - Governança Corporativa - </p> |
... | ... | @@ -23,11 +25,11 @@ import br.com.centralit.framework.util.UtilObjeto; |
23 | 25 | * <p><b>Title: </b></p> |
24 | 26 | * |
25 | 27 | * <p><b>Description: </b></p> |
26 | - * | |
28 | + * | |
27 | 29 | * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> |
28 | 30 | * |
29 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
30 | - * | |
31 | + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
32 | + * | |
31 | 33 | * @since 16/03/2016 - 11:10:02 |
32 | 34 | * |
33 | 35 | * @version 1.0.0 |
... | ... | @@ -56,98 +58,115 @@ public class EventoAditivoValidator implements Validator{ |
56 | 58 | |
57 | 59 | EventoAditivo aditivo = (EventoAditivo) target; |
58 | 60 | Calendar dataFinal = null; |
59 | - | |
60 | - ValidationUtils.rejectIfEmpty(errors, "contrato", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.CONTRATO"); | |
61 | - | |
62 | - if (UtilObjeto.isReferencia(aditivo.getContrato())) { | |
61 | + if(UtilObjeto.isReferencia(aditivo.getContrato())){ | |
63 | 62 | dataFinal = aditivo.getContrato().getDataVigenciaFinal(); |
64 | - | |
63 | + } | |
64 | + ValidationUtils.rejectIfEmpty(errors, "contrato", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.CONTRATO"); | |
65 | + | |
66 | + if (UtilObjeto.isReferencia(aditivo.getContrato()) && !UtilObjeto.isReferencia(aditivo.getId())) { | |
67 | + dataFinal = aditivo.getContrato().getDataUltimaVigenciaFinal(); | |
68 | + }else{ | |
65 | 69 | if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { |
66 | 70 | for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { |
67 | - if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDePrazo() && adContrato.getDataFim().after(dataFinal)) { | |
71 | + if( adContrato.getAditivoDePrazo() && adContrato.getDataFim().before(aditivo.getDataInicio()) && adContrato.getDataFim().after(dataFinal)){ | |
68 | 72 | dataFinal = adContrato.getDataFim(); |
69 | 73 | } |
70 | 74 | } |
71 | 75 | } |
72 | 76 | } |
73 | 77 | |
78 | + if(aditivo.getDataEmissao().after(aditivo.getDataInicio())){ | |
79 | + errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.ADITIVO_DATA_EMISSAO_MAIOR_DATA_INICIO"); | |
80 | + } | |
81 | + | |
74 | 82 | ValidationUtils.rejectIfEmpty(errors, "registroSequencial", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.NUM_ADITIVO"); |
75 | - | |
83 | + | |
76 | 84 | ValidationUtils.rejectIfEmpty(errors, "dataEmissao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DATA_EMISSAO_OCORRENCIA"); |
77 | - | |
85 | + | |
78 | 86 | if (UtilObjeto.isReferencia(aditivo.getDataEmissao()) && UtilObjeto.isReferencia(aditivo.getContrato()) && |
79 | 87 | (aditivo.getDataEmissao().before(aditivo.getContrato().getDataVigenciaInicial()) || aditivo.getDataEmissao().after(dataFinal))) { |
80 | 88 | errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_DENTRO_REFERENCIA"); |
81 | 89 | } |
82 | - | |
90 | + | |
83 | 91 | ValidationUtils.rejectIfEmpty(errors, "tipoAlteracao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO"); |
84 | - | |
92 | + | |
85 | 93 | if (!(aditivo.getAditivoDeValor() || aditivo.getAditivoDePrazo() || aditivo.getAditivoDeClausula())) { |
86 | 94 | errors.rejectValue("aditivoDePrazo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); |
87 | 95 | errors.rejectValue("aditivoDeValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); |
88 | 96 | errors.rejectValue("aditivoDeClausula", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); |
89 | 97 | } |
90 | - | |
98 | + | |
91 | 99 | if (aditivo.getAditivoDePrazo()) { |
92 | 100 | if (UtilObjeto.isReferencia(aditivo.getDataEmissao())) { |
93 | - Calendar ultimaDataEmissao = null; | |
101 | + Calendar ultimaDataEmissaoAditivoAnterior = null; | |
102 | + Calendar ultimaDataEmissaoAditivoPosterior = null; | |
94 | 103 | int qntAditivoPrazo = 0; |
95 | 104 | if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { |
96 | 105 | for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { |
97 | 106 | if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDePrazo()) { |
98 | 107 | qntAditivoPrazo++; |
99 | - if (!UtilObjeto.isReferencia(ultimaDataEmissao)) { | |
100 | - ultimaDataEmissao = adContrato.getDataEmissao(); | |
101 | - } else { | |
102 | - if (adContrato.getDataEmissao().after(ultimaDataEmissao)) { | |
103 | - ultimaDataEmissao = adContrato.getDataEmissao(); | |
104 | - } | |
108 | + if (adContrato.getDataEmissao().before(aditivo.getDataEmissao())) { | |
109 | + ultimaDataEmissaoAditivoAnterior = adContrato.getDataEmissao(); | |
110 | + } | |
111 | + if(adContrato.getDataEmissao().after(aditivo.getDataEmissao())){ | |
112 | + ultimaDataEmissaoAditivoPosterior = adContrato.getDataEmissao(); | |
105 | 113 | } |
106 | 114 | } |
107 | 115 | } |
108 | 116 | } |
109 | - | |
117 | + | |
110 | 118 | if (qntAditivoPrazo >= MAXIMO_ADITIVO_PRAZO) { |
111 | 119 | errors.rejectValue("aditivoDePrazo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.MAXIMO_ADITIVO_PRAZO"); |
112 | 120 | } |
113 | - | |
114 | - if (UtilObjeto.isReferencia(ultimaDataEmissao)) { | |
115 | - if (ultimaDataEmissao.get(Calendar.YEAR) < aditivo.getDataEmissao().get(Calendar.YEAR)) { | |
116 | - if (ultimaDataEmissao.get(Calendar.MONTH) <= aditivo.getDataEmissao().get(Calendar.MONTH)) { | |
117 | - if ((ultimaDataEmissao.get(Calendar.MONTH) == aditivo.getDataEmissao().get(Calendar.MONTH)) && | |
118 | - ultimaDataEmissao.get(Calendar.DAY_OF_MONTH) >= aditivo.getDataEmissao().get(Calendar.DAY_OF_MONTH)) { | |
121 | + | |
122 | + if (UtilObjeto.isReferencia(ultimaDataEmissaoAditivoAnterior)) { | |
123 | + | |
124 | + if (ultimaDataEmissaoAditivoAnterior.get(Calendar.YEAR) < aditivo.getDataEmissao().get(Calendar.YEAR)) { | |
125 | + if ( ultimaDataEmissaoAditivoAnterior.get(Calendar.MONTH) <= aditivo.getDataEmissao().get(Calendar.MONTH)) { | |
126 | + if ((ultimaDataEmissaoAditivoAnterior.get(Calendar.MONTH) == aditivo.getDataEmissao().get(Calendar.MONTH)) && | |
127 | + ultimaDataEmissaoAditivoAnterior.get(Calendar.DAY_OF_MONTH) > aditivo.getDataEmissao().get(Calendar.DAY_OF_MONTH)) { | |
119 | 128 | errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES"); |
120 | 129 | } |
121 | - } else { | |
122 | - errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES"); | |
123 | 130 | } |
124 | 131 | } else { |
125 | 132 | errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES"); |
126 | 133 | } |
127 | 134 | } |
135 | + if (UtilObjeto.isReferencia(ultimaDataEmissaoAditivoPosterior)) { | |
136 | + if (ultimaDataEmissaoAditivoPosterior.get(Calendar.YEAR) > aditivo.getDataEmissao().get(Calendar.YEAR)) { | |
137 | + if (ultimaDataEmissaoAditivoPosterior.get(Calendar.MONTH) >= aditivo.getDataEmissao().get(Calendar.MONTH)) { | |
138 | + if ((ultimaDataEmissaoAditivoPosterior.get(Calendar.MONTH) == aditivo.getDataEmissao().get(Calendar.MONTH)) && | |
139 | + ultimaDataEmissaoAditivoPosterior.get(Calendar.DAY_OF_MONTH) < aditivo.getDataEmissao().get(Calendar.DAY_OF_MONTH)) { | |
140 | + errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES_POSTERIOR"); | |
141 | + } | |
142 | + } | |
143 | + } else { | |
144 | + errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES_POSTERIOR"); | |
145 | + } | |
146 | + } | |
128 | 147 | } |
129 | - | |
148 | + | |
130 | 149 | ValidationUtils.rejectIfEmpty(errors, "dataInicio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_INICIO_ADITIVO"); |
131 | 150 | ValidationUtils.rejectIfEmpty(errors, "dataFim", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_FINAL_ADITIVO"); |
132 | - | |
151 | + | |
133 | 152 | if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && dataFinal.compareTo(aditivo.getDataInicio()) >= 0){ |
134 | 153 | errors.rejectValue("dataInicio", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_INICIO_ADITIVO_MAIOR_DATA_FINAL"); |
135 | 154 | } |
136 | - | |
155 | + | |
137 | 156 | if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && UtilObjeto.isReferencia(aditivo.getDataFim()) && aditivo.getDataInicio().compareTo(aditivo.getDataFim()) >= 0) { |
138 | 157 | errors.rejectValue("dataInicio", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_INICIO_ADITIVO_MAIOR_DATA_FIM_ADITIVO"); |
139 | 158 | } |
140 | 159 | } |
141 | - | |
160 | + | |
142 | 161 | if (aditivo.getAditivoDeValor()) { |
143 | 162 | ValidationUtils.rejectIfEmpty(errors, "tipoAlteracaoValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO"); |
144 | 163 | ValidationUtils.rejectIfEmpty(errors, "tipoObjeto", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_OBJETO"); |
145 | 164 | ValidationUtils.rejectIfEmpty(errors, "valorAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.VALOR_ADITIVO"); |
146 | 165 | ValidationUtils.rejectIfEmpty(errors, "percentualAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.PERCENTUAL_ADITIVO"); |
147 | - | |
166 | + | |
148 | 167 | Calendar dataInicioPrazo = null; |
149 | 168 | Calendar dataFimPrazo = null; |
150 | - | |
169 | + | |
151 | 170 | if (UtilObjeto.isReferencia(aditivo.getContrato())) { |
152 | 171 | if (dataDentroPrazo(aditivo.getDataEmissao(), aditivo.getContrato().getDataVigenciaInicial(), aditivo.getContrato().getDataVigenciaFinal())) { |
153 | 172 | dataInicioPrazo = aditivo.getContrato().getDataVigenciaInicial(); |
... | ... | @@ -164,16 +183,16 @@ public class EventoAditivoValidator implements Validator{ |
164 | 183 | } |
165 | 184 | } |
166 | 185 | } |
167 | - | |
186 | + | |
168 | 187 | if (UtilObjeto.isReferencia(dataInicioPrazo) && UtilObjeto.isReferencia(dataFimPrazo)) { |
169 | 188 | BigDecimal percentualTotalAditivo = BigDecimal.ZERO; |
170 | - | |
189 | + | |
171 | 190 | if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_ACRESCIMO)) { |
172 | 191 | percentualTotalAditivo = percentualTotalAditivo.add(aditivo.getPercentualAditivo()); |
173 | 192 | } else if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_SUPRESSAO)) { |
174 | 193 | percentualTotalAditivo = percentualTotalAditivo.subtract(aditivo.getPercentualAditivo()); |
175 | 194 | } |
176 | - | |
195 | + | |
177 | 196 | if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { |
178 | 197 | for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { |
179 | 198 | if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDeValor() && dataDentroPrazo(adContrato.getDataEmissao(), dataInicioPrazo, dataFimPrazo) && |
... | ... | @@ -186,7 +205,7 @@ public class EventoAditivoValidator implements Validator{ |
186 | 205 | } |
187 | 206 | } |
188 | 207 | } |
189 | - | |
208 | + | |
190 | 209 | if (aditivo.getTipoObjeto().getCodigo().equals(DominioContrato.CODIGO_TIPO_OBJETO_OBRAS_SERVICOS_COMPRAS)) { |
191 | 210 | if (percentualTotalAditivo.abs().compareTo(PERCENTAGEM_MAXIMA_OBRAS_SERVICOS_COMPRAS) > 0) { |
192 | 211 | errors.rejectValue("percentualAditivo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.PERCENTAGEM_MAIOR_OBRAS_SERVICOS_COMPRAS"); |
... | ... | @@ -196,22 +215,22 @@ public class EventoAditivoValidator implements Validator{ |
196 | 215 | errors.rejectValue("percentualAditivo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.PERCENTAGEM_MAIOR_REFORMA_IMOVEIS"); |
197 | 216 | } |
198 | 217 | } |
199 | - | |
218 | + | |
200 | 219 | } |
201 | 220 | } |
202 | - | |
221 | + | |
203 | 222 | if (aditivo.getAditivoDeClausula()) { |
204 | 223 | ValidationUtils.rejectIfEmpty(errors, "descricao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DESCRICAO_ADITIVO"); |
205 | 224 | } |
206 | - | |
225 | + | |
207 | 226 | ValidationUtils.rejectIfEmpty(errors, "justificativa", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.JUSTIFICATIVA_ADITIVO"); |
208 | 227 | } |
209 | - | |
228 | + | |
210 | 229 | /** |
211 | - * | |
230 | + * | |
212 | 231 | * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> |
213 | 232 | * |
214 | - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
233 | + * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p> | |
215 | 234 | * |
216 | 235 | * Método responsável por verificar se uma determinada data esta dentro de um determinado prazo definido |
217 | 236 | * | ... | ... |
cit-contratos-api/src/main/java/br/com/centralit/api/service/validation/EventoRecebimentoObjetoValidator.java
... | ... | @@ -37,7 +37,6 @@ public class EventoRecebimentoObjetoValidator implements Validator{ |
37 | 37 | |
38 | 38 | ValidationUtils.rejectIfEmpty(errors, "contrato", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.CONTRATO"); |
39 | 39 | ValidationUtils.rejectIfEmpty(errors, "tipoRecebimento", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_RECEBIMENTO"); |
40 | - ValidationUtils.rejectIfEmpty(errors, "nomeObjeto", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.NOME_OBJETO"); | |
41 | 40 | ValidationUtils.rejectIfEmpty(errors, "tipoStatus", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.STATUS"); |
42 | 41 | ValidationUtils.rejectIfEmpty(errors, "tipoAvaliacaoPrazo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.AVALIACAO_OBJETO"); |
43 | 42 | ValidationUtils.rejectIfEmpty(errors, "tipoAvaliacaoAdesao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.AVALIACAO_OBJETO"); | ... | ... |
cit-contratos-api/src/main/resources/script-bd/v1.0.0-alpha11/01-cit-contratos-1.0.0-ALFA-11-postgres.sql
... | ... | @@ -11,3 +11,20 @@ INSERT INTO menufile (id, datacriacao, dataedicao, version, ativo, caminho, domi |
11 | 11 | VALUES (NEXTVAL('hibernate_sequence'), LOCALTIMESTAMP, LOCALTIMESTAMP, 0, true, '/cit-contratos-web/assets/js/angular/custom/repository/EventoLiberacaoPagamentoEmpenhoRepository.min.js', |
12 | 12 | (SELECT id FROM dominio WHERE chave = 'tipoFile' AND codigo = 2), (SELECT id FROM menu WHERE chave = 'ACOMPANHAMENTO')); |
13 | 13 | -- LUÍS CÉSAR FIM 05/04/2016 |
14 | + | |
15 | +-- LUÍS CÉSAR INÍCIO 06/04/2016 | |
16 | +ALTER TABLE cnt_ev_recebimentoobjeto DROP COLUMN nomeobjeto; | |
17 | +TRUNCATE CASCADE MENU; | |
18 | +TRUNCATE PAGINA; | |
19 | +-- LUÍS CÉSRA FIM 06/04/2016 | |
20 | + | |
21 | +-- CIRO INICIO 07/04/2016 | |
22 | +ALTER TABLE cnt_en_justificativa DROP CONSTRAINT fk_fa7tb16mca69yyhv2uvi4qd63; | |
23 | +ALTER TABLE cnt_en_justificativa DROP COLUMN contrato_id; | |
24 | + | |
25 | +ALTER TABLE cnt_en_justificativa ADD COLUMN contratoenvolvido_id bigint; | |
26 | +ALTER TABLE cnt_en_justificativa ADD CONSTRAINT fk_qgt7nl7x7xlduo7mysfv2lkqi FOREIGN KEY (contratoenvolvido_id) | |
27 | +REFERENCES cnt_cn_envolvido (id) MATCH SIMPLE | |
28 | +ON UPDATE NO ACTION | |
29 | +ON DELETE NO ACTION; | |
30 | +-- CIRO FIM 07/04/2016 | ... | ... |
cit-contratos-web/src/main/java/br/com/centralit/controller/EventoAditivoController.java
... | ... | @@ -129,4 +129,17 @@ public class EventoAditivoController extends GenericController<EventoAditivo>{ |
129 | 129 | |
130 | 130 | } |
131 | 131 | |
132 | + | |
133 | + @RequestMapping(value = "/permiteExclusaoAditivo", method = RequestMethod.GET) | |
134 | + @ResponseBody | |
135 | + public Boolean permiteExclusaoAditivo(@RequestParam(value="aditivoId") Long idAditivo) { | |
136 | + return this.eventoAditivoService.permiteExclusaoAditivo(idAditivo); | |
137 | + } | |
138 | + | |
139 | + @RequestMapping(value = "/existeAditivoPrazoPosterior", method = RequestMethod.GET) | |
140 | + @ResponseBody | |
141 | + public Boolean existeAditivoPrazoPosterior(@RequestParam(value="aditivoId") Long idAditivo) { | |
142 | + return this.eventoAditivoService.existeAditivoPrazoPosterior(idAditivo); | |
143 | + } | |
144 | + | |
132 | 145 | } | ... | ... |
cit-contratos-web/src/main/java/br/com/centralit/listener/StartupListenerContratos.java
... | ... | @@ -981,10 +981,15 @@ public class StartupListenerContratos extends UtilStartup implements Application |
981 | 981 | internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.RELATORIO_PENALIDADE_APLICADA", "Relatório de penalidades aplicadas", dominio, modulo)); |
982 | 982 | |
983 | 983 | internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.RELATORIOS", "Relatórios do contrato", dominio, modulo)); |
984 | + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.ADICIONAR_JUSTIFICATIVA", "Adicionar Justificativa", dominio, modulo)); | |
984 | 985 | |
985 | 986 | internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.TERMO_REFERENCIA_PROJETO_BASICO", "Termo de referência/Projeto Básico", dominio, modulo)); |
986 | 987 | internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.CONTRATO_SEM_VINCULO_TERMO", "Contrato selecionado está sem vínculo a um termo de referência.", dominio, modulo)); |
987 | 988 | internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.ENCERRAMENTO_CONTRATO", "Encerramento de contrato", dominio, modulo)); |
989 | + | |
990 | + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.MSG.EXCLUSAO_ADITIVO_NEGADA", "Exclusão não permitida, o aditivo de prazo já está vigente ou há aditivos de prazo subsequentes a este.", dominio, modulo)); | |
991 | + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.MSG.DATA_EMISSAO_12_MESES_POSTERIOR", "Data de emissão não permitida, pois infere intervalo de 12 meses em relação ao aditivo subsequente.", dominio, modulo)); | |
992 | + internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.MSG.ADITIVO_DATA_EMISSAO_MAIOR_DATA_INICIO", "Data de emissão deve ser menor que a data de início do aditivo.", dominio, modulo)); | |
988 | 993 | } |
989 | 994 | |
990 | 995 | private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { | ... | ... |
cit-contratos-web/src/main/resources/reports/eventoRecebimentoObjeto.jrxml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | -<!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0 --> | |
3 | -<!-- 2016-04-01T17:16:34 --> | |
4 | 2 | <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="eventoRecebimentoObjeto" language="groovy" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="e04cf746-a11a-488e-9c73-7c7069a15371"> |
5 | 3 | <property name="com.jaspersoft.studio.data.sql.tables" value=""/> |
6 | 4 | <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Postgres citgrpdb"/> |
7 | 5 | <property name="ireport.zoom" value="1.7715610000000062"/> |
8 | 6 | <property name="ireport.x" value="0"/> |
9 | - <property name="ireport.y" value="0"/> | |
7 | + <property name="ireport.y" value="11"/> | |
10 | 8 | <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF"> |
11 | 9 | <box> |
12 | 10 | <pen lineWidth="0.5" lineColor="#000000"/> |
... | ... | @@ -39,6 +37,7 @@ |
39 | 37 | <![CDATA[select |
40 | 38 | contrato.numeroanocontrato as numeroAnoContrato, |
41 | 39 | contrato.numeroprocesso AS numeroProcesso, |
40 | +contrato.objetocontratacao, | |
42 | 41 | pesForn.nome AS contratada, |
43 | 42 | pesJForn.cnpj AS cnpjcontratado, |
44 | 43 | ro.sequencialano as numeroRecebimento, |
... | ... | @@ -47,7 +46,6 @@ ro.datarecebimento as dataRecebimento, |
47 | 46 | (SELECT dominio.descricao FROM dominio WHERE dominio.id = ro.tipostatus_id) AS tipoStatus, |
48 | 47 | (SELECT dominio.descricao FROM dominio WHERE dominio.id = ro.tipoavaliacaoprazo_id) AS tipoAvaliacaoPrazo, |
49 | 48 | (SELECT dominio.descricao FROM dominio WHERE dominio.id = ro.tipoavaliacaoadesao_id) AS tipoAvaliacaoAdesao, |
50 | -ro.nomeObjeto as nomeObjeto, | |
51 | 49 | ro.justificativa as justificativa, |
52 | 50 | pesGestor.nome AS gestor, |
53 | 51 | cGestor.matricula AS gestorMatricula, |
... | ... | @@ -76,6 +74,7 @@ where ro.id = $P{RECEBIMENTO_ID}]]> |
76 | 74 | </queryString> |
77 | 75 | <field name="numeroanocontrato" class="java.lang.String"/> |
78 | 76 | <field name="numeroprocesso" class="java.lang.Long"/> |
77 | + <field name="objetocontratacao" class="java.lang.String"/> | |
79 | 78 | <field name="contratada" class="java.lang.String"/> |
80 | 79 | <field name="cnpjcontratado" class="java.lang.String"/> |
81 | 80 | <field name="numerorecebimento" class="java.lang.String"/> |
... | ... | @@ -84,7 +83,6 @@ where ro.id = $P{RECEBIMENTO_ID}]]> |
84 | 83 | <field name="tipostatus" class="java.lang.String"/> |
85 | 84 | <field name="tipoavaliacaoprazo" class="java.lang.String"/> |
86 | 85 | <field name="tipoavaliacaoadesao" class="java.lang.String"/> |
87 | - <field name="nomeobjeto" class="java.lang.String"/> | |
88 | 86 | <field name="justificativa" class="java.lang.String"/> |
89 | 87 | <field name="gestor" class="java.lang.String"/> |
90 | 88 | <field name="gestormatricula" class="java.lang.String"/> |
... | ... | @@ -452,7 +450,7 @@ $F{cnpjcontratado}.substring(12, 14)]]></textFieldExpression> |
452 | 450 | <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> |
453 | 451 | </box> |
454 | 452 | <textElement verticalAlignment="Middle"/> |
455 | - <textFieldExpression><![CDATA[$F{nomeobjeto}]]></textFieldExpression> | |
453 | + <textFieldExpression><![CDATA[$F{objetocontratacao}]]></textFieldExpression> | |
456 | 454 | </textField> |
457 | 455 | <textField isStretchWithOverflow="true"> |
458 | 456 | <reportElement stretchType="RelativeToBandHeight" mode="Opaque" x="0" y="0" width="220" height="25" isPrintWhenDetailOverflows="true" backcolor="#CCCCCC" uuid="2a73e93e-b151-4d8a-be9d-32a7c4bb9c46"/> | ... | ... |
cit-contratos-web/src/main/resources/reports/relatorioEventoNaoConformidade.jrxml
... | ... | @@ -52,12 +52,12 @@ evNaoConformidade.respostacontratada as resposta |
52 | 52 | |
53 | 53 | from cnt_cn_evento as eventos |
54 | 54 | |
55 | -left join cnt_ev_registro_nc as evNaoConformidade on evNaoConformidade.id = eventos.id | |
56 | -left join cnt_tr_sancao as trSancao on trSancao.id = evNaoConformidade.tiponaoconformidade_id | |
57 | -left join dominio as tipoEvento on tipoEvento.id = eventos.tipoevento_id | |
55 | +inner join cnt_ev_registro_nc as evNaoConformidade on evNaoConformidade.id = eventos.id | |
56 | +inner join cnt_tr_sancao as trSancao on trSancao.id = evNaoConformidade.tiponaoconformidade_id | |
57 | +inner join dominio as tipoEvento on tipoEvento.id = eventos.tipoevento_id | |
58 | 58 | |
59 | 59 | where eventos.contrato_id = $P{contratoId} |
60 | -and tipoEvento.chave = 'tipoEventoContrato' and tipoEvento.codigo = '7' | |
60 | + | |
61 | 61 | $P!{DATA_INICIAL} |
62 | 62 | $P!{DATA_FINAL} |
63 | 63 | |
... | ... | @@ -90,9 +90,6 @@ left join cnt_contrato as contrato on contrato.id = eventos.contrato_id |
90 | 90 | left join dominio as tipoEvento on tipoEvento.id = eventos.tipoevento_id |
91 | 91 | |
92 | 92 | where eventos.contrato_id = $P{contratoId} |
93 | -and tipoEvento.chave = 'tipoEventoContrato' | |
94 | -and tipoEvento.codigo = '7' | |
95 | - | |
96 | 93 | group by contrato.id, tipoEvento.id, eventos.id |
97 | 94 | limit 1]]> |
98 | 95 | </queryString> |
... | ... | @@ -172,7 +169,7 @@ $P{dataFinal} != null ? "Até " + new SimpleDateFormat("dd/MM/yyyy").format($P{d |
172 | 169 | <text><![CDATA[1. Relatórios]]></text> |
173 | 170 | </staticText> |
174 | 171 | <componentElement> |
175 | - <reportElement x="15" y="40" width="534" height="30" uuid="687f8495-5035-426f-8cde-dfbd8bfae41d"> | |
172 | + <reportElement x="15" y="40" width="534" height="30" isPrintWhenDetailOverflows="true" uuid="687f8495-5035-426f-8cde-dfbd8bfae41d"> | |
176 | 173 | <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/> |
177 | 174 | </reportElement> |
178 | 175 | <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" whenNoDataType="AllSectionsNoDetail"> | ... | ... |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
... | ... | @@ -87,14 +87,13 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
87 | 87 | }; |
88 | 88 | // ###################### FIM: INICIALIZACAO DE VARIAVEIS ########################### |
89 | 89 | |
90 | - // Limpa formul�rio para novo cadastro | |
90 | + // Limpa formulario para novo cadastro | |
91 | 91 | $scope.resetForm = function() { |
92 | 92 | |
93 | 93 | $scope.contrato = { |
94 | 94 | ctrtEmpenhos : [], |
95 | 95 | ctrtItens : [], |
96 | 96 | ctrtEnvolvidos : [], |
97 | - justificativas : [], | |
98 | 97 | ctrtValoresPagamento : [], |
99 | 98 | dominioSituacaoAtual : {codigo : 1}, |
100 | 99 | valorTotalEmpenhado : 0.0, |
... | ... | @@ -243,83 +242,79 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
243 | 242 | $scope.contratoForm.anexosObservacoesContratoForm.$submitted = true; |
244 | 243 | |
245 | 244 | // verifica formulario valido |
246 | - if ($scope.contratoForm.$valid) { | |
247 | - | |
248 | - // data da celebracao nao pode ser maior que a data de vigencia inicial do contrato | |
249 | - if(!isPeriodoValido($scope.contrato.dataCelebracao, $scope.contrato.dataVigenciaInicial)){ | |
250 | - | |
251 | - $scope.showAlert('error', $translate.instant('VALIDACAO.DATA_CELEBRACAO_MAIOR_DATA_VIGENCIA_INICIAL')); | |
252 | - return; | |
253 | - } | |
254 | - | |
255 | - // data de vigencia inicial nao pode ser maior que a data de vigencia final do contrato | |
256 | - if(!isPeriodoValido($scope.contrato.dataVigenciaInicial, $scope.contrato.dataVigenciaFinal)){ | |
245 | + if ($scope.contratoForm.$invalid) { | |
246 | + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); | |
247 | + return; | |
248 | + } | |
257 | 249 | |
258 | - $scope.showAlert('error', $translate.instant('VALIDACAO.DATA_VIGENCIA_INICIAL_MAIOR_DATA_VIGENCIA_FINAL_CONTRATO')); | |
259 | - return; | |
260 | - } | |
250 | + if(!$scope.informacoesValidas()){ | |
251 | + return; | |
252 | + }; | |
261 | 253 | |
262 | - // data de vigencia inicial nao pode ser maior que a data de vigencia final do contrato | |
263 | - if($scope.contrato.ctrtEnvolvidos && $scope.contrato.ctrtEnvolvidos.length > 0 && $scope.contrato.ctrtEnvolvidos.length < 3){ | |
254 | + if ($scope.contrato.id && $scope.contrato.ctrtEnvolvidos){ | |
255 | + angular.forEach($scope.contrato.ctrtEnvolvidos, function(envolvido){ | |
256 | + if (envolvido.justificativas){ | |
257 | + angular.forEach(envolvido.justificativas, function(justificativa){ | |
258 | + delete justificativa.autor.permissoes; | |
259 | + delete justificativa.dataCriacao; | |
260 | + }); | |
261 | + } | |
262 | + }); | |
263 | + } | |
264 | 264 | |
265 | - $scope.showAlert('error', $translate.instant('VALIDACAO.CONTRATO_EXIGE_MINIMO_TRES_ENVOLVIDOS')); | |
265 | + if ($scope.contrato.ctrtValoresPagamento && $scope.contrato.ctrtValoresPagamento.length > 0){ | |
266 | + if (!validarContratoValoresPagamento()){ | |
266 | 267 | return; |
267 | 268 | } |
269 | + angular.forEach($scope.contrato.ctrtValoresPagamento, function(parcelaValorPagamento){ | |
270 | + if (parcelaValorPagamento.seguencia){ | |
271 | + delete parcelaValorPagamento.seguencia; | |
272 | + } | |
273 | + }); | |
274 | + } | |
268 | 275 | |
269 | - if($scope.contrato.id && $scope.hasAlteracaoEnvolvido){ | |
276 | + $scope.contratoTemp = { | |
277 | + documentos: [] | |
278 | + }; | |
270 | 279 | |
271 | - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); | |
272 | - return; | |
273 | - } else { | |
274 | - angular.forEach($scope.contrato.justificativas, function(justificativa){ | |
275 | - delete justificativa.autor; | |
276 | - delete justificativa.dataCriacao; | |
280 | + // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento | |
281 | + angular.forEach($scope.contrato.documentos, function(documento, key) { | |
282 | + if (documento.uploadsDocumento) { | |
283 | + $scope.contratoTemp.documentos.push({ | |
284 | + uploadsDocumento: clone(documento.uploadsDocumento), | |
285 | + numero: clone(documento.numero) | |
277 | 286 | }); |
287 | + // deleta esse atributo por causa de um erro de ciclo no json | |
288 | + delete documento.uploadsDocumento; | |
278 | 289 | } |
290 | + }); | |
279 | 291 | |
280 | - if ($scope.contrato.ctrtValoresPagamento && $scope.contrato.ctrtValoresPagamento.length > 0){ | |
281 | - | |
282 | - if (!validarContratoValoresPagamento()){ | |
283 | - | |
284 | - return; | |
285 | - | |
286 | - } else { | |
287 | - | |
288 | - angular.forEach($scope.contrato.ctrtValoresPagamento, function(parcelaValorPagamento){ | |
289 | - | |
290 | - if (parcelaValorPagamento.seguencia){ | |
291 | - | |
292 | - delete parcelaValorPagamento.seguencia; | |
293 | - } | |
294 | - }); | |
295 | - } | |
296 | - } | |
297 | - | |
298 | - $scope.contratoTemp = { | |
299 | - documentos: [] | |
300 | - }; | |
292 | + if ($scope.contrato.programaAcao && $scope.contrato.programaAcao.originalElement) { | |
293 | + $scope.contrato.programaAcao = $scope.contrato.programaAcao.originalElement; | |
294 | + } | |
295 | + verificarValorTotalEmpenhado(); | |
296 | + }; | |
301 | 297 | |
302 | - // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento | |
303 | - angular.forEach($scope.contrato.documentos, function(documento, key) { | |
304 | - if (documento.uploadsDocumento) { | |
305 | - $scope.contratoTemp.documentos.push({ | |
306 | - uploadsDocumento: clone(documento.uploadsDocumento), | |
307 | - numero: clone(documento.numero) | |
308 | - }); | |
309 | - // deleta esse atributo por causa de um erro de ciclo no json | |
310 | - delete documento.uploadsDocumento; | |
311 | - } | |
312 | - }); | |
298 | + $scope.informacoesValidas = function () { | |
313 | 299 | |
314 | - if ($scope.contrato.programaAcao && $scope.contrato.programaAcao.originalElement) { | |
315 | - $scope.contrato.programaAcao = $scope.contrato.programaAcao.originalElement; | |
316 | - } | |
300 | + // data da celebracao nao pode ser maior que a data de vigencia inicial do contrato | |
301 | + if(!isPeriodoValido($scope.contrato.dataCelebracao, $scope.contrato.dataVigenciaInicial)){ | |
302 | + $scope.showAlert('error', $translate.instant('VALIDACAO.DATA_CELEBRACAO_MAIOR_DATA_VIGENCIA_INICIAL')); | |
303 | + return false; | |
304 | + } | |
317 | 305 | |
318 | - verificarValorTotalEmpenhado(); | |
319 | - } else { | |
306 | + // data de vigencia inicial nao pode ser maior que a data de vigencia final do contrato | |
307 | + if(!isPeriodoValido($scope.contrato.dataVigenciaInicial, $scope.contrato.dataVigenciaFinal)){ | |
308 | + $scope.showAlert('error', $translate.instant('VALIDACAO.DATA_VIGENCIA_INICIAL_MAIOR_DATA_VIGENCIA_FINAL_CONTRATO')); | |
309 | + return false; | |
310 | + } | |
320 | 311 | |
321 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); | |
312 | + // data de vigencia inicial nao pode ser maior que a data de vigencia final do contrato | |
313 | + if($scope.contrato.ctrtEnvolvidos && $scope.contrato.ctrtEnvolvidos.length > 0 && $scope.contrato.ctrtEnvolvidos.length < 3){ | |
314 | + $scope.showAlert('error', $translate.instant('VALIDACAO.CONTRATO_EXIGE_MINIMO_TRES_ENVOLVIDOS')); | |
315 | + return false; | |
322 | 316 | } |
317 | + return true; | |
323 | 318 | }; |
324 | 319 | |
325 | 320 | function save() { |
... | ... | @@ -1369,10 +1364,8 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
1369 | 1364 | }); |
1370 | 1365 | |
1371 | 1366 | if (contratoEnvolvidosChecked.length > 1){ |
1372 | - | |
1373 | 1367 | $scope.acaoEmMassaEnvolvido = true; |
1374 | 1368 | } else { |
1375 | - | |
1376 | 1369 | $scope.acaoEmMassaEnvolvido = false; |
1377 | 1370 | } |
1378 | 1371 | }; |
... | ... | @@ -1380,79 +1373,77 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
1380 | 1373 | // responsavel por abrir modal de adicao de um contratoEnvolvido |
1381 | 1374 | $scope.openModalContratoEnvolvido = function() { |
1382 | 1375 | |
1383 | - filtrarPapeisSelecionados(); | |
1384 | - | |
1385 | - $scope.contratoEnvolvidoTemp = {}; | |
1386 | 1376 | $scope.editEnvolvido = true; |
1387 | - $scope.$openModal('modal-envolvido.html', 'lg'); | |
1377 | + $scope.contratoEnvolvidoTemp = {justificativas : []}; | |
1378 | + $scope.contrato.ctrtEnvolvidos.forEach(function(item){ | |
1379 | + if(item.$checked){ | |
1380 | + item.$checked = false; | |
1381 | + } | |
1382 | + }); | |
1383 | + filtrarPapeisSelecionados(); | |
1384 | + $scope.$openModal('dialog_envolvido.html', 'lg'); | |
1388 | 1385 | }; |
1389 | 1386 | |
1390 | - // responsavel por abrir modal de adicao de uma justificativa | |
1391 | - $scope.openModalJustificativa = function() { | |
1392 | - | |
1393 | - $scope.justificativaTemp = {}; | |
1394 | - $scope.editEnvolvido = true; | |
1395 | - $scope.$openModal('modal-justificativa.html', 'lg'); | |
1387 | + $scope.closeModalContratoEvolvido = function(formDialogEnvolvido) { | |
1388 | + $scope.hasAlteracaoEnvolvido = false; | |
1389 | + formDialogEnvolvido.$submitted = false; | |
1390 | + $scope.$modalInstance.dismiss('cancel'); | |
1396 | 1391 | }; |
1397 | 1392 | |
1398 | 1393 | $scope.adicionarContratoEnvolvido = function (formDialogEnvolvido, continuarEditando) { |
1399 | 1394 | |
1400 | 1395 | formDialogEnvolvido.$submitted = true; |
1396 | + if($scope.contrato.id && $scope.hasAlteracaoEnvolvido){ | |
1397 | + if($scope.contratoEnvolvidoTemp.justificativas.length === 0 || | |
1398 | + $scope.contratoEnvolvidoTemp.justificativas.length === $scope.contratoEnvolvidoTemp.justificativasAnterioresLength){ | |
1399 | + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); | |
1400 | + return; | |
1401 | + } | |
1402 | + } | |
1401 | 1403 | |
1402 | - if (formDialogEnvolvido.$valid) { | |
1403 | - if ($scope.contrato.ctrtEnvolvidos){ | |
1404 | - if ($scope.contratoEnvolvidoTemp.$checked) { | |
1405 | - for (var i = 0; i < $scope.contrato.ctrtEnvolvidos.length; i++) { | |
1406 | - if ($scope.contrato.ctrtEnvolvidos[i].$checked) { | |
1407 | - $scope.contrato.ctrtEnvolvidos[i] = $scope.contratoEnvolvidoTemp; | |
1408 | - } | |
1404 | + if (formDialogEnvolvido.$invalid) { | |
1405 | + //Mensagem de erro de campos obrigatorios nao preenchidos | |
1406 | + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | |
1407 | + return; | |
1408 | + } | |
1409 | + if ($scope.contrato.ctrtEnvolvidos){ | |
1410 | + if ($scope.contratoEnvolvidoTemp.$checked) { | |
1411 | + for (var i = 0; i < $scope.contrato.ctrtEnvolvidos.length; i++) { | |
1412 | + if ($scope.contrato.ctrtEnvolvidos[i].$checked) { | |
1413 | + $scope.contrato.ctrtEnvolvidos[i] = $scope.contratoEnvolvidoTemp; | |
1409 | 1414 | } |
1410 | - } else { | |
1411 | - $scope.contrato.ctrtEnvolvidos.push($scope.contratoEnvolvidoTemp); | |
1412 | 1415 | } |
1413 | - } | |
1414 | - | |
1415 | - $scope.contratoEnvolvidoTemp = {}; | |
1416 | - if (continuarEditando) { | |
1417 | - formDialogEnvolvido.$submitted = false; | |
1418 | - formDialogEnvolvido.$setPristine(); | |
1419 | - filtrarPapeisSelecionados(); | |
1420 | 1416 | } else { |
1421 | - $scope.$modalInstance.dismiss('cancel'); | |
1417 | + $scope.contrato.ctrtEnvolvidos.push($scope.contratoEnvolvidoTemp); | |
1422 | 1418 | } |
1419 | + } | |
1423 | 1420 | |
1424 | - if ($scope.contrato.id){ | |
1425 | - $scope.hasAlteracaoEnvolvido = true; | |
1426 | - } | |
1421 | + $scope.contratoEnvolvidoTemp = {justificativas : []}; | |
1422 | + $scope.justificativaTemp = {}; | |
1423 | + $scope.hasAlteracaoEnvolvido = false; | |
1424 | + if (continuarEditando) { | |
1425 | + formDialogEnvolvido.$submitted = false; | |
1426 | + formDialogEnvolvido.$setPristine(); | |
1427 | + filtrarPapeisSelecionados(); | |
1427 | 1428 | } else { |
1428 | - //Mensagem de erro de campos obrigatorios n�o preenchidos | |
1429 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | |
1429 | + $scope.$modalInstance.dismiss('cancel'); | |
1430 | 1430 | } |
1431 | 1431 | }; |
1432 | 1432 | |
1433 | - $scope.adicionarJustificativa = function (formDialogJustificativa, continuarEditando) { | |
1433 | + $scope.adicionarJustificativa = function (form) { | |
1434 | 1434 | |
1435 | - formDialogJustificativa.$submitted = true; | |
1435 | + form.$submitted = true; | |
1436 | 1436 | |
1437 | - if (formDialogJustificativa.$valid) { | |
1438 | - if ($scope.contrato.justificativas){ | |
1439 | - $scope.justificativaTemp.autor = $scope.usuarioLogado; | |
1440 | - $scope.justificativaTemp.dataCriacao = new Date(); | |
1441 | - $scope.contrato.justificativas.push($scope.justificativaTemp); | |
1442 | - } | |
1443 | - | |
1444 | - $scope.justificativaTemp = {}; | |
1445 | - if (continuarEditando) { | |
1446 | - formDialogJustificativa.$submitted = false; | |
1447 | - formDialogJustificativa.$setPristine(); | |
1448 | - } else { | |
1449 | - $scope.$modalInstance.dismiss('cancel'); | |
1450 | - } | |
1451 | - $scope.hasAlteracaoEnvolvido = false; | |
1452 | - } else { | |
1453 | - //Mensagem de erro de campos obrigatorios n�o preenchidos | |
1454 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | |
1437 | + if ($scope.justificativaTemp.descricao === '' || $scope.justificativaTemp.descricao == undefined) { | |
1438 | + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); | |
1439 | + return; | |
1440 | + } | |
1441 | + if ($scope.contratoEnvolvidoTemp.justificativas){ | |
1442 | + $scope.justificativaTemp.autor = $scope.usuarioLogado; | |
1443 | + $scope.justificativaTemp.dataCriacao = new Date(); | |
1444 | + $scope.contratoEnvolvidoTemp.justificativas.push($scope.justificativaTemp); | |
1455 | 1445 | } |
1446 | + $scope.justificativaTemp = {}; | |
1456 | 1447 | }; |
1457 | 1448 | |
1458 | 1449 | function filtrarPapeisSelecionados() { |
... | ... | @@ -1460,16 +1451,18 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
1460 | 1451 | |
1461 | 1452 | var dominiosPapelEnvolvidoContrato = []; |
1462 | 1453 | $scope.contrato.ctrtEnvolvidos.forEach(function(item){ |
1463 | - | |
1464 | - dominiosPapelEnvolvidoContrato.push(item.dominioPapelEnvolvidoContrato); | |
1454 | + if(!item.$checked){ | |
1455 | + dominiosPapelEnvolvidoContrato.push(item.dominioPapelEnvolvidoContrato); | |
1456 | + } | |
1465 | 1457 | }); |
1466 | 1458 | |
1467 | 1459 | $scope.dominioPapelEnvolvidoList = $filter('idNotEqualDominio')($scope.dominioPapelEnvolvidoListFixa, dominiosPapelEnvolvidoContrato); |
1468 | 1460 | |
1469 | - if ($scope.dominioPapelEnvolvidoList && $scope.dominioPapelEnvolvidoList.length === 0){ | |
1470 | - | |
1471 | - $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.TODOS_PAPEIS_ENVOLVIDOS_ADICIONADOS')); | |
1472 | - return; | |
1461 | + if($scope.editEnvolvido){ | |
1462 | + if ($scope.dominioPapelEnvolvidoList && $scope.dominioPapelEnvolvidoList.length === 0){ | |
1463 | + $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.TODOS_PAPEIS_ENVOLVIDOS_ADICIONADOS')); | |
1464 | + return; | |
1465 | + } | |
1473 | 1466 | } |
1474 | 1467 | } |
1475 | 1468 | }; |
... | ... | @@ -1519,10 +1512,6 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
1519 | 1512 | } |
1520 | 1513 | |
1521 | 1514 | $scope.dominioPapelEnvolvidoList.push(papelExcluido); |
1522 | - | |
1523 | - if ($scope.contrato.id) { | |
1524 | - $scope.hasAlteracaoEnvolvido = true; | |
1525 | - } | |
1526 | 1515 | } |
1527 | 1516 | }); |
1528 | 1517 | }; |
... | ... | @@ -1558,25 +1547,29 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C |
1558 | 1547 | }; |
1559 | 1548 | |
1560 | 1549 | // Responsavel por abrir modal de envolvido para edicao ou visualizacao do item selecionado |
1561 | - $scope.abrirContratoEnvolvido = function(edit) { | |
1562 | - | |
1563 | - filtrarPapeisSelecionados(); | |
1550 | + $scope.visualizarEditarContratoEnvolvido = function(edit) { | |
1564 | 1551 | |
1565 | 1552 | $scope.editEnvolvido = edit; |
1566 | - | |
1567 | 1553 | $scope.contratoEnvolvidoTemp = null; |
1568 | - | |
1569 | 1554 | // recupera o item de contrato selecionado |
1570 | 1555 | $scope.contratoEnvolvidoTemp = $scope.getCheckedContratoEnvolvido(); |
1571 | - | |
1572 | 1556 | if(!$scope.contratoEnvolvidoTemp) { |
1573 | - | |
1574 | 1557 | $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); |
1575 | 1558 | return; |
1576 | 1559 | } |
1577 | - | |
1560 | + $scope.justificativaTemp = {}; | |
1561 | + if($scope.contratoEnvolvidoTemp.justificativas){ | |
1562 | + $scope.contratoEnvolvidoTemp.justificativasAnterioresLength = $scope.contratoEnvolvidoTemp.justificativas.length; | |
1563 | + } else { | |
1564 | + $scope.contratoEnvolvidoTemp.justificativasAnterioresLength = 0; | |
1565 | + $scope.contratoEnvolvidoTemp.justificativas = []; | |
1566 | + } | |
1567 | + if($scope.contrato.id){ | |
1568 | + $scope.hasAlteracaoEnvolvido = edit; | |
1569 | + } | |
1570 | + filtrarPapeisSelecionados(); | |
1578 | 1571 | $timeout(function() { |
1579 | - $scope.$openModal('modal-envolvido.html', 'lg'); | |
1572 | + $scope.$openModal('dialog_envolvido.html', 'lg'); | |
1580 | 1573 | }); |
1581 | 1574 | }; |
1582 | 1575 | ... | ... |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EventoPenalidadeController.js
... | ... | @@ -49,23 +49,23 @@ citApp.controller('EventoPenalidadeController', ['$scope', '$filter', '$timeout' |
49 | 49 | RegistroOcorrenciaRepository.findAllOcorrenciasPorContrato($scope.contrato.id).then(function(result) { |
50 | 50 | $timeout(function (){ |
51 | 51 | $scope.listaOcorrenciasFixa = result; |
52 | - | |
53 | - removerOcorrenciasExistentes(); | |
54 | - | |
55 | 52 | $scope.listaOcorrencias = angular.copy($scope.listaOcorrenciasFixa); |
53 | + | |
54 | + removerOcorrenciasExistentes(); | |
55 | + | |
56 | 56 | }); |
57 | 57 | }); |
58 | 58 | |
59 | 59 | function removerOcorrenciasExistentes() { |
60 | 60 | for(var i = $scope.eventoPenalidade.ocorrencias.length - 1; i >= 0; i--) { |
61 | - for (var j = $scope.listaOcorrenciasFixa.length -1; j >= 0; j--) { | |
62 | - if ($scope.listaOcorrenciasFixa[j].id === $scope.eventoPenalidade.ocorrencias[i].registroOcorrencia.id) { | |
63 | - $scope.listaOcorrenciasFixa.splice(j, 1); | |
61 | + for (var j = $scope.listaOcorrencias.length -1; j >= 0; j--) { | |
62 | + if ($scope.listaOcorrencias[j].id === $scope.eventoPenalidade.ocorrencias[i].registroOcorrencia.id) { | |
63 | + $scope.listaOcorrencias.splice(j, 1); | |
64 | 64 | } |
65 | 65 | } |
66 | 66 | } |
67 | 67 | }; |
68 | - | |
68 | + | |
69 | 69 | $scope.addRegistroOcorrencia = function(){ |
70 | 70 | |
71 | 71 | if($scope.eventoPenalidade.registroOcorrencia){ | ... | ... |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EventoRecebimentoObjetoController.js
... | ... | @@ -20,171 +20,169 @@ citApp.controller('EventoRecebimentoObjetoController', ['$scope', |
20 | 20 | FileUploader) { |
21 | 21 | |
22 | 22 | |
23 | - $scope.getRecebimentoObjeto = function(){ | |
24 | - var idRecebimentoObjeto = $scope.evento.id; | |
25 | - $scope.setLoadingGet(true); | |
26 | - EventoRecebimentoObjetoRepository.get(idRecebimentoObjeto).then(function(result) { | |
27 | - $scope.recebimentoObjeto = result.originalElement; | |
28 | - if($scope.contratoTemp == undefined){ | |
29 | - $scope.contratoTemp= angular.copy($scope.recebimentoObjeto.contrato); | |
30 | - } | |
31 | - $scope.setLoading(false); | |
32 | - }); | |
33 | - }; | |
34 | - | |
35 | - $scope.resetForm = function(form) { | |
36 | - | |
37 | - if($scope.contratoTemp == undefined){ | |
38 | - $scope.contratoTemp= angular.copy($scope.contrato); | |
39 | - } | |
40 | - if($scope.evento){ | |
41 | - $scope.recebimentoObjeto.dataRecebimento = null; | |
42 | - $scope.recebimentoObjeto.nomeObjeto = ""; | |
43 | - $scope.recebimentoObjeto.justificativa = ""; | |
44 | - } else { | |
45 | - $scope.recebimentoObjeto = { | |
46 | - contrato: $scope.contratoTemp, | |
47 | - dataRecebimento : $filter('date')(new Date(), "dd/MM/yyyy"), | |
48 | - tipoStatus : null, | |
49 | - tipoRecebimento : null, | |
50 | - tipoAvaliacaoPrazo : null, | |
51 | - tipoAvaliacaoAdesao : null, | |
52 | - nomeObjeto : "", | |
53 | - justificativa : "" | |
54 | - }; | |
55 | - } | |
56 | - if(form != undefined){ | |
57 | - $timeout(function(){ | |
58 | - form.$submitted = true; | |
59 | - form.$setPristine(); | |
60 | - }); | |
61 | - }; | |
62 | - }; | |
63 | - | |
64 | - $scope.carregarDominios = function(){ | |
65 | - DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjeto').then(function(result) { | |
66 | - angular.forEach(result, function(item, key){ | |
67 | - switch (item.codigo){ | |
68 | - case 1 : | |
69 | - $scope.dominiosRecebimentoObjeto.tiposRecebimentos.push(item.originalElement); | |
70 | - break; | |
71 | - case 2 : | |
72 | - $scope.dominiosRecebimentoObjeto.tiposRecebimentos.push(item.originalElement); | |
73 | - break; | |
74 | - case 3 : | |
75 | - $scope.dominiosRecebimentoObjeto.tiposStatus.push(item.originalElement); | |
76 | - break; | |
77 | - case 4 : | |
78 | - $scope.dominiosRecebimentoObjeto.tiposStatus.push(item.originalElement); | |
79 | - break; | |
80 | - } | |
81 | - }); | |
82 | - }); | |
83 | - | |
84 | - DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjetoAvaliacaoPrazo').then(function(result) { | |
85 | - angular.forEach(result, function(item, key){ | |
86 | - $scope.dominiosRecebimentoObjeto.tiposAvaliacaoPrazo.push(item.originalElement); | |
87 | - }); | |
88 | - }); | |
89 | - DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjetoAvaliacaoAdesao').then(function(result) { | |
90 | - angular.forEach(result, function(item, key){ | |
91 | - $scope.dominiosRecebimentoObjeto.tiposAvaliacaoAdesao.push(item.originalElement); | |
92 | - }); | |
93 | - }); | |
94 | - }; | |
95 | - | |
96 | - $scope.uploader = new FileUploader({ | |
97 | - autoUpload: false, | |
98 | - queueLimit: 1, | |
99 | - url : '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' | |
100 | - }); | |
101 | - | |
102 | - $scope.salvarEvento = function(form){ | |
103 | - | |
104 | - form.$submitted = true; | |
105 | - if(form && !form.$invalid) { | |
106 | - if ($scope.isInformacoesValidas()){ | |
107 | - $scope.setLoadingSalva(true); | |
108 | - | |
109 | - if($scope.recebimentoObjetoTemp == null){ | |
110 | - $scope.recebimentoObjetoTemp = { | |
111 | - documentos : [] | |
112 | - }; | |
113 | - angular.forEach($scope.recebimentoObjeto.documentos, function(documento, key) { | |
114 | - $scope.recebimentoObjetoTemp.documentos.push({ | |
115 | - uploadsDocumento : clone(documento.uploadsDocumento), | |
116 | - numero : clone(documento.numero) | |
117 | - }); | |
118 | - delete documento.uploadsDocumento; | |
119 | - }); | |
120 | - }; | |
121 | - | |
122 | - EventoRecebimentoObjetoRepository.save($scope.recebimentoObjeto).then(function(result) { | |
123 | - $scope.recebimentoObjeto = result.originalElement; | |
124 | - | |
125 | - angular.forEach($scope.recebimentoObjeto.documentos, function(documentoSalvo, key) { | |
126 | - if(documentoSalvo !== undefined && documentoSalvo.id !== undefined){ | |
127 | - angular.forEach($scope.recebimentoObjetoTemp.documentos, function(documentoTransient, key) { | |
128 | - if(documentoSalvo.numero === documentoTransient.numero){ | |
129 | - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); | |
130 | - } | |
131 | - }); | |
132 | - }; | |
133 | - }); | |
134 | - $scope.setLoading(false); | |
135 | - $scope.$modalInstance.dismiss('cancel'); | |
136 | - $scope.showAlert("success", $translate.instant("MSG.MG001")); | |
137 | - $scope.buscaOcorrencias($scope.contratoTemp); | |
138 | - }); | |
139 | - }; | |
140 | - } else { | |
141 | - $scope.showAlert('error', $translate.instant('MSG.MN001')); | |
142 | - } | |
143 | - }; | |
144 | - | |
145 | - $scope.isInformacoesValidas = function () { | |
146 | - | |
147 | - var valido = true; | |
148 | - | |
149 | - if(!isDataDentroPeriodo($scope.contratoTemp.dataVigenciaInicial, $scope.contratoTemp.dataUltimaVigenciaFinal, | |
150 | - $scope.recebimentoObjeto.dataRecebimento)){ | |
151 | - $scope.showAlert('warning', $translate.instant('MSG.DATA_RECEBIMENTO_INVALIDA')); | |
152 | - valido = false; | |
153 | - } | |
154 | - return valido; | |
155 | - }; | |
156 | - | |
157 | - var salvarUpload = function(documento, uploadsDocumento){ | |
158 | - if (uploadsDocumento != undefined && uploadsDocumento != null) { | |
159 | - $scope.uploader.queue = uploadsDocumento; | |
160 | - angular.forEach($scope.uploader.queue, function(item, key) { | |
161 | - item.url = item.url + documento.id; | |
162 | - }); | |
163 | - $scope.uploader.uploadAll(); | |
164 | - $scope.uploader.isUploading = false; | |
165 | - }; | |
166 | - }; | |
167 | - | |
168 | - $scope.gerarRelatorioRecebimentoObjeto = function(){ | |
169 | - $scope.url = '/cit-contratos-web/rest/eventoRecebimentoObjeto/pdfGerarRecebimentoObjeto?idRecebimentoObjeto=' + $scope.recebimentoObjeto.id; | |
170 | - $scope.visualizarRelatorio($scope.url, $translate.instant('LABEL.TITULO_DOCUMENTO_RECEBIMENTO')); | |
171 | - $scope.$modalInstance.dismiss('cancel'); | |
172 | - | |
173 | - }; | |
174 | - | |
175 | - (function init(){ | |
176 | - $scope.dominiosRecebimentoObjeto = { | |
177 | - tiposStatus: [], | |
178 | - tiposRecebimentos : [], | |
179 | - tiposAvaliacaoPrazo : [], | |
180 | - tiposAvaliacaoAdesao : [], | |
181 | - }; | |
182 | - $scope.carregarDominios(); | |
183 | - if($scope.evento){ | |
184 | - $scope.getRecebimentoObjeto(); | |
185 | - } else { | |
186 | - $scope.resetForm(); | |
187 | - } | |
188 | - })(); | |
23 | + $scope.getRecebimentoObjeto = function(){ | |
24 | + var idRecebimentoObjeto = $scope.evento.id; | |
25 | + $scope.setLoadingGet(true); | |
26 | + EventoRecebimentoObjetoRepository.get(idRecebimentoObjeto).then(function(result) { | |
27 | + $scope.recebimentoObjeto = result.originalElement; | |
28 | + if($scope.contratoTemp == undefined){ | |
29 | + $scope.contratoTemp= angular.copy($scope.recebimentoObjeto.contrato); | |
30 | + } | |
31 | + $scope.setLoading(false); | |
32 | + }); | |
33 | + }; | |
34 | + | |
35 | + $scope.resetForm = function(form) { | |
36 | + | |
37 | + if($scope.contratoTemp == undefined){ | |
38 | + $scope.contratoTemp= angular.copy($scope.contrato); | |
39 | + } | |
40 | + if($scope.evento){ | |
41 | + $scope.recebimentoObjeto.dataRecebimento = null; | |
42 | + $scope.recebimentoObjeto.justificativa = ""; | |
43 | + } else { | |
44 | + $scope.recebimentoObjeto = { | |
45 | + contrato: $scope.contratoTemp, | |
46 | + dataRecebimento : $filter('date')(new Date(), "dd/MM/yyyy"), | |
47 | + tipoStatus : null, | |
48 | + tipoRecebimento : null, | |
49 | + tipoAvaliacaoPrazo : null, | |
50 | + tipoAvaliacaoAdesao : null, | |
51 | + justificativa : "" | |
52 | + }; | |
53 | + } | |
54 | + if(form != undefined){ | |
55 | + $timeout(function(){ | |
56 | + form.$submitted = true; | |
57 | + form.$setPristine(); | |
58 | + }); | |
59 | + }; | |
60 | + }; | |
61 | + | |
62 | + $scope.carregarDominios = function(){ | |
63 | + DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjeto').then(function(result) { | |
64 | + angular.forEach(result, function(item, key){ | |
65 | + switch (item.codigo){ | |
66 | + case 1 : | |
67 | + $scope.dominiosRecebimentoObjeto.tiposRecebimentos.push(item.originalElement); | |
68 | + break; | |
69 | + case 2 : | |
70 | + $scope.dominiosRecebimentoObjeto.tiposRecebimentos.push(item.originalElement); | |
71 | + break; | |
72 | + case 3 : | |
73 | + $scope.dominiosRecebimentoObjeto.tiposStatus.push(item.originalElement); | |
74 | + break; | |
75 | + case 4 : | |
76 | + $scope.dominiosRecebimentoObjeto.tiposStatus.push(item.originalElement); | |
77 | + break; | |
78 | + } | |
79 | + }); | |
80 | + }); | |
81 | + | |
82 | + DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjetoAvaliacaoPrazo').then(function(result) { | |
83 | + angular.forEach(result, function(item, key){ | |
84 | + $scope.dominiosRecebimentoObjeto.tiposAvaliacaoPrazo.push(item.originalElement); | |
85 | + }); | |
86 | + }); | |
87 | + DominioRepository.findAllDominio('tipoEventoContratoRecebimentoObjetoAvaliacaoAdesao').then(function(result) { | |
88 | + angular.forEach(result, function(item, key){ | |
89 | + $scope.dominiosRecebimentoObjeto.tiposAvaliacaoAdesao.push(item.originalElement); | |
90 | + }); | |
91 | + }); | |
92 | + }; | |
93 | + | |
94 | + $scope.uploader = new FileUploader({ | |
95 | + autoUpload: false, | |
96 | + queueLimit: 1, | |
97 | + url : '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' | |
98 | + }); | |
99 | + | |
100 | + $scope.salvarEvento = function(form){ | |
101 | + | |
102 | + form.$submitted = true; | |
103 | + if(form && !form.$invalid) { | |
104 | + if ($scope.isInformacoesValidas()){ | |
105 | + $scope.setLoadingSalva(true); | |
106 | + | |
107 | + if($scope.recebimentoObjetoTemp == null){ | |
108 | + $scope.recebimentoObjetoTemp = { | |
109 | + documentos : [] | |
110 | + }; | |
111 | + angular.forEach($scope.recebimentoObjeto.documentos, function(documento, key) { | |
112 | + $scope.recebimentoObjetoTemp.documentos.push({ | |
113 | + uploadsDocumento : clone(documento.uploadsDocumento), | |
114 | + numero : clone(documento.numero) | |
115 | + }); | |
116 | + delete documento.uploadsDocumento; | |
117 | + }); | |
118 | + }; | |
119 | + | |
120 | + EventoRecebimentoObjetoRepository.save($scope.recebimentoObjeto).then(function(result) { | |
121 | + $scope.recebimentoObjeto = result.originalElement; | |
122 | + | |
123 | + angular.forEach($scope.recebimentoObjeto.documentos, function(documentoSalvo, key) { | |
124 | + if(documentoSalvo !== undefined && documentoSalvo.id !== undefined){ | |
125 | + angular.forEach($scope.recebimentoObjetoTemp.documentos, function(documentoTransient, key) { | |
126 | + if(documentoSalvo.numero === documentoTransient.numero){ | |
127 | + salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); | |
128 | + } | |
129 | + }); | |
130 | + }; | |
131 | + }); | |
132 | + $scope.setLoading(false); | |
133 | + $scope.$modalInstance.dismiss('cancel'); | |
134 | + $scope.showAlert("success", $translate.instant("MSG.MG001")); | |
135 | + $scope.buscaOcorrencias($scope.contratoTemp); | |
136 | + }); | |
137 | + }; | |
138 | + } else { | |
139 | + $scope.showAlert('error', $translate.instant('MSG.MN001')); | |
140 | + } | |
141 | + }; | |
142 | + | |
143 | + $scope.isInformacoesValidas = function () { | |
144 | + | |
145 | + var valido = true; | |
146 | + | |
147 | + if(!isDataDentroPeriodo($scope.contratoTemp.dataVigenciaInicial, $scope.contratoTemp.dataUltimaVigenciaFinal, | |
148 | + $scope.recebimentoObjeto.dataRecebimento)){ | |
149 | + $scope.showAlert('warning', $translate.instant('MSG.DATA_RECEBIMENTO_INVALIDA')); | |
150 | + valido = false; | |
151 | + } | |
152 | + return valido; | |
153 | + }; | |
154 | + | |
155 | + var salvarUpload = function(documento, uploadsDocumento){ | |
156 | + if (uploadsDocumento != undefined && uploadsDocumento != null) { | |
157 | + $scope.uploader.queue = uploadsDocumento; | |
158 | + angular.forEach($scope.uploader.queue, function(item, key) { | |
159 | + item.url = item.url + documento.id; | |
160 | + }); | |
161 | + $scope.uploader.uploadAll(); | |
162 | + $scope.uploader.isUploading = false; | |
163 | + }; | |
164 | + }; | |
165 | + | |
166 | + $scope.gerarRelatorioRecebimentoObjeto = function(){ | |
167 | + $scope.url = '/cit-contratos-web/rest/eventoRecebimentoObjeto/pdfGerarRecebimentoObjeto?idRecebimentoObjeto=' + $scope.recebimentoObjeto.id; | |
168 | + $scope.visualizarRelatorio($scope.url, $translate.instant('LABEL.TITULO_DOCUMENTO_RECEBIMENTO')); | |
169 | + $scope.$modalInstance.dismiss('cancel'); | |
170 | + | |
171 | + }; | |
172 | + | |
173 | + (function init(){ | |
174 | + $scope.dominiosRecebimentoObjeto = { | |
175 | + tiposStatus: [], | |
176 | + tiposRecebimentos : [], | |
177 | + tiposAvaliacaoPrazo : [], | |
178 | + tiposAvaliacaoAdesao : [], | |
179 | + }; | |
180 | + $scope.carregarDominios(); | |
181 | + if($scope.evento){ | |
182 | + $scope.getRecebimentoObjeto(); | |
183 | + } else { | |
184 | + $scope.resetForm(); | |
185 | + } | |
186 | + })(); | |
189 | 187 | |
190 | 188 | }]); | ... | ... |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/VisaoContratoController.js
... | ... | @@ -160,17 +160,27 @@ citApp.controller('VisaoContratoController', ['$scope', |
160 | 160 | }; |
161 | 161 | |
162 | 162 | $scope.editarModal = function (evento) { |
163 | - $scope.edit = true; | |
164 | - $scope.abreModal(evento.tipoEvento.nome); | |
163 | + $scope.edit = true; | |
164 | + | |
165 | + if($scope.evento.aditivoDePrazo){ | |
166 | + EventoAditivoRepository.existeAditivoPrazoPosterior($scope.evento.id).then(function (result) { | |
167 | + $scope.naoPermiteAlterarDataFim = result; | |
168 | + $scope.abreModal(evento.tipoEvento.nome); | |
169 | + }); | |
170 | + }else{ | |
171 | + $scope.abreModal(evento.tipoEvento.nome); | |
172 | + } | |
173 | + | |
165 | 174 | }; |
166 | 175 | |
167 | 176 | $scope.criarEvento = function () { |
168 | - $scope.evento = null; | |
169 | - $timeout(function () { | |
170 | - $scope.edit = true; | |
171 | - $scope.abreModal($scope.contrato.contratoEvento.tipoEventoId); | |
172 | - delete $scope.contrato.contratoEvento; | |
173 | - }); | |
177 | + $scope.naoPermiteAlterarDataFim = false; | |
178 | + $scope.evento = null; | |
179 | + $timeout(function () { | |
180 | + $scope.edit = true; | |
181 | + $scope.abreModal($scope.contrato.contratoEvento.tipoEventoId); | |
182 | + delete $scope.contrato.contratoEvento; | |
183 | + }); | |
174 | 184 | }; |
175 | 185 | |
176 | 186 | var eventoClasses = { |
... | ... | @@ -519,8 +529,19 @@ citApp.controller('VisaoContratoController', ['$scope', |
519 | 529 | }; |
520 | 530 | |
521 | 531 | $scope.removerEvento = function(){ |
522 | - $scope.evento.justificativaExclusao = ''; | |
523 | - $scope.$openModal('modal-justificativa-exclusao.html', 'lg'); | |
532 | + if($scope.evento.aditivoDePrazo){ | |
533 | + EventoAditivoRepository.permiteExclusaoAditivo($scope.evento.id).then(function (result) { | |
534 | + if(result){ | |
535 | + $scope.evento.justificativaExclusao = ''; | |
536 | + $scope.$openModal('modal-justificativa-exclusao.html', 'lg'); | |
537 | + }else{ | |
538 | + $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.EXCLUSAO_ADITIVO_NEGADA')); | |
539 | + } | |
540 | + }); | |
541 | + }else{ | |
542 | + $scope.evento.justificativaExclusao = ''; | |
543 | + $scope.$openModal('modal-justificativa-exclusao.html', 'lg'); | |
544 | + } | |
524 | 545 | }; |
525 | 546 | |
526 | 547 | $scope.salvarJustificativaExclusao = function(form){ | ... | ... |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/repository/EventoAditivoRepository.js
... | ... | @@ -4,10 +4,18 @@ citApp.factory('EventoAditivoRepository', ['RestangularContratos', 'AbstractRepo |
4 | 4 | |
5 | 5 | function EventoAditivoRepository() { |
6 | 6 | AbstractRepository.call(this, restangularContratos, 'rest/eventoAditivo'); |
7 | - | |
7 | + | |
8 | 8 | this.findAllByContrato = function(contratoId) { |
9 | 9 | return restangularContratos.all(this.route+'/findAllByContrato').post(contratoId); |
10 | - }; | |
10 | + }; | |
11 | + | |
12 | + this.permiteExclusaoAditivo = function(aditivoId) { | |
13 | + return restangularContratos.one(this.route + "/permiteExclusaoAditivo").get({"aditivoId": aditivoId}).then(); | |
14 | + }; | |
15 | + this.existeAditivoPrazoPosterior = function(aditivoId) { | |
16 | + return restangularContratos.one(this.route + "/existeAditivoPrazoPosterior").get({"aditivoId": aditivoId}).then(); | |
17 | + }; | |
18 | + | |
11 | 19 | } |
12 | 20 | |
13 | 21 | AbstractRepository.extend(EventoAditivoRepository); | ... | ... |
cit-contratos-web/src/main/webapp/html/contrato/contratoPg5.html
... | ... | @@ -9,11 +9,11 @@ |
9 | 9 | tooltip="{{$translate.instant('VALIDACAO.CONTRATO_EXIGE_MINIMO_TRES_ENVOLVIDOS')}}" tooltip-placement='top'/> |
10 | 10 | </label> |
11 | 11 | </legend> |
12 | - | |
13 | - <script type="text/ng-template" id="modal-envolvido.html"> | |
12 | + | |
13 | + <script type="text/ng-template" id="dialog_envolvido.html"> | |
14 | 14 | <div ng-include src="'/cit-contratos-web/html/contrato/dialog_envolvido.html'" /> |
15 | 15 | </script> |
16 | - | |
16 | + | |
17 | 17 | <div class="row margin-top"> |
18 | 18 | <div class="col-sm-12"> |
19 | 19 | <div class="panel panel-default"> |
... | ... | @@ -23,15 +23,15 @@ |
23 | 23 | <i class="fa fa-plus-circle yellow-dark"></i> |
24 | 24 | <translate>LABEL.ADICIONAR</translate> |
25 | 25 | </button> |
26 | - | |
26 | + | |
27 | 27 | <button title="{{$translate.instant('LABEL.VISUALIZAR')}}" alt="{{$translate.instant('LABEL.VISUALIZAR')}}" class="btn btn-clear" type="button" |
28 | - ng-click="abrirContratoEnvolvido(false);" ng-disabled="acaoEmMassaEnvolvido"> | |
28 | + ng-click="visualizarEditarContratoEnvolvido(false);" ng-if="!acaoEmMassaEnvolvido"> | |
29 | 29 | <i class="fa fa-search blue"></i> |
30 | 30 | <translate>LABEL.VISUALIZAR</translate> |
31 | 31 | </button> |
32 | - | |
32 | + | |
33 | 33 | <button title="{{$translate.instant('LABEL.EDITAR')}}" alt="{{$translate.instant('LABEL.EDITAR')}}" ng-show="edit" class="btn btn-clear" type="button" |
34 | - ng-click="abrirContratoEnvolvido(true);" ng-if="!acaoEmMassaEnvolvido"> | |
34 | + ng-click="visualizarEditarContratoEnvolvido(true);" ng-if="!acaoEmMassaEnvolvido"> | |
35 | 35 | <i class="fa fa-pencil blue"></i> |
36 | 36 | <translate>LABEL.EDITAR</translate> |
37 | 37 | </button> |
... | ... | @@ -65,55 +65,5 @@ |
65 | 65 | </div><!-- .col --> |
66 | 66 | </div> <!-- .row --> |
67 | 67 | </fieldset><!-- .fieldset --> |
68 | - | |
69 | - <fieldset ng-if="(contrato.id && hasAlteracaoEnvolvido) || (contrato.id && contrato.justificativas.length > 0)"> | |
70 | - <legend> | |
71 | - <label ng-class="{'has-error' : informacoesEnvolvidosContratoForm.$submitted && hasAlteracaoEnvolvido && (!contrato.justificativas || contrato.justificativas.length < 1)}"> | |
72 | - <translate>LABEL.JUSTIFICATIVAS</translate> | |
73 | - <span class='red' ng-show="true">*</span> | |
74 | - <i ng-show="informacoesEnvolvidosContratoForm.$submitted && hasAlteracaoEnvolvido && (!contrato.justificativas || contrato.justificativas.length < 1)" class='fa fa-warning red' | |
75 | - tooltip="{{$translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')}}" tooltip-placement='top'/> | |
76 | - </label> | |
77 | - </legend> | |
78 | - | |
79 | - <script type="text/ng-template" id="modal-justificativa.html"> | |
80 | - <div ng-include src="'/cit-contratos-web/html/contrato/dialog_justificativa.html'" /> | |
81 | - </script> | |
82 | - | |
83 | - <div class="row margin-top"> | |
84 | - <div class="col-sm-12"> | |
85 | - <div class="panel panel-default"> | |
86 | - <div class="panel-heading clearfix"> | |
87 | - <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" class="btn btn-clear" type="button" ng-show="true" | |
88 | - ng-click="openModalJustificativa();"> | |
89 | - <i class="fa fa-plus-circle yellow-dark"></i> | |
90 | - <translate>LABEL.ADICIONAR</translate> | |
91 | - </button> | |
92 | - </div><!-- .panel-heading --> | |
93 | - <table class="table table-bordered table-striped"> | |
94 | - <thead> | |
95 | - <tr> | |
96 | - <th style="width: 5%;" class="text-center">#</th> | |
97 | - <th style="width: 15%;" class="text-center"><translate>LABEL.DATA</translate></th> | |
98 | - <th style="width: 65%;" class="text-center"><translate>LABEL.JUSTIFICATIVA</translate></th> | |
99 | - <th style="width: 15%;" class="text-center"><translate>LABEL.USUARIO</translate></th> | |
100 | - </tr> | |
101 | - </thead> | |
102 | - <tbody> | |
103 | - <tr ng-hide="(contrato.justificativas && contrato.justificativas.length != 0)"> | |
104 | - <td colspan="4" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td> | |
105 | - </tr> | |
106 | - <tr ng-repeat="justificativa in contrato.justificativas"> | |
107 | - <td class="text-center">{{$index +1}}</td> | |
108 | - <td class="text-center">{{ justificativa.dataCriacao | date : 'dd/MM/yyyy' }}</td> | |
109 | - <td class="text-justify">{{ justificativa.descricao }}</td> | |
110 | - <td class="text-center">{{ justificativa.autor.username }}</td> | |
111 | - </tr> | |
112 | - </tbody> | |
113 | - </table> | |
114 | - </div><!-- .painel --> | |
115 | - </div><!-- .col --> | |
116 | - </div> <!-- .row --> | |
117 | - </fieldset><!-- .fieldset --> | |
118 | 68 | </div><!-- /.page-content --> |
119 | 69 | </ng-form> |
120 | 70 | \ No newline at end of file | ... | ... |
cit-contratos-web/src/main/webapp/html/contrato/dialog_envolvido.html
1 | 1 | <ng-form name="formDialogEnvolvido" autocomplete="off"> |
2 | 2 | <div class="modal-header"> |
3 | - <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" | |
4 | - ng-click="adicionarContratoEnvolvido(formDialogEnvolvido, false)" ng-if="editEnvolvido" class="btn btn-clear" type="button"> | |
5 | - <i class="fa fa-save green"></i> | |
6 | - <translate>LABEL.ADICIONAR</translate> | |
7 | - </button> | |
8 | - <button title="{{$translate.instant('LABEL.ADICIONAR_NOVO')}}" alt="{{$translate.instant('LABEL.ADICIONAR_NOVO')}}" | |
9 | - ng-click="adicionarContratoEnvolvido(formDialogEnvolvido, true)" ng-if="editEnvolvido" class="btn btn-clear" type="button"> | |
10 | - <i class="fa fa-save green"></i> | |
11 | - <translate>LABEL.ADICIONAR_CONTINUAR</translate> | |
12 | - </button> | |
13 | - | |
14 | - <button title="{{$translate.instant('LABEL.FECHAR')}}" alt="{{$translate.instant('LABEL.FECHAR')}}" | |
15 | - ng-click="$dismiss('cancel');" class="btn btn-clear" type="button"> | |
16 | - <i class="fa fa-times red"></i> | |
17 | - <translate>LABEL.FECHAR</translate> | |
18 | - </button> | |
3 | + <button title="{{$translate.instant('LABEL.ADICIONAR')}}" alt="{{$translate.instant('LABEL.ADICIONAR')}}" | |
4 | + ng-click="adicionarContratoEnvolvido(formDialogEnvolvido, false)" ng-if="editEnvolvido" class="btn btn-clear" type="button"> | |
5 | + <i class="fa fa-save green"></i> | |
6 | + <translate>LABEL.ADICIONAR</translate> | |
7 | + </button> | |
8 | + <button title="{{$translate.instant('LABEL.ADICIONAR_NOVO')}}" alt="{{$translate.instant('LABEL.ADICIONAR_NOVO')}}" | |
9 | + ng-click="adicionarContratoEnvolvido(formDialogEnvolvido, true)" ng-show="editEnvolvido && !hasAlteracaoEnvolvido" class="btn btn-clear" type="button"> | |
10 | + <i class="fa fa-save green"></i> | |
11 | + <translate>LABEL.ADICIONAR_CONTINUAR</translate> | |
12 | + </button> | |
13 | + | |
14 | + <button title="{{$translate.instant('LABEL.FECHAR')}}" alt="{{$translate.instant('LABEL.FECHAR')}}" | |
15 | + ng-click="closeModalContratoEvolvido(formDialogEnvolvido);" class="btn btn-clear" type="button"> | |
16 | + <i class="fa fa-times red"></i> | |
17 | + <translate>LABEL.FECHAR</translate> | |
18 | + </button> | |
19 | 19 | </div> |
20 | 20 | |
21 | 21 | <div class="modal-body"> |
22 | - <h2 class="title-modal"><translate>LABEL.ENVOLVIDO</translate></h2> | |
23 | - <p ng-show="editEnvolvido"> | |
24 | - <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small> | |
25 | - </p> | |
26 | - | |
22 | + <h2 class="title-modal"><translate>LABEL.ENVOLVIDO</translate></h2> | |
23 | + <p ng-show="editEnvolvido"> | |
24 | + <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small> | |
25 | + </p> | |
26 | + | |
27 | 27 | <fieldset> |
28 | 28 | <div class="row"> |
29 | - <div class="col-sm-4"> | |
30 | - <auto-complete ng-find="findEnvolvido(value)" ng-item="item.pessoa.nome" | |
31 | - ng-id="contratoEnvolvidoTemp.envolvido" ng-label="LABEL.NOME_ENVOLVIDO" ng-model="contratoEnvolvidoTemp.envolvido" | |
32 | - ng-disabled="!edit" form="formDialogEnvolvido" ng-obrigatorio="true"/> | |
29 | + <div class="col-sm-6"> | |
30 | + <auto-complete ng-find="findEnvolvido(value)" ng-item="item.pessoa.nome" ng-disabled="!editEnvolvido" | |
31 | + ng-id="contratoEnvolvidoTemp.envolvido" ng-label="LABEL.NOME_ENVOLVIDO" ng-model="contratoEnvolvidoTemp.envolvido" | |
32 | + ng-disabled="!edit" form="formDialogEnvolvido" ng-obrigatorio="true" /> | |
33 | 33 | </div> |
34 | - | |
35 | - <div class="col-sm-4"> | |
36 | - <label-input ng-type="text" ng-id="contratoEnvolvidoTemp.envolvido.matricula" ng-label="LABEL.MATRICULA" | |
37 | - ng-model="contratoEnvolvidoTemp.envolvido.matricula" ng-custom-maxlength="30" form="formDialogEnvolvido" | |
34 | + | |
35 | + <div class="col-sm-3"> | |
36 | + <label-input ng-type="text" ng-id="contratoEnvolvidoTemp.envolvido.matricula" ng-label="LABEL.MATRICULA" | |
37 | + ng-model="contratoEnvolvidoTemp.envolvido.matricula" ng-custom-maxlength="30" form="formDialogEnvolvido" | |
38 | 38 | ng-disabled="true" ng-obrigatorio="false"/> |
39 | 39 | </div><!-- .col-sm-4 --> |
40 | - | |
41 | - <div class="col-sm-4"> | |
42 | - <label-select ng-label="LABEL.PAPEL" ng-id="contratoEnvolvidoTemp.dominioPapelEnvolvidoContrato" | |
43 | - ng-model="contratoEnvolvidoTemp.dominioPapelEnvolvidoContrato" ng-list="dominioPapelEnvolvidoList" | |
44 | - form="formDialogEnvolvido" ng-obrigatorio="editEnvolvido" ng-disabled="!editEnvolvido" | |
40 | + | |
41 | + <div class="col-sm-3" > | |
42 | + <label-select ng-label="LABEL.PAPEL" ng-id="contratoEnvolvidoTemp.dominioPapelEnvolvidoContrato" | |
43 | + ng-model="contratoEnvolvidoTemp.dominioPapelEnvolvidoContrato" ng-list="dominioPapelEnvolvidoList" | |
44 | + form="formDialogEnvolvido" ng-obrigatorio="editEnvolvido && dominioPapelEnvolvidoList.length > 0" | |
45 | + ng-disabled="!editEnvolvido || dominioPapelEnvolvidoList.length == 0" | |
45 | 46 | ng-custom-options="dominioPapelEnvolvido.originalElement as dominioPapelEnvolvido.descricao for dominioPapelEnvolvido" |
46 | 47 | track-by="track by dominioPapelEnvolvido.id"/> |
47 | 48 | </div><!-- .col-sm-4 --> |
48 | 49 | </div><!-- .row --> |
50 | + </fieldset> | |
51 | + <fieldset ng-if="(contrato.id && hasAlteracaoEnvolvido) || (contrato.id && contratoEnvolvidoTemp.justificativas.length > 0)"> | |
52 | + <div class="row"> | |
53 | + <div class="col-sm-12"> | |
54 | + <h2 class="title-modal"><translate>LABEL.JUSTIFICATIVA</translate></h2> | |
55 | + <p ng-show="editEnvolvido"> | |
56 | + <small>( <span class="red">*</span> ) <translate>LABEL.CAMPOS_OBRIGATORIOS</translate></small> | |
57 | + </p> | |
58 | + </div> | |
59 | + </div> | |
60 | + <div class="row"> | |
61 | + <div class="col-sm-12"> | |
62 | + <label-text-area ng-id="justificativaTemp.descricao" ng-label="LABEL.JUSTIFICATIVA" ng-hide="!editEnvolvido" | |
63 | + form="formDialogJustificativa" rows="3" ng-custom-maxlength="500" | |
64 | + ng-model="justificativaTemp.descricao" ></label-text-area> | |
65 | + </div> | |
66 | + </div><!-- .row --> | |
67 | + <div class="row"> | |
68 | + <div class="col-sm-4"> | |
69 | + <button title="{{$translate.instant('CONTRATOS.LABEL.ADICIONAR_JUSTIFICATIVA')}}" alt="{{$translate.instant('CONTRATOS.LABEL.ADICIONAR_JUSTIFICATIVA')}}" | |
70 | + ng-click="adicionarJustificativa(formDialogEnvolvido)" ng-hide="!editEnvolvido" class="btn btn-success" type="button"> | |
71 | + <i class="fa fa-save white"></i> | |
72 | + <translate>CONTRATOS.LABEL.ADICIONAR_JUSTIFICATIVA</translate> | |
73 | + </button> | |
74 | + </div> | |
75 | + </div><!-- .row --> | |
76 | + </br> | |
77 | + <div class="row"> | |
78 | + <div class="col-sm-12"> | |
79 | + <table class="table table-bordered table-striped"> | |
80 | + <thead> | |
81 | + <tr> | |
82 | + <th style="width: 5%;" class="text-center">#</th> | |
83 | + <th style="width: 15%;" class="text-center"><translate>LABEL.DATA</translate></th> | |
84 | + <th style="width: 65%;" class="text-center"><translate>LABEL.JUSTIFICATIVA</translate></th> | |
85 | + <th style="width: 15%;" class="text-center"><translate>LABEL.USUARIO</translate></th> | |
86 | + </tr> | |
87 | + </thead> | |
88 | + <tbody> | |
89 | + <tr ng-hide="(contratoEnvolvidoTemp.justificativas && contratoEnvolvidoTemp.justificativas.length != 0)"> | |
90 | + <td colspan="4" class="text-center"><translate>LABEL.TABELA_VAZIA</translate></td> | |
91 | + </tr> | |
92 | + <tr ng-repeat="justificativa in contratoEnvolvidoTemp.justificativas"> | |
93 | + <td class="text-center">{{$index +1}}</td> | |
94 | + <td class="text-center">{{ justificativa.dataCriacao | date : 'dd/MM/yyyy' }}</td> | |
95 | + <td class="text-justify">{{ justificativa.descricao }}</td> | |
96 | + <td class="text-center">{{ justificativa.autor.username }}</td> | |
97 | + </tr> | |
98 | + </tbody> | |
99 | + </table> | |
100 | + </div><!-- .<!-- .col --> | |
101 | + </div><!-- .<!-- .row --> | |
49 | 102 | </fieldset><!-- .fieldset --> |
50 | 103 | </div><!-- .<!-- .modal-body --> |
51 | -</ng-form> | |
52 | 104 | \ No newline at end of file |
105 | +</ng-form> | ... | ... |
cit-contratos-web/src/main/webapp/html/eventos/cnt_ev_aditivo.html
... | ... | @@ -61,12 +61,12 @@ |
61 | 61 | </div> |
62 | 62 | <div class="col-sm-4"> |
63 | 63 | <label-input-data ng-id="aditivo.dataEmissao" ng-label="LABEL.DATA_EMISSAO_OCORRENCIA" ng-obrigatorio="true" ng-model="aditivo.dataEmissao" form="formDialogAditivo" |
64 | - ng-disabled="!edit || aditivo.id" ng-format="dd/MM/yyyy"> | |
64 | + ng-disabled="!edit || (aditivo.aditivoDeClausula && aditivo.id)" ng-format="dd/MM/yyyy"> | |
65 | 65 | </label-input-data> |
66 | 66 | </div> |
67 | 67 | <div class="col-sm-4"> |
68 | 68 | <label-select ng-label="LABEL.TIPO_ALTERACAO" ng-id="aditivo.tipoAlteracao" ng-model="aditivo.tipoAlteracao" form="formDialogAditivo" ng-list="tiposAlteracaoContrato" |
69 | - ng-custom-options="item.originalElement as item.descricao for item" track-by="track by item.id" ng-disabled="!edit || aditivo.id" ng-obrigatorio="true"> | |
69 | + ng-custom-options="item.originalElement as item.descricao for item" track-by="track by item.id" ng-disabled="!edit || (aditivo.aditivoDeClausula && aditivo.id)" ng-obrigatorio="true"> | |
70 | 70 | </label-select> |
71 | 71 | </div> |
72 | 72 | </div> |
... | ... | @@ -107,7 +107,7 @@ |
107 | 107 | ng-model="aditivo.dataInicio" form="formDialogAditivo" /> |
108 | 108 | </div> |
109 | 109 | <div class="col-sm-3"> |
110 | - <label-input-data ng-id="aditivo.dataFim" ng-label="CONTRATOS.LABEL.DATA_FINAL_ADITIVO" ng-obrigatorio="aditivo.aditivoDePrazo" ng-disabled="!edit" | |
110 | + <label-input-data ng-id="aditivo.dataFim" ng-label="CONTRATOS.LABEL.DATA_FINAL_ADITIVO" ng-obrigatorio="aditivo.aditivoDePrazo" ng-disabled="!edit || naoPermiteAlterarDataFim" | |
111 | 111 | ng-model="aditivo.dataFim" form="formDialogAditivo" /> |
112 | 112 | </div> |
113 | 113 | </div> |
... | ... | @@ -117,14 +117,14 @@ |
117 | 117 | <div class="row"> |
118 | 118 | <div class="col-sm-6"> |
119 | 119 | <label-input-radio ng-id="aditivo.tipoAlteracaoValor.codigo" ng-label="LABEL.TIPO_ALTERACAO" list="tiposAlteracaoValor" ng-model="aditivo.tipoAlteracaoValor.codigo" |
120 | - ng-obrigatorio="aditivo.aditivoDeValor" text="descricao" value="codigo" form="formDialogAditivo" ng-disabled="!edit || aditivo.id"> | |
120 | + ng-obrigatorio="aditivo.aditivoDeValor" text="descricao" value="codigo" form="formDialogAditivo" ng-disabled="!edit"> | |
121 | 121 | </label-input-radio> |
122 | 122 | </div> |
123 | 123 | </div> |
124 | 124 | <div class="row"> |
125 | 125 | <div class="col-sm-4"> |
126 | 126 | <label-select ng-label="CONTRATOS.LABEL.TIPO_OBJETO" ng-id="aditivo.tipoObjeto" ng-model="aditivo.tipoObjeto" form="formDialogAditivo" ng-list="tiposObjeto" |
127 | - ng-custom-options="item.originalElement as item.descricao for item" track-by="track by item.id" ng-disabled="!edit || aditivo.id" ng-obrigatorio="true"> | |
127 | + ng-custom-options="item.originalElement as item.descricao for item" track-by="track by item.id" ng-disabled="!edit" ng-obrigatorio="true"> | |
128 | 128 | </label-select> |
129 | 129 | </div> |
130 | 130 | <div class="col-sm-3"> | ... | ... |
cit-contratos-web/src/main/webapp/html/eventos/cnt_ev_recebimentoobjeto.html
... | ... | @@ -79,6 +79,18 @@ |
79 | 79 | ng-mask="99999/9999" |
80 | 80 | form="formDialogRecebimentoObjeto"/> |
81 | 81 | </div><!-- .col --> |
82 | + <div class="col-sm-9"> | |
83 | + <label-input ng-type="text" | |
84 | + ng-id="contrato.objetoContratacao" | |
85 | + ng-label="LABEL.OBJETO_CONTRATACAO" | |
86 | + ng-disabled="true" | |
87 | + ng-custom-maxlength="150" | |
88 | + ng-model="contrato.objetoContratacao" | |
89 | + form="formDialogRecebimentoObjeto"/> | |
90 | + </div><!-- .col --> | |
91 | + </div><!-- .row --> | |
92 | + | |
93 | + <div class="row"> | |
82 | 94 | <div class="col-sm-3"> |
83 | 95 | <label-input-data ng-id="recebimentoObjeto.dataRecebimento" |
84 | 96 | ng-label="LABEL.DATA_RECEBIMENTO_OBJETO" |
... | ... | @@ -102,18 +114,18 @@ |
102 | 114 | </select> |
103 | 115 | </div><!--.col --> |
104 | 116 | <div class="col-sm-3"> |
105 | - <label-input ng-type="text" | |
106 | - ng-id="recebimentoObjeto.nomeObjeto" | |
107 | - ng-label="LABEL.NOME_OBJETO" | |
108 | - ng-disabled="!edit" | |
109 | - ng-custom-maxlength="150" | |
110 | - ng-obrigatorio="true" | |
111 | - ng-model="recebimentoObjeto.nomeObjeto" | |
112 | - form="formDialogRecebimentoObjeto"/> | |
113 | - </div><!-- .col --> | |
114 | - </div><!-- .row --> | |
115 | - | |
116 | - <div class="row"> | |
117 | + <label-select ng-id="recebimentoObjeto.tiposStatus" | |
118 | + ng-label="LABEL.STATUS" | |
119 | + ng-model="recebimentoObjeto.tipoStatus" | |
120 | + form="formDialogRecebimentoObjeto" | |
121 | + ng-obrigatorio="true" | |
122 | + ng-disabled="!edit" | |
123 | + ng-list="dominiosRecebimentoObjeto.tiposStatus" | |
124 | + ng-custom-options="tipoStatus as tipoStatus.descricao for tipoStatus" | |
125 | + track-by="track by tipoStatus.id"/> | |
126 | + <option value="">Selecione</option> | |
127 | + </select> | |
128 | + </div><!-- .col --> | |
117 | 129 | <div class="col-sm-3"> |
118 | 130 | <div class="row"> |
119 | 131 | <div class="col-sm-12"> |
... | ... | @@ -150,20 +162,7 @@ |
150 | 162 | </select> |
151 | 163 | </div> |
152 | 164 | </div> |
153 | - </div> | |
154 | - <div class="col-sm-3"> | |
155 | - <label-select ng-id="recebimentoObjeto.tiposStatus" | |
156 | - ng-label="LABEL.STATUS" | |
157 | - ng-model="recebimentoObjeto.tipoStatus" | |
158 | - form="formDialogRecebimentoObjeto" | |
159 | - ng-obrigatorio="true" | |
160 | - ng-disabled="!edit" | |
161 | - ng-list="dominiosRecebimentoObjeto.tiposStatus" | |
162 | - ng-custom-options="tipoStatus as tipoStatus.descricao for tipoStatus" | |
163 | - track-by="track by tipoStatus.id"/> | |
164 | - <option value="">Selecione</option> | |
165 | - </select> | |
166 | - </div><!-- .col --> | |
165 | + </div> | |
167 | 166 | </div><!-- .row --> |
168 | 167 | |
169 | 168 | <div class="row"> | ... | ... |