Commit 763e9bb5b774133c9b2c93c55d6d1526155ef034

Authored by erick.sato
2 parents 86741157 486ebd32
Exists in master

Merge branch 'tarefa-4331' into cnt-1.0.0-alfa11

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 +7,7 @@ import br.com.centralit.api.model.EventoAditivo;
7 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; 7 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
8 8
9 /** 9 /**
10 - * 10 + *
11 * <p><img src="http://centralit.com.br/images/logo_central.png"></p> 11 * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
12 * 12 *
13 * <p><b>Company: </b> Central IT - Governança Corporativa - </p> 13 * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
@@ -15,11 +15,11 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; @@ -15,11 +15,11 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
15 * <p><b>Title: </b></p> 15 * <p><b>Title: </b></p>
16 * 16 *
17 * <p><b>Description: </b></p> 17 * <p><b>Description: </b></p>
18 - * 18 + *
19 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 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 * @since 15/03/2016 - 18:35:42 23 * @since 15/03/2016 - 18:35:42
24 * 24 *
25 * @version 1.0.0 25 * @version 1.0.0
@@ -30,10 +30,10 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; @@ -30,10 +30,10 @@ import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
30 public interface EventoAditivoDao extends CitGenericDAO { 30 public interface EventoAditivoDao extends CitGenericDAO {
31 31
32 /** 32 /**
33 - * 33 + *
34 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 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 * Método responsável por 38 * Método responsável por
39 * 39 *
@@ -45,10 +45,10 @@ public interface EventoAditivoDao extends CitGenericDAO { @@ -45,10 +45,10 @@ public interface EventoAditivoDao extends CitGenericDAO {
45 Collection<EventoAditivo> findAllByContrato(Long contratoId); 45 Collection<EventoAditivo> findAllByContrato(Long contratoId);
46 46
47 /** 47 /**
48 - * 48 + *
49 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 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 * Método responsável por buscar o último registro de aditivo de um determinado contrato no ano da data de emissão 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,4 +61,6 @@ public interface EventoAditivoDao extends CitGenericDAO {
61 * @return 61 * @return
62 */ 62 */
63 EventoAditivo buscarUltimoRegistroPorDataEmissaoEContrato(String property, Calendar dataEmissao, Long contratoId, Long organizacaoId); 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,6 +2,7 @@ package br.com.centralit.api.dao.impl;
2 2
3 import java.util.Calendar; 3 import java.util.Calendar;
4 import java.util.Collection; 4 import java.util.Collection;
  5 +import java.util.List;
