Commit d759b3487b537f1172a92bca1ae6d00c11ce2006

Authored by luis.camargo
1 parent fdf75265
Exists in master

redmine #4545 Correções na gravação do anexo com mesmo número de identificação;

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