Commit 7b43d64b030306b099ff3086d5cf1425445de466

Authored by luis.camargo
1 parent 228a848b
Exists in master

redmine #4455 Construção da funcionalidade Rascunho;

cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js
... ... @@ -339,7 +339,7 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C
339 339 $scope.setLoadingSalva(true);
340 340  
341 341 $scope.contrato.exercicio = new Date($scope.contrato.exercicio);
342   - $scope.contrato.rascunho = $scope.workspace.rascunho.id;
  342 + $scope.contrato.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null;
343 343 ContratoRepository.save($scope.contrato).then(function(result) {
344 344  
345 345 $scope.contrato = result.originalElement;
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js
... ... @@ -11,131 +11,131 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository
11 11 EstudoTecnicoBemServicoSolucaoRepository, EstudoTecnicoAcaoContingenciaRepository, FileUploader, $filter,
12 12 EstudoTecnicoRecursoMaterialRepository, EstudoTecnicoRecursoHumanoRepository, EstudoTecnicoBeneficioEsperadoRepository, FuncaoRepository) {
13 13  
14   - $scope.edit = true;
15   - $scope.estudoTecnico = {
16   - etRecursosMateriais : [],
17   - etRecursosHumanos : []
18   - };
19   - $scope.reqNegocio = {};
20   - $scope.beneficioEsperado = {};
21   - $scope.estudoTecnicoRecursoMaterialTemp = {};
22   - $scope.estudoTecnicoRecursoHumanoTemp = {};
23   - $scope.listaRequisitoTecSelecao = [];
24   - $scope.listaAlternativa = [];
25   - $scope.listaServicoSolucao = [];
26   - $scope.listaBeneficio = [];
27   - $scope.listaRecursoMateriais = [];
28   - $scope.listaRecursoHumanos = [];
29   - $scope.listaAcoesContigencia = [];
30   -
31   - $scope.uploader = new FileUploader({
32   - autoUpload: false,
33   - queueLimit: 1,
34   - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento='
35   - });
36   -
37   - $scope.findIntegrante = function(value) {
38   - return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
39   - return result;
40   - });
41   - };
42   -
43   - $scope.findOrgaoExterno = function(value) {
44   - return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) {
45   - return result;
46   - });
47   - };
48   -
49   - $scope.findFornecedor = function(value) {
50   - return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'], value).then(function(result) {
51   - return result;
52   - });
53   - };
54   -
55   - $scope.findResponsavel = function(value) {
56   - return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
57   - return result;
58   - });
59   - };
60   -
61   - QuestionarioRepository.findAllByDominioTipoQuestionario({codigo : 2}).then(function(result) {
62   - if (result.length > 0) {
63   - $scope.questionarioTemplate = result[0].originalElement;
64   - }
65   - if (!$scope.questionarioTemplate) {
66   - QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) {
67   - $scope.questionarioTemplate = resultCreate;
68   - $scope.preparaQuestTemplate();
69   - });
70   - } else {
71   - $scope.preparaQuestTemplate();
72   - }
73   - });
74   -
75   - $scope.preparaQuestTemplate = function() {
76   - var questoes = [];
77   - for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) {
78   - var questao = {
79   - questao : $scope.questionarioTemplate.questoes[i].questao,
80   - dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id},
81   - respostasEscolha : []
82   - };
83   -
84   - for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) {
85   - questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta});
86   - }
87   - questoes.push(questao);
88   - }
89   - $scope.questionarioTemplate.questoes = questoes;
90   -
91   - $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]);
92   - delete $scope.questaoTemplate.questao;
93   -
94   - $scope.qntDefaultQuest = angular.copy(questoes.length);
95   - };
96   -
97   - // limpa o formulario
98   - $scope.resetForm = function() {
99   -
100   - $scope.estudoTecnico = {
101   - etRecursosMateriais : [],
102   - etRecursosHumanos : []
103   - };
104   -
105   - $scope.edit = true;
106   - $scope.reqNegocio = {};
107   - $scope.beneficioEsperado = {};
108   - $scope.estudoTecnicoRecursoMaterialTemp = {};
109   - $scope.estudoTecnicoRecursoHumanoTemp = {};
110   - $scope.acaoEmMassaRecursosMateriais = false;
111   - $scope.acaoEmMassaRecursosHumanos = false;
112   -
113   - $scope.workspace.objetoScope = $scope.estudoTecnico;
114   - $scope.startTimerIntervalSaveDraft($scope.workspace, null, true);
115   -
116   - $scope.setCurrentStep(0);
117   - $scope.atualizarListaSizeSelectReqNegocio();
118   - $scope.atualizarListaSizeSelectSolucao();
119   - $scope.atualizarListaSizeSelectServicoSolucao();
120   - $scope.atualizarListaSizeSelectBeneficio();
121   - $scope.atualizarListaSizeSelectRecursoMaterial();
122   - $scope.atualizarListaSizeSelectRecursoHumano();
123   - $scope.atualizarListaSizeSelectAcaoContigencia();
124   -
125   - $timeout(function() {
126   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false;
127   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false;
128   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
129   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
130   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false;
131   -
132   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine();
133   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine();
134   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
135   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
136   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine();
137   - });
138   - };
  14 + $scope.edit = true;
  15 + $scope.estudoTecnico = {
  16 + etRecursosMateriais : [],
  17 + etRecursosHumanos : []
  18 + };
  19 + $scope.reqNegocio = {};
  20 + $scope.beneficioEsperado = {};
  21 + $scope.estudoTecnicoRecursoMaterialTemp = {};
  22 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  23 + $scope.listaRequisitoTecSelecao = [];
  24 + $scope.listaAlternativa = [];
  25 + $scope.listaServicoSolucao = [];
  26 + $scope.listaBeneficio = [];
  27 + $scope.listaRecursoMateriais = [];
  28 + $scope.listaRecursoHumanos = [];
  29 + $scope.listaAcoesContigencia = [];
  30 +
  31 + $scope.uploader = new FileUploader({
  32 + autoUpload: false,
  33 + queueLimit: 1,
  34 + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento='
  35 + });
  36 +
  37 + $scope.findIntegrante = function(value) {
  38 + return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  39 + return result;
  40 + });
  41 + };
  42 +
  43 + $scope.findOrgaoExterno = function(value) {
  44 + return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) {
  45 + return result;
  46 + });
  47 + };
  48 +
  49 + $scope.findFornecedor = function(value) {
  50 + return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'], value).then(function(result) {
  51 + return result;
  52 + });
  53 + };
  54 +
  55 + $scope.findResponsavel = function(value) {
  56 + return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) {
  57 + return result;
  58 + });
  59 + };
  60 +
  61 + QuestionarioRepository.findAllByDominioTipoQuestionario({codigo : 2}).then(function(result) {
  62 + if (result.length > 0) {
  63 + $scope.questionarioTemplate = result[0].originalElement;
  64 + }
  65 + if (!$scope.questionarioTemplate) {
  66 + QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) {
  67 + $scope.questionarioTemplate = resultCreate;
  68 + $scope.preparaQuestTemplate();
  69 + });
  70 + } else {
  71 + $scope.preparaQuestTemplate();
  72 + }
  73 + });
  74 +
  75 + $scope.preparaQuestTemplate = function() {
  76 + var questoes = [];
  77 + for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) {
  78 + var questao = {
  79 + questao : $scope.questionarioTemplate.questoes[i].questao,
  80 + dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id},
  81 + respostasEscolha : []
  82 + };
  83 +
  84 + for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) {
  85 + questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta});
  86 + }
  87 + questoes.push(questao);
  88 + }
  89 + $scope.questionarioTemplate.questoes = questoes;
  90 +
  91 + $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]);
  92 + delete $scope.questaoTemplate.questao;
  93 +
  94 + $scope.qntDefaultQuest = angular.copy(questoes.length);
  95 + };
  96 +
  97 + // limpa o formulario
  98 + $scope.resetForm = function() {
  99 +
  100 + $scope.estudoTecnico = {
  101 + etRecursosMateriais : [],
  102 + etRecursosHumanos : []
  103 + };
  104 +
  105 + $scope.edit = true;
  106 + $scope.reqNegocio = {};
  107 + $scope.beneficioEsperado = {};
  108 + $scope.estudoTecnicoRecursoMaterialTemp = {};
  109 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  110 + $scope.acaoEmMassaRecursosMateriais = false;
  111 + $scope.acaoEmMassaRecursosHumanos = false;
  112 +
  113 + $scope.workspace.objetoScope = $scope.estudoTecnico;
  114 + $scope.startTimerIntervalSaveDraft($scope.workspace, null, true);
  115 +
  116 + $scope.setCurrentStep(0);
  117 + $scope.atualizarListaSizeSelectReqNegocio();
  118 + $scope.atualizarListaSizeSelectSolucao();
  119 + $scope.atualizarListaSizeSelectServicoSolucao();
  120 + $scope.atualizarListaSizeSelectBeneficio();
  121 + $scope.atualizarListaSizeSelectRecursoMaterial();
  122 + $scope.atualizarListaSizeSelectRecursoHumano();
  123 + $scope.atualizarListaSizeSelectAcaoContigencia();
  124 +
  125 + $timeout(function() {
  126 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false;
  127 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false;
  128 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
  129 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false;
  130 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false;
  131 +
  132 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine();
  133 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine();
  134 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
  135 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine();
  136 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine();
  137 + });
  138 + };
