Commit 35e058d7851900b16284ab8c4c40767edb84daee
Exists in
master
Merge branch 'tarefa-4455' of http://ferramentasgo.centralit.com.br:8080/scm/git…
…/cit-grp-contratos into tarefa-4455
Showing
11 changed files
with
1135 additions
and
1057 deletions
Show diff stats
cit-contratos-api/src/main/java/br/com/centralit/api/model/Contrato.java
@@ -367,6 +367,10 @@ public class Contrato extends PersistentObjectAuditOrganizacao { | @@ -367,6 +367,10 @@ public class Contrato extends PersistentObjectAuditOrganizacao { | ||
367 | @JsonView({ ViewsContrato.ContratoEditView.class, ViewsContrato.ContratoAutoCompleteView.class }) | 367 | @JsonView({ ViewsContrato.ContratoEditView.class, ViewsContrato.ContratoAutoCompleteView.class }) |
368 | private TermoReferencia termoReferencia; | 368 | private TermoReferencia termoReferencia; |
369 | 369 | ||
370 | + @Transient | ||
371 | + @JsonView({ ViewsContrato.ContratoEditView.class }) | ||
372 | + private Long rascunho; | ||
373 | + | ||
370 | /** | 374 | /** |
371 | * Retorna o valor do atributo <code>id</code> | 375 | * Retorna o valor do atributo <code>id</code> |
372 | * | 376 | * |
@@ -1143,4 +1147,11 @@ public class Contrato extends PersistentObjectAuditOrganizacao { | @@ -1143,4 +1147,11 @@ public class Contrato extends PersistentObjectAuditOrganizacao { | ||
1143 | this.termoReferencia = termoReferencia; | 1147 | this.termoReferencia = termoReferencia; |
1144 | } | 1148 | } |
1145 | 1149 | ||
1150 | + public Long getRascunho() { | ||
1151 | + return rascunho; | ||
1152 | + } | ||
1153 | + | ||
1154 | + public void setRascunho(Long rascunho) { | ||
1155 | + this.rascunho = rascunho; | ||
1156 | + } | ||
1146 | } | 1157 | } |
cit-contratos-api/src/main/java/br/com/centralit/api/model/EstudoTecnico.java
@@ -16,6 +16,7 @@ import javax.persistence.OneToMany; | @@ -16,6 +16,7 @@ import javax.persistence.OneToMany; | ||
16 | import javax.persistence.Table; | 16 | import javax.persistence.Table; |
17 | import javax.persistence.Temporal; | 17 | import javax.persistence.Temporal; |
18 | import javax.persistence.TemporalType; | 18 | import javax.persistence.TemporalType; |
19 | +import javax.persistence.Transient; | ||
19 | 20 | ||
20 | import br.com.centralit.api.viewHelper.ViewsContrato; | 21 | import br.com.centralit.api.viewHelper.ViewsContrato; |
21 | import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; | 22 | import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; |
@@ -167,6 +168,10 @@ public class EstudoTecnico extends PersistentObjectAuditOrganizacao { | @@ -167,6 +168,10 @@ public class EstudoTecnico extends PersistentObjectAuditOrganizacao { | ||
167 | @JsonView({ ViewsContrato.EstudoTecnicoEditView.class }) | 168 | @JsonView({ ViewsContrato.EstudoTecnicoEditView.class }) |
168 | private Collection<EstudoTecnicoDocumento> documentos; | 169 | private Collection<EstudoTecnicoDocumento> documentos; |
169 | 170 | ||
171 | + @Transient | ||
172 | + @JsonView({ ViewsContrato.EstudoTecnicoEditView.class }) | ||
173 | + private Long rascunho; | ||
174 | + | ||
170 | public RegistroSequencial getRegistroSequencial() { | 175 | public RegistroSequencial getRegistroSequencial() { |
171 | 176 | ||
172 | return registroSequencial; | 177 | return registroSequencial; |
@@ -623,4 +628,11 @@ public class EstudoTecnico extends PersistentObjectAuditOrganizacao { | @@ -623,4 +628,11 @@ public class EstudoTecnico extends PersistentObjectAuditOrganizacao { | ||
623 | this.documentos = documentos; | 628 | this.documentos = documentos; |
624 | } | 629 | } |
625 | 630 | ||
631 | + public Long getRascunho() { | ||
632 | + return rascunho; | ||
633 | + } | ||
634 | + | ||
635 | + public void setRascunho(Long rascunho) { | ||
636 | + this.rascunho = rascunho; | ||
637 | + } | ||
626 | } | 638 | } |
cit-contratos-api/src/main/java/br/com/centralit/api/model/TermoReferencia.java
@@ -16,6 +16,7 @@ import javax.persistence.OneToMany; | @@ -16,6 +16,7 @@ import javax.persistence.OneToMany; | ||
16 | import javax.persistence.Table; | 16 | import javax.persistence.Table; |
17 | import javax.persistence.Temporal; | 17 | import javax.persistence.Temporal; |
18 | import javax.persistence.TemporalType; | 18 | import javax.persistence.TemporalType; |
19 | +import javax.persistence.Transient; | ||
19 | 20 | ||
20 | import org.hibernate.annotations.Type; | 21 | import org.hibernate.annotations.Type; |
21 | 22 | ||
@@ -151,6 +152,10 @@ public class TermoReferencia extends PersistentObjectAuditOrganizacao { | @@ -151,6 +152,10 @@ public class TermoReferencia extends PersistentObjectAuditOrganizacao { | ||
151 | @JsonView({ ViewsContrato.TermoReferenciaEditView.class }) | 152 | @JsonView({ ViewsContrato.TermoReferenciaEditView.class }) |
152 | private Collection<TermoReferenciaDocumento> documentos; | 153 | private Collection<TermoReferenciaDocumento> documentos; |
153 | 154 | ||
155 | + @Transient | ||
156 | + @JsonView({ ViewsContrato.TermoReferenciaEditView.class }) | ||
157 | + private Long rascunho; | ||
158 | + | ||
154 | /** | 159 | /** |
155 | * Retorna o valor do atributo <code>id</code> | 160 | * Retorna o valor do atributo <code>id</code> |
156 | * | 161 | * |
@@ -663,4 +668,11 @@ public class TermoReferencia extends PersistentObjectAuditOrganizacao { | @@ -663,4 +668,11 @@ public class TermoReferencia extends PersistentObjectAuditOrganizacao { | ||
663 | this.dataTermoGerado = dataTermoGerado; | 668 | this.dataTermoGerado = dataTermoGerado; |
664 | } | 669 | } |
665 | 670 | ||
671 | + public Long getRascunho() { | ||
672 | + return rascunho; | ||
673 | + } | ||
674 | + | ||
675 | + public void setRascunho(Long rascunho) { | ||
676 | + this.rascunho = rascunho; | ||
677 | + } | ||
666 | } | 678 | } |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java
@@ -40,6 +40,7 @@ import br.com.centralit.api.service.EventoAditivoService; | @@ -40,6 +40,7 @@ import br.com.centralit.api.service.EventoAditivoService; | ||
40 | import br.com.centralit.api.service.FornecedorService; | 40 | import br.com.centralit.api.service.FornecedorService; |
41 | import br.com.centralit.api.service.InternacionalizacaoService; | 41 | import br.com.centralit.api.service.InternacionalizacaoService; |
42 | import br.com.centralit.api.service.ParceiroService; | 42 | import br.com.centralit.api.service.ParceiroService; |
43 | +import br.com.centralit.api.service.RascunhoService; | ||
43 | import br.com.centralit.api.service.UsuarioService; | 44 | import br.com.centralit.api.service.UsuarioService; |
44 | import br.com.centralit.framework.exception.CodigoErro; | 45 | import br.com.centralit.framework.exception.CodigoErro; |
45 | import br.com.centralit.framework.model.Dominio; | 46 | import br.com.centralit.framework.model.Dominio; |
@@ -102,7 +103,7 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | @@ -102,7 +103,7 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | ||
102 | 103 | ||
103 | @Autowired | 104 | @Autowired |
104 | private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService; | 105 | private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService; |
105 | - /** Atributo colaboradorService. */ | 106 | + |
106 | @Autowired | 107 | @Autowired |
107 | private EstudoTecnicoService estudoTecnicoService; | 108 | private EstudoTecnicoService estudoTecnicoService; |
108 | 109 | ||
@@ -115,6 +116,9 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | @@ -115,6 +116,9 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | ||
115 | @Autowired | 116 | @Autowired |
116 | private EventoAditivoService aditivoService; | 117 | private EventoAditivoService aditivoService; |
117 | 118 | ||
119 | + @Autowired | ||
120 | + private RascunhoService rascunhoService; | ||
121 | + | ||
118 | /** | 122 | /** |
119 | * Responsável pela criação de novas instâncias desta classe. | 123 | * Responsável pela criação de novas instâncias desta classe. |
120 | * @param contratoDao | 124 | * @param contratoDao |
@@ -156,6 +160,8 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | @@ -156,6 +160,8 @@ public class ContratoServiceImpl extends GenericServiceImpl<Contrato, Long> impl | ||
156 | 160 | ||
157 | validarPapeisEnvolvidos(contrato); | 161 | validarPapeisEnvolvidos(contrato); |
158 | 162 | ||
163 | + rascunhoService.removeById(contrato.getRascunho()); | ||
164 | + | ||
159 | return super.save(contrato); | 165 | return super.save(contrato); |
160 | } | 166 | } |
161 | 167 |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/EstudoTecnicoServiceImpl.java
@@ -39,6 +39,7 @@ import br.com.centralit.api.service.EstudoTecnicoService; | @@ -39,6 +39,7 @@ import br.com.centralit.api.service.EstudoTecnicoService; | ||
39 | import br.com.centralit.api.service.FuncaoService; | 39 | import br.com.centralit.api.service.FuncaoService; |
40 | import br.com.centralit.api.service.ObjetivoEstrategicoNecessidadeService; | 40 | import br.com.centralit.api.service.ObjetivoEstrategicoNecessidadeService; |
41 | import br.com.centralit.api.service.ParceiroService; | 41 | import br.com.centralit.api.service.ParceiroService; |
42 | +import br.com.centralit.api.service.RascunhoService; | ||
42 | import br.com.centralit.api.service.TermoReferenciaService; | 43 | import br.com.centralit.api.service.TermoReferenciaService; |
43 | import br.com.centralit.api.service.UsuarioService; | 44 | import br.com.centralit.api.service.UsuarioService; |
44 | import br.com.centralit.framework.exception.CodigoErro; | 45 | import br.com.centralit.framework.exception.CodigoErro; |
@@ -114,6 +115,9 @@ public class EstudoTecnicoServiceImpl extends GenericServiceImpl<EstudoTecnico, | @@ -114,6 +115,9 @@ public class EstudoTecnicoServiceImpl extends GenericServiceImpl<EstudoTecnico, | ||
114 | @Autowired | 115 | @Autowired |
115 | private FuncaoService funcaoService; | 116 | private FuncaoService funcaoService; |
116 | 117 | ||
118 | + @Autowired | ||
119 | + private RascunhoService rascunhoService; | ||
120 | + | ||
117 | /** Atributo statico CAMPO_BUSCA_PARAMETRIZADA_ULTIMO_REGISTRO. */ | 121 | /** Atributo statico CAMPO_BUSCA_PARAMETRIZADA_ULTIMO_REGISTRO. */ |
118 | public static final String CAMPO_BUSCA_PARAMETRIZADA_ULTIMO_REGISTRO = "codigo"; | 122 | public static final String CAMPO_BUSCA_PARAMETRIZADA_ULTIMO_REGISTRO = "codigo"; |
119 | 123 | ||
@@ -150,6 +154,8 @@ public class EstudoTecnicoServiceImpl extends GenericServiceImpl<EstudoTecnico, | @@ -150,6 +154,8 @@ public class EstudoTecnicoServiceImpl extends GenericServiceImpl<EstudoTecnico, | ||
150 | // monta objeto estudoTecnico com todas as suas listas e objetos transients | 154 | // monta objeto estudoTecnico com todas as suas listas e objetos transients |
151 | this.montarObjetoEstudoTecnico(estudoTecnico); | 155 | this.montarObjetoEstudoTecnico(estudoTecnico); |
152 | 156 | ||
157 | + rascunhoService.removeById(estudoTecnico.getRascunho()); | ||
158 | + | ||
153 | // verifica se tem codigo, senao gera e salva entidade | 159 | // verifica se tem codigo, senao gera e salva entidade |
154 | if (UtilObjeto.isReferencia(estudoTecnico.getRegistroSequencial())) { | 160 | if (UtilObjeto.isReferencia(estudoTecnico.getRegistroSequencial())) { |
155 | 161 |
cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/TermoReferenciaServiceImpl.java
@@ -12,6 +12,14 @@ import java.util.Map; | @@ -12,6 +12,14 @@ import java.util.Map; | ||
12 | 12 | ||
13 | import javax.servlet.http.HttpServletResponse; | 13 | import javax.servlet.http.HttpServletResponse; |
14 | 14 | ||
15 | +import net.sf.jasperreports.engine.JRException; | ||
16 | +import net.sf.jasperreports.engine.JasperCompileManager; | ||
17 | +import net.sf.jasperreports.engine.JasperFillManager; | ||
18 | +import net.sf.jasperreports.engine.JasperPrint; | ||
19 | +import net.sf.jasperreports.engine.JasperReport; | ||
20 | +import net.sf.jasperreports.engine.design.JasperDesign; | ||
21 | +import net.sf.jasperreports.engine.xml.JRXmlLoader; | ||
22 | + | ||
15 | import org.apache.commons.collections.CollectionUtils; | 23 | import org.apache.commons.collections.CollectionUtils; |
16 | import org.apache.commons.lang3.StringUtils; | 24 | import org.apache.commons.lang3.StringUtils; |
17 | import org.apache.log4j.Logger; | 25 | import org.apache.log4j.Logger; |
@@ -32,6 +40,7 @@ import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; | @@ -32,6 +40,7 @@ import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; | ||
32 | import br.com.centralit.api.service.DominioService; | 40 | import br.com.centralit.api.service.DominioService; |
33 | import br.com.centralit.api.service.InternacionalizacaoService; | 41 | import br.com.centralit.api.service.InternacionalizacaoService; |
34 | import br.com.centralit.api.service.ParceiroService; | 42 | import br.com.centralit.api.service.ParceiroService; |
43 | +import br.com.centralit.api.service.RascunhoService; | ||
35 | import br.com.centralit.api.service.TermoReferenciaDetalhamentoSolucaoService; | 44 | import br.com.centralit.api.service.TermoReferenciaDetalhamentoSolucaoService; |
36 | import br.com.centralit.api.service.TermoReferenciaPenalidadeService; | 45 | import br.com.centralit.api.service.TermoReferenciaPenalidadeService; |
37 | import br.com.centralit.api.service.TermoReferenciaSancaoService; | 46 | import br.com.centralit.api.service.TermoReferenciaSancaoService; |
@@ -44,13 +53,6 @@ import br.com.centralit.framework.model.Usuario; | @@ -44,13 +53,6 @@ import br.com.centralit.framework.model.Usuario; | ||
44 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | 53 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
45 | import br.com.centralit.framework.util.UtilDataBase; | 54 | import br.com.centralit.framework.util.UtilDataBase; |
46 | import br.com.centralit.framework.util.UtilObjeto; | 55 | import br.com.centralit.framework.util.UtilObjeto; |
47 | -import net.sf.jasperreports.engine.JRException; | ||
48 | -import net.sf.jasperreports.engine.JasperCompileManager; | ||
49 | -import net.sf.jasperreports.engine.JasperFillManager; | ||
50 | -import net.sf.jasperreports.engine.JasperPrint; | ||
51 | -import net.sf.jasperreports.engine.JasperReport; | ||
52 | -import net.sf.jasperreports.engine.design.JasperDesign; | ||
53 | -import net.sf.jasperreports.engine.xml.JRXmlLoader; | ||
54 | 56 | ||
55 | /** | 57 | /** |
56 | * <p> | 58 | * <p> |
@@ -122,8 +124,10 @@ public class TermoReferenciaServiceImpl extends GenericServiceImpl<TermoReferenc | @@ -122,8 +124,10 @@ public class TermoReferenciaServiceImpl extends GenericServiceImpl<TermoReferenc | ||
122 | @Autowired | 124 | @Autowired |
123 | private InternacionalizacaoService internacionalizacaoService; | 125 | private InternacionalizacaoService internacionalizacaoService; |
124 | 126 | ||
125 | - private Dominio idioma; | 127 | + @Autowired |
128 | + private RascunhoService rascunhoService; | ||
126 | 129 | ||
130 | + private Dominio idioma; | ||
127 | 131 | ||
128 | @Autowired | 132 | @Autowired |
129 | public TermoReferenciaServiceImpl( TermoReferenciaDao termoReferenciaDao, @Qualifier("termoReferenciaValidator") Validator validator ) { | 133 | public TermoReferenciaServiceImpl( TermoReferenciaDao termoReferenciaDao, @Qualifier("termoReferenciaValidator") Validator validator ) { |
@@ -143,6 +147,8 @@ public class TermoReferenciaServiceImpl extends GenericServiceImpl<TermoReferenc | @@ -143,6 +147,8 @@ public class TermoReferenciaServiceImpl extends GenericServiceImpl<TermoReferenc | ||
143 | termoReferencia = (TermoReferencia) termoReferenciaDao.save(termoReferencia); | 147 | termoReferencia = (TermoReferencia) termoReferenciaDao.save(termoReferencia); |
144 | 148 | ||
145 | configurarCodigo(termoReferencia); | 149 | configurarCodigo(termoReferencia); |
150 | + | ||
151 | + rascunhoService.removeById(termoReferencia.getRascunho()); | ||
146 | 152 | ||
147 | return termoReferencia; | 153 | return termoReferencia; |
148 | } | 154 | } |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
@@ -134,10 +134,6 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C | @@ -134,10 +134,6 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C | ||
134 | $scope.contratoForm.anexosObservacoesContratoForm.$setPristine(); | 134 | $scope.contratoForm.anexosObservacoesContratoForm.$setPristine(); |
135 | }); | 135 | }); |
136 | 136 | ||
137 | -// $scope.getRascunho($scope.workspace, 201501378985); | ||
138 | -// $timeout(function(){ | ||
139 | -// $scope.contrato = JSON.parse($scope.workspace.rascunho.json); | ||
140 | -// }); | ||
141 | }; | 137 | }; |
142 | 138 | ||
143 | $scope.gerarRelatorioTermoContrato = function() { | 139 | $scope.gerarRelatorioTermoContrato = function() { |
@@ -343,6 +339,7 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C | @@ -343,6 +339,7 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C | ||
343 | $scope.setLoadingSalva(true); | 339 | $scope.setLoadingSalva(true); |
344 | 340 | ||
345 | $scope.contrato.exercicio = new Date($scope.contrato.exercicio); | 341 | $scope.contrato.exercicio = new Date($scope.contrato.exercicio); |
342 | + $scope.contrato.rascunho = $scope.workspace.rascunho.id; | ||
346 | ContratoRepository.save($scope.contrato).then(function(result) { | 343 | ContratoRepository.save($scope.contrato).then(function(result) { |
347 | 344 | ||
348 | $scope.contrato = result.originalElement; | 345 | $scope.contrato = result.originalElement; |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js
@@ -121,6 +121,8 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | @@ -121,6 +121,8 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | ||
121 | $scope.atualizarListaSizeSelectRecursoMaterial(); | 121 | $scope.atualizarListaSizeSelectRecursoMaterial(); |
122 | $scope.atualizarListaSizeSelectRecursoHumano(); | 122 | $scope.atualizarListaSizeSelectRecursoHumano(); |
123 | $scope.atualizarListaSizeSelectAcaoContigencia(); | 123 | $scope.atualizarListaSizeSelectAcaoContigencia(); |
124 | + | ||
125 | + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.estudoTecnico, true); | ||
124 | $timeout(function() { | 126 | $timeout(function() { |
125 | $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false; | 127 | $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false; |
126 | $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false; | 128 | $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false; |
@@ -136,6 +138,17 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | @@ -136,6 +138,17 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | ||
136 | }); | 138 | }); |
137 | }; | 139 | }; |
138 | 140 | ||
141 | + $scope.setRascunho = function(rascunho){ | ||
142 | + | ||
143 | + if (rascunho) { | ||
144 | + $scope.estudoTecnico = rascunho; | ||
145 | + } | ||
146 | + $scope.workspace.objetoScope = $scope.estudoTecnico; | ||
147 | + $scope.startTimerIntervalSaveDraft($scope.workspace); | ||
148 | + $scope.edit = true; | ||
149 | + $scope.setLoading(false); | ||
150 | + }; | ||
151 | + | ||
139 | $scope.visualizarEditar = function(idEstudoTecnico, edit) { | 152 | $scope.visualizarEditar = function(idEstudoTecnico, edit) { |
140 | $scope.resetForm(); | 153 | $scope.resetForm(); |
141 | $scope.setLoadingGet(true); | 154 | $scope.setLoadingGet(true); |
@@ -199,6 +212,7 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | @@ -199,6 +212,7 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository | ||
199 | } | 212 | } |
200 | }); | 213 | }); |
201 | 214 | ||
215 | + $scope.estudoTecnico.rascunho = $scope.workspace.rascunho.id; | ||
202 | EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) { | 216 | EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) { |
203 | 217 | ||
204 | $scope.estudoTecnico = result.originalElement; | 218 | $scope.estudoTecnico = result.originalElement; |
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js
@@ -18,348 +18,357 @@ citApp.controller('TermoReferenciaController', ['$scope', | @@ -18,348 +18,357 @@ citApp.controller('TermoReferenciaController', ['$scope', | ||
18 | '$filter', | 18 | '$filter', |
19 | 'EventoRegistroNaoConformidadeRepository', | 19 | 'EventoRegistroNaoConformidadeRepository', |
20 | function TermoReferenciaController($scope, | 20 | function TermoReferenciaController($scope, |
21 | - TermoReferenciaRepository, | ||
22 | - DominioRepository, | ||
23 | - EstudoTecnicoRequisitoNegocioRepository, | ||
24 | - EstudoTecnicoBemServicoSolucaoRepository, | ||
25 | - EstudoTecnicoRepository, | ||
26 | - ConfiguracaoRepository, | ||
27 | - ParceiroRepository, | ||
28 | - EstudoTecnicoBeneficioEsperadoRepository, | ||
29 | - TermoReferenciaDetalhamentoSolucaoRepository, | ||
30 | - TermoReferenciaPenalidadeRepository, | ||
31 | - TermoReferenciaSancaoRepository, | ||
32 | - FileUploader, | ||
33 | - $translate, | ||
34 | - $timeout, | ||
35 | - $filter, | ||
36 | - EventoRegistroNaoConformidadeRepository) { | ||
37 | - $scope.termoReferencia = { | ||
38 | - estudoTecnico : {}, | ||
39 | - detalhamentosSolucoes : [], | ||
40 | - penalidades : [], | ||
41 | - sancoes : [], | ||
42 | - observacoes : [], | ||
43 | - documentos : [], | ||
44 | - deveresContratante : "", | ||
45 | - deveresContratada : "", | ||
46 | - deveresOrgaoRegistroPreco : "", | ||
47 | - mecanismoComunicacao : "", | ||
48 | - integrantesEstudoTecnico : {} | ||
49 | - }; | ||
50 | - | ||
51 | - $scope.listaJustificativaContratacao = []; | ||
52 | - $scope.listaBeneficiosEsperados = []; | ||
53 | - $scope.listEtBensServicos = []; | ||
54 | - $scope.papeis = ''; | ||
55 | - | ||
56 | - $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; | ||
57 | - $scope.editDetalhamento = false; | ||
58 | - $scope.editPenalidade = false; | ||
59 | - $scope.editSancao = false; | ||
60 | - | ||
61 | - //Dados da tabela de Justificativa de Contratacao | ||
62 | - $scope.headers = [{ | ||
63 | - title : $translate.instant('LABEL.NECESSIDADE_NEGOCIO'), | ||
64 | - value : 'objetivoEstrategicoNecessidade.descricao' | ||
65 | - },{ | ||
66 | - title : $translate.instant('LABEL.JUSTIFICATIVA'), | ||
67 | - value : 'justificativaNecessidade' | ||
68 | - }]; | ||
69 | - | ||
70 | - $scope.fields = [ 'id', 'objetivoEstrategicoNecessidade.descricao', 'justificativaNecessidade']; | ||
71 | - | ||
72 | - $scope.filters = [ { | ||
73 | - type : 'string', | ||
74 | - field : 'objetivoEstrategicoNecessidade.descricao' | ||
75 | - },{ | ||
76 | - type : 'string', | ||
77 | - field : 'justificativaNecessidade', | ||
78 | - },{ | ||
79 | - type: 'numeric', | ||
80 | - field: 'estudoTecnico.id', | ||
81 | - value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0 ) | ||
82 | - }]; | ||
83 | - | ||
84 | - $scope.filterCriteria = { | ||
85 | - start : 1, | ||
86 | - dir : 'asc', | ||
87 | - sort : 'id', | ||
88 | - limit : 10, | ||
89 | - }; | ||
90 | - | ||
91 | - //Dados da tabela de Beneficios Esperados | ||
92 | - $scope.headersBeneficios = [{ | ||
93 | - title : $translate.instant('LABEL.BENEFICIO'), | ||
94 | - value : 'beneficioEsperado' | ||
95 | - },{ | ||
96 | - title : $translate.instant('LABEL.DESCRICAO'), | ||
97 | - value : 'descricaoBeneficioEsperado' | ||
98 | - }]; | ||
99 | - | ||
100 | - $scope.fieldsBeneficios = [ 'id', 'beneficioEsperado', 'descricaoBeneficioEsperado']; | ||
101 | - | ||
102 | - $scope.filtersBeneficios = [ { | ||
103 | - type : 'string', | ||
104 | - field : 'beneficioEsperado' | ||
105 | - },{ | ||
106 | - type : 'string', | ||
107 | - field : 'descricaoBeneficioEsperado', | ||
108 | - },{ | ||
109 | - type: 'numeric', | ||
110 | - field: 'estudoTecnico.id', | ||
111 | - value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0) | ||
112 | - }]; | ||
113 | - | ||
114 | - $scope.filterCriteriaBeneficios = { | ||
115 | - start : 1, | ||
116 | - dir : 'asc', | ||
117 | - sort : 'id', | ||
118 | - limit : 10, | ||
119 | - }; | ||
120 | - | ||
121 | - //#####################DOMINIOS########################### | ||
122 | - | ||
123 | - DominioRepository.findAllDominio('tipoFormaPagamento').then(function(result) { | ||
124 | - $scope.dominiosTiposFormaPagamento = result; | ||
125 | - }); | ||
126 | - | ||
127 | - DominioRepository.findAllDominio('tipoEmpreitada').then(function(result) { | ||
128 | - $scope.dominiosEmpreitada = result; | ||
129 | - }); | ||
130 | - | ||
131 | - DominioRepository.findAllDominio('tipoAdjudicacaoObjeto').then(function(result) { | ||
132 | - $scope.dominiosAdjudicacao = result; | ||
133 | - }); | ||
134 | - | ||
135 | - DominioRepository.findAllDominio('tipoModalidadeContrato').then(function(result) { | ||
136 | - $scope.dominiosModalidade = result; | ||
137 | - }); | ||
138 | - | ||
139 | - DominioRepository.findAllDominio('tipoNotificacaoContratoSancao').then(function(result) { | ||
140 | - $scope.dominioTiposSancaoList = result; | ||
141 | - }); | ||
142 | - //##########################AUTOCOMPLETES########################################### | ||
143 | - | ||
144 | - $scope.findBemServicoSolucao = function (value){ | ||
145 | - return EstudoTecnicoBemServicoSolucaoRepository.listarBensServicosPorNome(value).then(function(result) { | ||
146 | - return result; | ||
147 | - }); | ||
148 | - }; | ||
149 | - | ||
150 | - $scope.findFornecedor = function(value){ | ||
151 | - return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'] , value).then(function(result) { | ||
152 | - return result; | ||
153 | - }); | ||
154 | - }; | ||
155 | - | ||
156 | - $scope.findOrgaoExterno = function(value){ | ||
157 | - return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { | ||
158 | - return result; | ||
159 | - }); | ||
160 | - }; | ||
161 | - | ||
162 | - $scope.findEstudoTecnico = function(value){ | ||
163 | - return EstudoTecnicoRepository.listarEstudosPorCodigo(value).then(function(result) { | ||
164 | - return result; | ||
165 | - }); | ||
166 | - }; | ||
167 | - | ||
168 | - $scope.atualizaInformacoesIntegrantesEstudoTecnico = function (item){ | ||
169 | - | ||
170 | - $scope.termoReferencia.integrantesEstudoTecnico = { | ||
171 | - integranteTecnico : item.integranteTecnico.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteTecnico.matricula, | ||
172 | - integranteAdministrativo : item.integranteAdministrativo.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteAdministrativo.matricula, | ||
173 | - integranteRequisitante : item.integranteRequisitante.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteRequisitante.matricula | ||
174 | - }; | ||
175 | - }; | ||
176 | - | ||
177 | - // Metodo responsavel por limpar o auto complete de Modelo Email | ||
178 | - $scope.limparModeloEmailAutoComplete = function(value) { | ||
179 | - value = {}; | ||
180 | - }; | ||
181 | - | ||
182 | - $scope.atualizaListaJustificativasContratacao = function(value){ | ||
183 | - var listIdJustificativa = []; | ||
184 | - angular.forEach(value.etRequisitosNegocio, function(value, key){ | ||
185 | - listIdJustificativa.push(value.id); | ||
186 | - }); | ||
187 | - | ||
188 | - $scope.listaJustificativaContratacao = listIdJustificativa; | ||
189 | - }; | ||
190 | - | ||
191 | - $scope.atualizaListaBeneficiosEsperados = function(value){ | ||
192 | - var listIdBeneficios = []; | ||
193 | - angular.forEach(value.etBeneficiosEsperados, function(value, key){ | ||
194 | - listIdBeneficios.push(value.id); | ||
195 | - }); | ||
196 | - | ||
197 | - $scope.listaBeneficiosEsperados = listIdBeneficios; | ||
198 | - }; | ||
199 | - | ||
200 | - $scope.atualizaListaEtBensServicos = function(value){ | ||
201 | - if (!value){ | ||
202 | - value = $scope.termoReferencia.estudoTecnico; | ||
203 | - } | ||
204 | - $scope.listEtBensServicos = $filter('idNotEqualObj')(value.etBensServicosSolucoes, $scope.termoReferencia.detalhamentosSolucoes, "bemServicoSolucao"); ; | ||
205 | - }; | ||
206 | - | ||
207 | - | ||
208 | - //###################### METODOS AUXILIARES #################################### | ||
209 | - | ||
210 | - // Limpa formulario para novo cadastro | ||
211 | - $scope.resetForm = function() { | ||
212 | - $scope.termoReferencia = { | ||
213 | - detalhamentosSolucoes : [], | ||
214 | - penalidades : [], | ||
215 | - sancoes : [], | ||
216 | - observacoes : [], | ||
217 | - documentos : [], | ||
218 | - deveresContratante : "", | ||
219 | - deveresContratada : "", | ||
220 | - deveresOrgaoRegistroPreco : "", | ||
221 | - mecanismoComunicacao : "" | ||
222 | - }; | ||
223 | - $scope.listaJustificativaContratacao = []; | ||
224 | - $scope.listaBeneficiosEsperados = []; | ||
225 | - $scope.listEtBensServicos = []; | ||
226 | - $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; | ||
227 | - $scope.papeis = ''; | ||
228 | - | ||
229 | - $scope.penalidade = {}; | ||
230 | - $scope.sancao = {}; | ||
231 | - | ||
232 | - $scope.edit = true; | ||
233 | - $scope.pgEdit = true; | ||
234 | - $scope.editDetalhamento = false; | ||
235 | - $scope.editPenalidade = false; | ||
236 | - $scope.editSancao = false; | ||
237 | - $scope.step = 0; | ||
238 | - | ||
239 | - $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.termoReferencia, true); | ||
240 | - | ||
241 | - $timeout(function(){ | ||
242 | - $scope.termoReferenciaForm.$submitted = false; | ||
243 | - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = false; | ||
244 | - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = false; | ||
245 | - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = false; | ||
246 | - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = false; | ||
247 | - $scope.termoReferenciaForm.sancoesForm.$submitted = false; | ||
248 | - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = false; | ||
249 | - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = false; | ||
250 | - | ||
251 | - $scope.termoReferenciaForm.$setPristine(); | ||
252 | - $scope.termoReferenciaForm.equipeContratacaoForm.$setPristine(); | ||
253 | - $scope.termoReferenciaForm.justificativaContratacaoForm.$setPristine(); | ||
254 | - $scope.termoReferenciaForm.especificacoesTecnicasForm.$setPristine(); | ||
255 | - $scope.termoReferenciaForm.modeloGestaoForm.$setPristine(); | ||
256 | - $scope.termoReferenciaForm.sancoesForm.$setPristine(); | ||
257 | - $scope.termoReferenciaForm.criteriosSelecaoForm.$setPristine(); | ||
258 | - $scope.termoReferenciaForm.anexosObservacoesForm.$setPristine(); | ||
259 | - }); | ||
260 | - | ||
261 | - createTemplates(); | ||
262 | - $scope.getConfiguracoesTemplate(); | ||
263 | - $scope.preenchePapeis(); | ||
264 | - $scope.carregarValoresPadrao(); | ||
265 | - $scope.atualizarListaSizeSelect(); | ||
266 | - $scope.atualizarListaSizeSelectPenalidade(); | ||
267 | - $scope.atualizarListaSizeSelectSancao(); | ||
268 | - | ||
269 | - }; | ||
270 | - | ||
271 | - | ||
272 | - | ||
273 | - // Atualiza pagina de pesquisa | ||
274 | - $scope.atualizaPaginaPesquisa = function () { | ||
275 | - angular.element('#searchTermoReferencia').scope().fetchResult(); | ||
276 | - }; | ||
277 | - | ||
278 | - $scope.openModalDetalhamentoSolucao = function() { | ||
279 | - | ||
280 | - $scope.termoReferenciaDetalhamentoSolucao = {}; | ||
281 | - $scope.editDetalhamento = true; | ||
282 | -// $scope.atualizaListaEtBensServicos(); | ||
283 | - $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; | ||
284 | - | ||
285 | - $timeout(function() { | ||
286 | - $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); | ||
287 | - }); | ||
288 | - }; | ||
289 | - | ||
290 | - $scope.openModalPenalidade = function() { | ||
291 | - | ||
292 | - $scope.penalidade = {}; | ||
293 | - $scope.editPenalidade = true; | ||
294 | - | ||
295 | - $timeout(function() { | ||
296 | - $scope.$openModal('modal-penalidade.html', 'lg'); | ||
297 | - }); | ||
298 | - }; | ||
299 | - | ||
300 | - $scope.openModalSancao = function() { | ||
301 | - | ||
302 | - $scope.sancao = {}; | ||
303 | - $scope.editSancao = true; | ||
304 | - | ||
305 | - $timeout(function() { | ||
306 | - $scope.$openModal('modal-sancao.html', 'lg'); | ||
307 | - }); | ||
308 | - }; | ||
309 | - | ||
310 | - $scope.uploader = new FileUploader({ | ||
311 | - autoUpload: false, | ||
312 | - queueLimit: 1, | ||
313 | - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' | ||
314 | - }); | ||
315 | - | ||
316 | - // metodo utilizado para percorrer a lista de documentos persistidos e verificar com a lista de documentos temporarios para verificacao de qual anexo pertence a qual documento | ||
317 | - var salvarListaDocumentos = function(termo) { | ||
318 | - | ||
319 | - angular.forEach($scope.termoReferencia.documentos, function(documentoSalvo, key) { | ||
320 | - // verifica se a entidade documento foi salva | ||
321 | - if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { | ||
322 | - // percorre todos os documentos temporarios para verificacao do numero do documento | ||
323 | - angular.forEach(termo.documentos, function(documentoTransient, key) { | ||
324 | - // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado | ||
325 | - if (documentoSalvo.numero === documentoTransient.numero) { | ||
326 | - //salva o anexo ao documento que tiver o mesmo numero do documento transient | ||
327 | - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); | ||
328 | - } | ||
329 | - | ||
330 | - }); | ||
331 | - | ||
332 | - } | ||
333 | - }); | ||
334 | - | ||
335 | - }; | ||
336 | - | ||
337 | - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id | ||
338 | - var salvarUpload = function(documento, uploadsDocumento) { | ||
339 | - $scope.uploader.queue = uploadsDocumento; | ||
340 | - // percorre a lista de uploads a serem enviados | ||
341 | - angular.forEach($scope.uploader.queue, function(item, key) { | ||
342 | - item.url = item.url + documento.id; | ||
343 | - }); | ||
344 | - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { | ||
345 | - // realiza o upload se existir no minimo um arquivo para upload | ||
346 | - $scope.uploader.uploadAll(); | ||
347 | - } | ||
348 | - }; | ||
349 | - | ||
350 | - // ADICIONAR Detalhamento Solucao | ||
351 | - $scope.addDetalhamentoSolucao = function(formDetalhamento, continuarEditando) { | 21 | + TermoReferenciaRepository, |
22 | + DominioRepository, | ||
23 | + EstudoTecnicoRequisitoNegocioRepository, | ||
24 | + EstudoTecnicoBemServicoSolucaoRepository, | ||
25 | + EstudoTecnicoRepository, | ||
26 | + ConfiguracaoRepository, | ||
27 | + ParceiroRepository, | ||
28 | + EstudoTecnicoBeneficioEsperadoRepository, | ||
29 | + TermoReferenciaDetalhamentoSolucaoRepository, | ||
30 | + TermoReferenciaPenalidadeRepository, | ||
31 | + TermoReferenciaSancaoRepository, | ||
32 | + FileUploader, | ||
33 | + $translate, | ||
34 | + $timeout, | ||
35 | + $filter, | ||
36 | + EventoRegistroNaoConformidadeRepository) { | ||
37 | + $scope.termoReferencia = { | ||
38 | + estudoTecnico : {}, | ||
39 | + detalhamentosSolucoes : [], | ||
40 | + penalidades : [], | ||
41 | + sancoes : [], | ||
42 | + observacoes : [], | ||
43 | + documentos : [], | ||
44 | + deveresContratante : "", | ||
45 | + deveresContratada : "", | ||
46 | + deveresOrgaoRegistroPreco : "", | ||
47 | + mecanismoComunicacao : "", | ||
48 | + integrantesEstudoTecnico : {} | ||
49 | + }; | ||
50 | + | ||
51 | + $scope.listaJustificativaContratacao = []; | ||
52 | + $scope.listaBeneficiosEsperados = []; | ||
53 | + $scope.listEtBensServicos = []; | ||
54 | + $scope.papeis = ''; | ||
55 | + | ||
56 | + $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; | ||
57 | + $scope.editDetalhamento = false; | ||
58 | + $scope.editPenalidade = false; | ||
59 | + $scope.editSancao = false; | ||
60 | + | ||
61 | + //Dados da tabela de Justificativa de Contratacao | ||
62 | + $scope.headers = [{ | ||
63 | + title : $translate.instant('LABEL.NECESSIDADE_NEGOCIO'), | ||
64 | + value : 'objetivoEstrategicoNecessidade.descricao' | ||
65 | + },{ | ||
66 | + title : $translate.instant('LABEL.JUSTIFICATIVA'), | ||
67 | + value : 'justificativaNecessidade' | ||
68 | + }]; | ||
69 | + | ||
70 | + $scope.fields = [ 'id', 'objetivoEstrategicoNecessidade.descricao', 'justificativaNecessidade']; | ||
71 | + | ||
72 | + $scope.filters = [ { | ||
73 | + type : 'string', | ||
74 | + field : 'objetivoEstrategicoNecessidade.descricao' | ||
75 | + },{ | ||
76 | + type : 'string', | ||
77 | + field : 'justificativaNecessidade', | ||
78 | + },{ | ||
79 | + type: 'numeric', | ||
80 | + field: 'estudoTecnico.id', | ||
81 | + value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0 ) | ||
82 | + }]; | ||
83 | + | ||
84 | + $scope.filterCriteria = { | ||
85 | + start : 1, | ||
86 | + dir : 'asc', | ||
87 | + sort : 'id', | ||
88 | + limit : 10, | ||
89 | + }; | ||
90 | + | ||
91 | + //Dados da tabela de Beneficios Esperados | ||
92 | + $scope.headersBeneficios = [{ | ||
93 | + title : $translate.instant('LABEL.BENEFICIO'), | ||
94 | + value : 'beneficioEsperado' | ||
95 | + },{ | ||
96 | + title : $translate.instant('LABEL.DESCRICAO'), | ||
97 | + value : 'descricaoBeneficioEsperado' | ||
98 | + }]; | ||
99 | + | ||
100 | + $scope.fieldsBeneficios = [ 'id', 'beneficioEsperado', 'descricaoBeneficioEsperado']; | ||
101 | + | ||
102 | + $scope.filtersBeneficios = [ { | ||
103 | + type : 'string', | ||
104 | + field : 'beneficioEsperado' | ||
105 | + },{ | ||
106 | + type : 'string', | ||
107 | + field : 'descricaoBeneficioEsperado', | ||
108 | + },{ | ||
109 | + type: 'numeric', | ||
110 | + field: 'estudoTecnico.id', | ||
111 | + value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0) | ||
112 | + }]; | ||
113 | + | ||
114 | + $scope.filterCriteriaBeneficios = { | ||
115 | + start : 1, | ||
116 | + dir : 'asc', | ||
117 | + sort : 'id', | ||
118 | + limit : 10, | ||
119 | + }; | ||
120 | + | ||
121 | + //#####################DOMINIOS########################### | ||
122 | + | ||
123 | + DominioRepository.findAllDominio('tipoFormaPagamento').then(function(result) { | ||
124 | + $scope.dominiosTiposFormaPagamento = result; | ||
125 | + }); | ||
126 | + | ||
127 | + DominioRepository.findAllDominio('tipoEmpreitada').then(function(result) { | ||
128 | + $scope.dominiosEmpreitada = result; | ||
129 | + }); | ||
130 | + | ||
131 | + DominioRepository.findAllDominio('tipoAdjudicacaoObjeto').then(function(result) { | ||
132 | + $scope.dominiosAdjudicacao = result; | ||
133 | + }); | ||
134 | + | ||
135 | + DominioRepository.findAllDominio('tipoModalidadeContrato').then(function(result) { | ||
136 | + $scope.dominiosModalidade = result; | ||
137 | + }); | ||
138 | + | ||
139 | + DominioRepository.findAllDominio('tipoNotificacaoContratoSancao').then(function(result) { | ||
140 | + $scope.dominioTiposSancaoList = result; | ||
141 | + }); | ||
142 | + //##########################AUTOCOMPLETES########################################### | ||
143 | + | ||
144 | + $scope.findBemServicoSolucao = function (value){ | ||
145 | + return EstudoTecnicoBemServicoSolucaoRepository.listarBensServicosPorNome(value).then(function(result) { | ||
146 | + return result; | ||
147 | + }); | ||
148 | + }; | ||
149 | + | ||
150 | + $scope.findFornecedor = function(value){ | ||
151 | + return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'] , value).then(function(result) { | ||
152 | + return result; | ||
153 | + }); | ||
154 | + }; | ||
155 | + | ||
156 | + $scope.findOrgaoExterno = function(value){ | ||
157 | + return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { | ||
158 | + return result; | ||
159 | + }); | ||
160 | + }; | ||
161 | + | ||
162 | + $scope.findEstudoTecnico = function(value){ | ||
163 | + return EstudoTecnicoRepository.listarEstudosPorCodigo(value).then(function(result) { | ||
164 | + return result; | ||
165 | + }); | ||
166 | + }; | ||
167 | + | ||
168 | + $scope.atualizaInformacoesIntegrantesEstudoTecnico = function (item){ | ||
169 | + | ||
170 | + $scope.termoReferencia.integrantesEstudoTecnico = { | ||
171 | + integranteTecnico : item.integranteTecnico.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteTecnico.matricula, | ||
172 | + integranteAdministrativo : item.integranteAdministrativo.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteAdministrativo.matricula, | ||
173 | + integranteRequisitante : item.integranteRequisitante.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteRequisitante.matricula | ||
174 | + }; | ||
175 | + }; | ||
176 | + | ||
177 | + // Metodo responsavel por limpar o auto complete de Modelo Email | ||
178 | + $scope.limparModeloEmailAutoComplete = function(value) { | ||
179 | + value = {}; | ||
180 | + }; | ||
181 | + | ||
182 | + $scope.atualizaListaJustificativasContratacao = function(value){ | ||
183 | + var listIdJustificativa = []; | ||
184 | + angular.forEach(value.etRequisitosNegocio, function(value, key){ | ||
185 | + listIdJustificativa.push(value.id); | ||
186 | + }); | ||
187 | + | ||
188 | + $scope.listaJustificativaContratacao = listIdJustificativa; | ||
189 | + }; | ||
190 | + | ||
191 | + $scope.atualizaListaBeneficiosEsperados = function(value){ | ||
192 | + var listIdBeneficios = []; | ||
193 | + angular.forEach(value.etBeneficiosEsperados, function(value, key){ | ||
194 | + listIdBeneficios.push(value.id); | ||
195 | + }); | ||
196 | + | ||
197 | + $scope.listaBeneficiosEsperados = listIdBeneficios; | ||
198 | + }; | ||
199 | + | ||
200 | + $scope.atualizaListaEtBensServicos = function(value){ | ||
201 | + if (!value){ | ||
202 | + value = $scope.termoReferencia.estudoTecnico; | ||
203 | + } | ||
204 | + $scope.listEtBensServicos = $filter('idNotEqualObj')(value.etBensServicosSolucoes, $scope.termoReferencia.detalhamentosSolucoes, "bemServicoSolucao"); ; | ||
205 | + }; | ||
206 | + | ||
207 | + | ||
208 | + //###################### METODOS AUXILIARES #################################### | ||
209 | + | ||
210 | + // Limpa formulario para novo cadastro | ||
211 | + $scope.resetForm = function() { | ||
212 | + $scope.termoReferencia = { | ||
213 | + detalhamentosSolucoes : [], | ||
214 | + penalidades : [], | ||
215 | + sancoes : [], | ||
216 | + observacoes : [], | ||
217 | + documentos : [], | ||
218 | + deveresContratante : "", | ||
219 | + deveresContratada : "", | ||
220 | + deveresOrgaoRegistroPreco : "", | ||
221 | + mecanismoComunicacao : "" | ||
222 | + }; | ||
223 | + $scope.listaJustificativaContratacao = []; | ||
224 | + $scope.listaBeneficiosEsperados = []; | ||
225 | + $scope.listEtBensServicos = []; | ||
226 | + $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; | ||
227 | + $scope.papeis = ''; | ||
228 | + | ||
229 | + $scope.penalidade = {}; | ||
230 | + $scope.sancao = {}; | ||
231 | + | ||
232 | + $scope.edit = true; | ||
233 | + $scope.pgEdit = true; | ||
234 | + $scope.editDetalhamento = false; | ||
235 | + $scope.editPenalidade = false; | ||
236 | + $scope.editSancao = false; | ||
237 | + $scope.step = 0; | ||
238 | + | ||
239 | + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.termoReferencia, true); | ||
240 | + $timeout(function(){ | ||
241 | + $scope.termoReferenciaForm.$submitted = false; | ||
242 | + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = false; | ||
243 | + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = false; | ||
244 | + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = false; | ||
245 | + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = false; | ||
246 | + $scope.termoReferenciaForm.sancoesForm.$submitted = false; | ||
247 | + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = false; | ||
248 | + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = false; | ||
249 | + | ||
250 | + $scope.termoReferenciaForm.$setPristine(); | ||
251 | + $scope.termoReferenciaForm.equipeContratacaoForm.$setPristine(); | ||
252 | + $scope.termoReferenciaForm.justificativaContratacaoForm.$setPristine(); | ||
253 | + $scope.termoReferenciaForm.especificacoesTecnicasForm.$setPristine(); | ||
254 | + $scope.termoReferenciaForm.modeloGestaoForm.$setPristine(); | ||
255 | + $scope.termoReferenciaForm.sancoesForm.$setPristine(); | ||
256 | + $scope.termoReferenciaForm.criteriosSelecaoForm.$setPristine(); | ||
257 | + $scope.termoReferenciaForm.anexosObservacoesForm.$setPristine(); | ||
258 | + }); | ||
259 | + | ||
260 | + createTemplates(); | ||
261 | + $scope.getConfiguracoesTemplate(); | ||
262 | + $scope.preenchePapeis(); | ||
263 | + $scope.carregarValoresPadrao(); | ||
264 | + $scope.atualizarListaSizeSelect(); | ||
265 | + $scope.atualizarListaSizeSelectPenalidade(); | ||
266 | + $scope.atualizarListaSizeSelectSancao(); | ||
267 | + | ||
268 | + }; | ||
269 | + | ||
270 | + $scope.setRascunho = function(rascunho){ | ||
271 | + | ||
272 | + if (rascunho) { | ||
273 | + $scope.termoReferencia = rascunho; | ||
274 | + } | ||
275 | + $scope.workspace.objetoScope = $scope.termoReferencia; | ||
276 | + $scope.startTimerIntervalSaveDraft($scope.workspace); | ||
277 | + $scope.edit = true; | ||
278 | + $scope.setLoading(false); | ||
279 | + }; | ||
280 | + | ||
281 | + | ||
282 | + // Atualiza pagina de pesquisa | ||
283 | + $scope.atualizaPaginaPesquisa = function () { | ||
284 | + angular.element('#searchTermoReferencia').scope().fetchResult(); | ||
285 | + }; | ||
286 | + | ||
287 | + $scope.openModalDetalhamentoSolucao = function() { | ||
288 | + | ||
289 | + $scope.termoReferenciaDetalhamentoSolucao = {}; | ||
290 | + $scope.editDetalhamento = true; | ||
291 | +// $scope.atualizaListaEtBensServicos(); | ||
292 | + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; | ||
293 | + | ||
294 | + $timeout(function() { | ||
295 | + $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); | ||
296 | + }); | ||
297 | + }; | ||
298 | + | ||
299 | + $scope.openModalPenalidade = function() { | ||
300 | + | ||
301 | + $scope.penalidade = {}; | ||
302 | + $scope.editPenalidade = true; | ||
303 | + | ||
304 | + $timeout(function() { | ||
305 | + $scope.$openModal('modal-penalidade.html', 'lg'); | ||
306 | + }); | ||
307 | + }; | ||
308 | + | ||
309 | + $scope.openModalSancao = function() { | ||
310 | + | ||
311 | + $scope.sancao = {}; | ||
312 | + $scope.editSancao = true; | ||
313 | + | ||
314 | + $timeout(function() { | ||
315 | + $scope.$openModal('modal-sancao.html', 'lg'); | ||
316 | + }); | ||
317 | + }; | ||
318 | + | ||
319 | + $scope.uploader = new FileUploader({ | ||
320 | + autoUpload: false, | ||
321 | + queueLimit: 1, | ||
322 | + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' | ||
323 | + }); | ||
324 | + | ||
325 | + // metodo utilizado para percorrer a lista de documentos persistidos e verificar com a lista de documentos temporarios para verificacao de qual anexo pertence a qual documento | ||
326 | + var salvarListaDocumentos = function(termo) { | ||
327 | + | ||
328 | + angular.forEach($scope.termoReferencia.documentos, function(documentoSalvo, key) { | ||
329 | + // verifica se a entidade documento foi salva | ||
330 | + if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { | ||
331 | + // percorre todos os documentos temporarios para verificacao do numero do documento | ||
332 | + angular.forEach(termo.documentos, function(documentoTransient, key) { | ||
333 | + // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado | ||
334 | + if (documentoSalvo.numero === documentoTransient.numero) { | ||
335 | + //salva o anexo ao documento que tiver o mesmo numero do documento transient | ||
336 | + salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); | ||
337 | + } | ||
338 | + | ||
339 | + }); | ||
340 | + | ||
341 | + } | ||
342 | + }); | ||
343 | + | ||
344 | + }; | ||
345 | + | ||
346 | + // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id | ||
347 | + var salvarUpload = function(documento, uploadsDocumento) { | ||
348 | + $scope.uploader.queue = uploadsDocumento; | ||
349 | + // percorre a lista de uploads a serem enviados | ||
350 | + angular.forEach($scope.uploader.queue, function(item, key) { | ||
351 | + item.url = item.url + documento.id; | ||
352 | + }); | ||
353 | + if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { | ||
354 | + // realiza o upload se existir no minimo um arquivo para upload | ||
355 | + $scope.uploader.uploadAll(); | ||
356 | + } | ||
357 | + }; | ||
358 | + | ||
359 | + // ADICIONAR Detalhamento Solucao | ||
360 | + $scope.addDetalhamentoSolucao = function(formDetalhamento, continuarEditando) { | ||
352 | 361 | ||
353 | var detalhe = $scope.termoReferenciaDetalhamentoSolucao; | 362 | var detalhe = $scope.termoReferenciaDetalhamentoSolucao; |
354 | formDetalhamento.$submitted = true; | 363 | formDetalhamento.$submitted = true; |
355 | - | 364 | + |
356 | //verifica se o formulario esta valido para salvar | 365 | //verifica se o formulario esta valido para salvar |
357 | if (formDetalhamento.$invalid) { | 366 | if (formDetalhamento.$invalid) { |
358 | //Mensagem de erro de campos obrigatorios nao preenchidos | 367 | //Mensagem de erro de campos obrigatorios nao preenchidos |
359 | $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | 368 | $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); |
360 | return; | 369 | return; |
361 | } | 370 | } |
362 | - | 371 | + |
363 | if (detalhe.formaPagamento && detalhe.formaPagamento.codigo===1){ | 372 | if (detalhe.formaPagamento && detalhe.formaPagamento.codigo===1){ |
364 | $scope.termoReferenciaDetalhamentoSolucao.numeroParcelas = null; | 373 | $scope.termoReferenciaDetalhamentoSolucao.numeroParcelas = null; |
365 | } | 374 | } |
@@ -372,730 +381,731 @@ citApp.controller('TermoReferenciaController', ['$scope', | @@ -372,730 +381,731 @@ citApp.controller('TermoReferenciaController', ['$scope', | ||
372 | return; | 381 | return; |
373 | } | 382 | } |
374 | }); | 383 | }); |
375 | - | 384 | + |
376 | if (!isDuplicado) { | 385 | if (!isDuplicado) { |
377 | - | 386 | + |
378 | if (detalhe.$index != undefined && detalhe.$index != null) { | 387 | if (detalhe.$index != undefined && detalhe.$index != null) { |
379 | $scope.termoReferencia.detalhamentosSolucoes[detalhe.$index] = detalhe; | 388 | $scope.termoReferencia.detalhamentosSolucoes[detalhe.$index] = detalhe; |
380 | } else { | 389 | } else { |
381 | $scope.termoReferencia.detalhamentosSolucoes.push(detalhe); | 390 | $scope.termoReferencia.detalhamentosSolucoes.push(detalhe); |
382 | } | 391 | } |
383 | - | 392 | + |
384 | if(continuarEditando){ | 393 | if(continuarEditando){ |
385 | formDetalhamento.$submitted = false; | 394 | formDetalhamento.$submitted = false; |
386 | formDetalhamento.$setPristine(); | 395 | formDetalhamento.$setPristine(); |
387 | $scope.termoReferenciaDetalhamentoSolucao = {}; | 396 | $scope.termoReferenciaDetalhamentoSolucao = {}; |
388 | - $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; | 397 | + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; |
389 | }else{ | 398 | }else{ |
390 | $scope.$modalInstance.dismiss('cancel'); | 399 | $scope.$modalInstance.dismiss('cancel'); |
391 | } | 400 | } |
392 | $scope.atualizarListaSizeSelect(); | 401 | $scope.atualizarListaSizeSelect(); |
393 | } | 402 | } |
394 | - | 403 | + |
395 | $scope.setLoadingSalva(false); | 404 | $scope.setLoadingSalva(false); |
396 | - | ||
397 | - }; | ||
398 | - | ||
399 | - // ADICIONAR Penalidade | ||
400 | - $scope.addPenalidade = function(formPenalidade, continuarEditando) { | ||
401 | - | ||
402 | - var penalid = $scope.penalidade; | ||
403 | - | ||
404 | - formPenalidade.$submitted = true; | ||
405 | - | ||
406 | - //verifica se o formulario esta valido para salvar | ||
407 | - if (formPenalidade.$invalid) { | ||
408 | - //Mensagem de erro de campos obrigatorios nao preenchidos | ||
409 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
410 | - return; | ||
411 | - } | ||
412 | - | ||
413 | - $scope.setLoadingSalva(true); | ||
414 | - | ||
415 | - if (penalid.$index != undefined && penalid.$index != null) { | ||
416 | - $scope.termoReferencia.penalidades[penalid.$index] = penalid; | ||
417 | - } else { | ||
418 | - $scope.termoReferencia.penalidades.push(penalid); | ||
419 | - } | ||
420 | - | ||
421 | - $scope.setLoadingSalva(false); | ||
422 | - | ||
423 | - if(continuarEditando){ | ||
424 | - formPenalidade.$submitted = false; | ||
425 | - formPenalidade.$setPristine(); | ||
426 | - $scope.penalidade = {}; | ||
427 | - }else{ | ||
428 | - $scope.$modalInstance.dismiss('cancel'); | ||
429 | - } | 405 | + |
406 | + }; | ||
407 | + | ||
408 | + // ADICIONAR Penalidade | ||
409 | + $scope.addPenalidade = function(formPenalidade, continuarEditando) { | ||
410 | + | ||
411 | + var penalid = $scope.penalidade; | ||
412 | + | ||
413 | + formPenalidade.$submitted = true; | ||
414 | + | ||
415 | + //verifica se o formulario esta valido para salvar | ||
416 | + if (formPenalidade.$invalid) { | ||
417 | + //Mensagem de erro de campos obrigatorios nao preenchidos | ||
418 | + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
419 | + return; | ||
420 | + } | ||
421 | + | ||
422 | + $scope.setLoadingSalva(true); | ||
423 | + | ||
424 | + if (penalid.$index != undefined && penalid.$index != null) { | ||
425 | + $scope.termoReferencia.penalidades[penalid.$index] = penalid; | ||
426 | + } else { | ||
427 | + $scope.termoReferencia.penalidades.push(penalid); | ||
428 | + } | ||
429 | + | ||
430 | + $scope.setLoadingSalva(false); | ||
431 | + | ||
432 | + if(continuarEditando){ | ||
433 | + formPenalidade.$submitted = false; | ||
434 | + formPenalidade.$setPristine(); | ||
435 | + $scope.penalidade = {}; | ||
436 | + }else{ | ||
437 | + $scope.$modalInstance.dismiss('cancel'); | ||
438 | + } | ||
430 | $scope.atualizarListaSizeSelectPenalidade(); | 439 | $scope.atualizarListaSizeSelectPenalidade(); |
431 | - }; | ||
432 | - | ||
433 | - // ADICIONAR Penalidade | ||
434 | - $scope.addSancao = function(formSancao, continuarEditando) { | ||
435 | - | ||
436 | - var sans = $scope.sancao; | ||
437 | - | ||
438 | - formSancao.$submitted = true; | ||
439 | - | ||
440 | - //verifica se o formulario esta valido para salvar | ||
441 | - if (formSancao.$invalid) { | ||
442 | - //Mensagem de erro de campos obrigatorios nao preenchidos | ||
443 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
444 | - return; | ||
445 | - } | ||
446 | - | ||
447 | - $scope.setLoadingSalva(true); | ||
448 | - | ||
449 | - if (sans.$index != undefined && sans.$index != null) { | ||
450 | - $scope.termoReferencia.sancoes[sans.$index] = sans; | ||
451 | - } else { | ||
452 | - $scope.termoReferencia.sancoes.push(sans); | ||
453 | - } | ||
454 | - | ||
455 | - $scope.setLoadingSalva(false); | ||
456 | - | ||
457 | - if(continuarEditando){ | ||
458 | - formSancao.$submitted = false; | ||
459 | - formSancao.$setPristine(); | ||
460 | - $scope.sancao = {}; | ||
461 | - } else { | ||
462 | - $scope.$modalInstance.dismiss('cancel'); | ||
463 | - } | ||
464 | - }; | ||
465 | - | ||
466 | - //Watch para calcular total | ||
467 | - $scope.$watch('termoReferenciaDetalhamentoSolucao.valor', function() { | ||
468 | - $timeout(function() { | ||
469 | - if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { | ||
470 | - $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; | ||
471 | - } else { | ||
472 | - if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
473 | - $scope.termoReferenciaDetalhamentoSolucao.total = null; | ||
474 | - } | ||
475 | - } | ||
476 | - }); | ||
477 | - }); | ||
478 | - | ||
479 | - //Watch para calcular total | ||
480 | - $scope.$watch('termoReferenciaDetalhamentoSolucao.quantidade', function() { | ||
481 | - $timeout(function() { | ||
482 | - if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { | ||
483 | - $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; | ||
484 | - } else { | ||
485 | - if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
486 | - $scope.termoReferenciaDetalhamentoSolucao.total = null; | ||
487 | - } | ||
488 | - } | ||
489 | - }); | ||
490 | - }); | ||
491 | - | ||
492 | - $scope.getConfiguracoesTemplate = function () { | ||
493 | - ConfiguracaoRepository.getConfiguracao($scope.usuarioLogado.organizacao.id).then(function (result) { | ||
494 | - var configTemp = result.originalElement; | ||
495 | - var parametro; | ||
496 | - for (var i = 0; i < configTemp.parametros.length; i++){ | ||
497 | - parametro = configTemp.parametros[i]; | ||
498 | - switch (parametro.chave) { | ||
499 | - case "DEVERES_RESPONSABILIDADES_CONTRATANTE" : | ||
500 | - $scope.termoReferencia.deveresContratante = parametro.valor; | ||
501 | - break; | ||
502 | - case "DEVERES_RESPONSABILIDADES_CONTRATADA" : | ||
503 | - $scope.termoReferencia.deveresContratada = parametro.valor; | ||
504 | - break; | ||
505 | - case "DEVERES_RESPONSABILIDADES_ORGAO" : | ||
506 | - $scope.termoReferencia.deveresOrgaoRegistroPreco = parametro.valor; | ||
507 | - break; | ||
508 | - case "MECANISMOS_FORMAIS_COMUNICACAO" : | ||
509 | - $scope.termoReferencia.mecanismoComunicacao = parametro.valor; | ||
510 | - break; | ||
511 | - }; | ||
512 | - }; | ||
513 | - }); | ||
514 | - }; | ||
515 | - | ||
516 | - // marca DetalhamentoSolucao | ||
517 | - $scope.checkDetalhamentoSolucao = function(index) { | ||
518 | - $timeout(function() { | ||
519 | - for (var i = 0; i < $scope.termoReferencia.detalhamentosSolucoes.length; i++) { | ||
520 | - if (i == index) { | ||
521 | - $scope.termoReferencia.detalhamentosSolucoes[i].$checked = true; | ||
522 | - } else { | ||
523 | - $scope.termoReferencia.detalhamentosSolucoes[i].$checked = false; | ||
524 | - } | ||
525 | - } | ||
526 | - $scope.atualizarListaSizeSelect(); | ||
527 | - }); | ||
528 | - }; | ||
529 | - | ||
530 | - // recupera DetalhamentoSolucao selecionada | ||
531 | - $scope.getDetalhamentoSolucaoChecked = function() { | ||
532 | - var detalhamentoSolucaoChecked = undefined; | ||
533 | - $scope.termoReferenciaDetalhamentoSolucao = {}; | ||
534 | - $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhe) { | ||
535 | - if (detalhe.$checked) { | ||
536 | - detalhamentoSolucaoChecked = detalhe; | ||
537 | - } | ||
538 | - }); | ||
539 | - | ||
540 | - return detalhamentoSolucaoChecked; | ||
541 | - }; | ||
542 | - | ||
543 | - // marca Penalidade | ||
544 | - $scope.checkPenalidade = function(index) { | ||
545 | - $timeout(function() { | ||
546 | - for (var i = 0; i < $scope.termoReferencia.penalidades.length; i++) { | ||
547 | - if (i == index) { | ||
548 | - $scope.termoReferencia.penalidades[i].$checked = true; | ||
549 | - } else { | ||
550 | - $scope.termoReferencia.penalidades[i].$checked = false; | ||
551 | - } | ||
552 | - } | ||
553 | - $scope.atualizarListaSizeSelectPenalidade(); | ||
554 | - }); | ||
555 | - }; | ||
556 | - | ||
557 | - // recupera Penalidade selecionada | ||
558 | - $scope.getPenalidadeChecked = function() { | ||
559 | - var penalidadeChecked = undefined; | ||
560 | - $scope.termoReferenciaPenalidade = {}; | ||
561 | - $scope.termoReferencia.penalidades.forEach(function(penalidade) { | ||
562 | - if (penalidade.$checked) { | ||
563 | - penalidadeChecked = penalidade; | ||
564 | - } | ||
565 | - }); | ||
566 | - | ||
567 | - return penalidadeChecked; | ||
568 | - }; | ||
569 | - | ||
570 | - // marca Sancao | ||
571 | - $scope.checkSancao = function(index) { | ||
572 | - $timeout(function() { | ||
573 | - for (var i = 0; i < $scope.termoReferencia.sancoes.length; i++) { | ||
574 | - if (i == index) { | ||
575 | - $scope.termoReferencia.sancoes[i].$checked = true; | ||
576 | - } else { | ||
577 | - $scope.termoReferencia.sancoes[i].$checked = false; | ||
578 | - } | ||
579 | - } | ||
580 | - $scope.atualizarListaSizeSelectSancao(); | ||
581 | - }); | ||
582 | - }; | ||
583 | - | ||
584 | - // recupera Sancao selecionada | ||
585 | - $scope.getSancaoChecked = function() { | ||
586 | - var sancaoChecked = undefined; | ||
587 | - $scope.termoReferenciaSancao = {}; | ||
588 | - $scope.termoReferencia.sancoes.forEach(function(sancao) { | ||
589 | - if (sancao.$checked) { | ||
590 | - sancaoChecked = sancao; | ||
591 | - } | ||
592 | - }); | ||
593 | - | ||
594 | - return sancaoChecked; | ||
595 | - }; | ||
596 | - | ||
597 | - $scope.preenchePapeis = function(){ | ||
598 | - DominioRepository.findAllDominio('tipoPapelEquipeContratos').then(function(result) { | ||
599 | - $scope.dominioPapeis = result; | ||
600 | - | ||
601 | - angular.forEach($scope.dominioPapeis, function(value, key){ | ||
602 | - $scope.papeis+= value.descricao + '\n'; | ||
603 | - }); | ||
604 | - | ||
605 | - }); | ||
606 | - | ||
607 | - }; | ||
608 | - | ||
609 | - $scope.carregarValoresPadrao = function() { | ||
610 | - DominioRepository.findAllDominioByCodigo('tipoEmpreitada', 2).then(function(result) { | ||
611 | - $scope.termoReferencia.empreitada = result.originalElement; | ||
612 | - }); | ||
613 | - | ||
614 | - DominioRepository.findAllDominioByCodigo('tipoAdjudicacaoObjeto', 2).then(function(result) { | ||
615 | - $scope.termoReferencia.adjudicacaoObjeto = result.originalElement; | ||
616 | - }); | ||
617 | - | ||
618 | - if($scope.dominioTiposSancaoList){ | ||
619 | - angular.forEach($scope.dominioTiposSancaoList, function(sancaoDominio) { | ||
620 | - var sans = {sancao : sancaoDominio.descricao, dominioTipoSancao : sancaoDominio.originalElement, descricao : $translate.instant('LABEL.DESCREVER_SANCAO')}; | ||
621 | - $scope.termoReferencia.sancoes.push(sans); | ||
622 | - }); | ||
623 | - } | ||
624 | - }; | ||
625 | - | ||
626 | - //###################### METODOS DA BARRA DE ACOES DO FORMULARIO #################################### | ||
627 | - | ||
628 | - function setFormsTermoReferenciaSubmitted(valor){ | ||
629 | - $scope.termoReferenciaForm.$submitted = valor; | ||
630 | - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = valor; | ||
631 | - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = valor; | ||
632 | - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = valor; | ||
633 | - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = valor; | ||
634 | - $scope.termoReferenciaForm.sancoesForm.$submitted = valor; | ||
635 | - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = valor; | ||
636 | - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = valor; | ||
637 | - } | ||
638 | - // SALVA O TERMO | ||
639 | - $scope.saveOrUpdate = function(){ | ||
640 | - | ||
641 | - setFormsTermoReferenciaSubmitted(true); | ||
642 | - | ||
643 | - //Vefifica se o termoReferenciaForm esta invalido, caso esteja envia um alerta para o usuario | ||
644 | - if($scope.termoReferenciaForm.$invalid){ | ||
645 | - $scope.showAlert('error', $translate.instant('MSG.MN001')); | ||
646 | - } else { | ||
647 | - var termoTemp = { | ||
648 | - documentos: [] | ||
649 | - }; | ||
650 | - | ||
651 | - // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento | ||
652 | - angular.forEach($scope.termoReferencia.documentos, function(documento, key) { | ||
653 | - if (documento.uploadsDocumento) { | ||
654 | - termoTemp.documentos.push({ | ||
655 | - uploadsDocumento: clone(documento.uploadsDocumento), | ||
656 | - numero: clone(documento.numero) | ||
657 | - }); | ||
658 | - // deleta esse atributo por causa de um erro de ciclo no json | ||
659 | - delete documento.uploadsDocumento; | ||
660 | - } | ||
661 | - }); | ||
662 | - | ||
663 | - $scope.setLoadingSalva(true); | ||
664 | - | ||
665 | - TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) { | ||
666 | - | ||
667 | - $scope.termoReferencia = result.originalElement; | ||
668 | - $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); | ||
669 | - $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); | ||
670 | - $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); | ||
671 | - | ||
672 | - $scope.setLoading(false); | ||
673 | - $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_TERMO_REFERENCIA')); | ||
674 | - // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver | ||
675 | - salvarListaDocumentos(termoTemp); | ||
676 | - setFormsTermoReferenciaSubmitted(false); | ||
677 | - }); | ||
678 | - }; | ||
679 | - }; | ||
680 | - | ||
681 | - $scope.editar = function () { | ||
682 | - if ($scope.termoReferencia.dataTermoGerado){ | ||
683 | - $scope.showAlert('warning', $translate.instant('MSG.TERMO_REFERENCIA_JA_GERADO')); | ||
684 | - $scope.setLoadingGet(false); | ||
685 | - } else { | ||
686 | - $scope.edit = true; | ||
687 | - $scope.pgEdit = true; | ||
688 | - } | ||
689 | - }; | ||
690 | - | ||
691 | - // Consulta entidade e mostra no formulario | ||
692 | - $scope.getTermo = function(idTermo, edit) { | ||
693 | - $scope.resetForm(); | ||
694 | - $scope.setLoadingGet(true); | ||
695 | - | ||
696 | - TermoReferenciaRepository.get(idTermo).then(function(result) { | ||
697 | - | ||
698 | - $scope.termoReferencia = result.originalElement; | ||
699 | - $scope.edit = edit; | ||
700 | - $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); | ||
701 | - $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); | ||
702 | - $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); | ||
703 | - $scope.setLoading(false); | ||
704 | - }); | ||
705 | - }; | ||
706 | - | ||
707 | - // MODAL QUE CONFIRMA REMOVER TERMO | ||
708 | - $scope.remover = function(termo){ | ||
709 | - $scope.$openModalConfirm({ | ||
710 | - message: $translate.instant('MSG.CONFIRMA_EXCLUIR_TERMO_REFERENCIA'), | ||
711 | - callback: function () { | ||
712 | - TermoReferenciaRepository.remove(termo).then(function() { | ||
713 | - $scope.termoReferencia = {}; | ||
714 | - | ||
715 | - $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_TERMO_REFERENCIA')); | ||
716 | - angular.element('#searchTermoReferencia').scope().fetchResult(); | ||
717 | - | ||
718 | - }); | ||
719 | - | ||
720 | - $scope.$modalConfirmInstance.dismiss('cancel'); | ||
721 | - $scope.resetForm(); | ||
722 | - } | ||
723 | - }); | ||
724 | - }; | ||
725 | - | ||
726 | - $scope.abrirDetalhamentoSolucao = function(edit) { | ||
727 | - | ||
728 | - $scope.termoReferenciaDetalhamentoSolucao = clone($scope.getDetalhamentoSolucaoChecked()); | ||
729 | - | ||
730 | - $scope.editDetalhamento = edit; | ||
731 | - | ||
732 | - if(!edit && !$scope.termoReferenciaDetalhamentoSolucao) {//DetalhamentoSolucao | ||
733 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
734 | - return; | ||
735 | - } | ||
736 | - | ||
737 | - if(edit && !$scope.termoReferenciaDetalhamentoSolucao) { | ||
738 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
739 | - return; | ||
740 | - } | ||
741 | - | ||
742 | - if ($scope.termoReferenciaDetalhamentoSolucao.prazoEntrega){ | ||
743 | - | ||
744 | - $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega = $filter('date')( $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega, "dd/MM/yyyy"); | ||
745 | - } | ||
746 | - | ||
747 | - $timeout(function() { | ||
748 | - $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); | ||
749 | - }); | ||
750 | - }; | ||
751 | - | ||
752 | - $scope.abrirPenalidade = function(edit) { | ||
753 | - | ||
754 | - $scope.penalidade = clone($scope.getPenalidadeChecked()); | ||
755 | - | ||
756 | - $scope.editPenalidade = edit; | ||
757 | - | ||
758 | - if(!edit && !$scope.penalidade) { | ||
759 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
760 | - return; | ||
761 | - } | ||
762 | - | ||
763 | - if(edit && !$scope.penalidade) { | ||
764 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
765 | - return; | ||
766 | - } | ||
767 | - | ||
768 | - $timeout(function() { | ||
769 | - $scope.$openModal('modal-penalidade.html', 'lg'); | ||
770 | - }); | ||
771 | - }; | ||
772 | - | ||
773 | - $scope.abrirSancao = function(edit) { | ||
774 | - | ||
775 | - $scope.sancao = clone($scope.getSancaoChecked()); | ||
776 | - | ||
777 | - $scope.editSancao = edit; | ||
778 | - | ||
779 | - if(!edit && !$scope.sancao) { | ||
780 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
781 | - return; | ||
782 | - } | ||
783 | - | ||
784 | - if(edit && !$scope.sancao) { | ||
785 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
786 | - return; | ||
787 | - } | ||
788 | - | ||
789 | - $timeout(function() { | ||
790 | - $scope.$openModal('modal-sancao.html', 'lg'); | ||
791 | - }); | ||
792 | - }; | ||
793 | - | ||
794 | - $scope.removerPenalidade = function() { | ||
795 | - $scope.penalidade = $scope.getPenalidadeChecked(); | ||
796 | - | ||
797 | - if ($scope.penalidade) { | ||
798 | - $scope.$openModalConfirm({ | ||
799 | - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
800 | - callback: function() { | ||
801 | - var index = 0; | ||
802 | - | ||
803 | - $scope.termoReferencia.penalidades.forEach(function(penalidade, key) { | ||
804 | - if (penalidade.$checked) { | ||
805 | - index = key; | ||
806 | - } | ||
807 | - }); | ||
808 | - | ||
809 | - $scope.termoReferencia.penalidades.splice(index, 1); | ||
810 | - $scope.atualizarListaSizeSelectPenalidade(); | ||
811 | - $scope.$modalConfirmInstance.dismiss('cancel'); | ||
812 | - } | ||
813 | - }); | ||
814 | - } else { | ||
815 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
816 | - } | ||
817 | - }; | ||
818 | - | ||
819 | - $scope.removerSancao = function() { | ||
820 | - $scope.sancao = $scope.getSancaoChecked(); | ||
821 | - | ||
822 | - if ($scope.sancao) { | ||
823 | - EventoRegistroNaoConformidadeRepository.existeVinculoSancoesComNaoConformidade($scope.sancao.id).then(function(result) { | ||
824 | - if(result){ | ||
825 | - $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.SANCAO_VINCULADA_NAO_CONFORMIDADE')); | ||
826 | - }else{ | ||
827 | - $scope.$openModalConfirm({ | ||
828 | - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
829 | - callback: function() { | ||
830 | - var index = 0; | ||
831 | - | ||
832 | - $scope.termoReferencia.sancoes.forEach(function(sancao, key) { | ||
833 | - if (sancao.$checked) { | ||
834 | - index = key; | ||
835 | - } | ||
836 | - }); | ||
837 | - | ||
838 | - | ||
839 | - $scope.termoReferencia.sancoes.splice(index, 1); | ||
840 | - $scope.atualizarListaSizeSelectSancao(); | ||
841 | - $scope.$modalConfirmInstance.dismiss('cancel'); | ||
842 | - } | ||
843 | - }); | ||
844 | - } | ||
845 | - }); | ||
846 | - } else { | ||
847 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
848 | - } | ||
849 | - }; | ||
850 | - | ||
851 | - $scope.removerDetalhamentoSolucao = function() { | ||
852 | - $scope.termoReferenciaDetalhamentoSolucao = $scope.getDetalhamentoSolucaoChecked(); | ||
853 | - | ||
854 | - if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
855 | - $scope.$openModalConfirm({ | ||
856 | - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
857 | - callback: function() { | ||
858 | - var index = 0; | ||
859 | - | ||
860 | - $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhamento, key) { | ||
861 | - if (detalhamento.$checked) { | ||
862 | - index = key; | ||
863 | - } | ||
864 | - }); | ||
865 | - | ||
866 | - $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1); | ||
867 | - $scope.atualizarListaSizeSelect(); | ||
868 | - $scope.$modalConfirmInstance.dismiss('cancel'); | ||
869 | - } | ||
870 | - }); | ||
871 | - } else { | ||
872 | - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
873 | - } | ||
874 | - }; | ||
875 | - | ||
876 | - | ||
877 | - | ||
878 | -/*################################## | ||
879 | -* # METODOS RELACIONADOS AO WIZARD # | ||
880 | -* ##################################*/ | ||
881 | - | ||
882 | - function createTemplates(){ | ||
883 | - $scope.templates = [{ name: 'termoReferenciaPg1.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg1.html', show: true }, | ||
884 | - { name: 'termoReferenciaPg2.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg2.html', show: false}, | ||
885 | - { name: 'termoReferenciaPg3.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg3.html', show: false}, | ||
886 | - { name: 'termoReferenciaPg4.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg4.html', show: false}, | ||
887 | - { name: 'termoReferenciaPg5.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg5.html', show: false}, | ||
888 | - { name: 'termoReferenciaPg6.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg6.html', show: false}, | ||
889 | - { name: 'termoReferenciaPg7.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg7.html', show: false}]; | ||
890 | - }; | ||
891 | - | ||
892 | - createTemplates(); | ||
893 | - | ||
894 | - $scope.step = 0; | ||
895 | - | ||
896 | - // Verifica se o passo e o primeiro passo do wizard | ||
897 | - $scope.isFirstStep = function () { | ||
898 | - return $scope.step === 0; | ||
899 | - }; | ||
900 | - | ||
901 | - // Verifica é o ultimo passo do wizard | ||
902 | - $scope.isLastStep = function () { | ||
903 | - return $scope.step === ($scope.templates.length - 1); | ||
904 | - }; | ||
905 | - | ||
906 | - // Verifica se o passo e o passo atual do wizard | ||
907 | - $scope.isCurrentStep = function (step) { | ||
908 | - return $scope.step === step; | ||
909 | - }; | ||
910 | - | ||
911 | - // Recupera o label do botao de comando | ||
912 | - $scope.getNextLabel = function () { | ||
913 | - return ($scope.isLastStep()) ? $translate.instant("LABEL.SALVAR") : $translate.instant("LABEL.PROXIMO"); | ||
914 | - }; | ||
915 | - | ||
916 | - // Utilizado pelo wizard para mudar para o passo desejado | ||
917 | - $scope.setCurrentStep = function (step) { | ||
918 | - | ||
919 | - $scope.setLoadingGet(true); | ||
920 | - | ||
921 | - if (step <= ($scope.step - 1)) { | ||
922 | - $scope.templates[$scope.step].show = false; | ||
923 | - $scope.step = step; | ||
924 | - $scope.templates[step].show = true; | ||
925 | - } else { | ||
926 | - if (!$scope.edit) { | ||
927 | - $scope.permitidoAvancar = true; | ||
928 | - } else { | ||
929 | - permiteAvancoFluxo(); | ||
930 | - } | ||
931 | - | ||
932 | - if ($scope.permitidoAvancar) { | ||
933 | - $scope.templates[$scope.step].show = false; | ||
934 | - $scope.step = step; | ||
935 | - $scope.templates[step].show = true; | ||
936 | - } | ||
937 | - } | ||
938 | - $scope.setLoading(false); | ||
939 | - }; | ||
940 | - | ||
941 | - // Faz com o que o wizard retroceda um passo | ||
942 | - $scope.handlePrevious = function () { | ||
943 | - | ||
944 | - $scope.setLoadingGet(true); | ||
945 | - | ||
946 | - $scope.templates[$scope.step].show = false; | ||
947 | - $scope.step -= ($scope.isFirstStep()) ? 0 : 1; | ||
948 | - $scope.templates[$scope.step].show = true; | ||
949 | - | ||
950 | - $scope.setLoading(false); | ||
951 | - | ||
952 | - }; | ||
953 | - | ||
954 | - // Faz com o que o wizard avance um passo | ||
955 | - $scope.handleNext = function () { | ||
956 | - | ||
957 | - if ($scope.isLastStep()) { | ||
958 | - $scope.saveOrUpdate(); | ||
959 | - } else { | ||
960 | - $scope.setLoadingGet(true); | ||
961 | - | ||
962 | - if (!$scope.edit) { | ||
963 | - $scope.permitidoAvancar = true; | ||
964 | - } else { | ||
965 | - permiteAvancoFluxo(); | ||
966 | - } | ||
967 | - | ||
968 | - if ($scope.permitidoAvancar) { | ||
969 | - $scope.templates[$scope.step].show = false; | ||
970 | - $scope.step += 1; | ||
971 | - $scope.templates[$scope.step].show = true; | ||
972 | - } | ||
973 | - $scope.setLoading(false); | ||
974 | - } | ||
975 | - }; | ||
976 | - | ||
977 | - | ||
978 | -//Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatorios | ||
979 | - function permiteAvancoFluxo() { | ||
980 | - | ||
981 | - $scope.permitidoAvancar = true; | ||
982 | - | ||
983 | - switch ($scope.step) { | ||
984 | - case 0 : | ||
985 | - //equipeContratacaoForm | ||
986 | - if (isFormValid($scope.termoReferenciaForm.equipeContratacaoForm) && $scope.permitidoAvancar) { | ||
987 | - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = true; | ||
988 | - } | ||
989 | - break; | ||
990 | - case 1 : | ||
991 | - //justificativaContratacaoForm | ||
992 | - if (isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 && $scope.permitidoAvancar) { | ||
993 | - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = true; | ||
994 | - } | ||
995 | - break; | ||
996 | - case 2 : | ||
997 | - //especificacoesTecnicasForm | ||
998 | - if (isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm) && $scope.permitidoAvancar) { | ||
999 | - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = true; | ||
1000 | - } | ||
1001 | - break; | ||
1002 | - case 3 : | ||
1003 | - //modeloGestaoForm | ||
1004 | - if (isFormValid($scope.termoReferenciaForm.modeloGestaoForm) && $scope.permitidoAvancar) { | ||
1005 | - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = true; | ||
1006 | - } | ||
1007 | - break; | ||
1008 | - case 4 : | ||
1009 | - //sancoesForm | ||
1010 | - if (($scope.termoReferencia.sancoes.length >= 1 || $scope.termoReferencia.penalidades.length >= 1) && $scope.permitidoAvancar) { | ||
1011 | - $scope.termoReferenciaForm.sancoesForm.$submitted = true; | ||
1012 | - } | ||
1013 | - break; | ||
1014 | - case 5 : | ||
1015 | - //criteriosSelecaoForm | ||
1016 | - if (isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm) && $scope.permitidoAvancar) { | ||
1017 | - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = true; | ||
1018 | - } | ||
1019 | - break; | ||
1020 | - case 6 : | ||
1021 | - //anexosObservacoesForm | ||
1022 | - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = true; | ||
1023 | - break; | ||
1024 | - } | ||
1025 | - | ||
1026 | - if (!$scope.permitidoAvancar && !$scope.stepValid) { | ||
1027 | - //Mensagem de erro de campos obrigatorios nao preenchidos | ||
1028 | - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
1029 | - } | ||
1030 | - }; | ||
1031 | - | ||
1032 | - //Evita erros verificando se determinadas propriedades existem no form. | ||
1033 | - function isFormValid (form) { | ||
1034 | - $scope.stepValid = true; | ||
1035 | - if (form && form.$invalid) { | ||
1036 | - $scope.stepValid = false; | ||
1037 | - } | ||
1038 | - return $scope.stepValid; | ||
1039 | - }; | ||
1040 | - //Evita erros verificando se determinadas propriedades existem no form. | ||
1041 | - function isFormSubmited (form){ | ||
1042 | - var submitted = false; | ||
1043 | - if(form && form.$submitted){ | ||
1044 | - submitted = true; | ||
1045 | - } | ||
1046 | - return submitted; | ||
1047 | - } | ||
1048 | - | ||
1049 | - | ||
1050 | - $scope.getClassEdit = function (step){ | ||
1051 | - | ||
1052 | - switch (step) { | ||
1053 | - case 0 : | ||
1054 | - //equipeContratacaoForm | ||
1055 | - return {'active': $scope.isCurrentStep(step), | ||
1056 | - 'complete' : ($scope.step >= step && isFormValid($scope.termoReferenciaForm.equipeContratacaoForm)), | ||
1057 | - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.equipeContratacaoForm)|| $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.equipeContratacaoForm))}; | ||
1058 | - break; | ||
1059 | - case 1 : | ||
1060 | - //justificativaContratacaoForm | ||
1061 | - return {'active': $scope.isCurrentStep(step), | ||
1062 | - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 ), | ||
1063 | - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.termoReferencia.detalhamentosSolucoes.length < 1)}; | ||
1064 | - break; | ||
1065 | - case 2 : | ||
1066 | - //especificacoesTecnicasForm | ||
1067 | - return {'active': $scope.isCurrentStep(step), | ||
1068 | - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)), | ||
1069 | - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.especificacoesTecnicasForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)}; | ||
1070 | - break; | ||
1071 | - case 3 : | ||
1072 | - //modeloGestaoForm | ||
1073 | - return {'active': $scope.isCurrentStep(step), | ||
1074 | - 'complete' : ($scope.step > step || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm)))}; | ||
1075 | - break; | ||
1076 | - case 4 : | ||
1077 | - //sancoesForm | ||
1078 | - return {'active': $scope.isCurrentStep(step), | ||
1079 | - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.sancoesForm) && ($scope.termoReferencia.sancoes.length >= 1 && $scope.termoReferencia.penalidades.length >= 1)), | ||
1080 | - 'invalid' : ($scope.step > step && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))}; | ||
1081 | - break; | ||
1082 | - case 5 : | ||
1083 | - //criteriosSelecaoForm | ||
1084 | - return {'active': $scope.isCurrentStep(step), | ||
1085 | - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm)), | ||
1086 | - 'invalid' : ((isFormSubmited($scope.termoReferenciaForm.criteriosSelecaoForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm))}; | ||
1087 | - break; | ||
1088 | - case 6 : | ||
1089 | - //anexosObservacoesForm | ||
1090 | - return {'active': $scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm), | ||
1091 | - 'complete' : ($scope.isCurrentStep(step) || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm)))}; | ||
1092 | - break; | ||
1093 | - }; | ||
1094 | - }; | ||
1095 | - | ||
1096 | - $scope.getClassList = function (){ | ||
1097 | - return {'active': false, 'complete' : true, 'invalid' : false}; | ||
1098 | - }; | 440 | + }; |
441 | + | ||
442 | + // ADICIONAR Penalidade | ||
443 | + $scope.addSancao = function(formSancao, continuarEditando) { | ||
444 | + | ||
445 | + var sans = $scope.sancao; | ||
446 | + | ||
447 | + formSancao.$submitted = true; | ||
448 | + | ||
449 | + //verifica se o formulario esta valido para salvar | ||
450 | + if (formSancao.$invalid) { | ||
451 | + //Mensagem de erro de campos obrigatorios nao preenchidos | ||
452 | + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
453 | + return; | ||
454 | + } | ||
455 | + | ||
456 | + $scope.setLoadingSalva(true); | ||
457 | + | ||
458 | + if (sans.$index != undefined && sans.$index != null) { | ||
459 | + $scope.termoReferencia.sancoes[sans.$index] = sans; | ||
460 | + } else { | ||
461 | + $scope.termoReferencia.sancoes.push(sans); | ||
462 | + } | ||
463 | + | ||
464 | + $scope.setLoadingSalva(false); | ||
465 | + | ||
466 | + if(continuarEditando){ | ||
467 | + formSancao.$submitted = false; | ||
468 | + formSancao.$setPristine(); | ||
469 | + $scope.sancao = {}; | ||
470 | + } else { | ||
471 | + $scope.$modalInstance.dismiss('cancel'); | ||
472 | + } | ||
473 | + }; | ||
474 | + | ||
475 | + //Watch para calcular total | ||
476 | + $scope.$watch('termoReferenciaDetalhamentoSolucao.valor', function() { | ||
477 | + $timeout(function() { | ||
478 | + if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { | ||
479 | + $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; | ||
480 | + } else { | ||
481 | + if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
482 | + $scope.termoReferenciaDetalhamentoSolucao.total = null; | ||
483 | + } | ||
484 | + } | ||
485 | + }); | ||
486 | + }); | ||
487 | + | ||
488 | + //Watch para calcular total | ||
489 | + $scope.$watch('termoReferenciaDetalhamentoSolucao.quantidade', function() { | ||
490 | + $timeout(function() { | ||
491 | + if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { | ||
492 | + $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; | ||
493 | + } else { | ||
494 | + if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
495 | + $scope.termoReferenciaDetalhamentoSolucao.total = null; | ||
496 | + } | ||
497 | + } | ||
498 | + }); | ||
499 | + }); | ||
500 | + | ||
501 | + $scope.getConfiguracoesTemplate = function () { | ||
502 | + ConfiguracaoRepository.getConfiguracao($scope.usuarioLogado.organizacao.id).then(function (result) { | ||
503 | + var configTemp = result.originalElement; | ||
504 | + var parametro; | ||
505 | + for (var i = 0; i < configTemp.parametros.length; i++){ | ||
506 | + parametro = configTemp.parametros[i]; | ||
507 | + switch (parametro.chave) { | ||
508 | + case "DEVERES_RESPONSABILIDADES_CONTRATANTE" : | ||
509 | + $scope.termoReferencia.deveresContratante = parametro.valor; | ||
510 | + break; | ||
511 | + case "DEVERES_RESPONSABILIDADES_CONTRATADA" : | ||
512 | + $scope.termoReferencia.deveresContratada = parametro.valor; | ||
513 | + break; | ||
514 | + case "DEVERES_RESPONSABILIDADES_ORGAO" : | ||
515 | + $scope.termoReferencia.deveresOrgaoRegistroPreco = parametro.valor; | ||
516 | + break; | ||
517 | + case "MECANISMOS_FORMAIS_COMUNICACAO" : | ||
518 | + $scope.termoReferencia.mecanismoComunicacao = parametro.valor; | ||
519 | + break; | ||
520 | + }; | ||
521 | + }; | ||
522 | + }); | ||
523 | + }; | ||
524 | + | ||
525 | + // marca DetalhamentoSolucao | ||
526 | + $scope.checkDetalhamentoSolucao = function(index) { | ||
527 | + $timeout(function() { | ||
528 | + for (var i = 0; i < $scope.termoReferencia.detalhamentosSolucoes.length; i++) { | ||
529 | + if (i == index) { | ||
530 | + $scope.termoReferencia.detalhamentosSolucoes[i].$checked = true; | ||
531 | + } else { | ||
532 | + $scope.termoReferencia.detalhamentosSolucoes[i].$checked = false; | ||
533 | + } | ||
534 | + } | ||
535 | + $scope.atualizarListaSizeSelect(); | ||
536 | + }); | ||
537 | + }; | ||
538 | + | ||
539 | + // recupera DetalhamentoSolucao selecionada | ||
540 | + $scope.getDetalhamentoSolucaoChecked = function() { | ||
541 | + var detalhamentoSolucaoChecked = undefined; | ||
542 | + $scope.termoReferenciaDetalhamentoSolucao = {}; | ||
543 | + $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhe) { | ||
544 | + if (detalhe.$checked) { | ||
545 | + detalhamentoSolucaoChecked = detalhe; | ||
546 | + } | ||
547 | + }); | ||
548 | + | ||
549 | + return detalhamentoSolucaoChecked; | ||
550 | + }; | ||
551 | + | ||
552 | + // marca Penalidade | ||
553 | + $scope.checkPenalidade = function(index) { | ||
554 | + $timeout(function() { | ||
555 | + for (var i = 0; i < $scope.termoReferencia.penalidades.length; i++) { | ||
556 | + if (i == index) { | ||
557 | + $scope.termoReferencia.penalidades[i].$checked = true; | ||
558 | + } else { | ||
559 | + $scope.termoReferencia.penalidades[i].$checked = false; | ||
560 | + } | ||
561 | + } | ||
562 | + $scope.atualizarListaSizeSelectPenalidade(); | ||
563 | + }); | ||
564 | + }; | ||
565 | + | ||
566 | + // recupera Penalidade selecionada | ||
567 | + $scope.getPenalidadeChecked = function() { | ||
568 | + var penalidadeChecked = undefined; | ||
569 | + $scope.termoReferenciaPenalidade = {}; | ||
570 | + $scope.termoReferencia.penalidades.forEach(function(penalidade) { | ||
571 | + if (penalidade.$checked) { | ||
572 | + penalidadeChecked = penalidade; | ||
573 | + } | ||
574 | + }); | ||
575 | + | ||
576 | + return penalidadeChecked; | ||
577 | + }; | ||
578 | + | ||
579 | + // marca Sancao | ||
580 | + $scope.checkSancao = function(index) { | ||
581 | + $timeout(function() { | ||
582 | + for (var i = 0; i < $scope.termoReferencia.sancoes.length; i++) { | ||
583 | + if (i == index) { | ||
584 | + $scope.termoReferencia.sancoes[i].$checked = true; | ||
585 | + } else { | ||
586 | + $scope.termoReferencia.sancoes[i].$checked = false; | ||
587 | + } | ||
588 | + } | ||
589 | + $scope.atualizarListaSizeSelectSancao(); | ||
590 | + }); | ||
591 | + }; | ||
592 | + | ||
593 | + // recupera Sancao selecionada | ||
594 | + $scope.getSancaoChecked = function() { | ||
595 | + var sancaoChecked = undefined; | ||
596 | + $scope.termoReferenciaSancao = {}; | ||
597 | + $scope.termoReferencia.sancoes.forEach(function(sancao) { | ||
598 | + if (sancao.$checked) { | ||
599 | + sancaoChecked = sancao; | ||
600 | + } | ||
601 | + }); | ||
602 | + | ||
603 | + return sancaoChecked; | ||
604 | + }; | ||
605 | + | ||
606 | + $scope.preenchePapeis = function(){ | ||
607 | + DominioRepository.findAllDominio('tipoPapelEquipeContratos').then(function(result) { | ||
608 | + $scope.dominioPapeis = result; | ||
609 | + | ||
610 | + angular.forEach($scope.dominioPapeis, function(value, key){ | ||
611 | + $scope.papeis+= value.descricao + '\n'; | ||
612 | + }); | ||
613 | + | ||
614 | + }); | ||
615 | + | ||
616 | + }; | ||
617 | + | ||
618 | + $scope.carregarValoresPadrao = function() { | ||
619 | + DominioRepository.findAllDominioByCodigo('tipoEmpreitada', 2).then(function(result) { | ||
620 | + $scope.termoReferencia.empreitada = result.originalElement; | ||
621 | + }); | ||
622 | + | ||
623 | + DominioRepository.findAllDominioByCodigo('tipoAdjudicacaoObjeto', 2).then(function(result) { | ||
624 | + $scope.termoReferencia.adjudicacaoObjeto = result.originalElement; | ||
625 | + }); | ||
626 | + | ||
627 | + if($scope.dominioTiposSancaoList){ | ||
628 | + angular.forEach($scope.dominioTiposSancaoList, function(sancaoDominio) { | ||
629 | + var sans = {sancao : sancaoDominio.descricao, dominioTipoSancao : sancaoDominio.originalElement, descricao : $translate.instant('LABEL.DESCREVER_SANCAO')}; | ||
630 | + $scope.termoReferencia.sancoes.push(sans); | ||
631 | + }); | ||
632 | + } | ||
633 | + }; | ||
634 | + | ||
635 | + //###################### METODOS DA BARRA DE ACOES DO FORMULARIO #################################### | ||
636 | + | ||
637 | + function setFormsTermoReferenciaSubmitted(valor){ | ||
638 | + $scope.termoReferenciaForm.$submitted = valor; | ||
639 | + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = valor; | ||
640 | + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = valor; | ||
641 | + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = valor; | ||
642 | + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = valor; | ||
643 | + $scope.termoReferenciaForm.sancoesForm.$submitted = valor; | ||
644 | + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = valor; | ||
645 | + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = valor; | ||
646 | + } | ||
647 | + // SALVA O TERMO | ||
648 | + $scope.saveOrUpdate = function(){ | ||
649 | + | ||
650 | + setFormsTermoReferenciaSubmitted(true); | ||
651 | + | ||
652 | + //Vefifica se o termoReferenciaForm esta invalido, caso esteja envia um alerta para o usuario | ||
653 | + if($scope.termoReferenciaForm.$invalid){ | ||
654 | + $scope.showAlert('error', $translate.instant('MSG.MN001')); | ||
655 | + } else { | ||
656 | + var termoTemp = { | ||
657 | + documentos: [] | ||
658 | + }; | ||
659 | + | ||
660 | + // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento | ||
661 | + angular.forEach($scope.termoReferencia.documentos, function(documento, key) { | ||
662 | + if (documento.uploadsDocumento) { | ||
663 | + termoTemp.documentos.push({ | ||
664 | + uploadsDocumento: clone(documento.uploadsDocumento), | ||
665 | + numero: clone(documento.numero) | ||
666 | + }); | ||
667 | + // deleta esse atributo por causa de um erro de ciclo no json | ||
668 | + delete documento.uploadsDocumento; | ||
669 | + } | ||
670 | + }); | ||
671 | + | ||
672 | + $scope.setLoadingSalva(true); | ||
673 | + | ||
674 | + $scope.termoReferencia.rascunho = $scope.workspace.rascunho.id; | ||
675 | + TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) { | ||
676 | + | ||
677 | + $scope.termoReferencia = result.originalElement; | ||
678 | + $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); | ||
679 | + $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); | ||
680 | + $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); | ||
681 | + | ||
682 | + $scope.setLoading(false); | ||
683 | + $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_TERMO_REFERENCIA')); | ||
684 | + // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver | ||
685 | + salvarListaDocumentos(termoTemp); | ||
686 | + setFormsTermoReferenciaSubmitted(false); | ||
687 | + }); | ||
688 | + }; | ||
689 | + }; | ||
690 | + | ||
691 | + $scope.editar = function () { | ||
692 | + if ($scope.termoReferencia.dataTermoGerado){ | ||
693 | + $scope.showAlert('warning', $translate.instant('MSG.TERMO_REFERENCIA_JA_GERADO')); | ||
694 | + $scope.setLoadingGet(false); | ||
695 | + } else { | ||
696 | + $scope.edit = true; | ||
697 | + $scope.pgEdit = true; | ||
698 | + } | ||
699 | + }; | ||
700 | + | ||
701 | + // Consulta entidade e mostra no formulario | ||
702 | + $scope.getTermo = function(idTermo, edit) { | ||
703 | + $scope.resetForm(); | ||
704 | + $scope.setLoadingGet(true); | ||
705 | + | ||
706 | + TermoReferenciaRepository.get(idTermo).then(function(result) { | ||
707 | + | ||
708 | + $scope.termoReferencia = result.originalElement; | ||
709 | + $scope.edit = edit; | ||
710 | + $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); | ||
711 | + $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); | ||
712 | + $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); | ||
713 | + $scope.setLoading(false); | ||
714 | + }); | ||
715 | + }; | ||
716 | + | ||
717 | + // MODAL QUE CONFIRMA REMOVER TERMO | ||
718 | + $scope.remover = function(termo){ | ||
719 | + $scope.$openModalConfirm({ | ||
720 | + message: $translate.instant('MSG.CONFIRMA_EXCLUIR_TERMO_REFERENCIA'), | ||
721 | + callback: function () { | ||
722 | + TermoReferenciaRepository.remove(termo).then(function() { | ||
723 | + $scope.termoReferencia = {}; | ||
724 | + | ||
725 | + $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_TERMO_REFERENCIA')); | ||
726 | + angular.element('#searchTermoReferencia').scope().fetchResult(); | ||
727 | + | ||
728 | + }); | ||
729 | + | ||
730 | + $scope.$modalConfirmInstance.dismiss('cancel'); | ||
731 | + $scope.resetForm(); | ||
732 | + } | ||
733 | + }); | ||
734 | + }; | ||
735 | + | ||
736 | + $scope.abrirDetalhamentoSolucao = function(edit) { | ||
737 | + | ||
738 | + $scope.termoReferenciaDetalhamentoSolucao = clone($scope.getDetalhamentoSolucaoChecked()); | ||
739 | + | ||
740 | + $scope.editDetalhamento = edit; | ||
741 | + | ||
742 | + if(!edit && !$scope.termoReferenciaDetalhamentoSolucao) {//DetalhamentoSolucao | ||
743 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
744 | + return; | ||
745 | + } | ||
746 | + | ||
747 | + if(edit && !$scope.termoReferenciaDetalhamentoSolucao) { | ||
748 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
749 | + return; | ||
750 | + } | ||
751 | + | ||
752 | + if ($scope.termoReferenciaDetalhamentoSolucao.prazoEntrega){ | ||
753 | + | ||
754 | + $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega = $filter('date')( $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega, "dd/MM/yyyy"); | ||
755 | + } | ||
756 | + | ||
757 | + $timeout(function() { | ||
758 | + $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); | ||
759 | + }); | ||
760 | + }; | ||
761 | + | ||
762 | + $scope.abrirPenalidade = function(edit) { | ||
763 | + | ||
764 | + $scope.penalidade = clone($scope.getPenalidadeChecked()); | ||
765 | + | ||
766 | + $scope.editPenalidade = edit; | ||
767 | + | ||
768 | + if(!edit && !$scope.penalidade) { | ||
769 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
770 | + return; | ||
771 | + } | ||
772 | + | ||
773 | + if(edit && !$scope.penalidade) { | ||
774 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
775 | + return; | ||
776 | + } | ||
777 | + | ||
778 | + $timeout(function() { | ||
779 | + $scope.$openModal('modal-penalidade.html', 'lg'); | ||
780 | + }); | ||
781 | + }; | ||
782 | + | ||
783 | + $scope.abrirSancao = function(edit) { | ||
784 | + | ||
785 | + $scope.sancao = clone($scope.getSancaoChecked()); | ||
786 | + | ||
787 | + $scope.editSancao = edit; | ||
788 | + | ||
789 | + if(!edit && !$scope.sancao) { | ||
790 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); | ||
791 | + return; | ||
792 | + } | ||
793 | + | ||
794 | + if(edit && !$scope.sancao) { | ||
795 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); | ||
796 | + return; | ||
797 | + } | ||
798 | + | ||
799 | + $timeout(function() { | ||
800 | + $scope.$openModal('modal-sancao.html', 'lg'); | ||
801 | + }); | ||
802 | + }; | ||
803 | + | ||
804 | + $scope.removerPenalidade = function() { | ||
805 | + $scope.penalidade = $scope.getPenalidadeChecked(); | ||
806 | + | ||
807 | + if ($scope.penalidade) { | ||
808 | + $scope.$openModalConfirm({ | ||
809 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
810 | + callback: function() { | ||
811 | + var index = 0; | ||
812 | + | ||
813 | + $scope.termoReferencia.penalidades.forEach(function(penalidade, key) { | ||
814 | + if (penalidade.$checked) { | ||
815 | + index = key; | ||
816 | + } | ||
817 | + }); | ||
818 | + | ||
819 | + $scope.termoReferencia.penalidades.splice(index, 1); | ||
820 | + $scope.atualizarListaSizeSelectPenalidade(); | ||
821 | + $scope.$modalConfirmInstance.dismiss('cancel'); | ||
822 | + } | ||
823 | + }); | ||
824 | + } else { | ||
825 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
826 | + } | ||
827 | + }; | ||
828 | + | ||
829 | + $scope.removerSancao = function() { | ||
830 | + $scope.sancao = $scope.getSancaoChecked(); | ||
831 | + | ||
832 | + if ($scope.sancao) { | ||
833 | + EventoRegistroNaoConformidadeRepository.existeVinculoSancoesComNaoConformidade($scope.sancao.id).then(function(result) { | ||
834 | + if(result){ | ||
835 | + $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.SANCAO_VINCULADA_NAO_CONFORMIDADE')); | ||
836 | + }else{ | ||
837 | + $scope.$openModalConfirm({ | ||
838 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
839 | + callback: function() { | ||
840 | + var index = 0; | ||
841 | + | ||
842 | + $scope.termoReferencia.sancoes.forEach(function(sancao, key) { | ||
843 | + if (sancao.$checked) { | ||
844 | + index = key; | ||
845 | + } | ||
846 | + }); | ||
847 | + | ||
848 | + | ||
849 | + $scope.termoReferencia.sancoes.splice(index, 1); | ||
850 | + $scope.atualizarListaSizeSelectSancao(); | ||
851 | + $scope.$modalConfirmInstance.dismiss('cancel'); | ||
852 | + } | ||
853 | + }); | ||
854 | + } | ||
855 | + }); | ||
856 | + } else { | ||
857 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
858 | + } | ||
859 | + }; | ||
860 | + | ||
861 | + $scope.removerDetalhamentoSolucao = function() { | ||
862 | + $scope.termoReferenciaDetalhamentoSolucao = $scope.getDetalhamentoSolucaoChecked(); | ||
863 | + | ||
864 | + if ($scope.termoReferenciaDetalhamentoSolucao) { | ||
865 | + $scope.$openModalConfirm({ | ||
866 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
867 | + callback: function() { | ||
868 | + var index = 0; | ||
869 | + | ||
870 | + $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhamento, key) { | ||
871 | + if (detalhamento.$checked) { | ||
872 | + index = key; | ||
873 | + } | ||
874 | + }); | ||
875 | + | ||
876 | + $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1); | ||
877 | + $scope.atualizarListaSizeSelect(); | ||
878 | + $scope.$modalConfirmInstance.dismiss('cancel'); | ||
879 | + } | ||
880 | + }); | ||
881 | + } else { | ||
882 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); | ||
883 | + } | ||
884 | + }; | ||
885 | + | ||
886 | + | ||
887 | + | ||
888 | + /*################################## | ||
889 | + * # METODOS RELACIONADOS AO WIZARD # | ||
890 | + * ##################################*/ | ||
891 | + | ||
892 | + function createTemplates(){ | ||
893 | + $scope.templates = [{ name: 'termoReferenciaPg1.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg1.html', show: true }, | ||
894 | + { name: 'termoReferenciaPg2.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg2.html', show: false}, | ||
895 | + { name: 'termoReferenciaPg3.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg3.html', show: false}, | ||
896 | + { name: 'termoReferenciaPg4.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg4.html', show: false}, | ||
897 | + { name: 'termoReferenciaPg5.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg5.html', show: false}, | ||
898 | + { name: 'termoReferenciaPg6.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg6.html', show: false}, | ||
899 | + { name: 'termoReferenciaPg7.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg7.html', show: false}]; | ||
900 | + }; | ||
901 | + | ||
902 | + createTemplates(); | ||
903 | + | ||
904 | + $scope.step = 0; | ||
905 | + | ||
906 | + // Verifica se o passo e o primeiro passo do wizard | ||
907 | + $scope.isFirstStep = function () { | ||
908 | + return $scope.step === 0; | ||
909 | + }; | ||
910 | + | ||
911 | + // Verifica é o ultimo passo do wizard | ||
912 | + $scope.isLastStep = function () { | ||
913 | + return $scope.step === ($scope.templates.length - 1); | ||
914 | + }; | ||
915 | + | ||
916 | + // Verifica se o passo e o passo atual do wizard | ||
917 | + $scope.isCurrentStep = function (step) { | ||
918 | + return $scope.step === step; | ||
919 | + }; | ||
920 | + | ||
921 | + // Recupera o label do botao de comando | ||
922 | + $scope.getNextLabel = function () { | ||
923 | + return ($scope.isLastStep()) ? $translate.instant("LABEL.SALVAR") : $translate.instant("LABEL.PROXIMO"); | ||
924 | + }; | ||
925 | + | ||
926 | + // Utilizado pelo wizard para mudar para o passo desejado | ||
927 | + $scope.setCurrentStep = function (step) { | ||
928 | + | ||
929 | + $scope.setLoadingGet(true); | ||
930 | + | ||
931 | + if (step <= ($scope.step - 1)) { | ||
932 | + $scope.templates[$scope.step].show = false; | ||
933 | + $scope.step = step; | ||
934 | + $scope.templates[step].show = true; | ||
935 | + } else { | ||
936 | + if (!$scope.edit) { | ||
937 | + $scope.permitidoAvancar = true; | ||
938 | + } else { | ||
939 | + permiteAvancoFluxo(); | ||
940 | + } | ||
941 | + | ||
942 | + if ($scope.permitidoAvancar) { | ||
943 | + $scope.templates[$scope.step].show = false; | ||
944 | + $scope.step = step; | ||
945 | + $scope.templates[step].show = true; | ||
946 | + } | ||
947 | + } | ||
948 | + $scope.setLoading(false); | ||
949 | + }; | ||
950 | + | ||
951 | + // Faz com o que o wizard retroceda um passo | ||
952 | + $scope.handlePrevious = function () { | ||
953 | + | ||
954 | + $scope.setLoadingGet(true); | ||
955 | + | ||
956 | + $scope.templates[$scope.step].show = false; | ||
957 | + $scope.step -= ($scope.isFirstStep()) ? 0 : 1; | ||
958 | + $scope.templates[$scope.step].show = true; | ||
959 | + | ||
960 | + $scope.setLoading(false); | ||
961 | + | ||
962 | + }; | ||
963 | + | ||
964 | + // Faz com o que o wizard avance um passo | ||
965 | + $scope.handleNext = function () { | ||
966 | + | ||
967 | + if ($scope.isLastStep()) { | ||
968 | + $scope.saveOrUpdate(); | ||
969 | + } else { | ||
970 | + $scope.setLoadingGet(true); | ||
971 | + | ||
972 | + if (!$scope.edit) { | ||
973 | + $scope.permitidoAvancar = true; | ||
974 | + } else { | ||
975 | + permiteAvancoFluxo(); | ||
976 | + } | ||
977 | + | ||
978 | + if ($scope.permitidoAvancar) { | ||
979 | + $scope.templates[$scope.step].show = false; | ||
980 | + $scope.step += 1; | ||
981 | + $scope.templates[$scope.step].show = true; | ||
982 | + } | ||
983 | + $scope.setLoading(false); | ||
984 | + } | ||
985 | + }; | ||
986 | + | ||
987 | + | ||
988 | +// Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatorios | ||
989 | + function permiteAvancoFluxo() { | ||
990 | + | ||
991 | + $scope.permitidoAvancar = true; | ||
992 | + | ||
993 | + switch ($scope.step) { | ||
994 | + case 0 : | ||
995 | + //equipeContratacaoForm | ||
996 | + if (isFormValid($scope.termoReferenciaForm.equipeContratacaoForm) && $scope.permitidoAvancar) { | ||
997 | + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = true; | ||
998 | + } | ||
999 | + break; | ||
1000 | + case 1 : | ||
1001 | + //justificativaContratacaoForm | ||
1002 | + if (isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 && $scope.permitidoAvancar) { | ||
1003 | + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = true; | ||
1004 | + } | ||
1005 | + break; | ||
1006 | + case 2 : | ||
1007 | + //especificacoesTecnicasForm | ||
1008 | + if (isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm) && $scope.permitidoAvancar) { | ||
1009 | + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = true; | ||
1010 | + } | ||
1011 | + break; | ||
1012 | + case 3 : | ||
1013 | + //modeloGestaoForm | ||
1014 | + if (isFormValid($scope.termoReferenciaForm.modeloGestaoForm) && $scope.permitidoAvancar) { | ||
1015 | + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = true; | ||
1016 | + } | ||
1017 | + break; | ||
1018 | + case 4 : | ||
1019 | + //sancoesForm | ||
1020 | + if (($scope.termoReferencia.sancoes.length >= 1 || $scope.termoReferencia.penalidades.length >= 1) && $scope.permitidoAvancar) { | ||
1021 | + $scope.termoReferenciaForm.sancoesForm.$submitted = true; | ||
1022 | + } | ||
1023 | + break; | ||
1024 | + case 5 : | ||
1025 | + //criteriosSelecaoForm | ||
1026 | + if (isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm) && $scope.permitidoAvancar) { | ||
1027 | + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = true; | ||
1028 | + } | ||
1029 | + break; | ||
1030 | + case 6 : | ||
1031 | + //anexosObservacoesForm | ||
1032 | + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = true; | ||
1033 | + break; | ||
1034 | + } | ||
1035 | + | ||
1036 | + if (!$scope.permitidoAvancar && !$scope.stepValid) { | ||
1037 | + //Mensagem de erro de campos obrigatorios nao preenchidos | ||
1038 | + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); | ||
1039 | + } | ||
1040 | + }; | ||
1041 | + | ||
1042 | + //Evita erros verificando se determinadas propriedades existem no form. | ||
1043 | + function isFormValid (form) { | ||
1044 | + $scope.stepValid = true; | ||
1045 | + if (form && form.$invalid) { | ||
1046 | + $scope.stepValid = false; | ||
1047 | + } | ||
1048 | + return $scope.stepValid; | ||
1049 | + }; | ||
1050 | + //Evita erros verificando se determinadas propriedades existem no form. | ||
1051 | + function isFormSubmited (form){ | ||
1052 | + var submitted = false; | ||
1053 | + if(form && form.$submitted){ | ||
1054 | + submitted = true; | ||
1055 | + } | ||
1056 | + return submitted; | ||
1057 | + } | ||
1058 | + | ||
1059 | + | ||
1060 | + $scope.getClassEdit = function (step){ | ||
1061 | + | ||
1062 | + switch (step) { | ||
1063 | + case 0 : | ||
1064 | + //equipeContratacaoForm | ||
1065 | + return {'active': $scope.isCurrentStep(step), | ||
1066 | + 'complete' : ($scope.step >= step && isFormValid($scope.termoReferenciaForm.equipeContratacaoForm)), | ||
1067 | + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.equipeContratacaoForm)|| $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.equipeContratacaoForm))}; | ||
1068 | + break; | ||
1069 | + case 1 : | ||
1070 | + //justificativaContratacaoForm | ||
1071 | + return {'active': $scope.isCurrentStep(step), | ||
1072 | + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 ), | ||
1073 | + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.termoReferencia.detalhamentosSolucoes.length < 1)}; | ||
1074 | + break; | ||
1075 | + case 2 : | ||
1076 | + //especificacoesTecnicasForm | ||
1077 | + return {'active': $scope.isCurrentStep(step), | ||
1078 | + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)), | ||
1079 | + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.especificacoesTecnicasForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)}; | ||
1080 | + break; | ||
1081 | + case 3 : | ||
1082 | + //modeloGestaoForm | ||
1083 | + return {'active': $scope.isCurrentStep(step), | ||
1084 | + 'complete' : ($scope.step > step || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm)))}; | ||
1085 | + break; | ||
1086 | + case 4 : | ||
1087 | + //sancoesForm | ||
1088 | + return {'active': $scope.isCurrentStep(step), | ||
1089 | + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.sancoesForm) && ($scope.termoReferencia.sancoes.length >= 1 && $scope.termoReferencia.penalidades.length >= 1)), | ||
1090 | + 'invalid' : ($scope.step > step && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))}; | ||
1091 | + break; | ||
1092 | + case 5 : | ||
1093 | + //criteriosSelecaoForm | ||
1094 | + return {'active': $scope.isCurrentStep(step), | ||
1095 | + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm)), | ||
1096 | + 'invalid' : ((isFormSubmited($scope.termoReferenciaForm.criteriosSelecaoForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm))}; | ||
1097 | + break; | ||
1098 | + case 6 : | ||
1099 | + //anexosObservacoesForm | ||
1100 | + return {'active': $scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm), | ||
1101 | + 'complete' : ($scope.isCurrentStep(step) || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm)))}; | ||
1102 | + break; | ||
1103 | + }; | ||
1104 | + }; | ||
1105 | + | ||
1106 | + $scope.getClassList = function (){ | ||
1107 | + return {'active': false, 'complete' : true, 'invalid' : false}; | ||
1108 | + }; | ||
1099 | 1109 | ||
1100 | $scope.atualizarListaSizeSelect = function() { | 1110 | $scope.atualizarListaSizeSelect = function() { |
1101 | $timeout(function(){ | 1111 | $timeout(function(){ |
cit-contratos-web/src/main/webapp/html/estudoTecnico/estudoTecnicoList.html
@@ -26,7 +26,11 @@ | @@ -26,7 +26,11 @@ | ||
26 | <button class="btn btn-clear" ng-click="exportarCSV(filterCriteria, headers, 'EstudoTecnicoRepository', 'LABEL.ESTUDO_TECNICO')" type="button"> | 26 | <button class="btn btn-clear" ng-click="exportarCSV(filterCriteria, headers, 'EstudoTecnicoRepository', 'LABEL.ESTUDO_TECNICO')" type="button"> |
27 | <i class="fa fa-file-excel-o"></i> <translate>LABEL.EXPORTAR_CSV</translate> | 27 | <i class="fa fa-file-excel-o"></i> <translate>LABEL.EXPORTAR_CSV</translate> |
28 | </button> | 28 | </button> |
29 | - | 29 | + |
30 | + <button class="btn btn-clear" ng-click="showListRascunho(workspace.name)" type="button"> | ||
31 | + <i class="fa fa-list"></i> <translate>PORTAL.LABEL.SHOW_RASCUNHO</translate> | ||
32 | + </button> | ||
33 | + | ||
30 | <button | 34 | <button |
31 | title="{{$translate.instant('CONTRATOS.LABEL.GERAR_ESTUDO_TECNICO')}}" | 35 | title="{{$translate.instant('CONTRATOS.LABEL.GERAR_ESTUDO_TECNICO')}}" |
32 | alt="{{$translate.instant('CONTRATOS.LABEL.GERAR_ESTUDO_TECNICO')}}" | 36 | alt="{{$translate.instant('CONTRATOS.LABEL.GERAR_ESTUDO_TECNICO')}}" |
cit-contratos-web/src/main/webapp/html/termoReferencia/termoReferenciaList.html
@@ -29,11 +29,11 @@ | @@ -29,11 +29,11 @@ | ||
29 | <button class="btn btn-clear" ng-click="exportarCSV(filterCriteria, headers, 'TermoReferenciaRepository', 'CONTRATOS.LABEL.TERMO_REFERENCIA_PROJETO_BASICO')" type="button"> | 29 | <button class="btn btn-clear" ng-click="exportarCSV(filterCriteria, headers, 'TermoReferenciaRepository', 'CONTRATOS.LABEL.TERMO_REFERENCIA_PROJETO_BASICO')" type="button"> |
30 | <i class="fa fa-file-excel-o"></i> <translate>LABEL.EXPORTAR_CSV</translate> | 30 | <i class="fa fa-file-excel-o"></i> <translate>LABEL.EXPORTAR_CSV</translate> |
31 | </button> | 31 | </button> |
32 | - | ||
33 | - <button class="btn btn-clear" ng-click="showListRascunho(workspace.name)" type="button"> | 32 | + |
33 | + <button class="btn btn-clear" ng-click="showListRascunho(workspace.name)" type="button"> | ||
34 | <i class="fa fa-list"></i> <translate>PORTAL.LABEL.SHOW_RASCUNHO</translate> | 34 | <i class="fa fa-list"></i> <translate>PORTAL.LABEL.SHOW_RASCUNHO</translate> |
35 | </button> | 35 | </button> |
36 | - | 36 | + |
37 | <button | 37 | <button |
38 | title="{{$translate.instant('LABEL.GERAR_TERMO_REFERENCIA')}}" | 38 | title="{{$translate.instant('LABEL.GERAR_TERMO_REFERENCIA')}}" |
39 | alt="{{$translate.instant('LABEL.GERAR_TERMO_REFERENCIA')}}" | 39 | alt="{{$translate.instant('LABEL.GERAR_TERMO_REFERENCIA')}}" |