5 6
6 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
7 8
@@ -13,37 +14,37 @@ import br.com.centralit.framework.dao.arquitetura.SearchSeven; @@ -13,37 +14,37 @@ import br.com.centralit.framework.dao.arquitetura.SearchSeven;
13 import com.googlecode.genericdao.search.Search; 14 import com.googlecode.genericdao.search.Search;
14 15
15 /** 16 /**
16 - * 17 + *
17 * <p> 18 * <p>
18 * <img src="http://centralit.com.br/images/logo_central.png"> 19 * <img src="http://centralit.com.br/images/logo_central.png">
19 * </p> 20 * </p>
20 - * 21 + *
21 * <p> 22 * <p>
22 * <b>Company: </b> Central IT - Governança Corporativa - 23 * <b>Company: </b> Central IT - Governança Corporativa -
23 * </p> 24 * </p>
24 - * 25 + *
25 * <p> 26 * <p>
26 * <b>Title: </b> 27 * <b>Title: </b>
27 * </p> 28 * </p>
28 - * 29 + *
29 * <p> 30 * <p>
30 * <b>Description: </b> 31 * <b>Description: </b>
31 * </p> 32 * </p>
32 - * 33 + *
33 * <p> 34 * <p>
34 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> 35 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
35 * </p> 36 * </p>
36 - * 37 + *
37 * <p> 38 * <p>
38 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> 39 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
39 * </p> 40 * </p>
40 - * 41 + *
41 * @since 15/03/2016 - 18:36:13 42 * @since 15/03/2016 - 18:36:13
42 - * 43 + *
43 * @version 1.0.0 44 * @version 1.0.0
44 - * 45 + *
45 * @author geovane.filho 46 * @author geovane.filho
46 - * 47 + *
47 */ 48 */
48 @Repository("eventoAditivoDao") 49 @Repository("eventoAditivoDao")
49 public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements EventoAditivoDao { 50 public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements EventoAditivoDao {
@@ -100,4 +101,16 @@ public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements Even @@ -100,4 +101,16 @@ public class EventoAditivoDaoHibernate extends CitGenericDAOImpl implements Even
100 return searchUnique(search); 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/service/EventoAditivoService.java
1 package br.com.centralit.api.service; 1 package br.com.centralit.api.service;
2 2
3 -import java.io.InputStream;  
4 import java.sql.Connection; 3 import java.sql.Connection;
5 import java.util.Collection; 4 import java.util.Collection;
6 5
@@ -28,4 +27,8 @@ public interface EventoAditivoService extends GenericService&lt;EventoAditivo, Long @@ -28,4 +27,8 @@ public interface EventoAditivoService extends GenericService&lt;EventoAditivo, Long
28 Collection<EventoAditivo> findAllByContrato(Long contratoId); 27 Collection<EventoAditivo> findAllByContrato(Long contratoId);
29 28
30 JasperPrint getJasperPrintAditivo(Long idAditivo, Connection conn, Usuario user, String titulo) throws JRException; 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/EventoAditivoServiceImpl.java
@@ -6,6 +6,7 @@ import java.text.DecimalFormat; @@ -6,6 +6,7 @@ import java.text.DecimalFormat;
6 import java.text.SimpleDateFormat; 6 import java.text.SimpleDateFormat;
7 import java.util.Calendar; 7 import java.util.Calendar;
8 import java.util.Collection; 8 import java.util.Collection;
  9 +import java.util.GregorianCalendar;
9 import java.util.HashMap; 10 import java.util.HashMap;
10 import java.util.Map; 11 import java.util.Map;
11 12
@@ -40,6 +41,7 @@ import br.com.centralit.framework.model.Usuario; @@ -40,6 +41,7 @@ import br.com.centralit.framework.model.Usuario;
40 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; 41 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
41 import br.com.centralit.framework.util.Util; 42 import br.com.centralit.framework.util.Util;
42 import br.com.centralit.framework.util.UtilDataBase; 43 import br.com.centralit.framework.util.UtilDataBase;
  44 +import br.com.centralit.framework.util.UtilDate;
43 import br.com.centralit.framework.util.UtilObjeto; 45 import br.com.centralit.framework.util.UtilObjeto;
44 46
45 /** 47 /**
@@ -257,4 +259,32 @@ public class EventoAditivoServiceImpl extends GenericServiceImpl&lt;EventoAditivo, @@ -257,4 +259,32 @@ public class EventoAditivoServiceImpl extends GenericServiceImpl&lt;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/validation/EventoAditivoValidator.java
1 package br.com.centralit.api.service.validation; 1 package br.com.centralit.api.service.validation;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.sql.Timestamp;
4 import java.util.Calendar; 5 import java.util.Calendar;
5 6
6 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
@@ -11,11 +12,12 @@ import org.springframework.validation.Validator; @@ -11,11 +12,12 @@ import org.springframework.validation.Validator;
11 import br.com.centralit.api.model.DominioContrato; 12 import br.com.centralit.api.model.DominioContrato;
12 import br.com.centralit.api.model.EventoAditivo; 13 import br.com.centralit.api.model.EventoAditivo;
13 import br.com.centralit.framework.exception.CodigoErro; 14 import br.com.centralit.framework.exception.CodigoErro;
  15 +import br.com.centralit.framework.util.UtilDate;
14 import br.com.centralit.framework.util.UtilObjeto; 16 import br.com.centralit.framework.util.UtilObjeto;
15 17
16 18
17 /** 19 /**
18 - * 20 + *
19 * <p><img src="http://centralit.com.br/images/logo_central.png"></p> 21 * <p><img src="http://centralit.com.br/images/logo_central.png"></p>
20 * 22 *
21 * <p><b>Company: </b> Central IT - Governança Corporativa - </p> 23 * <p><b>Company: </b> Central IT - Governança Corporativa - </p>
@@ -23,11 +25,11 @@ import br.com.centralit.framework.util.UtilObjeto; @@ -23,11 +25,11 @@ import br.com.centralit.framework.util.UtilObjeto;
23 * <p><b>Title: </b></p> 25 * <p><b>Title: </b></p>
24 * 26 *
25 * <p><b>Description: </b></p> 27 * <p><b>Description: </b></p>
26 - * 28 + *
27 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 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 * @since 16/03/2016 - 11:10:02 33 * @since 16/03/2016 - 11:10:02
32 * 34 *
33 * @version 1.0.0 35 * @version 1.0.0
@@ -56,98 +58,115 @@ public class EventoAditivoValidator implements Validator{ @@ -56,98 +58,115 @@ public class EventoAditivoValidator implements Validator{
56 58
57 EventoAditivo aditivo = (EventoAditivo) target; 59 EventoAditivo aditivo = (EventoAditivo) target;
58 Calendar dataFinal = null; 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 dataFinal = aditivo.getContrato().getDataVigenciaFinal(); 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 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { 69 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) {
66 for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { 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 dataFinal = adContrato.getDataFim(); 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 ValidationUtils.rejectIfEmpty(errors, "registroSequencial", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.NUM_ADITIVO"); 82 ValidationUtils.rejectIfEmpty(errors, "registroSequencial", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.NUM_ADITIVO");
75 - 83 +
76 ValidationUtils.rejectIfEmpty(errors, "dataEmissao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DATA_EMISSAO_OCORRENCIA"); 84 ValidationUtils.rejectIfEmpty(errors, "dataEmissao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DATA_EMISSAO_OCORRENCIA");
77 - 85 +
78 if (UtilObjeto.isReferencia(aditivo.getDataEmissao()) && UtilObjeto.isReferencia(aditivo.getContrato()) && 86 if (UtilObjeto.isReferencia(aditivo.getDataEmissao()) && UtilObjeto.isReferencia(aditivo.getContrato()) &&
79 (aditivo.getDataEmissao().before(aditivo.getContrato().getDataVigenciaInicial()) || aditivo.getDataEmissao().after(dataFinal))) { 87 (aditivo.getDataEmissao().before(aditivo.getContrato().getDataVigenciaInicial()) || aditivo.getDataEmissao().after(dataFinal))) {
80 errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_DENTRO_REFERENCIA"); 88 errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_DENTRO_REFERENCIA");
81 } 89 }
82 - 90 +
83 ValidationUtils.rejectIfEmpty(errors, "tipoAlteracao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO"); 91 ValidationUtils.rejectIfEmpty(errors, "tipoAlteracao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO");
84 - 92 +
85 if (!(aditivo.getAditivoDeValor() || aditivo.getAditivoDePrazo() || aditivo.getAditivoDeClausula())) { 93 if (!(aditivo.getAditivoDeValor() || aditivo.getAditivoDePrazo() || aditivo.getAditivoDeClausula())) {
86 errors.rejectValue("aditivoDePrazo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); 94 errors.rejectValue("aditivoDePrazo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO");
87 errors.rejectValue("aditivoDeValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); 95 errors.rejectValue("aditivoDeValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO");
88 errors.rejectValue("aditivoDeClausula", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO"); 96 errors.rejectValue("aditivoDeClausula", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_ADITIVO");
89 } 97 }
90 - 98 +
91 if (aditivo.getAditivoDePrazo()) { 99 if (aditivo.getAditivoDePrazo()) {
92 if (UtilObjeto.isReferencia(aditivo.getDataEmissao())) { 100 if (UtilObjeto.isReferencia(aditivo.getDataEmissao())) {
93 - Calendar ultimaDataEmissao = null; 101 + Calendar ultimaDataEmissaoAditivoAnterior = null;
  102 + Calendar ultimaDataEmissaoAditivoPosterior = null;
94 int qntAditivoPrazo = 0; 103 int qntAditivoPrazo = 0;
95 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { 104 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) {
96 for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { 105 for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) {
97 if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDePrazo()) { 106 if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDePrazo()) {
98 qntAditivoPrazo++; 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 if (qntAditivoPrazo >= MAXIMO_ADITIVO_PRAZO) { 118 if (qntAditivoPrazo >= MAXIMO_ADITIVO_PRAZO) {
111 errors.rejectValue("aditivoDePrazo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.MAXIMO_ADITIVO_PRAZO"); 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 errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES"); 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 } else { 131 } else {
125 errors.rejectValue("dataEmissao", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_EMISSAO_12_MESES"); 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 ValidationUtils.rejectIfEmpty(errors, "dataInicio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_INICIO_ADITIVO"); 149 ValidationUtils.rejectIfEmpty(errors, "dataInicio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_INICIO_ADITIVO");
131 ValidationUtils.rejectIfEmpty(errors, "dataFim", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_FINAL_ADITIVO"); 150 ValidationUtils.rejectIfEmpty(errors, "dataFim", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DATA_FINAL_ADITIVO");
132 - 151 +
133 if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && dataFinal.compareTo(aditivo.getDataInicio()) >= 0){ 152 if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && dataFinal.compareTo(aditivo.getDataInicio()) >= 0){
134 errors.rejectValue("dataInicio", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_INICIO_ADITIVO_MAIOR_DATA_FINAL"); 153 errors.rejectValue("dataInicio", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_INICIO_ADITIVO_MAIOR_DATA_FINAL");
135 } 154 }
136 - 155 +
137 if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && UtilObjeto.isReferencia(aditivo.getDataFim()) && aditivo.getDataInicio().compareTo(aditivo.getDataFim()) >= 0) { 156 if (UtilObjeto.isReferencia(aditivo.getDataInicio()) && UtilObjeto.isReferencia(aditivo.getDataFim()) && aditivo.getDataInicio().compareTo(aditivo.getDataFim()) >= 0) {
138 errors.rejectValue("dataInicio", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.DATA_INICIO_ADITIVO_MAIOR_DATA_FIM_ADITIVO"); 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 if (aditivo.getAditivoDeValor()) { 161 if (aditivo.getAditivoDeValor()) {
143 ValidationUtils.rejectIfEmpty(errors, "tipoAlteracaoValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO"); 162 ValidationUtils.rejectIfEmpty(errors, "tipoAlteracaoValor", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.TIPO_ALTERACAO");
144 ValidationUtils.rejectIfEmpty(errors, "tipoObjeto", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_OBJETO"); 163 ValidationUtils.rejectIfEmpty(errors, "tipoObjeto", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.TIPO_OBJETO");
145 ValidationUtils.rejectIfEmpty(errors, "valorAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.VALOR_ADITIVO"); 164 ValidationUtils.rejectIfEmpty(errors, "valorAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.VALOR_ADITIVO");
146 ValidationUtils.rejectIfEmpty(errors, "percentualAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.PERCENTUAL_ADITIVO"); 165 ValidationUtils.rejectIfEmpty(errors, "percentualAditivo", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.PERCENTUAL_ADITIVO");
147 - 166 +
148 Calendar dataInicioPrazo = null; 167 Calendar dataInicioPrazo = null;
149 Calendar dataFimPrazo = null; 168 Calendar dataFimPrazo = null;
150 - 169 +
151 if (UtilObjeto.isReferencia(aditivo.getContrato())) { 170 if (UtilObjeto.isReferencia(aditivo.getContrato())) {
152 if (dataDentroPrazo(aditivo.getDataEmissao(), aditivo.getContrato().getDataVigenciaInicial(), aditivo.getContrato().getDataVigenciaFinal())) { 171 if (dataDentroPrazo(aditivo.getDataEmissao(), aditivo.getContrato().getDataVigenciaInicial(), aditivo.getContrato().getDataVigenciaFinal())) {
153 dataInicioPrazo = aditivo.getContrato().getDataVigenciaInicial(); 172 dataInicioPrazo = aditivo.getContrato().getDataVigenciaInicial();
@@ -164,16 +183,16 @@ public class EventoAditivoValidator implements Validator{ @@ -164,16 +183,16 @@ public class EventoAditivoValidator implements Validator{
164 } 183 }
165 } 184 }
166 } 185 }
167 - 186 +
168 if (UtilObjeto.isReferencia(dataInicioPrazo) && UtilObjeto.isReferencia(dataFimPrazo)) { 187 if (UtilObjeto.isReferencia(dataInicioPrazo) && UtilObjeto.isReferencia(dataFimPrazo)) {
169 BigDecimal percentualTotalAditivo = BigDecimal.ZERO; 188 BigDecimal percentualTotalAditivo = BigDecimal.ZERO;
170 - 189 +
171 if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_ACRESCIMO)) { 190 if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_ACRESCIMO)) {
172 percentualTotalAditivo = percentualTotalAditivo.add(aditivo.getPercentualAditivo()); 191 percentualTotalAditivo = percentualTotalAditivo.add(aditivo.getPercentualAditivo());
173 } else if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_SUPRESSAO)) { 192 } else if (aditivo.getTipoAlteracaoValor().getCodigo().equals(DominioContrato.CODIGO_TIPO_ALTERACAO_VALOR_SUPRESSAO)) {
174 percentualTotalAditivo = percentualTotalAditivo.subtract(aditivo.getPercentualAditivo()); 193 percentualTotalAditivo = percentualTotalAditivo.subtract(aditivo.getPercentualAditivo());
175 } 194 }
176 - 195 +
177 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) { 196 if (UtilObjeto.isReferencia(aditivo.getContrato().getAditivos())) {
178 for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) { 197 for (EventoAditivo adContrato : aditivo.getContrato().getAditivos()) {
179 if (((!UtilObjeto.isReferencia(aditivo.getId())) || (UtilObjeto.isReferencia(aditivo.getId()) && !adContrato.getId().equals(aditivo.getId()))) && adContrato.getAditivoDeValor() && dataDentroPrazo(adContrato.getDataEmissao(), dataInicioPrazo, dataFimPrazo) && 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,7 +205,7 @@ public class EventoAditivoValidator implements Validator{
186 } 205 }
187 } 206 }
188 } 207 }
189 - 208 +
190 if (aditivo.getTipoObjeto().getCodigo().equals(DominioContrato.CODIGO_TIPO_OBJETO_OBRAS_SERVICOS_COMPRAS)) { 209 if (aditivo.getTipoObjeto().getCodigo().equals(DominioContrato.CODIGO_TIPO_OBJETO_OBRAS_SERVICOS_COMPRAS)) {
191 if (percentualTotalAditivo.abs().compareTo(PERCENTAGEM_MAXIMA_OBRAS_SERVICOS_COMPRAS) > 0) { 210 if (percentualTotalAditivo.abs().compareTo(PERCENTAGEM_MAXIMA_OBRAS_SERVICOS_COMPRAS) > 0) {
192 errors.rejectValue("percentualAditivo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.PERCENTAGEM_MAIOR_OBRAS_SERVICOS_COMPRAS"); 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,22 +215,22 @@ public class EventoAditivoValidator implements Validator{
196 errors.rejectValue("percentualAditivo", CodigoErro.VALIDACAO_CAMPOS.getValue().toString(), "CONTRATOS.MSG.PERCENTAGEM_MAIOR_REFORMA_IMOVEIS"); 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 if (aditivo.getAditivoDeClausula()) { 222 if (aditivo.getAditivoDeClausula()) {
204 ValidationUtils.rejectIfEmpty(errors, "descricao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DESCRICAO_ADITIVO"); 223 ValidationUtils.rejectIfEmpty(errors, "descricao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.DESCRICAO_ADITIVO");
205 } 224 }
206 - 225 +
207 ValidationUtils.rejectIfEmpty(errors, "justificativa", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.JUSTIFICATIVA_ADITIVO"); 226 ValidationUtils.rejectIfEmpty(errors, "justificativa", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "CONTRATOS.LABEL.JUSTIFICATIVA_ADITIVO");
208 } 227 }
209 - 228 +
210 /** 229 /**
211 - * 230 + *
212 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 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 * Método responsável por verificar se uma determinada data esta dentro de um determinado prazo definido 235 * Método responsável por verificar se uma determinada data esta dentro de um determinado prazo definido
217 * 236 *
cit-contratos-web/src/main/java/br/com/centralit/controller/EventoAditivoController.java
@@ -129,4 +129,17 @@ public class EventoAditivoController extends GenericController&lt;EventoAditivo&gt;{ @@ -129,4 +129,17 @@ public class EventoAditivoController extends GenericController&lt;EventoAditivo&gt;{
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
@@ -985,6 +985,10 @@ public class StartupListenerContratos extends UtilStartup implements Application @@ -985,6 +985,10 @@ public class StartupListenerContratos extends UtilStartup implements Application
985 internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.TERMO_REFERENCIA_PROJETO_BASICO", "Termo de referência/Projeto Básico", dominio, modulo)); 985 internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.TERMO_REFERENCIA_PROJETO_BASICO", "Termo de referência/Projeto Básico", dominio, modulo));
986 internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.CONTRATO_SEM_VINCULO_TERMO", "Contrato selecionado está sem vínculo a um termo de referência.", dominio, modulo)); 986 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 internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.ENCERRAMENTO_CONTRATO", "Encerramento de contrato", dominio, modulo)); 987 internacionalizacaoList.add(new Internacionalizacao("CONTRATOS.LABEL.ENCERRAMENTO_CONTRATO", "Encerramento de contrato", dominio, modulo));
  988 +
  989 + 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));
  990 + 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));
  991 + 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 } 992 }
989 993
990 private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) { 994 private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/VisaoContratoController.js
@@ -160,17 +160,27 @@ citApp.controller(&#39;VisaoContratoController&#39;, [&#39;$scope&#39;, @@ -160,17 +160,27 @@ citApp.controller(&#39;VisaoContratoController&#39;, [&#39;$scope&#39;,
160 }; 160 };
161 161
162 $scope.editarModal = function (evento) { 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 $scope.criarEvento = function () { 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 var eventoClasses = { 186 var eventoClasses = {
@@ -519,8 +529,19 @@ citApp.controller(&#39;VisaoContratoController&#39;, [&#39;$scope&#39;, @@ -519,8 +529,19 @@ citApp.controller(&#39;VisaoContratoController&#39;, [&#39;$scope&#39;,
519 }; 529 };
520 530
521 $scope.removerEvento = function(){ 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 $scope.salvarJustificativaExclusao = function(form){ 547 $scope.salvarJustificativaExclusao = function(form){
cit-contratos-web/src/main/webapp/assets/js/angular/custom/repository/EventoAditivoRepository.js
@@ -4,10 +4,18 @@ citApp.factory(&#39;EventoAditivoRepository&#39;, [&#39;RestangularContratos&#39;, &#39;AbstractRepo @@ -4,10 +4,18 @@ citApp.factory(&#39;EventoAditivoRepository&#39;, [&#39;RestangularContratos&#39;, &#39;AbstractRepo
4 4
5 function EventoAditivoRepository() { 5 function EventoAditivoRepository() {
6 AbstractRepository.call(this, restangularContratos, 'rest/eventoAditivo'); 6 AbstractRepository.call(this, restangularContratos, 'rest/eventoAditivo');
7 - 7 +
8 this.findAllByContrato = function(contratoId) { 8 this.findAllByContrato = function(contratoId) {
9 return restangularContratos.all(this.route+'/findAllByContrato').post(contratoId); 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 AbstractRepository.extend(EventoAditivoRepository); 21 AbstractRepository.extend(EventoAditivoRepository);
cit-contratos-web/src/main/webapp/html/eventos/cnt_ev_aditivo.html
@@ -61,12 +61,12 @@ @@ -61,12 +61,12 @@
61 </div> 61 </div>
62 <div class="col-sm-4"> 62 <div class="col-sm-4">
63 <label-input-data ng-id="aditivo.dataEmissao" ng-label="LABEL.DATA_EMISSAO_OCORRENCIA" ng-obrigatorio="true" ng-model="aditivo.dataEmissao" form="formDialogAditivo" 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 </label-input-data> 65 </label-input-data>
66 </div> 66 </div>
67 <div class="col-sm-4"> 67 <div class="col-sm-4">
68 <label-select ng-label="LABEL.TIPO_ALTERACAO" ng-id="aditivo.tipoAlteracao" ng-model="aditivo.tipoAlteracao" form="formDialogAditivo" ng-list="tiposAlteracaoContrato" 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 </label-select> 70 </label-select>
71 </div> 71 </div>
72 </div> 72 </div>
@@ -107,7 +107,7 @@ @@ -107,7 +107,7 @@
107 ng-model="aditivo.dataInicio" form="formDialogAditivo" /> 107 ng-model="aditivo.dataInicio" form="formDialogAditivo" />
108 </div> 108 </div>
109 <div class="col-sm-3"> 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 ng-model="aditivo.dataFim" form="formDialogAditivo" /> 111 ng-model="aditivo.dataFim" form="formDialogAditivo" />
112 </div> 112 </div>
113 </div> 113 </div>
@@ -117,14 +117,14 @@ @@ -117,14 +117,14 @@
117 <div class="row"> 117 <div class="row">
118 <div class="col-sm-6"> 118 <div class="col-sm-6">
119 <label-input-radio ng-id="aditivo.tipoAlteracaoValor.codigo" ng-label="LABEL.TIPO_ALTERACAO" list="tiposAlteracaoValor" ng-model="aditivo.tipoAlteracaoValor.codigo" 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 </label-input-radio> 121 </label-input-radio>
122 </div> 122 </div>
123 </div> 123 </div>
124 <div class="row"> 124 <div class="row">
125 <div class="col-sm-4"> 125 <div class="col-sm-4">
126 <label-select ng-label="CONTRATOS.LABEL.TIPO_OBJETO" ng-id="aditivo.tipoObjeto" ng-model="aditivo.tipoObjeto" form="formDialogAditivo" ng-list="tiposObjeto" 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 </label-select> 128 </label-select>
129 </div> 129 </div>
130 <div class="col-sm-3"> 130 <div class="col-sm-3">