139 139  
140 140 $scope.setRascunho = function(rascunho){
141 141  
... ... @@ -148,1111 +148,1121 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
148 148 $scope.setLoading(false);
149 149 };
150 150  
151   - $scope.visualizarEditar = function(idEstudoTecnico, edit) {
152   - $scope.resetForm();
153   - $scope.setLoadingGet(true);
154   -
155   - EstudoTecnicoRepository.get(idEstudoTecnico).then(function(result) {
156   -
157   - $scope.estudoTecnico = result.originalElement;
158   -
159   - $scope.edit = edit;
160   -
161   - $scope.atualizarListaSizeSelectReqNegocio();
162   - $scope.atualizarListaSizeSelectSolucao();
163   - $scope.atualizarListaSizeSelectServicoSolucao();
164   - $scope.atualizarListaSizeSelectBeneficio();
165   - $scope.atualizarListaSizeSelectRecursoMaterial();
166   - $scope.atualizarListaSizeSelectRecursoHumano();
167   - $scope.atualizarListaSizeSelectAcaoContigencia();
168   -
169   - $scope.setCurrentStep(0);
170   - $scope.stopTimerIntervalDraft($scope.workspace);
171   - $scope.setLoading(false);
172   - });
173   - };
174   -
175   - //INICIO DE METODOS REFERENTES AOS RELATORIOS
176   -
177   - $scope.gerarRelatorioEstudoTecnico = function() {
178   - $scope.url = '/cit-contratos-web/rest/estudoTecnico/gerarEstudoTecnico?idEstudoTecnico='+ $scope.estudoTecnico.id;
179   - $scope.visualizarRelatorio($scope.url, $translate.instant("LABEL.TITULO_ESTUDO_TECNICO"));
180   - };
181   -
182   - //Salva o estudo técnico
183   - $scope.saveOrUpdate = function() {
184   - // atributo para visualizar os itens obrigatorios na tela
185   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true;
186   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
187   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
188   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true;
189   - $scope.estudoTecnicoForm.recursosNecessariosForm.$submitted = true;
190   - $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
191   - $scope.estudoTecnicoForm.anexosObservacoesForm.$submitted = true;
192   -
193   - // verifica formulario valido
194   - if ($scope.estudoTecnicoForm.$valid) {
195   -
196   - $scope.setLoadingSalva(true);
197   -
198   - var estudoTecnicoTemp = {
199   - documentos: []
200   - };
201   -
202   - // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento
203   - angular.forEach($scope.estudoTecnico.documentos, function(documento, key) {
204   - if (documento.uploadsDocumento) {
205   - estudoTecnicoTemp.documentos.push({
206   - uploadsDocumento: clone(documento.uploadsDocumento),
207   - numero: clone(documento.numero)
208   - });
209   - // deleta esse atributo por causa de um erro de ciclo no json
210   - delete documento.uploadsDocumento;
211   - }
212   - });
213   -
214   - $scope.estudoTecnico.rascunho = $scope.workspace.rascunho.id;
215   - EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) {
216   -
217   - $scope.estudoTecnico = result.originalElement;
218   -
219   - $scope.setLoading(false);
220   -
221   - $scope.showAlert("success", $translate.instant("MSG.SUCESSO_ESTUDO_TECNICO"));
222   -
223   - // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir
224   - salvarListaDocumentos(estudoTecnicoTemp);
225   - });
226   - } else {
227   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'));
228   - }
229   - };
230   -
231   - // realiza a exclusão da EstudoTecnico
232   - $scope.excluirEstudoTecnico = function(){
233   - var workspace = this.item;
234   - $scope.$modalConfirmInstance.dismiss('cancel');
235   - EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) {
236   - $scope.uploader.clearQueue();
237   - $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO'));
238   - $scope.$showPageSearchWorkspace(workspace);
239   - $scope.atualizarLista('EstudoTecnicoListControllerId');
240   - });
241   - };
242   -
243   - // prepara a exclusao do estudo técnico abrindo o modal de confirmacao
244   - $scope.remove = function(workspace) {
245   - $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace});
246   - };
247   -
248   - // 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
249   - var salvarListaDocumentos = function(estudoTecnicoTemp) {
250   -
251   - angular.forEach($scope.estudoTecnico.documentos, function(documentoSalvo, key) {
252   - // verifica se a entidade documento foi salva
253   - if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) {
254   - // percorre todos os documentos temporarios para verificacao do numero do documento
255   - angular.forEach(estudoTecnicoTemp.documentos, function(documentoTransient, key) {
256   - // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado
257   - if (documentoSalvo.numero === documentoTransient.numero) {
258   - //salva o anexo ao documento que tiver o mesmo numero do documento transient
259   - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento);
260   - }
261   -
262   - });
263   -
264   - }
265   - });
266   -
267   - };
268   -
269   - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id
270   - var salvarUpload = function(documento, uploadsDocumento) {
271   - $scope.uploader.queue = uploadsDocumento;
272   - // percorre a lista de uploads a serem enviados
273   - angular.forEach($scope.uploader.queue, function(item, key) {
274   - item.url = item.url + documento.id;
275   - });
276   - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) {
277   - // realiza o upload se existir no minimo um arquivo para upload
278   - $scope.uploader.uploadAll();
279   - }
280   - };
281   -
282   - // Seleciona todos os requisitos de negocio na lista
283   - $scope.checkAllReqNegocio = function(value) {
284   - $scope.listaRequisitoTecSelecao = [];
285   - angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) {
286   - item.$checked = value;
287   - $scope.listaRequisitoTecSelecao.push(item);
288   - });
289   - if(!value){
290   - $scope.listaRequisitoTecSelecao = [];
  151 + $scope.visualizarEditar = function(idEstudoTecnico, edit) {
  152 + $scope.resetForm();
  153 + $scope.setLoadingGet(true);
  154 +
  155 + EstudoTecnicoRepository.get(idEstudoTecnico).then(function(result) {
  156 +
  157 + $scope.estudoTecnico = result.originalElement;
  158 +
  159 + $scope.edit = edit;
  160 +
  161 + $scope.atualizarListaSizeSelectReqNegocio();
  162 + $scope.atualizarListaSizeSelectSolucao();
  163 + $scope.atualizarListaSizeSelectServicoSolucao();
  164 + $scope.atualizarListaSizeSelectBeneficio();
  165 + $scope.atualizarListaSizeSelectRecursoMaterial();
  166 + $scope.atualizarListaSizeSelectRecursoHumano();
  167 + $scope.atualizarListaSizeSelectAcaoContigencia();
  168 +
  169 + $scope.setCurrentStep(0);
  170 + $scope.stopTimerIntervalDraft($scope.workspace);
  171 + $scope.setLoading(false);
  172 + });
  173 + };
  174 +
  175 + //INICIO DE METODOS REFERENTES AOS RELATORIOS
  176 +
  177 + $scope.gerarRelatorioEstudoTecnico = function() {
  178 + $scope.url = '/cit-contratos-web/rest/estudoTecnico/gerarEstudoTecnico?idEstudoTecnico='+ $scope.estudoTecnico.id;
  179 + $scope.visualizarRelatorio($scope.url, $translate.instant("LABEL.TITULO_ESTUDO_TECNICO"));
  180 + };
  181 +
  182 + //Salva o estudo técnico
  183 + $scope.saveOrUpdate = function() {
  184 + // atributo para visualizar os itens obrigatorios na tela
  185 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true;
  186 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
  187 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
  188 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true;
  189 + $scope.estudoTecnicoForm.recursosNecessariosForm.$submitted = true;
  190 + $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
  191 + $scope.estudoTecnicoForm.anexosObservacoesForm.$submitted = true;
  192 +
  193 + // verifica formulario valido
  194 + if ($scope.estudoTecnicoForm.$valid) {
  195 +
  196 + $scope.setLoadingSalva(true);
  197 +
  198 + var estudoTecnicoTemp = {
  199 + documentos: []
  200 + };
  201 +
  202 + // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento
  203 + angular.forEach($scope.estudoTecnico.documentos, function(documento, key) {
  204 + if (documento.uploadsDocumento) {
  205 + estudoTecnicoTemp.documentos.push({
  206 + uploadsDocumento: clone(documento.uploadsDocumento),
  207 + numero: clone(documento.numero)
  208 + });
  209 + // deleta esse atributo por causa de um erro de ciclo no json
  210 + delete documento.uploadsDocumento;
  211 + }
  212 + });
  213 +
  214 + $scope.estudoTecnico.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null;
  215 + EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) {
  216 +
  217 + $scope.estudoTecnico = result.originalElement;
  218 +
  219 + $scope.setLoading(false);
  220 +
  221 + $scope.showAlert("success", $translate.instant("MSG.SUCESSO_ESTUDO_TECNICO"));
  222 +
  223 + // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir
  224 + salvarListaDocumentos(estudoTecnicoTemp);
  225 +
  226 + $timeout(function() {
  227 + $scope.$showPageSearchWorkspace($scope.workspace);
  228 + $scope.atualizaPaginaPesquisa();
  229 + });
  230 + });
  231 + } else {
  232 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'));
  233 + }
  234 + };
  235 +
  236 + // Atualiza pagina de pesquisa
  237 + $scope.atualizaPaginaPesquisa = function () {
  238 + angular.element('#EstudoTecnicoListControllerId').scope().fetchResult();
  239 + };
  240 +
  241 + // realiza a exclusão da EstudoTecnico
  242 + $scope.excluirEstudoTecnico = function(){
  243 + var workspace = this.item;
  244 + $scope.$modalConfirmInstance.dismiss('cancel');
  245 + EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) {
  246 + $scope.uploader.clearQueue();
  247 + $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  248 + $scope.$showPageSearchWorkspace(workspace);
  249 + $scope.atualizarLista('EstudoTecnicoListControllerId');
  250 + });
  251 + };
  252 +
  253 + // prepara a exclusao do estudo técnico abrindo o modal de confirmacao
  254 + $scope.remove = function(workspace) {
  255 + $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace});
  256 + };
  257 +
  258 + // 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
  259 + var salvarListaDocumentos = function(estudoTecnicoTemp) {
  260 +
  261 + angular.forEach($scope.estudoTecnico.documentos, function(documentoSalvo, key) {
  262 + // verifica se a entidade documento foi salva
  263 + if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) {
  264 + // percorre todos os documentos temporarios para verificacao do numero do documento
  265 + angular.forEach(estudoTecnicoTemp.documentos, function(documentoTransient, key) {
  266 + // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado
  267 + if (documentoSalvo.numero === documentoTransient.numero) {
  268 + //salva o anexo ao documento que tiver o mesmo numero do documento transient
  269 + salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento);
  270 + }
  271 +
  272 + });
  273 +
  274 + }
  275 + });
  276 +
  277 + };
  278 +
  279 + // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id
  280 + var salvarUpload = function(documento, uploadsDocumento) {
  281 + $scope.uploader.queue = uploadsDocumento;
  282 + // percorre a lista de uploads a serem enviados
  283 + angular.forEach($scope.uploader.queue, function(item, key) {
  284 + item.url = item.url + documento.id;
  285 + });
  286 + if ($scope.uploader.queue && $scope.uploader.queue.length > 0) {
  287 + // realiza o upload se existir no minimo um arquivo para upload
  288 + $scope.uploader.uploadAll();
  289 + }
  290 + };
  291 +
  292 + // Seleciona todos os requisitos de negocio na lista
  293 + $scope.checkAllReqNegocio = function(value) {
  294 + $scope.listaRequisitoTecSelecao = [];
  295 + angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) {
  296 + item.$checked = value;
  297 + $scope.listaRequisitoTecSelecao.push(item);
  298 + });
  299 + if(!value){
  300 + $scope.listaRequisitoTecSelecao = [];
  301 + }
  302 + $scope.atualizarListaSizeSelectReqNegocio();
  303 + };
  304 +
  305 + $scope.checkReqNegocio = function(item){
  306 + if(item.$checked){
  307 + $scope.listaRequisitoTecSelecao.push(item);
  308 + }else{
  309 + $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1);
  310 + }
  311 +
  312 + };
  313 +
  314 + // Seleciona todas as alternativas na lista de solução
  315 + $scope.checkAllAlternativa = function(value) {
  316 + $scope.listaAlternativa = [];
  317 + angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) {
  318 + item.$checked = value;
  319 + $scope.listaAlternativa.push(item);
  320 + });
  321 + if(!value){
  322 + $scope.listaAlternativa = [];
  323 + }
  324 + $scope.atualizarListaSizeSelectSolucao();
  325 + };
  326 +
  327 + $scope.checkAlternativa = function(item){
  328 + if(item.$checked){
  329 + $scope.listaAlternativa.push(item);
  330 + }else{
  331 + $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1);
  332 + }
  333 +
  334 + };
  335 +
  336 + $scope.checkAllBensServicos = function(value) {
  337 + $scope.listaServicoSolucao = [];
  338 + angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) {
  339 + item.$checked = value;
  340 + $scope.listaServicoSolucao.push(item);
  341 + });
  342 + if(!value){
  343 + $scope.listaServicoSolucao = [];
  344 + }
  345 + $scope.atualizarListaSizeSelectServicoSolucao();
  346 + };
  347 +
  348 + $scope.checkBemServico = function(item){
  349 + if(item.$checked){
  350 + $scope.listaServicoSolucao.push(item);
  351 + }else{
  352 + $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1);
  353 + }
  354 + };
  355 +
  356 + // marca benefício esperado
  357 + $scope.checkAllBeneficios = function(value) {
  358 + $scope.listaBeneficio = [];
  359 + angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) {
  360 + item.$checked = value;
  361 + $scope.listaBeneficio.push(item);
  362 + });
  363 + if(!value){
  364 + $scope.listaBeneficio = [];
  365 + }
  366 + $scope.atualizarListaSizeSelectBeneficio();
  367 + };
  368 +
  369 + $scope.checkBeneficio = function(item){
  370 + if(item.$checked){
  371 + $scope.listaBeneficio.push(item);
  372 + }else{
  373 + $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1);
  374 + }
  375 + };
  376 +
  377 + // responsavel por definir se as acoes em massa estaram disponiveis
  378 + $scope.checkAllRecursosMateriais = function (value){
  379 + $scope.listaRecursoMateriais = [];
  380 + angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) {
  381 + item.$checked = value;
  382 + $scope.listaRecursoMateriais.push(item);
  383 + });
  384 + if(!value){
  385 + $scope.listaRecursoMateriais = [];
  386 + }
  387 + $scope.atualizarListaSizeSelectRecursoMaterial();
  388 + };
  389 +
  390 + $scope.checkRecursoMaterial = function(item){
  391 + if(item.$checked){
  392 + $scope.listaRecursoMateriais.push(item);
  393 + }else{
  394 + $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1);
  395 + }
  396 + };
  397 +
  398 + // responsavel por definir se as acoes em massa estaram disponiveis
  399 + $scope.checkAllRecursosHumanos = function (value){
  400 + $scope.listaRecursoHumanos = [];
  401 + angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) {
  402 + item.$checked = value;
  403 + $scope.listaRecursoHumanos.push(item);
  404 + });
  405 + if(!value){
  406 + $scope.listaRecursoHumanos = [];
  407 + }
  408 + $scope.atualizarListaSizeSelectRecursoHumano();
  409 + };
  410 +
  411 + $scope.checkRecursoHumano = function(item){
  412 + if(item.$checked){
  413 + $scope.listaRecursoHumanos.push(item);
  414 + }else{
  415 + $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1);
  416 + }
  417 + };
  418 +
  419 + $scope.checkAllAcoes = function(value) {
  420 + $scope.listaAcoesContigencia = [];
  421 + angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) {
  422 + item.$checked = value;
  423 + $scope.listaAcoesContigencia.push(item);
  424 + });
  425 + if(!value){
  426 + $scope.listaAcoesContigencia = [];
  427 + }
  428 + $scope.atualizarListaSizeSelectAcaoContigencia();
  429 + };
  430 +
  431 + $scope.checkAcaoContigencia = function(item){
  432 + if(item.$checked){
  433 + $scope.listaAcoesContigencia.push(item);
  434 + }else{
  435 + $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1);
  436 + }
  437 + };
  438 +
  439 + // recupera requisito de negocio selecionado
  440 + $scope.getReqNegocioChecked = function() {
  441 + var reqNegocioChecked = [];
  442 +
  443 + if ($scope.estudoTecnico.etRequisitosNegocio) {
  444 + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
  445 + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  446 + reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i]));
  447 + }
  448 + }
  449 + }
  450 +
  451 + return reqNegocioChecked;
  452 + };
  453 +
  454 + // recupera solucao selecionada
  455 + $scope.getSolucaoChecked = function() {
  456 + var solucaoChecked = [];
  457 +
  458 + if ($scope.estudoTecnico.etLevantamentoAlternativas) {
  459 + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
  460 + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  461 + solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i]));
  462 + }
  463 + }
  464 + }
  465 +
  466 + return solucaoChecked;
  467 + };
  468 +
  469 + // recupera bem servico selecionado
  470 + $scope.getBemServicoChecked = function() {
  471 + var bemServicoChecked = [];
  472 +
  473 + if ($scope.estudoTecnico.etBensServicosSolucoes) {
  474 + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
  475 + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  476 + bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i]));
  477 + }
  478 + }
  479 + }
  480 +
  481 + return bemServicoChecked;
  482 + };
  483 +
  484 + // recupera beneficio esperado selecionado
  485 + $scope.getBeneficioEsperadoChecked = function() {
  486 + var beneficioEsperadoChecked = [];
  487 +
  488 + if ($scope.estudoTecnico.etBeneficiosEsperados) {
  489 + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
  490 + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  491 + beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i]));
  492 + }
  493 + }
  494 + }
  495 +
  496 + return beneficioEsperadoChecked;
  497 + };
  498 +
  499 + // Responsavel por retornar o recurso material selecionado
  500 + $scope.getRecursoMaterialChecked = function() {
  501 +
  502 + var recursoMaterialChecked = [];
  503 +
  504 + if ($scope.estudoTecnico.etRecursosMateriais) {
  505 + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
  506 + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  507 + recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i]));
  508 + }
  509 + }
  510 + }
  511 + return recursoMaterialChecked;
  512 + };
  513 +
  514 + // Responsavel por retornar o recurso humano selecionado
  515 + $scope.getRecursoHumanoChecked = function() {
  516 +
  517 + var recursoHumanoChecked = [];
  518 +
  519 + if ($scope.estudoTecnico.etRecursosHumanos) {
  520 + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
  521 + if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
  522 + recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i]));
  523 + }
  524 + }
  525 + }
  526 +
  527 + return recursoHumanoChecked;
  528 + };
  529 +
  530 + // recupera a ação de contingencia selecionada
  531 + $scope.getAcaoContChecked = function() {
  532 + var acaoContChecked = [];
  533 +
  534 + if ($scope.estudoTecnico.etAcoesContingencia) {
  535 + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
  536 + if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
  537 + acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i]));
  538 + }
  539 + }
  540 + }
  541 +
  542 + return acaoContChecked;
  543 + };
  544 +
  545 + $scope.openModalRequisitoNegocio = function() {
  546 +
  547 + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
  548 + $scope.objetivosEstrategicos = result;
  549 + });
  550 +
  551 + $scope.editRequisitoNegocio = true;
  552 +
  553 + $scope.reqNegocio = {};
  554 +
  555 + $timeout(function() {
  556 + $scope.$openModal('modal-requisito-negocio.html', 'lg');
  557 + });
  558 + };
  559 +
  560 + function resetModalSolucao(){
  561 + $scope.solucao = {
  562 + etlaQuestionario : {}
  563 + };
  564 +
  565 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas = [];
  566 +
  567 + for (var i = 0; i < $scope.qntDefaultQuest; i++) {
  568 + var questPergunta = {
  569 + questionarioPergunta : $scope.questionarioTemplate.questoes[i],
  570 + index : i+1
  571 + };
  572 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta);
  573 + }
  574 +
  575 + $scope.solucao.etlaQuestionario.etQuestionario = {
  576 + nome : $scope.questionarioTemplate.nome
  577 + };
  578 + }
  579 +
  580 + $scope.openModalSolucao = function() {
  581 + $scope.editSolucao = true;
  582 +
  583 + resetModalSolucao();
  584 +
  585 + $timeout(function() {
  586 + $scope.$openModal('modal-solucao.html', 'lg');
  587 + });
  588 + };
  589 +
  590 + $scope.openModalBensServico = function() {
  591 + $scope.editBemServico = true;
  592 +
  593 + $scope.bemServico = {};
  594 +
  595 + $timeout(function() {
  596 + $scope.$openModal('modal-bem-servico.html', 'lg');
  597 + });
  598 + };
  599 +
  600 + $scope.openModalBeneficioEsperado = function() {
  601 +
  602 + $scope.editBeneficioEsperado = true;
  603 +
  604 + $scope.beneficioEsperado = {};
  605 +
  606 + $timeout(function() {
  607 + $scope.$openModal('modal-beneficio-esperado.html', 'lg');
  608 + });
  609 + };
  610 +
  611 + // responsavel por abrir modal de adicao de um recurso material
  612 + $scope.openModalRecursoMaterial = function() {
  613 +
  614 + $scope.estudoTecnicoRecursoMaterialTemp = {
  615 + disponivel : true
  616 + };
  617 +
  618 + $scope.editRecursoMaterial = true;
  619 + $scope.$openModal('modal-recurso-material.html', 'lg');
  620 + };
  621 +
  622 + // Responsavel por abrir modal de adicao de um recurso humano
  623 + $scope.openModalRecursoHumano = function() {
  624 +
  625 + $scope.estudoTecnicoRecursoHumanoTemp = {};
  626 + $scope.editRecursoHumano = true;
  627 + $scope.$openModal('modal-recurso-humano.html', 'lg');
  628 + };
  629 +
  630 + $scope.openModalAcaoContingencia = function() {
  631 + $scope.editAcaoCont = true;
  632 +
  633 + $scope.acaoCont = {};
  634 +
  635 + $timeout(function() {
  636 + $scope.$openModal('modal-acao-contingencia.html', 'lg');
  637 + });
  638 + };
  639 +
  640 + $scope.abrirRequisitoNegocio = function(edit) {
  641 +
  642 + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
  643 + $scope.objetivosEstrategicos = result;
  644 + });
  645 +
  646 + $scope.editRequisitoNegocio = edit;
  647 +
  648 + $scope.reqNegocio = null;
  649 + // recupera a EstudoTecnico selecionada
  650 + var requisitosSelecionados = $scope.getReqNegocioChecked();
  651 +
  652 + if (requisitosSelecionados.length > 1) {
  653 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  654 + return;
  655 + }
  656 +
  657 + if(requisitosSelecionados.length === 0) {
  658 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  659 + return;
  660 + }
  661 +
  662 + $scope.reqNegocio = requisitosSelecionados[0];
  663 +
  664 + $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico);
  665 +
  666 + $timeout(function() {
  667 + $scope.$openModal('modal-requisito-negocio.html', 'lg');
  668 + });
  669 + };
  670 +
  671 + $scope.abrirSolucao = function(edit) {
  672 +
  673 + $scope.editSolucao = edit;
  674 +
  675 + $scope.solucao = null;
  676 +
  677 + var solucoesSelecionadas = $scope.getSolucaoChecked();
  678 +
  679 + if (solucoesSelecionadas.length > 1) {
  680 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  681 + return;
  682 + }
  683 +
  684 + if(solucoesSelecionadas.length === 0) {
  685 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  686 + return;
  687 + }
  688 +
  689 + $scope.solucao = solucoesSelecionadas[0];
  690 +
  691 + if ($scope.solucao.fornecedor) {
  692 + $scope.solucao.fornecedor['pessoa.nome'] = $scope.solucao.fornecedor.pessoa.nome;
  693 + }
  694 +
  695 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  696 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1;
  697 + }
  698 +
  699 + $timeout(function() {
  700 + $scope.$openModal('modal-solucao.html', 'lg');
  701 + });
  702 + };
  703 +
  704 + $scope.abrirBensServico = function(edit) {
  705 +
  706 + $scope.editBemServico = edit;
  707 +
  708 + $scope.bemServico = null;
  709 +
  710 + var bensServicosSelecionados = $scope.getBemServicoChecked();
  711 +
  712 + if (bensServicosSelecionados.length > 1) {
  713 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  714 + return;
291 715 }
292   - $scope.atualizarListaSizeSelectReqNegocio();
  716 +
  717 + if(bensServicosSelecionados.length === 0) {
  718 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  719 + return;
  720 + }
  721 +
  722 + $scope.bemServico = bensServicosSelecionados[0];
  723 +
  724 + $timeout(function() {
  725 + $scope.$openModal('modal-bem-servico.html', 'lg');
  726 + });
293 727 };
294 728  
295   - $scope.checkReqNegocio = function(item){
296   - if(item.$checked){
297   - $scope.listaRequisitoTecSelecao.push(item);
298   - }else{
299   - $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1);
300   - }
  729 + $scope.abrirBeneficioEsperado = function(edit) {
301 730  
302   - };
  731 + $scope.editBeneficioEsperado = edit;
303 732  
304   - // Seleciona todas as alternativas na lista de solução
305   - $scope.checkAllAlternativa = function(value) {
306   - $scope.listaAlternativa = [];
307   - angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) {
308   - item.$checked = value;
309   - $scope.listaAlternativa.push(item);
310   - });
311   - if(!value){
312   - $scope.listaAlternativa = [];
  733 + $scope.beneficioEsperado = null;
  734 +
  735 + var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
  736 +
  737 + if (beneficiosSelecionados.length > 1) {
  738 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  739 + return;
313 740 }
314   - $scope.atualizarListaSizeSelectSolucao();
315   - };
316 741  
317   - $scope.checkAlternativa = function(item){
318   - if(item.$checked){
319   - $scope.listaAlternativa.push(item);
320   - }else{
321   - $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1);
322   - }
323   -
324   - };
325   -
326   - $scope.checkAllBensServicos = function(value) {
327   - $scope.listaServicoSolucao = [];
328   - angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) {
329   - item.$checked = value;
330   - $scope.listaServicoSolucao.push(item);
331   - });
332   - if(!value){
333   - $scope.listaServicoSolucao = [];
334   - }
335   - $scope.atualizarListaSizeSelectServicoSolucao();
336   - };
337   -
338   - $scope.checkBemServico = function(item){
339   - if(item.$checked){
340   - $scope.listaServicoSolucao.push(item);
341   - }else{
342   - $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1);
343   - }
344   - };
345   -
346   - // marca benefício esperado
347   - $scope.checkAllBeneficios = function(value) {
348   - $scope.listaBeneficio = [];
349   - angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) {
350   - item.$checked = value;
351   - $scope.listaBeneficio.push(item);
352   - });
353   - if(!value){
354   - $scope.listaBeneficio = [];
355   - }
356   - $scope.atualizarListaSizeSelectBeneficio();
357   - };
358   -
359   - $scope.checkBeneficio = function(item){
360   - if(item.$checked){
361   - $scope.listaBeneficio.push(item);
362   - }else{
363   - $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1);
364   - }
365   - };
366   -
367   - // responsavel por definir se as acoes em massa estaram disponiveis
368   - $scope.checkAllRecursosMateriais = function (value){
369   - $scope.listaRecursoMateriais = [];
370   - angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) {
371   - item.$checked = value;
372   - $scope.listaRecursoMateriais.push(item);
373   - });
374   - if(!value){
375   - $scope.listaRecursoMateriais = [];
376   - }
377   - $scope.atualizarListaSizeSelectRecursoMaterial();
378   - };
379   -
380   - $scope.checkRecursoMaterial = function(item){
381   - if(item.$checked){
382   - $scope.listaRecursoMateriais.push(item);
383   - }else{
384   - $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1);
385   - }
386   - };
387   -
388   - // responsavel por definir se as acoes em massa estaram disponiveis
389   - $scope.checkAllRecursosHumanos = function (value){
390   - $scope.listaRecursoHumanos = [];
391   - angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) {
392   - item.$checked = value;
393   - $scope.listaRecursoHumanos.push(item);
394   - });
395   - if(!value){
396   - $scope.listaRecursoHumanos = [];
397   - }
398   - $scope.atualizarListaSizeSelectRecursoHumano();
399   - };
400   -
401   - $scope.checkRecursoHumano = function(item){
402   - if(item.$checked){
403   - $scope.listaRecursoHumanos.push(item);
404   - }else{
405   - $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1);
406   - }
407   - };
408   -
409   - $scope.checkAllAcoes = function(value) {
410   - $scope.listaAcoesContigencia = [];
411   - angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) {
412   - item.$checked = value;
413   - $scope.listaAcoesContigencia.push(item);
414   - });
415   - if(!value){
416   - $scope.listaAcoesContigencia = [];
417   - }
418   - $scope.atualizarListaSizeSelectAcaoContigencia();
419   - };
420   -
421   - $scope.checkAcaoContigencia = function(item){
422   - if(item.$checked){
423   - $scope.listaAcoesContigencia.push(item);
424   - }else{
425   - $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1);
426   - }
427   - };
428   -
429   - // recupera requisito de negocio selecionado
430   - $scope.getReqNegocioChecked = function() {
431   - var reqNegocioChecked = [];
432   -
433   - if ($scope.estudoTecnico.etRequisitosNegocio) {
434   - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
435   - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
436   - reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i]));
437   - }
438   - }
439   - }
440   -
441   - return reqNegocioChecked;
442   - };
443   -
444   - // recupera solucao selecionada
445   - $scope.getSolucaoChecked = function() {
446   - var solucaoChecked = [];
447   -
448   - if ($scope.estudoTecnico.etLevantamentoAlternativas) {
449   - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
450   - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
451   - solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i]));
452   - }
453   - }
454   - }
455   -
456   - return solucaoChecked;
457   - };
458   -
459   - // recupera bem servico selecionado
460   - $scope.getBemServicoChecked = function() {
461   - var bemServicoChecked = [];
462   -
463   - if ($scope.estudoTecnico.etBensServicosSolucoes) {
464   - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
465   - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
466   - bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i]));
467   - }
468   - }
469   - }
470   -
471   - return bemServicoChecked;
472   - };
473   -
474   - // recupera beneficio esperado selecionado
475   - $scope.getBeneficioEsperadoChecked = function() {
476   - var beneficioEsperadoChecked = [];
477   -
478   - if ($scope.estudoTecnico.etBeneficiosEsperados) {
479   - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
480   - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
481   - beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i]));
482   - }
483   - }
484   - }
485   -
486   - return beneficioEsperadoChecked;
487   - };
488   -
489   - // Responsavel por retornar o recurso material selecionado
490   - $scope.getRecursoMaterialChecked = function() {
491   -
492   - var recursoMaterialChecked = [];
493   -
494   - if ($scope.estudoTecnico.etRecursosMateriais) {
495   - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
496   - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
497   - recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i]));
498   - }
499   - }
500   - }
501   - return recursoMaterialChecked;
502   - };
503   -
504   - // Responsavel por retornar o recurso humano selecionado
505   - $scope.getRecursoHumanoChecked = function() {
506   -
507   - var recursoHumanoChecked = [];
508   -
509   - if ($scope.estudoTecnico.etRecursosHumanos) {
510   - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
511   - if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) {
512   - recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i]));
513   - }
514   - }
515   - }
516   -
517   - return recursoHumanoChecked;
518   - };
519   -
520   - // recupera a ação de contingencia selecionada
521   - $scope.getAcaoContChecked = function() {
522   - var acaoContChecked = [];
523   -
524   - if ($scope.estudoTecnico.etAcoesContingencia) {
525   - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
526   - if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) {
527   - acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i]));
528   - }
529   - }
530   - }
531   -
532   - return acaoContChecked;
533   - };
534   -
535   - $scope.openModalRequisitoNegocio = function() {
536   -
537   - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
538   - $scope.objetivosEstrategicos = result;
539   - });
  742 + if(beneficiosSelecionados.length === 0) {
  743 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  744 + return;
  745 + }
540 746  
541   - $scope.editRequisitoNegocio = true;
  747 + $scope.beneficioEsperado = beneficiosSelecionados[0];
542 748  
543   - $scope.reqNegocio = {};
544   -
545   - $timeout(function() {
546   - $scope.$openModal('modal-requisito-negocio.html', 'lg');
547   - });
548   - };
549   -
550   - function resetModalSolucao(){
551   - $scope.solucao = {
552   - etlaQuestionario : {}
553   - };
  749 + $timeout(function() {
  750 + $scope.$openModal('modal-beneficio-esperado.html', 'lg');
  751 + });
  752 + };
554 753  
555   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas = [];
  754 + // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado
  755 + $scope.abrirRecursoMaterial = function(edit) {
556 756  
557   - for (var i = 0; i < $scope.qntDefaultQuest; i++) {
558   - var questPergunta = {
559   - questionarioPergunta : $scope.questionarioTemplate.questoes[i],
560   - index : i+1
561   - };
562   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta);
563   - }
  757 + $scope.editRecursoMaterial = edit;
564 758  
565   - $scope.solucao.etlaQuestionario.etQuestionario = {
566   - nome : $scope.questionarioTemplate.nome
567   - };
568   - }
  759 + $scope.estudoTecnicoRecursoMaterialTemp = null;
569 760  
570   - $scope.openModalSolucao = function() {
571   - $scope.editSolucao = true;
  761 + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
572 762  
573   - resetModalSolucao();
  763 + if (recursosMateriaisSelecionados.length > 1) {
  764 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  765 + return;
  766 + }
574 767  
575   - $timeout(function() {
576   - $scope.$openModal('modal-solucao.html', 'lg');
577   - });
578   - };
  768 + if(recursosMateriaisSelecionados.length === 0) {
  769 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  770 + return;
  771 + }
579 772  
580   - $scope.openModalBensServico = function() {
581   - $scope.editBemServico = true;
  773 + $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0];
582 774  
583   - $scope.bemServico = {};
  775 + $timeout(function() {
  776 + $scope.$openModal('modal-recurso-material.html', 'lg');
  777 + });
  778 + };
584 779  
585   - $timeout(function() {
586   - $scope.$openModal('modal-bem-servico.html', 'lg');
587   - });
588   - };
  780 + // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado
  781 + $scope.abrirRecursoHumano = function(edit) {
589 782  
590   - $scope.openModalBeneficioEsperado = function() {
  783 + $scope.editRecursoHumano = edit;
591 784  
592   - $scope.editBeneficioEsperado = true;
  785 + $scope.estudoTecnicoRecursoHumanoTemp = null;
593 786  
594   - $scope.beneficioEsperado = {};
  787 + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
595 788  
596   - $timeout(function() {
597   - $scope.$openModal('modal-beneficio-esperado.html', 'lg');
598   - });
599   - };
  789 + if (recursosHumanosSelecionados.length > 1) {
  790 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  791 + return;
  792 + }
600 793  
601   - // responsavel por abrir modal de adicao de um recurso material
602   - $scope.openModalRecursoMaterial = function() {
  794 + if(recursosHumanosSelecionados.length === 0) {
  795 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  796 + return;
  797 + }
603 798  
604   - $scope.estudoTecnicoRecursoMaterialTemp = {
605   - disponivel : true
606   - };
  799 + $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0];
607 800  
608   - $scope.editRecursoMaterial = true;
609   - $scope.$openModal('modal-recurso-material.html', 'lg');
610   - };
  801 + $timeout(function() {
  802 + $scope.$openModal('modal-recurso-humano.html', 'lg');
  803 + });
  804 + };
611 805  
612   - // Responsavel por abrir modal de adicao de um recurso humano
613   - $scope.openModalRecursoHumano = function() {
  806 + $scope.abrirAcaoContingencia = function(edit) {
614 807  
615   - $scope.estudoTecnicoRecursoHumanoTemp = {};
616   - $scope.editRecursoHumano = true;
617   - $scope.$openModal('modal-recurso-humano.html', 'lg');
618   - };
  808 + $scope.editAcaoCont = edit;
619 809  
620   - $scope.openModalAcaoContingencia = function() {
621   - $scope.editAcaoCont = true;
  810 + $scope.acaoCont = null;
622 811  
623   - $scope.acaoCont = {};
  812 + var acoesSelecionadas = $scope.getAcaoContChecked();
624 813  
625   - $timeout(function() {
626   - $scope.$openModal('modal-acao-contingencia.html', 'lg');
627   - });
628   - };
  814 + if (acoesSelecionadas.length > 1) {
  815 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
  816 + return;
  817 + }
629 818  
630   - $scope.abrirRequisitoNegocio = function(edit) {
  819 + if(acoesSelecionadas.length === 0) {
  820 + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
  821 + return;
  822 + }
631 823  
632   - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) {
633   - $scope.objetivosEstrategicos = result;
634   - });
  824 + $scope.acaoCont = acoesSelecionadas[0];
635 825  
636   - $scope.editRequisitoNegocio = edit;
  826 + $timeout(function() {
  827 + $scope.$openModal('modal-acao-contingencia.html', 'lg');
  828 + });
  829 + };
637 830  
638   - $scope.reqNegocio = null;
639   - // recupera a EstudoTecnico selecionada
640   - var requisitosSelecionados = $scope.getReqNegocioChecked();
  831 + $scope.removerRequisitoNegocio = function() {
  832 + // recupera a EstudoTecnico selecionada
  833 + var requisitosSelecionados = $scope.getReqNegocioChecked();
641 834  
642   - if (requisitosSelecionados.length > 1) {
643   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
644   - return;
645   - }
  835 + if (requisitosSelecionados.length > 0) {
  836 + $scope.$openModalConfirm({
  837 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  838 + callback: function() {
646 839  
647   - if(requisitosSelecionados.length === 0) {
648   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
649   - return;
650   - }
  840 + $scope.$modalConfirmInstance.dismiss('cancel');
651 841  
652   - $scope.reqNegocio = requisitosSelecionados[0];
  842 + for (var i = 0; i < requisitosSelecionados.length; i++) {
  843 + if (requisitosSelecionados[i].id) {
  844 + EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) {
  845 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  846 + });
  847 + }
  848 + }
  849 + var requisitos = [];
  850 + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
  851 + if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  852 + requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]);
  853 + }
  854 + }
  855 + $scope.listaRequisitoTecSelecao = [];
  856 + $scope.estudoTecnico.etRequisitosNegocio = requisitos;
  857 + $scope.atualizarListaSizeSelectReqNegocio();
  858 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  859 + }
  860 + });
  861 + } else {
  862 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  863 + }
  864 + };
653 865  
654   - $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico);
  866 + $scope.removerSolucao = function() {
  867 + var solucoesSelecionadas = $scope.getSolucaoChecked();
655 868  
656   - $timeout(function() {
657   - $scope.$openModal('modal-requisito-negocio.html', 'lg');
658   - });
659   - };
  869 + if (solucoesSelecionadas.length > 0) {
  870 + $scope.$openModalConfirm({
  871 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  872 + callback: function() {
660 873  
661   - $scope.abrirSolucao = function(edit) {
  874 + $scope.$modalConfirmInstance.dismiss('cancel');
662 875  
663   - $scope.editSolucao = edit;
  876 + for (var i = 0; i < solucoesSelecionadas.length; i++) {
  877 + if (solucoesSelecionadas[i].id) {
  878 + EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) {
  879 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  880 + });
  881 + }
  882 + }
  883 + var solucoes = [];
  884 + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
  885 + if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  886 + solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]);
  887 + }
  888 + }
  889 + $scope.listaAlternativa = [];
  890 + $scope.estudoTecnico.etLevantamentoAlternativas = solucoes;
  891 + $scope.atualizarListaSizeSelectSolucao();
  892 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  893 + }
  894 + });
  895 + } else {
  896 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  897 + }
  898 + };
664 899  
665   - $scope.solucao = null;
  900 + $scope.removerBensServico = function() {
  901 + var bensServicosSelecionados = $scope.getBemServicoChecked();
  902 +
  903 + if (bensServicosSelecionados.length > 0) {
  904 + $scope.$openModalConfirm({
  905 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  906 + callback: function() {
  907 + $scope.$modalConfirmInstance.dismiss('cancel');
  908 +
  909 + for (var i = 0; i < bensServicosSelecionados.length; i++) {
  910 + if (bensServicosSelecionados[i].id) {
  911 + EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) {
  912 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  913 + });
  914 + }
  915 + }
  916 + var bensServicos = [];
  917 + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
  918 + if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  919 + bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]);
  920 + }
  921 + }
  922 + $scope.estudoTecnico.etBensServicosSolucoes = bensServicos;
  923 + $scope.atualizarListaSizeSelectServicoSolucao();
  924 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  925 + }
  926 + });
  927 + } else {
  928 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  929 + }
  930 + };
666 931  
667   - var solucoesSelecionadas = $scope.getSolucaoChecked();
  932 + $scope.removerBeneficioEsperado = function() {
668 933  
669   - if (solucoesSelecionadas.length > 1) {
670   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
671   - return;
672   - }
  934 + var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
673 935  
674   - if(solucoesSelecionadas.length === 0) {
675   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
676   - return;
677   - }
  936 + if (beneficiosSelecionados.length > 0) {
  937 + $scope.$openModalConfirm({
  938 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  939 + callback: function() {
  940 + $scope.$modalConfirmInstance.dismiss('cancel');
678 941  
679   - $scope.solucao = solucoesSelecionadas[0];
  942 + for (var i = 0; i < beneficiosSelecionados.length; i++) {
  943 + if (beneficiosSelecionados[i].id) {
  944 + EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) {
  945 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  946 + });
  947 + }
  948 + }
  949 + var beneficios = [];
  950 + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
  951 + if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  952 + beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]);
  953 + }
  954 + }
  955 + $scope.listaBeneficio = [];
  956 + $scope.estudoTecnico.etBeneficiosEsperados = beneficios;
  957 + $scope.atualizarListaSizeSelectBeneficio();
  958 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  959 + }
  960 + });
  961 + } else {
  962 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  963 + }
  964 + };
680 965  
681   - if ($scope.solucao.fornecedor) {
682   - $scope.solucao.fornecedor['pessoa.nome'] = $scope.solucao.fornecedor.pessoa.nome;
683   - }
  966 + //responsavel por remover um/ou mais recurs(o)s materiais do estudo tecnico
  967 + $scope.removerRecursoMaterial = function (){
684 968  
685   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
686   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1;
687   - }
  969 + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
688 970  
689   - $timeout(function() {
690   - $scope.$openModal('modal-solucao.html', 'lg');
691   - });
692   - };
  971 + if (recursosMateriaisSelecionados.length > 0) {
  972 + $scope.$openModalConfirm({
  973 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  974 + callback: function() {
  975 + $scope.$modalConfirmInstance.dismiss('cancel');
693 976  
694   - $scope.abrirBensServico = function(edit) {
  977 + for (var i = 0; i < recursosMateriaisSelecionados.length; i++) {
  978 + if (recursosMateriaisSelecionados[i].id) {
  979 + EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) {
  980 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  981 + });
  982 + }
  983 + }
  984 + var recursosMateriais = [];
  985 + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
  986 + if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  987 + recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]);
  988 + }
  989 + }
  990 + $scope.listaRecursoMateriais = [];
  991 + $scope.estudoTecnico.etRecursosMateriais = recursosMateriais;
  992 + $scope.atualizarListaSizeSelectRecursoMaterial();
  993 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  994 + }
  995 + });
  996 + } else {
  997 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  998 + }
  999 + };
695 1000  
696   - $scope.editBemServico = edit;
  1001 + //responsavel por remover um/ou mais recurs(o)s humanos do estudo tecnico
  1002 + $scope.removerRecursoHumano = function (){
697 1003  
698   - $scope.bemServico = null;
  1004 + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
699 1005  
700   - var bensServicosSelecionados = $scope.getBemServicoChecked();
  1006 + if (recursosHumanosSelecionados.length > 0) {
  1007 + $scope.$openModalConfirm({
  1008 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  1009 + callback: function() {
  1010 + $scope.$modalConfirmInstance.dismiss('cancel');
701 1011  
702   - if (bensServicosSelecionados.length > 1) {
703   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
704   - return;
705   - }
  1012 + for (var i = 0; i < recursosHumanosSelecionados.length; i++) {
  1013 + if (recursosHumanosSelecionados[i].id) {
  1014 + EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) {
  1015 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1016 + });
  1017 + }
  1018 + }
  1019 + var recursosHumanos = [];
  1020 + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
  1021 + if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) {
  1022 + recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]);
  1023 + }
  1024 + }
  1025 + $scope.estudoTecnico.etRecursosHumanos = recursosHumanos;
  1026 + $scope.listaRecursoHumanos = [];
  1027 + $scope.atualizarListaSizeSelectRecursoHumano();
  1028 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1029 + }
  1030 + });
  1031 + } else {
  1032 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  1033 + }
  1034 + };
706 1035  
707   - if(bensServicosSelecionados.length === 0) {
708   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
709   - return;
710   - }
  1036 + $scope.removerAcaoContingencia = function() {
711 1037  
712   - $scope.bemServico = bensServicosSelecionados[0];
  1038 + var acoesSelecionadas = $scope.getAcaoContChecked();
713 1039  
714   - $timeout(function() {
715   - $scope.$openModal('modal-bem-servico.html', 'lg');
716   - });
717   - };
  1040 + if (acoesSelecionadas.length > 0) {
  1041 + $scope.$openModalConfirm({
  1042 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  1043 + callback: function() {
  1044 + $scope.$modalConfirmInstance.dismiss('cancel');
718 1045  
719   - $scope.abrirBeneficioEsperado = function(edit) {
  1046 + for (var i = 0; i < acoesSelecionadas.length; i++) {
  1047 + if (acoesSelecionadas[i].id) {
  1048 + EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) {
  1049 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1050 + });
  1051 + }
  1052 + }
  1053 + var acoes = [];
  1054 + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
  1055 + if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) {
  1056 + acoes.push($scope.estudoTecnico.etAcoesContingencia[i]);
  1057 + }
  1058 + }
  1059 + $scope.estudoTecnico.etAcoesContingencia = acoes;
  1060 + $scope.listaAcoesContigencia = [];
  1061 + $scope.atualizarListaSizeSelectAcaoContigencia();
  1062 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1063 + }
  1064 + });
  1065 + } else {
  1066 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
  1067 + }
  1068 + };
720 1069  
721   - $scope.editBeneficioEsperado = edit;
  1070 + // recupera solucao selecionada
  1071 + $scope.getQuestaoChecked = function() {
  1072 + var questaoChecked = null;
  1073 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas) {
  1074 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  1075 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) {
  1076 + questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i];
  1077 + }
  1078 + }
  1079 + }
  1080 + return questaoChecked;
  1081 + };
722 1082  
723   - $scope.beneficioEsperado = null;
  1083 + $scope.addQuestao = function() {
  1084 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({
  1085 + questionarioPergunta : angular.copy($scope.questaoTemplate),
  1086 + index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1,
  1087 + edit : true
  1088 + });
  1089 + };
724 1090  
725   - var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
  1091 + $scope.editQuestao = function() {
  1092 + var questao = $scope.getQuestaoChecked();
726 1093  
727   - if (beneficiosSelecionados.length > 1) {
728   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
729   - return;
730   - }
  1094 + if(!questao) {
  1095 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO'));
  1096 + return;
  1097 + }
731 1098  
732   - if(beneficiosSelecionados.length === 0) {
733   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
734   - return;
735   - }
  1099 + questao.edit = true;
  1100 + };
736 1101  
737   - $scope.beneficioEsperado = beneficiosSelecionados[0];
  1102 + $scope.removerQuestao = function() {
  1103 + var questao = $scope.getQuestaoChecked();
738 1104  
739   - $timeout(function() {
740   - $scope.$openModal('modal-beneficio-esperado.html', 'lg');
741   - });
742   - };
  1105 + if(!questao) {
  1106 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'));
  1107 + return;
  1108 + }
  1109 + $scope.cancelarQuestao(questao);
  1110 + };
743 1111  
744   - // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado
745   - $scope.abrirRecursoMaterial = function(edit) {
  1112 + $scope.salvarQuestao = function(questao) {
  1113 + if (questao.questionarioPergunta.questao) {
  1114 + questao.edit = !questao.edit;
  1115 + } else {
  1116 + $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA'));
  1117 + }
  1118 + };
746 1119  
747   - $scope.editRecursoMaterial = edit;
  1120 + $scope.cancelarQuestao = function(questao) {
  1121 + var questTemp = [];
  1122 + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
  1123 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) {
  1124 + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1125 + }
  1126 + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) {
  1127 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--;
  1128 + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1129 + }
  1130 + if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) {
  1131 + $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
  1132 + }
  1133 + }
  1134 + $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp;
  1135 + };
748 1136  
749   - $scope.estudoTecnicoRecursoMaterialTemp = null;
  1137 + $scope.removerRespostaPergunta = function(resposta) {
  1138 + if (resposta) {
  1139 + var pergunta = resposta.questionarioPergunta;
  1140 + $scope.$openModalConfirm({
  1141 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  1142 + callback: function() {
  1143 + $scope.$modalConfirmInstance.dismiss('cancel');
  1144 + if ($scope.resposta.id) {
  1145 + EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) {
  1146 + $scope.removerPergunta(pergunta);
  1147 + });
  1148 + } else {
  1149 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1150 + }
  1151 + }
  1152 + });
  1153 + } else {
  1154 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
  1155 + }
  1156 + };
750 1157  
751   - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
  1158 + $scope.removerPergunta = function(pergunta) {
  1159 + if (pergunta) {
  1160 + QuestionarioPerguntaRepository.remove(pergunta).then(function(result) {
  1161 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  1162 + });
  1163 + } else {
  1164 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
  1165 + }
  1166 + };
752 1167  
753   - if (recursosMateriaisSelecionados.length > 1) {
754   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
755   - return;
756   - }
  1168 + // ADICIONAR Requisito de negócio
  1169 + $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio, continuarEditando) {
757 1170  
758   - if(recursosMateriaisSelecionados.length === 0) {
759   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
760   - return;
761   - }
  1171 + formDialogRequisitoNegocio.$submitted = true;
762 1172  
763   - $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0];
  1173 + //verifica se o formulario está valido para salvar
  1174 + if (formDialogRequisitoNegocio.$invalid) {
  1175 + //Mensagem de erro de campos obrigatorios não preenchidos
  1176 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1177 + return;
  1178 + }
  1179 + $scope.reqNegocioTemp = angular.copy($scope.reqNegocio);
  1180 + if ($scope.reqNegocioTemp.objetivoEstrategicoNecessidade.originalElement) {
  1181 + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement;
  1182 + } else {
  1183 + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade;
  1184 + }
  1185 + delete $scope.reqNegocioTemp.objetivoEstrategico;
  1186 + if ($scope.estudoTecnico.etRequisitosNegocio) {
  1187 + if ($scope.reqNegocio.$checked) {
  1188 + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
  1189 + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
  1190 + $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocioTemp;
  1191 + }
  1192 + }
  1193 + } else {
  1194 + $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocioTemp);
  1195 + }
  1196 + } else {
  1197 + $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocioTemp];
  1198 + }
764 1199  
765   - $timeout(function() {
766   - $scope.$openModal('modal-recurso-material.html', 'lg');
767   - });
768   - };
  1200 + if(continuarEditando){
  1201 + formDialogRequisitoNegocio.$submitted = false;
  1202 + formDialogRequisitoNegocio.$setPristine();
  1203 + $scope.reqNegocioTemp = null;
  1204 + $scope.reqNegocio = {};
  1205 + return;
  1206 + }
  1207 + $scope.atualizarListaSizeSelectReqNegocio();
  1208 + $scope.$modalInstance.dismiss('cancel');
  1209 + };
769 1210  
770   - // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado
771   - $scope.abrirRecursoHumano = function(edit) {
  1211 + // ADICIONAR Solucao
  1212 + $scope.salvaSolucao = function(formDialogSolucao, continuarEditando) {
772 1213  
773   - $scope.editRecursoHumano = edit;
  1214 + formDialogSolucao.$submitted = true;
774 1215  
775   - $scope.estudoTecnicoRecursoHumanoTemp = null;
  1216 + //verifica se o formulario está valido para salvar
  1217 + if (formDialogSolucao.$invalid) {
  1218 + //Mensagem de erro de campos obrigatorios não preenchidos
  1219 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1220 + return;
  1221 + }
776 1222  
777   - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
  1223 + if ($scope.estudoTecnico.etLevantamentoAlternativas) {
  1224 + if ($scope.solucao.$checked) {
  1225 + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
  1226 + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
  1227 + $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao;
  1228 + }
  1229 + }
  1230 + } else {
  1231 + $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao);
  1232 + }
  1233 + } else {
  1234 + $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao];
  1235 + }
778 1236  
779   - if (recursosHumanosSelecionados.length > 1) {
780   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
781   - return;
782   - }
  1237 + if(continuarEditando){
  1238 + formDialogSolucao.$submitted = false;
  1239 + formDialogSolucao.$setPristine();
  1240 + resetModalSolucao();
  1241 + }else{
  1242 + $scope.$modalInstance.dismiss('cancel');
  1243 + }
  1244 + $scope.atualizarListaSizeSelectSolucao();
  1245 + };
783 1246  
784   - if(recursosHumanosSelecionados.length === 0) {
785   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
786   - return;
787   - }
788   -
789   - $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0];
790   -
791   - $timeout(function() {
792   - $scope.$openModal('modal-recurso-humano.html', 'lg');
793   - });
794   - };
795   -
796   - $scope.abrirAcaoContingencia = function(edit) {
797   -
798   - $scope.editAcaoCont = edit;
799   -
800   - $scope.acaoCont = null;
801   -
802   - var acoesSelecionadas = $scope.getAcaoContChecked();
803   -
804   - if (acoesSelecionadas.length > 1) {
805   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO'));
806   - return;
807   - }
808   -
809   - if(acoesSelecionadas.length === 0) {
810   - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO'));
811   - return;
812   - }
813   -
814   - $scope.acaoCont = acoesSelecionadas[0];
815   -
816   - $timeout(function() {
817   - $scope.$openModal('modal-acao-contingencia.html', 'lg');
818   - });
819   - };
820   -
821   - $scope.removerRequisitoNegocio = function() {
822   - // recupera a EstudoTecnico selecionada
823   - var requisitosSelecionados = $scope.getReqNegocioChecked();
824   -
825   - if (requisitosSelecionados.length > 0) {
826   - $scope.$openModalConfirm({
827   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
828   - callback: function() {
829   -
830   - $scope.$modalConfirmInstance.dismiss('cancel');
831   -
832   - for (var i = 0; i < requisitosSelecionados.length; i++) {
833   - if (requisitosSelecionados[i].id) {
834   - EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) {
835   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
836   - });
837   - }
838   - }
839   - var requisitos = [];
840   - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
841   - if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
842   - requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]);
843   - }
844   - }
845   - $scope.listaRequisitoTecSelecao = [];
846   - $scope.estudoTecnico.etRequisitosNegocio = requisitos;
847   - $scope.atualizarListaSizeSelectReqNegocio();
848   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
849   - }
850   - });
851   - } else {
852   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
853   - }
854   - };
855   -
856   - $scope.removerSolucao = function() {
857   - var solucoesSelecionadas = $scope.getSolucaoChecked();
858   -
859   - if (solucoesSelecionadas.length > 0) {
860   - $scope.$openModalConfirm({
861   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
862   - callback: function() {
863   -
864   - $scope.$modalConfirmInstance.dismiss('cancel');
865   -
866   - for (var i = 0; i < solucoesSelecionadas.length; i++) {
867   - if (solucoesSelecionadas[i].id) {
868   - EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) {
869   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
870   - });
871   - }
872   - }
873   - var solucoes = [];
874   - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
875   - if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
876   - solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]);
877   - }
878   - }
879   - $scope.listaAlternativa = [];
880   - $scope.estudoTecnico.etLevantamentoAlternativas = solucoes;
881   - $scope.atualizarListaSizeSelectSolucao();
882   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
883   - }
884   - });
885   - } else {
886   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
887   - }
888   - };
889   -
890   - $scope.removerBensServico = function() {
891   - var bensServicosSelecionados = $scope.getBemServicoChecked();
892   -
893   - if (bensServicosSelecionados.length > 0) {
894   - $scope.$openModalConfirm({
895   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
896   - callback: function() {
897   - $scope.$modalConfirmInstance.dismiss('cancel');
898   -
899   - for (var i = 0; i < bensServicosSelecionados.length; i++) {
900   - if (bensServicosSelecionados[i].id) {
901   - EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) {
902   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
903   - });
904   - }
905   - }
906   - var bensServicos = [];
907   - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
908   - if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
909   - bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]);
910   - }
911   - }
912   - $scope.estudoTecnico.etBensServicosSolucoes = bensServicos;
913   - $scope.atualizarListaSizeSelectServicoSolucao();
914   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
915   - }
916   - });
917   - } else {
918   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
919   - }
920   - };
921   -
922   - $scope.removerBeneficioEsperado = function() {
923   -
924   - var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked();
925   -
926   - if (beneficiosSelecionados.length > 0) {
927   - $scope.$openModalConfirm({
928   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
929   - callback: function() {
930   - $scope.$modalConfirmInstance.dismiss('cancel');
931   -
932   - for (var i = 0; i < beneficiosSelecionados.length; i++) {
933   - if (beneficiosSelecionados[i].id) {
934   - EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) {
935   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
936   - });
937   - }
938   - }
939   - var beneficios = [];
940   - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
941   - if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
942   - beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]);
943   - }
944   - }
945   - $scope.listaBeneficio = [];
946   - $scope.estudoTecnico.etBeneficiosEsperados = beneficios;
947   - $scope.atualizarListaSizeSelectBeneficio();
948   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
949   - }
950   - });
951   - } else {
952   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
953   - }
954   - };
955   -
956   - //responsavel por remover um/ou mais recurs(o)s materiais do estudo tecnico
957   - $scope.removerRecursoMaterial = function (){
958   -
959   - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked();
960   -
961   - if (recursosMateriaisSelecionados.length > 0) {
962   - $scope.$openModalConfirm({
963   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
964   - callback: function() {
965   - $scope.$modalConfirmInstance.dismiss('cancel');
966   -
967   - for (var i = 0; i < recursosMateriaisSelecionados.length; i++) {
968   - if (recursosMateriaisSelecionados[i].id) {
969   - EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) {
970   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
971   - });
972   - }
973   - }
974   - var recursosMateriais = [];
975   - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
976   - if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) {
977   - recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]);
978   - }
979   - }
980   - $scope.listaRecursoMateriais = [];
981   - $scope.estudoTecnico.etRecursosMateriais = recursosMateriais;
982   - $scope.atualizarListaSizeSelectRecursoMaterial();
983   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
984   - }
985   - });
986   - } else {
987   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
988   - }
989   - };
990   -
991   - //responsavel por remover um/ou mais recurs(o)s humanos do estudo tecnico
992   - $scope.removerRecursoHumano = function (){
993   -
994   - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked();
995   -
996   - if (recursosHumanosSelecionados.length > 0) {
997   - $scope.$openModalConfirm({
998   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
999   - callback: function() {
1000   - $scope.$modalConfirmInstance.dismiss('cancel');
1001   -
1002   - for (var i = 0; i < recursosHumanosSelecionados.length; i++) {
1003   - if (recursosHumanosSelecionados[i].id) {
1004   - EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) {
1005   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1006   - });
1007   - }
1008   - }
1009   - var recursosHumanos = [];
1010   - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
1011   - if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) {
1012   - recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]);
1013   - }
1014   - }
1015   - $scope.estudoTecnico.etRecursosHumanos = recursosHumanos;
1016   - $scope.listaRecursoHumanos = [];
1017   - $scope.atualizarListaSizeSelectRecursoHumano();
1018   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1019   - }
1020   - });
1021   - } else {
1022   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
1023   - }
1024   - };
1025   -
1026   - $scope.removerAcaoContingencia = function() {
1027   -
1028   - var acoesSelecionadas = $scope.getAcaoContChecked();
1029   -
1030   - if (acoesSelecionadas.length > 0) {
1031   - $scope.$openModalConfirm({
1032   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
1033   - callback: function() {
1034   - $scope.$modalConfirmInstance.dismiss('cancel');
1035   -
1036   - for (var i = 0; i < acoesSelecionadas.length; i++) {
1037   - if (acoesSelecionadas[i].id) {
1038   - EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) {
1039   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1040   - });
1041   - }
1042   - }
1043   - var acoes = [];
1044   - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
1045   - if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) {
1046   - acoes.push($scope.estudoTecnico.etAcoesContingencia[i]);
1047   - }
1048   - }
1049   - $scope.estudoTecnico.etAcoesContingencia = acoes;
1050   - $scope.listaAcoesContigencia = [];
1051   - $scope.atualizarListaSizeSelectAcaoContigencia();
1052   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1053   - }
1054   - });
1055   - } else {
1056   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO'));
1057   - }
1058   - };
1059   -
1060   - // recupera solucao selecionada
1061   - $scope.getQuestaoChecked = function() {
1062   - var questaoChecked = null;
1063   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas) {
1064   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
1065   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) {
1066   - questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i];
1067   - }
1068   - }
1069   - }
1070   - return questaoChecked;
1071   - };
1072   -
1073   - $scope.addQuestao = function() {
1074   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({
1075   - questionarioPergunta : angular.copy($scope.questaoTemplate),
1076   - index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1,
1077   - edit : true
1078   - });
1079   - };
1080   -
1081   - $scope.editQuestao = function() {
1082   - var questao = $scope.getQuestaoChecked();
1083   -
1084   - if(!questao) {
1085   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO'));
1086   - return;
1087   - }
1088   -
1089   - questao.edit = true;
1090   - };
1091   -
1092   - $scope.removerQuestao = function() {
1093   - var questao = $scope.getQuestaoChecked();
1094   -
1095   - if(!questao) {
1096   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR'));
1097   - return;
1098   - }
1099   - $scope.cancelarQuestao(questao);
1100   - };
1101   -
1102   - $scope.salvarQuestao = function(questao) {
1103   - if (questao.questionarioPergunta.questao) {
1104   - questao.edit = !questao.edit;
1105   - } else {
1106   - $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA'));
1107   - }
1108   - };
1109   -
1110   - $scope.cancelarQuestao = function(questao) {
1111   - var questTemp = [];
1112   - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) {
1113   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) {
1114   - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1115   - }
1116   - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) {
1117   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--;
1118   - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1119   - }
1120   - if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) {
1121   - $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]);
1122   - }
1123   - }
1124   - $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp;
1125   - };
1126   -
1127   - $scope.removerRespostaPergunta = function(resposta) {
1128   - if (resposta) {
1129   - var pergunta = resposta.questionarioPergunta;
1130   - $scope.$openModalConfirm({
1131   - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
1132   - callback: function() {
1133   - $scope.$modalConfirmInstance.dismiss('cancel');
1134   - if ($scope.resposta.id) {
1135   - EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) {
1136   - $scope.removerPergunta(pergunta);
1137   - });
1138   - } else {
1139   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1140   - }
1141   - }
1142   - });
1143   - } else {
1144   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
1145   - }
1146   - };
1147   -
1148   - $scope.removerPergunta = function(pergunta) {
1149   - if (pergunta) {
1150   - QuestionarioPerguntaRepository.remove(pergunta).then(function(result) {
1151   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
1152   - });
1153   - } else {
1154   - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
1155   - }
1156   - };
1157   -
1158   - // ADICIONAR Requisito de negócio
1159   - $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio, continuarEditando) {
1160   -
1161   - formDialogRequisitoNegocio.$submitted = true;
1162   -
1163   - //verifica se o formulario está valido para salvar
1164   - if (formDialogRequisitoNegocio.$invalid) {
1165   - //Mensagem de erro de campos obrigatorios não preenchidos
1166   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1167   - return;
1168   - }
1169   - $scope.reqNegocioTemp = angular.copy($scope.reqNegocio);
1170   - if ($scope.reqNegocioTemp.objetivoEstrategicoNecessidade.originalElement) {
1171   - $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement;
1172   - } else {
1173   - $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade;
1174   - }
1175   - delete $scope.reqNegocioTemp.objetivoEstrategico;
1176   - if ($scope.estudoTecnico.etRequisitosNegocio) {
1177   - if ($scope.reqNegocio.$checked) {
1178   - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) {
1179   - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) {
1180   - $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocioTemp;
1181   - }
1182   - }
1183   - } else {
1184   - $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocioTemp);
1185   - }
1186   - } else {
1187   - $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocioTemp];
1188   - }
1189   -
1190   - if(continuarEditando){
1191   - formDialogRequisitoNegocio.$submitted = false;
1192   - formDialogRequisitoNegocio.$setPristine();
1193   - $scope.reqNegocioTemp = null;
1194   - $scope.reqNegocio = {};
1195   - return;
1196   - }
1197   - $scope.atualizarListaSizeSelectReqNegocio();
1198   - $scope.$modalInstance.dismiss('cancel');
1199   - };
1200   -
1201   - // ADICIONAR Solucao
1202   - $scope.salvaSolucao = function(formDialogSolucao, continuarEditando) {
1203   -
1204   - formDialogSolucao.$submitted = true;
1205   -
1206   - //verifica se o formulario está valido para salvar
1207   - if (formDialogSolucao.$invalid) {
1208   - //Mensagem de erro de campos obrigatorios não preenchidos
1209   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1210   - return;
1211   - }
1212   -
1213   - if ($scope.estudoTecnico.etLevantamentoAlternativas) {
1214   - if ($scope.solucao.$checked) {
1215   - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) {
1216   - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) {
1217   - $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao;
1218   - }
1219   - }
1220   - } else {
1221   - $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao);
1222   - }
1223   - } else {
1224   - $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao];
1225   - }
1226   -
1227   - if(continuarEditando){
1228   - formDialogSolucao.$submitted = false;
1229   - formDialogSolucao.$setPristine();
1230   - resetModalSolucao();
1231   - }else{
1232   - $scope.$modalInstance.dismiss('cancel');
1233   - }
1234   - $scope.atualizarListaSizeSelectSolucao();
1235   - };
1236   -
1237   - // ADICIONAR Solucao
1238   - $scope.salvaBemServico = function(formDialogBensServico, continuarEditando) {
  1247 + // ADICIONAR Solucao
  1248 + $scope.salvaBemServico = function(formDialogBensServico, continuarEditando) {
1239 1249  
1240 1250 formDialogBensServico.$submitted = true;
1241   -
  1251 +
1242 1252 //verifica se o formulario está valido para salvar
1243 1253 if (formDialogBensServico.$invalid) {
1244 1254 //Mensagem de erro de campos obrigatorios não preenchidos
1245 1255 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1246 1256 return;
1247 1257 }
1248   -
  1258 +
1249 1259 if ($scope.estudoTecnico.etBensServicosSolucoes) {
1250 1260 if ($scope.bemServico.$checked) {
1251 1261 for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) {
1252   - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
1253   - $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico;
  1262 + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) {
  1263 + $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico;
  1264 + }
1254 1265 }
1255   - }
1256 1266 } else {
1257 1267 $scope.bemServico.$index = $scope.estudoTecnico.etBensServicosSolucoes.length + 1;
1258 1268 $scope.estudoTecnico.etBensServicosSolucoes.push($scope.bemServico);
... ... @@ -1261,7 +1271,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1261 1271 $scope.bemServico.$index = 1;
1262 1272 $scope.estudoTecnico.etBensServicosSolucoes = [$scope.bemServico];
1263 1273 }
1264   -
  1274 +
1265 1275 if(continuarEditando){
1266 1276 formDialogBensServico.$submitted = false;
1267 1277 formDialogBensServico.$setPristine();
... ... @@ -1270,93 +1280,93 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1270 1280 $scope.$modalInstance.dismiss('cancel');
1271 1281 }
1272 1282 $scope.atualizarListaSizeSelectServicoSolucao();
1273   - };
  1283 + };
1274 1284  
1275   - // ADICIONAR BENEFÍCIO ESPERADO
1276   - $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado, continuarEditando) {
  1285 + // ADICIONAR BENEFÍCIO ESPERADO
  1286 + $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado, continuarEditando) {
1277 1287  
1278   - formDialogBeneficioEsperado.$submitted = true;
  1288 + formDialogBeneficioEsperado.$submitted = true;
  1289 +
  1290 + //verifica se o formulario está valido para salvar
  1291 + if (formDialogBeneficioEsperado.$invalid) {
  1292 + //Mensagem de erro de campos obrigatorios não preenchidos
  1293 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1294 + return;
  1295 + }
1279 1296  
1280   - //verifica se o formulario está valido para salvar
1281   - if (formDialogBeneficioEsperado.$invalid) {
1282   - //Mensagem de erro de campos obrigatorios não preenchidos
1283   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1284   - return;
1285   - }
1286   -
1287 1297 if ($scope.estudoTecnico.etBeneficiosEsperados) {
1288   - if ($scope.beneficioEsperado.$checked) {
1289   - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
1290   - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
1291   - $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado;
1292   - }
1293   - }
1294   - } else {
1295   - $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado);
1296   - }
  1298 + if ($scope.beneficioEsperado.$checked) {
  1299 + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) {
  1300 + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) {
  1301 + $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado;
  1302 + }
  1303 + }
  1304 + } else {
  1305 + $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado);
  1306 + }
1297 1307 } else {
1298   - $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado];
  1308 + $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado];
1299 1309 }
1300   -
  1310 +
1301 1311 if(continuarEditando){
1302 1312 formDialogBeneficioEsperado.$submitted = false;
1303 1313 formDialogBeneficioEsperado.$setPristine();
1304 1314 $scope.beneficioEsperado = {};
1305   - } else {
1306   - $scope.$modalInstance.dismiss('cancel');
1307   - }
  1315 + } else {
  1316 + $scope.$modalInstance.dismiss('cancel');
  1317 + }
1308 1318 $scope.atualizarListaSizeSelectBeneficio();
1309   - };
  1319 + };
1310 1320  
1311   - // responsavel por adicionar um recurso tecnico ao estudo tecnico
1312   - $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial, continuarEditando){
  1321 + // responsavel por adicionar um recurso tecnico ao estudo tecnico
  1322 + $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial, continuarEditando){
1313 1323  
1314   - formDialogRecursoMaterial.$submitted = true;
  1324 + formDialogRecursoMaterial.$submitted = true;
1315 1325  
1316 1326 if (formDialogRecursoMaterial.$invalid) {
1317 1327 //Mensagem de erro de campos obrigatorios não preenchidos
1318 1328 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1319 1329 return;
1320 1330 }
1321   -
  1331 +
1322 1332 if ($scope.estudoTecnico.etRecursosMateriais){
1323   - if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){
1324   - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
1325   - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
1326   - $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp;
1327   - }
1328   - }
1329   - } else {
1330   - $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp);
1331   - }
  1333 + if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){
  1334 + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) {
  1335 + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) {
  1336 + $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp;
  1337 + }
  1338 + }
  1339 + } else {
  1340 + $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp);
  1341 + }
1332 1342 } else {
1333 1343 $scope.estudoTecnico.etRecursosMateriais = [$scope.estudoTecnicoRecursoMaterialTemp];
1334 1344 }
1335   -
  1345 +
1336 1346 if(continuarEditando){
1337 1347 formDialogRecursoMaterial.$submitted = false;
1338 1348 formDialogRecursoMaterial.$setPristine();
1339 1349 $scope.estudoTecnicoRecursoMaterialTemp = {
1340   - disponivel : true
  1350 + disponivel : true
1341 1351 };
1342 1352 }else{
1343 1353 $scope.estudoTecnicoRecursoMaterialTemp = {};
1344 1354 $scope.$modalInstance.dismiss('cancel');
1345 1355 }
1346 1356 $scope.atualizarListaSizeSelectRecursoMaterial();
1347   - };
  1357 + };
1348 1358  
1349   - // Responsavel por adicionar um recurso humano ao estudo tecnico
1350   - $scope.salvaRecursoHumano = function (formDialogRecursoHumano, continuarEditando){
  1359 + // Responsavel por adicionar um recurso humano ao estudo tecnico
  1360 + $scope.salvaRecursoHumano = function (formDialogRecursoHumano, continuarEditando){
1351 1361  
1352   - formDialogRecursoHumano.$submitted = true;
  1362 + formDialogRecursoHumano.$submitted = true;
1353 1363  
1354 1364 if (formDialogRecursoHumano.$invalid) {
1355 1365 //Mensagem de erro de campos obrigatorios não preenchidos
1356 1366 $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1357 1367 return;
1358 1368 }
1359   -
  1369 +
1360 1370 if ($scope.estudoTecnico.etRecursosHumanos){
1361 1371 if ($scope.estudoTecnicoRecursoHumanoTemp.$checked){
1362 1372 for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) {
... ... @@ -1371,26 +1381,26 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1371 1381 $scope.estudoTecnico.etRecursosHumanos = [$scope.estudoTecnicoRecursoHumanoTemp];
1372 1382 }
1373 1383 $scope.estudoTecnicoRecursoHumanoTemp = {};
1374   -
  1384 +
1375 1385 if(continuarEditando){
1376 1386 formDialogRecursoHumano.$submitted = false;
1377 1387 formDialogRecursoHumano.$setPristine();
1378 1388 }else{
1379 1389 $scope.$modalInstance.dismiss('cancel');
1380 1390 }
1381   - $scope.atualizarListaSizeSelectRecursoHumano();
1382   - };
  1391 + $scope.atualizarListaSizeSelectRecursoHumano();
  1392 + };
1383 1393  
1384   - $scope.salvaAcaoCont = function(formDialogAcaoContingencia, continuarEditando) {
1385   - formDialogAcaoContingencia.$submitted = true;
  1394 + $scope.salvaAcaoCont = function(formDialogAcaoContingencia, continuarEditando) {
  1395 + formDialogAcaoContingencia.$submitted = true;
  1396 +
  1397 + //verifica se o formulario está valido para salvar
  1398 + if (formDialogAcaoContingencia.$invalid) {
  1399 + //Mensagem de erro de campos obrigatorios não preenchidos
  1400 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1401 + return;
  1402 + }
1386 1403  
1387   - //verifica se o formulario está valido para salvar
1388   - if (formDialogAcaoContingencia.$invalid) {
1389   - //Mensagem de erro de campos obrigatorios não preenchidos
1390   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1391   - return;
1392   - }
1393   -
1394 1404 if ($scope.estudoTecnico.etAcoesContingencia) {
1395 1405 if ($scope.acaoCont.$checked) {
1396 1406 for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) {
... ... @@ -1406,7 +1416,7 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1406 1416 $scope.acaoCont.$index = 1;
1407 1417 $scope.estudoTecnico.etAcoesContingencia = [$scope.acaoCont];
1408 1418 }
1409   -
  1419 +
1410 1420 $scope.acaoCont = {};
1411 1421 if(continuarEditando){
1412 1422 formDialogAcaoContingencia.$submitted = false;
... ... @@ -1415,225 +1425,225 @@ citApp.controller(&#39;EstudoTecnicoController&#39;, [&#39;$scope&#39;, &#39;EstudoTecnicoRepository
1415 1425 $scope.$modalInstance.dismiss('cancel');
1416 1426 }
1417 1427 $scope.atualizarListaSizeSelectAcaoContigencia();
1418   - };
1419   -
1420   - //Watch para calcular valor unitario
1421   - $scope.$watch('reqNegocio.objetivoEstrategico', function() {
1422   - if ($scope.reqNegocio.objetivoEstrategico && ($scope.reqNegocio.objetivoEstrategico.id)) {
1423   - ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) {
1424   - $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result;
1425   - });
1426   - }
1427   - });
1428   -
1429   - // ###########################################
1430   - // ########################################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS AO WIZARD
1431   - // ###########################################
1432   -
1433   - $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true},
1434   - { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false},
1435   - { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false},
1436   - { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false},
1437   - { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false},
1438   - { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false},
1439   - { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ];
1440   -
1441   - $scope.steps = ['one', 'two', 'three', 'four', 'five', 'six', 'seven'];
1442   - $scope.step = 0;
1443   -
1444   - // Verifica se o passo é o primeiro passo do wizard
1445   - $scope.isFirstStep = function() {
1446   - return $scope.step === 0;
1447   - };
1448   -
1449   - // Verifica se o passo é o ultimo passo do wizard
1450   - $scope.isLastStep = function() {
1451   - return $scope.step === ($scope.steps.length - 1);
1452   - };
1453   -
1454   - // Verifica se o passo é o passo atual do wizard
1455   - $scope.isCurrentStep = function(step) {
1456   - return $scope.step === step;
1457   - };
1458   -
1459   - // Utilizado pelo wizard para mudar para o passo desejado
1460   - $scope.setCurrentStep = function(step) {
1461   -
1462   - $scope.setLoadingGet(true);
1463   -
1464   - if (step <= ($scope.step - 1)) {
1465   - $scope.templates[$scope.step].show = false;
1466   - $scope.step = step;
1467   - $scope.templates[step].show = true;
1468   - } else {
1469   - if (!$scope.edit) {
1470   - $scope.permitidoAvancar = true;
1471   - } else {
1472   - permiteAvancoFluxo();
1473   - }
1474   -
1475   - if ($scope.permitidoAvancar) {
1476   - $scope.templates[$scope.step].show = false;
1477   - $scope.step = step;
1478   - $scope.templates[step].show = true;
1479   - }
1480   - }
1481   -
1482   - $scope.setLoading(false);
1483   - };
1484   -
1485   - // Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatórios
1486   - function permiteAvancoFluxo() {
1487   -
1488   - $scope.permitidoAvancar = true;
1489   -
1490   - if ($scope.step === 0) {
1491   - if (!validStepPlanejamentoContratacao() && $scope.permitidoAvancar) {
1492   - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true;
1493   - }
1494   - } else if ($scope.step === 1) {
1495   - if (!validStepRequisitos() && $scope.permitidoAvancar) {
1496   - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
1497   - }
1498   - } else if ($scope.step === 2) {
1499   - if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){
1500   - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
1501   - }
1502   - } else if ($scope.step === 3) {
1503   - if (!validStepBeneficiosNecessidades() && $scope.permitidoAvancar) {
1504   - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true;
1505   - }
1506   - } else if ($scope.step === 4 && !validStepRecursosNecessarios()) {
1507   - $scope.recursosNecessariosForm.$submitted = true;
1508   - $scope.permitidoAvancar = false;
1509   - } else if ($scope.step === 5 && !validStepEstrategiaContratual()) {
1510   - $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
1511   - } else if ($scope.step === 6) {
1512   - $scope.observacoesEntradaForm.$submitted = true;
1513   - }
1514   -
1515   - if (!$scope.permitidoAvancar && !$scope.stepValid) {
1516   - //Mensagem de erro de campos obrigatorios nao preenchidos
1517   - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
1518   - }
1519   - };
1520   -
1521   - // Recupera o passo atual do wizard
1522   - $scope.getCurrentStep = function() {
1523   - return $scope.steps[$scope.step];
1524   - };
1525   -
1526   - // Faz com o que o wizard retroceda um passo
1527   - $scope.handlePrevious = function() {
1528   -
1529   - $scope.setLoadingGet(true);
1530   -
1531   - $scope.templates[$scope.step].show = false;
1532   - $scope.step -= ($scope.isFirstStep()) ? 0 : 1;
1533   - $scope.templates[$scope.step].show = true;
1534   -
1535   - $scope.setLoading(false);
1536   -
1537   - };
1538   -
1539   - // Faz com o que o wizard avance um passo
1540   - $scope.handleNext = function () {
1541   - $scope.setLoadingGet(true);
1542   -
1543   - if(!$scope.edit){
1544   - $scope.permitidoAvancar = true;
1545   - } else {
1546   - permiteAvancoFluxo();
1547   - }
1548   -
1549   - if ($scope.permitidoAvancar){
1550   - $scope.templates[$scope.step].show = false;
1551   - $scope.step += 1;
1552   - $scope.templates[$scope.step].show = true;
1553   - }
1554   -
1555   - $scope.setLoading(false);
1556   - };
1557   -
1558   - // Funcao especifica que retorna se o formulario de dados da entrada esta valido
1559   - function validStepPlanejamentoContratacao() {
1560   - $scope.stepValid = true;
1561   -
1562   - if ($scope.estudoTecnicoForm.planejamentoContratacaoForm.$invalid) {
1563   - $scope.stepValid = false;
1564   - }
1565   -
1566   - return $scope.stepValid;
1567   - };
1568   -
1569   - // Funcao especifica que retorna se o formulario de requisitos esta valido
1570   - function validStepRequisitos() {
1571   - $scope.stepValid = true;
1572   -
1573   - if ($scope.estudoTecnicoForm.definicaoRequisitosForm.$invalid || (!$scope.estudoTecnico.etRequisitosNegocio || $scope.estudoTecnico.etRequisitosNegocio.length < 1)) {
1574   - $scope.stepValid = false;
1575   - }
1576   -
1577   - return $scope.stepValid;
1578   - };
1579   -
1580   - // Funcao especifica que retorna se o formulario de levantamento de alternativas esta valido
1581   - function validStepLevantamentoAlternativas() {
1582   - $scope.stepValid = true;
1583   -
1584   - if ($scope.estudoTecnicoForm.levantamentoAlternativasForm.$invalid || (!$scope.estudoTecnico.etLevantamentoAlternativas || $scope.estudoTecnico.etLevantamentoAlternativas.length < 1)
1585   - || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) {
1586   - $scope.stepValid = false;
1587   - }
1588   -
1589   - return $scope.stepValid;
1590   - };
1591   -
1592   - // Funcao especifica que retorna se o formulario de beneficios e necessidades está valido
1593   - function validStepBeneficiosNecessidades() {
1594   - $scope.stepValid = true;
1595   -
1596   - if ($scope.estudoTecnicoForm.beneficiosNecessidadesForm.$invalid || (!$scope.estudoTecnico.etBeneficiosEsperados || $scope.estudoTecnico.etBeneficiosEsperados.length < 1)) {
1597   - $scope.stepValid = false;
1598   - }
  1428 + };
  1429 +
  1430 + //Watch para calcular valor unitario
  1431 + $scope.$watch('reqNegocio.objetivoEstrategico', function() {
  1432 + if ($scope.reqNegocio.objetivoEstrategico && ($scope.reqNegocio.objetivoEstrategico.id)) {
  1433 + ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) {
  1434 + $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result;
  1435 + });
  1436 + }
  1437 + });
  1438 +
  1439 + // ###########################################
  1440 + // ########################################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS AO WIZARD
  1441 + // ###########################################
  1442 +
  1443 + $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true},
  1444 + { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false},
  1445 + { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false},
  1446 + { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false},
  1447 + { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false},
  1448 + { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false},
  1449 + { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ];
  1450 +
  1451 + $scope.steps = ['one', 'two', 'three', 'four', 'five', 'six', 'seven'];
  1452 + $scope.step = 0;
  1453 +
  1454 + // Verifica se o passo é o primeiro passo do wizard
  1455 + $scope.isFirstStep = function() {
  1456 + return $scope.step === 0;
  1457 + };
  1458 +
  1459 + // Verifica se o passo é o ultimo passo do wizard
  1460 + $scope.isLastStep = function() {
  1461 + return $scope.step === ($scope.steps.length - 1);
  1462 + };
  1463 +
  1464 + // Verifica se o passo é o passo atual do wizard
  1465 + $scope.isCurrentStep = function(step) {
  1466 + return $scope.step === step;
  1467 + };
  1468 +
  1469 + // Utilizado pelo wizard para mudar para o passo desejado
  1470 + $scope.setCurrentStep = function(step) {
  1471 +
  1472 + $scope.setLoadingGet(true);
  1473 +
  1474 + if (step <= ($scope.step - 1)) {
  1475 + $scope.templates[$scope.step].show = false;
  1476 + $scope.step = step;
  1477 + $scope.templates[step].show = true;
  1478 + } else {
  1479 + if (!$scope.edit) {
  1480 + $scope.permitidoAvancar = true;
  1481 + } else {
  1482 + permiteAvancoFluxo();
  1483 + }
  1484 +
  1485 + if ($scope.permitidoAvancar) {
  1486 + $scope.templates[$scope.step].show = false;
  1487 + $scope.step = step;
  1488 + $scope.templates[step].show = true;
  1489 + }
  1490 + }
  1491 +
  1492 + $scope.setLoading(false);
  1493 + };
  1494 +
  1495 + // Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatórios
  1496 + function permiteAvancoFluxo() {
  1497 +
  1498 + $scope.permitidoAvancar = true;
  1499 +
  1500 + if ($scope.step === 0) {
  1501 + if (!validStepPlanejamentoContratacao() && $scope.permitidoAvancar) {
  1502 + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true;
  1503 + }
  1504 + } else if ($scope.step === 1) {
  1505 + if (!validStepRequisitos() && $scope.permitidoAvancar) {
  1506 + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true;
  1507 + }
  1508 + } else if ($scope.step === 2) {
  1509 + if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){
  1510 + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true;
  1511 + }
  1512 + } else if ($scope.step === 3) {
  1513 + if (!validStepBeneficiosNecessidades() && $scope.permitidoAvancar) {
  1514 + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true;
  1515 + }
  1516 + } else if ($scope.step === 4 && !validStepRecursosNecessarios()) {
  1517 + $scope.recursosNecessariosForm.$submitted = true;
  1518 + $scope.permitidoAvancar = false;
  1519 + } else if ($scope.step === 5 && !validStepEstrategiaContratual()) {
  1520 + $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true;
  1521 + } else if ($scope.step === 6) {
  1522 + $scope.observacoesEntradaForm.$submitted = true;
  1523 + }
  1524 +
  1525 + if (!$scope.permitidoAvancar && !$scope.stepValid) {
  1526 + //Mensagem de erro de campos obrigatorios nao preenchidos
  1527 + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false);
  1528 + }
  1529 + };
  1530 +
  1531 + // Recupera o passo atual do wizard
  1532 + $scope.getCurrentStep = function() {
  1533 + return $scope.steps[$scope.step];
  1534 + };
  1535 +
  1536 + // Faz com o que o wizard retroceda um passo
  1537 + $scope.handlePrevious = function() {
  1538 +
  1539 + $scope.setLoadingGet(true);
  1540 +
  1541 + $scope.templates[$scope.step].show = false;
  1542 + $scope.step -= ($scope.isFirstStep()) ? 0 : 1;
  1543 + $scope.templates[$scope.step].show = true;
  1544 +
  1545 + $scope.setLoading(false);
  1546 +
  1547 + };
  1548 +
  1549 + // Faz com o que o wizard avance um passo
  1550 + $scope.handleNext = function () {
  1551 + $scope.setLoadingGet(true);
  1552 +
  1553 + if(!$scope.edit){
  1554 + $scope.permitidoAvancar = true;
  1555 + } else {
  1556 + permiteAvancoFluxo();
  1557 + }
  1558 +
  1559 + if ($scope.permitidoAvancar){
  1560 + $scope.templates[$scope.step].show = false;
  1561 + $scope.step += 1;
  1562 + $scope.templates[$scope.step].show = true;
  1563 + }
  1564 +
  1565 + $scope.setLoading(false);
  1566 + };
  1567 +
  1568 + // Funcao especifica que retorna se o formulario de dados da entrada esta valido
  1569 + function validStepPlanejamentoContratacao() {
  1570 + $scope.stepValid = true;
  1571 +
  1572 + if ($scope.estudoTecnicoForm.planejamentoContratacaoForm.$invalid) {
  1573 + $scope.stepValid = false;
  1574 + }
  1575 +
  1576 + return $scope.stepValid;
  1577 + };
  1578 +
  1579 + // Funcao especifica que retorna se o formulario de requisitos esta valido
  1580 + function validStepRequisitos() {
  1581 + $scope.stepValid = true;
  1582 +
  1583 + if ($scope.estudoTecnicoForm.definicaoRequisitosForm.$invalid || (!$scope.estudoTecnico.etRequisitosNegocio || $scope.estudoTecnico.etRequisitosNegocio.length < 1)) {
  1584 + $scope.stepValid = false;
  1585 + }
  1586 +
  1587 + return $scope.stepValid;
  1588 + };
  1589 +
  1590 + // Funcao especifica que retorna se o formulario de levantamento de alternativas esta valido
  1591 + function validStepLevantamentoAlternativas() {
  1592 + $scope.stepValid = true;
  1593 +
  1594 + if ($scope.estudoTecnicoForm.levantamentoAlternativasForm.$invalid || (!$scope.estudoTecnico.etLevantamentoAlternativas || $scope.estudoTecnico.etLevantamentoAlternativas.length < 1)
  1595 + || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) {
  1596 + $scope.stepValid = false;
  1597 + }
  1598 +
  1599 + return $scope.stepValid;
  1600 + };
  1601 +
  1602 + // Funcao especifica que retorna se o formulario de beneficios e necessidades está valido
  1603 + function validStepBeneficiosNecessidades() {
  1604 + $scope.stepValid = true;
  1605 +
  1606 + if ($scope.estudoTecnicoForm.beneficiosNecessidadesForm.$invalid || (!$scope.estudoTecnico.etBeneficiosEsperados || $scope.estudoTecnico.etBeneficiosEsperados.length < 1)) {
  1607 + $scope.stepValid = false;
  1608 + }
1599 1609  
1600   - return $scope.stepValid;
1601   - };
  1610 + return $scope.stepValid;
  1611 + };
1602 1612  
1603   - // Funcao especifica que retorna se o formulario de recursos necessarios ao estudo está valido
1604   - function validStepRecursosNecessarios() {
  1613 + // Funcao especifica que retorna se o formulario de recursos necessarios ao estudo está valido
  1614 + function validStepRecursosNecessarios() {
1605 1615  
1606   - $scope.stepValid = true;
  1616 + $scope.stepValid = true;
1607 1617  
1608   - if ($scope.estudoTecnicoForm.recursosNecessariosForm.$invalid) {
1609   - $scope.stepValid = false;
1610   - }
  1618 + if ($scope.estudoTecnicoForm.recursosNecessariosForm.$invalid) {
  1619 + $scope.stepValid = false;
  1620 + }
1611 1621  
1612   - return $scope.stepValid;
1613   - };
  1622 + return $scope.stepValid;
  1623 + };
1614 1624  
1615 1625  
1616   - // Funcao especifica que retorna se o formulario de observacoes da entrada esta valido
1617   - function validStepObservacoesEntrada() {
1618   - $scope.stepValid = true;
  1626 + // Funcao especifica que retorna se o formulario de observacoes da entrada esta valido
  1627 + function validStepObservacoesEntrada() {
  1628 + $scope.stepValid = true;
1619 1629  
1620   - if ($scope.estudoTecnicoForm.anexosObservacoesForm.$invalid) {
1621   - $scope.stepValid = false;
1622   - }
  1630 + if ($scope.estudoTecnicoForm.anexosObservacoesForm.$invalid) {
  1631 + $scope.stepValid = false;
  1632 + }
1623 1633  
1624   - return $scope.stepValid;
1625   - };
  1634 + return $scope.stepValid;
  1635 + };
1626 1636  
1627   - // Funcao especifica que retorna se o formulario de estrategia contratual esta valido
1628   - function validStepEstrategiaContratual() {
1629   - $scope.stepValid = true;
  1637 + // Funcao especifica que retorna se o formulario de estrategia contratual esta valido
  1638 + function validStepEstrategiaContratual() {
  1639 + $scope.stepValid = true;
1630 1640  
1631   - if ($scope.estudoTecnicoForm.estrategiaContratualForm.$invalid || (!$scope.estudoTecnico.etAcoesContingencia || $scope.estudoTecnico.etAcoesContingencia.length < 1)) {
1632   - $scope.stepValid = false;
1633   - }
  1641 + if ($scope.estudoTecnicoForm.estrategiaContratualForm.$invalid || (!$scope.estudoTecnico.etAcoesContingencia || $scope.estudoTecnico.etAcoesContingencia.length < 1)) {
  1642 + $scope.stepValid = false;
  1643 + }
1634 1644  
1635   - return $scope.stepValid;
1636   - };
  1645 + return $scope.stepValid;
  1646 + };
1637 1647  
1638 1648 $scope.atualizarListaSizeSelectReqNegocio = function() {
1639 1649 if(!$scope.listaSize){
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/QuestionarioController.js
... ... @@ -180,6 +180,9 @@ citApp.controller(&#39;QuestionarioController&#39;, [&#39;$scope&#39;, &#39;QuestionarioRepository&#39;,
180 180 $scope.isDesbloquear = !$scope.isBloquear;
181 181 $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_QUESTIONARIO'));
182 182 $scope.questionarioForm.$submitted = false;
  183 +
  184 + $scope.$showPageSearchWorkspace($scope.workspace);
  185 + $scope.atualizaPaginaPesquisa();
183 186 });
184 187 $scope.setLoading(false);
185 188 }else{
... ...
cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js
... ... @@ -671,7 +671,7 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
671 671  
672 672 $scope.setLoadingSalva(true);
673 673  
674   - $scope.termoReferencia.rascunho = $scope.workspace.rascunho.id;
  674 + $scope.termoReferencia.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null;
675 675 TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) {
676 676  
677 677 $scope.termoReferencia = result.originalElement;
... ... @@ -684,10 +684,20 @@ citApp.controller(&#39;TermoReferenciaController&#39;, [&#39;$scope&#39;,
684 684 // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver
685 685 salvarListaDocumentos(termoTemp);
686 686 setFormsTermoReferenciaSubmitted(false);
  687 +
  688 + $timeout(function() {
  689 + $scope.$showPageSearchWorkspace($scope.workspace);
  690 + $scope.atualizaPaginaPesquisa();
  691 + });
687 692 });
688 693 };
689 694 };
690 695  
  696 + // Atualiza pagina de pesquisa
  697 + $scope.atualizaPaginaPesquisa = function () {
  698 + angular.element('#searchTermoReferencia').scope().fetchResult();
  699 + };
  700 +
691 701 $scope.editar = function () {
692 702 if ($scope.termoReferencia.dataTermoGerado){
693 703 $scope.showAlert('warning', $translate.instant('MSG.TERMO_REFERENCIA_JA_GERADO'));
... ...