diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js index 95a8991..92889f6 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/ContratoController.js @@ -32,10 +32,10 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C $scope.contratoValorPagamentoUnicoTemp = {}; $scope.uploader = new FileUploader({ - autoUpload: false, - queueLimit: 1, - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' - }); + autoUpload: false, + queueLimit: 99, + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' + }); $scope.templates = [{ name: 'contratoPg1.html', url: '/cit-contratos-web/html/contrato/contratoPg1.html', show: true}, { name: 'contratoPg2.html', url: '/cit-contratos-web/html/contrato/contratoPg2.html', show: false}, @@ -309,9 +309,10 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento angular.forEach($scope.contrato.documentos, function(documento, key) { if (documento.uploadsDocumento) { + documento.uuid = getUuid(); $scope.contratoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) }); // deleta esse atributo por causa de um erro de ciclo no json delete documento.uploadsDocumento; @@ -460,39 +461,31 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C } // 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 - var salvarListaDocumentos = function(contratoTemp) { - - angular.forEach($scope.contrato.documentos, function(documentoSalvo, key) { - // verifica se a entidade documento foi salva - if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { - // percorre todos os documentos temporarios para verificacao do numero do documento - angular.forEach(contratoTemp.documentos, function(documentoTransient, key) { - // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { - //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); - } - - }); - - } - }); - - }; - - // metodo responsavel para salvar os anexos do contrato depois de ter salvo o contrato, utilizando a referencia do id contrato.documento.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); - } - }; - + var salvarListaDocumentos = function(contratoTemp) { + $scope.uploader.queue = []; + + angular.forEach($scope.contrato.documentos, function(documentoSalvo, key) { + // verifica se a entidade documento foi salva + if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { + // percorre todos os documentos temporarios para verificacao do numero do documento + angular.forEach(contratoTemp.documentos, function(documentoTransient, key) { + // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { + //salva o anexo ao documento que tiver o mesmo numero do documento transient + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); + } + }); + } + }); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); + } + delete $scope.contratoTemp; + }; + // watch para calcular valor total empenhado $scope.$watchCollection('contrato.ctrtEmpenhos', function() { if (!$scope.contrato.id && $scope.edit){ diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/CronogramaExecucaoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/CronogramaExecucaoController.js index c3bdf68..c9f8699 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/CronogramaExecucaoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/CronogramaExecucaoController.js @@ -204,8 +204,8 @@ citApp.controller('CronogramaExecucaoController', ['$scope', '$translate', '$tim if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { //salva o anexo ao documento que tiver o mesmo numero do documento transient - documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id - $scope.uploader.queue.push(documentoTransient.file) + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); } }); } diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EncerramentoContratoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EncerramentoContratoController.js index 3332665..1f2ad21 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EncerramentoContratoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EncerramentoContratoController.js @@ -13,7 +13,7 @@ citApp.controller('EncerramentoContratoController', ['$scope', 'EncerramentoCont $scope.uploader = new FileUploader({ autoUpload: false, - queueLimit: 1, + queueLimit: 99, url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' }); @@ -109,16 +109,17 @@ citApp.controller('EncerramentoContratoController', ['$scope', 'EncerramentoCont }; // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento - angular.forEach($scope.encerramentoContrato.documentos, function(documento, key) { - if (documento.uploadsDocumento) { - encerramentoContratoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) - }); - // deleta esse atributo por causa de um erro de ciclo no json - delete documento.uploadsDocumento; - } - }); + angular.forEach($scope.encerramentoContrato.documentos, function(documento, key) { + if (documento.uploadsDocumento) { + documento.uuid = getUuid(); + encerramentoContratoTemp.documentos.push({ + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) + }); + // deleta esse atributo por causa de um erro de ciclo no json + delete documento.uploadsDocumento; + } + }); EncerramentoContratoRepository.save($scope.encerramentoContrato).then(function(result) { @@ -142,36 +143,28 @@ citApp.controller('EncerramentoContratoController', ['$scope', 'EncerramentoCont // 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 var salvarListaDocumentos = function(encerramentoContratoTemp) { - + $scope.uploader.queue = []; + angular.forEach($scope.encerramentoContrato.documentos, function(documentoSalvo, key) { // verifica se a entidade documento foi salva if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { // percorre todos os documentos temporarios para verificacao do numero do documento angular.forEach(encerramentoContratoTemp.documentos, function(documentoTransient, key) { // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); } - }); - } }); - - }; - - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); } + delete $scope.encerramentoContratoTemp; }; // ########################################### diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js index 6b15064..668b659 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/EstudoTecnicoController.js @@ -11,29 +11,29 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository EstudoTecnicoBemServicoSolucaoRepository, EstudoTecnicoAcaoContingenciaRepository, FileUploader, $filter, EstudoTecnicoRecursoMaterialRepository, EstudoTecnicoRecursoHumanoRepository, EstudoTecnicoBeneficioEsperadoRepository, FuncaoRepository) { - $scope.edit = true; - $scope.estudoTecnico = { - etRecursosMateriais : [], - etRecursosHumanos : [] - }; - $scope.reqNegocio = {}; - $scope.beneficioEsperado = {}; - $scope.estudoTecnicoRecursoMaterialTemp = {}; - $scope.estudoTecnicoRecursoHumanoTemp = {}; - $scope.listaRequisitoTecSelecao = []; - $scope.listaAlternativa = []; - $scope.listaServicoSolucao = []; - $scope.listaBeneficio = []; - $scope.listaRecursoMateriais = []; - $scope.listaRecursoHumanos = []; - $scope.listaAcoesContigencia = []; - - $scope.uploader = new FileUploader({ - autoUpload: false, - queueLimit: 1, - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' - }); - + $scope.edit = true; + $scope.estudoTecnico = { + etRecursosMateriais : [], + etRecursosHumanos : [] + }; + $scope.reqNegocio = {}; + $scope.beneficioEsperado = {}; + $scope.estudoTecnicoRecursoMaterialTemp = {}; + $scope.estudoTecnicoRecursoHumanoTemp = {}; + $scope.listaRequisitoTecSelecao = []; + $scope.listaAlternativa = []; + $scope.listaServicoSolucao = []; + $scope.listaBeneficio = []; + $scope.listaRecursoMateriais = []; + $scope.listaRecursoHumanos = []; + $scope.listaAcoesContigencia = []; + + $scope.uploader = new FileUploader({ + autoUpload: false, + queueLimit: 99, + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' + }); + $scope.setRascunho = function(rascunho){ if (rascunho) { @@ -45,1221 +45,1214 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.setLoading(false); }; - $scope.findIntegrante = function(value) { - return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { - return result; - }); - }; + $scope.findIntegrante = function(value) { + return PessoaRepository.findColaboradorPorNomeAndOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { + return result; + }); + }; - $scope.findOrgaoExterno = function(value) { - return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { - return result; - }); - }; + $scope.findOrgaoExterno = function(value) { + return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { + return result; + }); + }; - $scope.findFornecedor = function(value) { - return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'], value).then(function(result) { - return result; - }); - }; + $scope.findFornecedor = function(value) { + return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'], value).then(function(result) { + return result; + }); + }; - $scope.findResponsavel = function(value) { - return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { - return result; - }); - }; - - QuestionarioRepository.findAllByDominioTipoQuestionario({codigo : 2}).then(function(result) { - if (result.length > 0) { - $scope.questionarioTemplate = result[0].originalElement; - } - if (!$scope.questionarioTemplate) { - QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) { - $scope.questionarioTemplate = resultCreate; - $scope.preparaQuestTemplate(); - }); - } else { - $scope.preparaQuestTemplate(); - } - }); - - $scope.preparaQuestTemplate = function() { - var questoes = []; - for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) { - var questao = { - questao : $scope.questionarioTemplate.questoes[i].questao, - dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id}, - respostasEscolha : [] - }; - - for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) { - questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta}); - } - questoes.push(questao); - } - $scope.questionarioTemplate.questoes = questoes; + $scope.findResponsavel = function(value) { + return FuncaoRepository.findFuncaoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { + return result; + }); + }; - $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]); - delete $scope.questaoTemplate.questao; + QuestionarioRepository.findAllByDominioTipoQuestionario({codigo : 2}).then(function(result) { + if (result.length > 0) { + $scope.questionarioTemplate = result[0].originalElement; + } + if (!$scope.questionarioTemplate) { + QuestionarioRepository.createQuestionarioPadrao().then(function(resultCreate) { + $scope.questionarioTemplate = resultCreate; + $scope.preparaQuestTemplate(); + }); + } else { + $scope.preparaQuestTemplate(); + } + }); + + $scope.preparaQuestTemplate = function() { + var questoes = []; + for (var i = 0; i < $scope.questionarioTemplate.questoes.length; i++) { + var questao = { + questao : $scope.questionarioTemplate.questoes[i].questao, + dominioTipoResposta : {id : $scope.questionarioTemplate.questoes[i].dominioTipoResposta.id}, + respostasEscolha : [] + }; - $scope.qntDefaultQuest = angular.copy(questoes.length); - }; + for (var j = 0; j < $scope.questionarioTemplate.questoes[i].respostasEscolha.length; j++) { + questao.respostasEscolha.push({resposta : $scope.questionarioTemplate.questoes[i].respostasEscolha[j].resposta}); + } + questoes.push(questao); + } + $scope.questionarioTemplate.questoes = questoes; + + $scope.questaoTemplate = angular.copy($scope.questionarioTemplate.questoes[0]); + delete $scope.questaoTemplate.questao; + + $scope.qntDefaultQuest = angular.copy(questoes.length); + }; + + // limpa o formulario + $scope.resetForm = function() { + $scope.edit = true; + $scope.estudoTecnico = { + etRecursosMateriais : [], + etRecursosHumanos : [] + }; + $scope.reqNegocio = {}; + $scope.beneficioEsperado = {}; + $scope.estudoTecnicoRecursoMaterialTemp = {}; + $scope.estudoTecnicoRecursoHumanoTemp = {}; + $scope.acaoEmMassaRecursosMateriais = false; + $scope.acaoEmMassaRecursosHumanos = false; + $scope.setCurrentStep(0); + $scope.atualizarListaSizeSelectReqNegocio(); + $scope.atualizarListaSizeSelectSolucao(); + $scope.atualizarListaSizeSelectServicoSolucao(); + $scope.atualizarListaSizeSelectBeneficio(); + $scope.atualizarListaSizeSelectRecursoMaterial(); + $scope.atualizarListaSizeSelectRecursoHumano(); + $scope.atualizarListaSizeSelectAcaoContigencia(); - // limpa o formulario - $scope.resetForm = function() { - $scope.edit = true; - $scope.estudoTecnico = { - etRecursosMateriais : [], - etRecursosHumanos : [] - }; - $scope.reqNegocio = {}; - $scope.beneficioEsperado = {}; - $scope.estudoTecnicoRecursoMaterialTemp = {}; - $scope.estudoTecnicoRecursoHumanoTemp = {}; - $scope.acaoEmMassaRecursosMateriais = false; - $scope.acaoEmMassaRecursosHumanos = false; - $scope.setCurrentStep(0); - $scope.atualizarListaSizeSelectReqNegocio(); - $scope.atualizarListaSizeSelectSolucao(); - $scope.atualizarListaSizeSelectServicoSolucao(); - $scope.atualizarListaSizeSelectBeneficio(); - $scope.atualizarListaSizeSelectRecursoMaterial(); - $scope.atualizarListaSizeSelectRecursoHumano(); - $scope.atualizarListaSizeSelectAcaoContigencia(); - $scope.workspace.objetoScope = $scope.estudoTecnico; $scope.startTimerIntervalSaveDraft($scope.workspace, null, true); - - $timeout(function() { - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false; - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false; - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false; - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false; - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false; - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine(); - $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine(); - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine(); - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine(); - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine(); - }); - }; - - $scope.visualizarEditar = function(idEstudoTecnico, edit) { - $scope.resetForm(); - $scope.setLoadingGet(true); - EstudoTecnicoRepository.get(idEstudoTecnico).then(function(result) { + $timeout(function() { + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = false; + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = false; + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false; + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = false; + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = false; + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$setPristine(); + $scope.estudoTecnicoForm.definicaoRequisitosForm.$setPristine(); + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine(); + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$setPristine(); + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$setPristine(); + }); + }; - $scope.estudoTecnico = result.originalElement; + $scope.visualizarEditar = function(idEstudoTecnico, edit) { + $scope.resetForm(); + $scope.setLoadingGet(true); - $scope.edit = edit; + EstudoTecnicoRepository.get(idEstudoTecnico).then(function(result) { - $scope.atualizarListaSizeSelectReqNegocio(); - $scope.atualizarListaSizeSelectSolucao(); - $scope.atualizarListaSizeSelectServicoSolucao(); - $scope.atualizarListaSizeSelectBeneficio(); - $scope.atualizarListaSizeSelectRecursoMaterial(); - $scope.atualizarListaSizeSelectRecursoHumano(); - $scope.atualizarListaSizeSelectAcaoContigencia(); + $scope.estudoTecnico = result.originalElement; - $scope.setCurrentStep(0); - $scope.stopTimerIntervalDraft($scope.workspace); - $scope.setLoading(false); - }); - }; - - //INICIO DE METODOS REFERENTES AOS RELATORIOS + $scope.edit = edit; - $scope.gerarRelatorioEstudoTecnico = function() { - $scope.url = '/cit-contratos-web/rest/estudoTecnico/gerarEstudoTecnico?idEstudoTecnico='+ $scope.estudoTecnico.id; - $scope.visualizarRelatorio($scope.url, $translate.instant("LABEL.TITULO_ESTUDO_TECNICO")); - }; + $scope.atualizarListaSizeSelectReqNegocio(); + $scope.atualizarListaSizeSelectSolucao(); + $scope.atualizarListaSizeSelectServicoSolucao(); + $scope.atualizarListaSizeSelectBeneficio(); + $scope.atualizarListaSizeSelectRecursoMaterial(); + $scope.atualizarListaSizeSelectRecursoHumano(); + $scope.atualizarListaSizeSelectAcaoContigencia(); + + $scope.setCurrentStep(0); + $scope.stopTimerIntervalDraft($scope.workspace); + $scope.setLoading(false); + }); + }; + + //INICIO DE METODOS REFERENTES AOS RELATORIOS + + $scope.gerarRelatorioEstudoTecnico = function() { + $scope.url = '/cit-contratos-web/rest/estudoTecnico/gerarEstudoTecnico?idEstudoTecnico='+ $scope.estudoTecnico.id; + $scope.visualizarRelatorio($scope.url, $translate.instant("LABEL.TITULO_ESTUDO_TECNICO")); + }; + + //Salva o estudo técnico + $scope.saveOrUpdate = function() { + // atributo para visualizar os itens obrigatorios na tela + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true; + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true; + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true; + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true; + $scope.estudoTecnicoForm.recursosNecessariosForm.$submitted = true; + $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true; + $scope.estudoTecnicoForm.anexosObservacoesForm.$submitted = true; + + // verifica formulario valido + if ($scope.estudoTecnicoForm.$valid) { + + $scope.setLoadingSalva(true); + + var estudoTecnicoTemp = { + documentos: [] + }; + + // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento + angular.forEach($scope.estudoTecnico.documentos, function(documento, key) { + if (documento.uploadsDocumento) { + documento.uuid = getUuid(); + estudoTecnicoTemp.documentos.push({ + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) + }); + // deleta esse atributo por causa de um erro de ciclo no json + delete documento.uploadsDocumento; + } + }); + + $scope.estudoTecnico.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null; + EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) { + + $scope.estudoTecnico = result.originalElement; + + $scope.setLoading(false); + + $scope.showAlert("success", $translate.instant("MSG.SUCESSO_ESTUDO_TECNICO")); + + // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir + salvarListaDocumentos(estudoTecnicoTemp); - //Salva o estudo técnico - $scope.saveOrUpdate = function() { - // atributo para visualizar os itens obrigatorios na tela - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true; - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true; - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true; - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true; - $scope.estudoTecnicoForm.recursosNecessariosForm.$submitted = true; - $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true; - $scope.estudoTecnicoForm.anexosObservacoesForm.$submitted = true; - - // verifica formulario valido - if ($scope.estudoTecnicoForm.$valid) { - - $scope.setLoadingSalva(true); - - var estudoTecnicoTemp = { - documentos: [] - }; - - // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento - angular.forEach($scope.estudoTecnico.documentos, function(documento, key) { - if (documento.uploadsDocumento) { - estudoTecnicoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) - }); - // deleta esse atributo por causa de um erro de ciclo no json - delete documento.uploadsDocumento; - } - }); - - $scope.estudoTecnico.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null; - EstudoTecnicoRepository.save($scope.estudoTecnico).then(function(result) { - - $scope.estudoTecnico = result.originalElement; - - $scope.setLoading(false); - - $scope.showAlert("success", $translate.instant("MSG.SUCESSO_ESTUDO_TECNICO")); - - // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir - salvarListaDocumentos(estudoTecnicoTemp); - $timeout(function() { $scope.$showPageSearchWorkspace($scope.workspace); $scope.atualizaPaginaPesquisa(); }); - - }); - } else { - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); - } - }; - + + }); + } else { + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS')); + } + }; + // Atualiza pagina de pesquisa $scope.atualizaPaginaPesquisa = function () { angular.element('#EstudoTecnicoListControllerId').scope().fetchResult(); }; - // realiza a exclusão da EstudoTecnico - $scope.excluirEstudoTecnico = function(){ - var workspace = this.item; - $scope.$modalConfirmInstance.dismiss('cancel'); - EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) { - $scope.uploader.clearQueue(); - $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO')); - $scope.$showPageSearchWorkspace(workspace); - $scope.atualizarLista('EstudoTecnicoListControllerId'); - }); - }; + // realiza a exclusão da EstudoTecnico + $scope.excluirEstudoTecnico = function(){ + var workspace = this.item; + $scope.$modalConfirmInstance.dismiss('cancel'); + EstudoTecnicoRepository.remove($scope.estudoTecnico).then(function(result) { + $scope.uploader.clearQueue(); + $scope.showAlert('success', $translate.instant('MSG.REGISTRO_EXCLUIDO')); + $scope.$showPageSearchWorkspace(workspace); + $scope.atualizarLista('EstudoTecnicoListControllerId'); + }); + }; - // prepara a exclusao do estudo técnico abrindo o modal de confirmacao - $scope.remove = function(workspace) { - $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace}); - }; + // prepara a exclusao do estudo técnico abrindo o modal de confirmacao + $scope.remove = function(workspace) { + $scope.$openModalConfirm({message: $translate.instant('MSG.EXCLUIR_ESTUDO_TECNICO'), callback: $scope.excluirEstudoTecnico, item: workspace}); + }; - // 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 + // 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 var salvarListaDocumentos = function(estudoTecnicoTemp) { - + $scope.uploader.queue = []; + angular.forEach($scope.estudoTecnico.documentos, function(documentoSalvo, key) { // verifica se a entidade documento foi salva if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { // percorre todos os documentos temporarios para verificacao do numero do documento angular.forEach(estudoTecnicoTemp.documentos, function(documentoTransient, key) { // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); } - }); - } }); - - }; - - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); } + delete $scope.estudoTecnicoTemp; }; - // Seleciona todos os requisitos de negocio na lista - $scope.checkAllReqNegocio = function(value) { - $scope.listaRequisitoTecSelecao = []; - angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) { - item.$checked = value; - $scope.listaRequisitoTecSelecao.push(item); - }); + // Seleciona todos os requisitos de negocio na lista + $scope.checkAllReqNegocio = function(value) { + $scope.listaRequisitoTecSelecao = []; + angular.forEach($scope.estudoTecnico.etRequisitosNegocio, function (item) { + item.$checked = value; + $scope.listaRequisitoTecSelecao.push(item); + }); if(!value){ $scope.listaRequisitoTecSelecao = []; } $scope.atualizarListaSizeSelectReqNegocio(); }; - $scope.checkReqNegocio = function(item){ - if(item.$checked){ - $scope.listaRequisitoTecSelecao.push(item); - }else{ - $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1); - } + $scope.checkReqNegocio = function(item){ + if(item.$checked){ + $scope.listaRequisitoTecSelecao.push(item); + }else{ + $scope.listaRequisitoTecSelecao.splice($scope.listaRequisitoTecSelecao.indexOf(item), 1); + } - }; + }; - // Seleciona todas as alternativas na lista de solução - $scope.checkAllAlternativa = function(value) { - $scope.listaAlternativa = []; - angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) { - item.$checked = value; - $scope.listaAlternativa.push(item); - }); + // Seleciona todas as alternativas na lista de solução + $scope.checkAllAlternativa = function(value) { + $scope.listaAlternativa = []; + angular.forEach($scope.estudoTecnico.etLevantamentoAlternativas, function (item) { + item.$checked = value; + $scope.listaAlternativa.push(item); + }); if(!value){ $scope.listaAlternativa = []; } $scope.atualizarListaSizeSelectSolucao(); }; - $scope.checkAlternativa = function(item){ - if(item.$checked){ - $scope.listaAlternativa.push(item); - }else{ - $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1); - } + $scope.checkAlternativa = function(item){ + if(item.$checked){ + $scope.listaAlternativa.push(item); + }else{ + $scope.listaAlternativa.splice($scope.listaAlternativa.indexOf(item), 1); + } - }; + }; - $scope.checkAllBensServicos = function(value) { - $scope.listaServicoSolucao = []; - angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) { - item.$checked = value; - $scope.listaServicoSolucao.push(item); - }); - if(!value){ - $scope.listaServicoSolucao = []; - } - $scope.atualizarListaSizeSelectServicoSolucao(); - }; + $scope.checkAllBensServicos = function(value) { + $scope.listaServicoSolucao = []; + angular.forEach($scope.estudoTecnico.etBensServicosSolucoes, function (item) { + item.$checked = value; + $scope.listaServicoSolucao.push(item); + }); + if(!value){ + $scope.listaServicoSolucao = []; + } + $scope.atualizarListaSizeSelectServicoSolucao(); + }; - $scope.checkBemServico = function(item){ - if(item.$checked){ - $scope.listaServicoSolucao.push(item); - }else{ - $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1); - } - }; - - // marca benefício esperado - $scope.checkAllBeneficios = function(value) { - $scope.listaBeneficio = []; - angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) { - item.$checked = value; - $scope.listaBeneficio.push(item); - }); - if(!value){ - $scope.listaBeneficio = []; - } - $scope.atualizarListaSizeSelectBeneficio(); - }; + $scope.checkBemServico = function(item){ + if(item.$checked){ + $scope.listaServicoSolucao.push(item); + }else{ + $scope.listaServicoSolucao.splice($scope.listaServicoSolucao.indexOf(item), 1); + } + }; - $scope.checkBeneficio = function(item){ - if(item.$checked){ - $scope.listaBeneficio.push(item); - }else{ - $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1); - } - }; - - // responsavel por definir se as acoes em massa estaram disponiveis - $scope.checkAllRecursosMateriais = function (value){ - $scope.listaRecursoMateriais = []; - angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) { - item.$checked = value; - $scope.listaRecursoMateriais.push(item); - }); - if(!value){ - $scope.listaRecursoMateriais = []; - } - $scope.atualizarListaSizeSelectRecursoMaterial(); - }; + // marca benefício esperado + $scope.checkAllBeneficios = function(value) { + $scope.listaBeneficio = []; + angular.forEach($scope.estudoTecnico.etBeneficiosEsperados, function (item) { + item.$checked = value; + $scope.listaBeneficio.push(item); + }); + if(!value){ + $scope.listaBeneficio = []; + } + $scope.atualizarListaSizeSelectBeneficio(); + }; - $scope.checkRecursoMaterial = function(item){ - if(item.$checked){ - $scope.listaRecursoMateriais.push(item); - }else{ - $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1); - } - }; - - // responsavel por definir se as acoes em massa estaram disponiveis - $scope.checkAllRecursosHumanos = function (value){ - $scope.listaRecursoHumanos = []; - angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) { - item.$checked = value; - $scope.listaRecursoHumanos.push(item); - }); - if(!value){ - $scope.listaRecursoHumanos = []; - } - $scope.atualizarListaSizeSelectRecursoHumano(); - }; + $scope.checkBeneficio = function(item){ + if(item.$checked){ + $scope.listaBeneficio.push(item); + }else{ + $scope.listaBeneficio.splice($scope.listaBeneficio.indexOf(item), 1); + } + }; - $scope.checkRecursoHumano = function(item){ - if(item.$checked){ - $scope.listaRecursoHumanos.push(item); - }else{ - $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1); - } - }; - - $scope.checkAllAcoes = function(value) { - $scope.listaAcoesContigencia = []; - angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) { - item.$checked = value; - $scope.listaAcoesContigencia.push(item); - }); - if(!value){ - $scope.listaAcoesContigencia = []; - } - $scope.atualizarListaSizeSelectAcaoContigencia(); - }; + // responsavel por definir se as acoes em massa estaram disponiveis + $scope.checkAllRecursosMateriais = function (value){ + $scope.listaRecursoMateriais = []; + angular.forEach($scope.estudoTecnico.etRecursosMateriais, function (item) { + item.$checked = value; + $scope.listaRecursoMateriais.push(item); + }); + if(!value){ + $scope.listaRecursoMateriais = []; + } + $scope.atualizarListaSizeSelectRecursoMaterial(); + }; - $scope.checkAcaoContigencia = function(item){ - if(item.$checked){ - $scope.listaAcoesContigencia.push(item); - }else{ - $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1); - } - }; - - // recupera requisito de negocio selecionado - $scope.getReqNegocioChecked = function() { - var reqNegocioChecked = []; - - if ($scope.estudoTecnico.etRequisitosNegocio) { - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) { - reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i])); - } - } - } + $scope.checkRecursoMaterial = function(item){ + if(item.$checked){ + $scope.listaRecursoMateriais.push(item); + }else{ + $scope.listaRecursoMateriais.splice($scope.listaRecursoMateriais.indexOf(item), 1); + } + }; - return reqNegocioChecked; - }; + // responsavel por definir se as acoes em massa estaram disponiveis + $scope.checkAllRecursosHumanos = function (value){ + $scope.listaRecursoHumanos = []; + angular.forEach($scope.estudoTecnico.etRecursosHumanos, function (item) { + item.$checked = value; + $scope.listaRecursoHumanos.push(item); + }); + if(!value){ + $scope.listaRecursoHumanos = []; + } + $scope.atualizarListaSizeSelectRecursoHumano(); + }; - // recupera solucao selecionada - $scope.getSolucaoChecked = function() { - var solucaoChecked = []; + $scope.checkRecursoHumano = function(item){ + if(item.$checked){ + $scope.listaRecursoHumanos.push(item); + }else{ + $scope.listaRecursoHumanos.splice($scope.listaRecursoHumanos.indexOf(item), 1); + } + }; - if ($scope.estudoTecnico.etLevantamentoAlternativas) { - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { - solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i])); - } - } - } + $scope.checkAllAcoes = function(value) { + $scope.listaAcoesContigencia = []; + angular.forEach($scope.estudoTecnico.etAcoesContingencia, function (item) { + item.$checked = value; + $scope.listaAcoesContigencia.push(item); + }); + if(!value){ + $scope.listaAcoesContigencia = []; + } + $scope.atualizarListaSizeSelectAcaoContigencia(); + }; - return solucaoChecked; - }; + $scope.checkAcaoContigencia = function(item){ + if(item.$checked){ + $scope.listaAcoesContigencia.push(item); + }else{ + $scope.listaAcoesContigencia.splice($scope.listaAcoesContigencia.indexOf(item), 1); + } + }; - // recupera bem servico selecionado - $scope.getBemServicoChecked = function() { - var bemServicoChecked = []; + // recupera requisito de negocio selecionado + $scope.getReqNegocioChecked = function() { + var reqNegocioChecked = []; - if ($scope.estudoTecnico.etBensServicosSolucoes) { - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) { - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { - bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i])); - } - } - } + if ($scope.estudoTecnico.etRequisitosNegocio) { + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) { + reqNegocioChecked.push(angular.copy($scope.estudoTecnico.etRequisitosNegocio[i])); + } + } + } - return bemServicoChecked; - }; + return reqNegocioChecked; + }; - // recupera beneficio esperado selecionado - $scope.getBeneficioEsperadoChecked = function() { - var beneficioEsperadoChecked = []; + // recupera solucao selecionada + $scope.getSolucaoChecked = function() { + var solucaoChecked = []; - if ($scope.estudoTecnico.etBeneficiosEsperados) { - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { - beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i])); - } - } - } + if ($scope.estudoTecnico.etLevantamentoAlternativas) { + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { + solucaoChecked.push(angular.copy($scope.estudoTecnico.etLevantamentoAlternativas[i])); + } + } + } - return beneficioEsperadoChecked; - }; + return solucaoChecked; + }; - // Responsavel por retornar o recurso material selecionado - $scope.getRecursoMaterialChecked = function() { + // recupera bem servico selecionado + $scope.getBemServicoChecked = function() { + var bemServicoChecked = []; - var recursoMaterialChecked = []; + if ($scope.estudoTecnico.etBensServicosSolucoes) { + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) { + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { + bemServicoChecked.push(angular.copy($scope.estudoTecnico.etBensServicosSolucoes[i])); + } + } + } - if ($scope.estudoTecnico.etRecursosMateriais) { - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) { - recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i])); - } - } - } - return recursoMaterialChecked; - }; + return bemServicoChecked; + }; - // Responsavel por retornar o recurso humano selecionado - $scope.getRecursoHumanoChecked = function() { + // recupera beneficio esperado selecionado + $scope.getBeneficioEsperadoChecked = function() { + var beneficioEsperadoChecked = []; - var recursoHumanoChecked = []; + if ($scope.estudoTecnico.etBeneficiosEsperados) { + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { + beneficioEsperadoChecked.push(angular.copy($scope.estudoTecnico.etBeneficiosEsperados[i])); + } + } + } - if ($scope.estudoTecnico.etRecursosHumanos) { - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) { - if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) { - recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i])); - } - } - } + return beneficioEsperadoChecked; + }; - return recursoHumanoChecked; - }; + // Responsavel por retornar o recurso material selecionado + $scope.getRecursoMaterialChecked = function() { - // recupera a ação de contingencia selecionada - $scope.getAcaoContChecked = function() { - var acaoContChecked = []; + var recursoMaterialChecked = []; - if ($scope.estudoTecnico.etAcoesContingencia) { - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) { - if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) { - acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i])); - } - } - } + if ($scope.estudoTecnico.etRecursosMateriais) { + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) { + recursoMaterialChecked.push(angular.copy($scope.estudoTecnico.etRecursosMateriais[i])); + } + } + } + return recursoMaterialChecked; + }; - return acaoContChecked; - }; + // Responsavel por retornar o recurso humano selecionado + $scope.getRecursoHumanoChecked = function() { - $scope.openModalRequisitoNegocio = function() { + var recursoHumanoChecked = []; - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) { - $scope.objetivosEstrategicos = result; - }); + if ($scope.estudoTecnico.etRecursosHumanos) { + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) { + if ($scope.estudoTecnico.etRecursosHumanos[i].$checked) { + recursoHumanoChecked.push(angular.copy($scope.estudoTecnico.etRecursosHumanos[i])); + } + } + } - $scope.editRequisitoNegocio = true; + return recursoHumanoChecked; + }; - $scope.reqNegocio = {}; + // recupera a ação de contingencia selecionada + $scope.getAcaoContChecked = function() { + var acaoContChecked = []; - $timeout(function() { - $scope.$openModal('modal-requisito-negocio.html', 'lg'); - }); - }; - - function resetModalSolucao(){ - $scope.solucao = { - etlaQuestionario : {} - }; - - $scope.solucao.etlaQuestionario.etQuestionarioRespostas = []; - - for (var i = 0; i < $scope.qntDefaultQuest; i++) { - var questPergunta = { - questionarioPergunta : $scope.questionarioTemplate.questoes[i], - index : i+1 - }; - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta); - } + if ($scope.estudoTecnico.etAcoesContingencia) { + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) { + if ($scope.estudoTecnico.etAcoesContingencia[i].$checked) { + acaoContChecked.push(angular.copy($scope.estudoTecnico.etAcoesContingencia[i])); + } + } + } - $scope.solucao.etlaQuestionario.etQuestionario = { - nome : $scope.questionarioTemplate.nome - }; - } + return acaoContChecked; + }; - $scope.openModalSolucao = function() { - $scope.editSolucao = true; + $scope.openModalRequisitoNegocio = function() { - resetModalSolucao(); + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) { + $scope.objetivosEstrategicos = result; + }); - $timeout(function() { - $scope.$openModal('modal-solucao.html', 'lg'); - }); - }; + $scope.editRequisitoNegocio = true; - $scope.openModalBensServico = function() { - $scope.editBemServico = true; + $scope.reqNegocio = {}; - $scope.bemServico = {}; + $timeout(function() { + $scope.$openModal('modal-requisito-negocio.html', 'lg'); + }); + }; - $timeout(function() { - $scope.$openModal('modal-bem-servico.html', 'lg'); - }); - }; + function resetModalSolucao(){ + $scope.solucao = { + etlaQuestionario : {} + }; - $scope.openModalBeneficioEsperado = function() { + $scope.solucao.etlaQuestionario.etQuestionarioRespostas = []; - $scope.editBeneficioEsperado = true; + for (var i = 0; i < $scope.qntDefaultQuest; i++) { + var questPergunta = { + questionarioPergunta : $scope.questionarioTemplate.questoes[i], + index : i+1 + }; + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push(questPergunta); + } - $scope.beneficioEsperado = {}; + $scope.solucao.etlaQuestionario.etQuestionario = { + nome : $scope.questionarioTemplate.nome + }; + } - $timeout(function() { - $scope.$openModal('modal-beneficio-esperado.html', 'lg'); - }); - }; + $scope.openModalSolucao = function() { + $scope.editSolucao = true; - // responsavel por abrir modal de adicao de um recurso material - $scope.openModalRecursoMaterial = function() { + resetModalSolucao(); - $scope.estudoTecnicoRecursoMaterialTemp = { - disponivel : true - }; + $timeout(function() { + $scope.$openModal('modal-solucao.html', 'lg'); + }); + }; - $scope.editRecursoMaterial = true; - $scope.$openModal('modal-recurso-material.html', 'lg'); - }; + $scope.openModalBensServico = function() { + $scope.editBemServico = true; - // Responsavel por abrir modal de adicao de um recurso humano - $scope.openModalRecursoHumano = function() { + $scope.bemServico = {}; - $scope.estudoTecnicoRecursoHumanoTemp = {}; - $scope.editRecursoHumano = true; - $scope.$openModal('modal-recurso-humano.html', 'lg'); - }; + $timeout(function() { + $scope.$openModal('modal-bem-servico.html', 'lg'); + }); + }; - $scope.openModalAcaoContingencia = function() { - $scope.editAcaoCont = true; + $scope.openModalBeneficioEsperado = function() { - $scope.acaoCont = {}; + $scope.editBeneficioEsperado = true; - $timeout(function() { - $scope.$openModal('modal-acao-contingencia.html', 'lg'); - }); - }; + $scope.beneficioEsperado = {}; - $scope.abrirRequisitoNegocio = function(edit) { + $timeout(function() { + $scope.$openModal('modal-beneficio-esperado.html', 'lg'); + }); + }; - ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) { - $scope.objetivosEstrategicos = result; - }); + // responsavel por abrir modal de adicao de um recurso material + $scope.openModalRecursoMaterial = function() { - $scope.editRequisitoNegocio = edit; + $scope.estudoTecnicoRecursoMaterialTemp = { + disponivel : true + }; - $scope.reqNegocio = null; - // recupera a EstudoTecnico selecionada - var requisitosSelecionados = $scope.getReqNegocioChecked(); + $scope.editRecursoMaterial = true; + $scope.$openModal('modal-recurso-material.html', 'lg'); + }; - if (requisitosSelecionados.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + // Responsavel por abrir modal de adicao de um recurso humano + $scope.openModalRecursoHumano = function() { - if(requisitosSelecionados.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + $scope.estudoTecnicoRecursoHumanoTemp = {}; + $scope.editRecursoHumano = true; + $scope.$openModal('modal-recurso-humano.html', 'lg'); + }; - $scope.reqNegocio = requisitosSelecionados[0]; + $scope.openModalAcaoContingencia = function() { + $scope.editAcaoCont = true; - $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico); + $scope.acaoCont = {}; - $timeout(function() { - $scope.$openModal('modal-requisito-negocio.html', 'lg'); - }); - }; + $timeout(function() { + $scope.$openModal('modal-acao-contingencia.html', 'lg'); + }); + }; - $scope.abrirSolucao = function(edit) { + $scope.abrirRequisitoNegocio = function(edit) { - $scope.editSolucao = edit; + ObjetivoEstrategicoRepository.findAllByOrganizacao().then(function(result) { + $scope.objetivosEstrategicos = result; + }); - $scope.solucao = null; + $scope.editRequisitoNegocio = edit; - var solucoesSelecionadas = $scope.getSolucaoChecked(); + $scope.reqNegocio = null; + // recupera a EstudoTecnico selecionada + var requisitosSelecionados = $scope.getReqNegocioChecked(); - if (solucoesSelecionadas.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if (requisitosSelecionados.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - if(solucoesSelecionadas.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if(requisitosSelecionados.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.solucao = solucoesSelecionadas[0]; + $scope.reqNegocio = requisitosSelecionados[0]; - if ($scope.solucao.fornecedor) { - $scope.solucao.fornecedor['pessoa.nome'] = $scope.solucao.fornecedor.pessoa.nome; - } + $scope.reqNegocio.objetivoEstrategico = angular.copy($scope.reqNegocio.objetivoEstrategicoNecessidade.objetivoEstrategico); - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1; - } + $timeout(function() { + $scope.$openModal('modal-requisito-negocio.html', 'lg'); + }); + }; - $timeout(function() { - $scope.$openModal('modal-solucao.html', 'lg'); - }); - }; + $scope.abrirSolucao = function(edit) { - $scope.abrirBensServico = function(edit) { + $scope.editSolucao = edit; - $scope.editBemServico = edit; + $scope.solucao = null; - $scope.bemServico = null; + var solucoesSelecionadas = $scope.getSolucaoChecked(); - var bensServicosSelecionados = $scope.getBemServicoChecked(); + if (solucoesSelecionadas.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - if (bensServicosSelecionados.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if(solucoesSelecionadas.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - if(bensServicosSelecionados.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + $scope.solucao = solucoesSelecionadas[0]; - $scope.bemServico = bensServicosSelecionados[0]; + if ($scope.solucao.fornecedor) { + $scope.solucao.fornecedor['pessoa.nome'] = $scope.solucao.fornecedor.pessoa.nome; + } - $timeout(function() { - $scope.$openModal('modal-bem-servico.html', 'lg'); - }); - }; + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index = i + 1; + } - $scope.abrirBeneficioEsperado = function(edit) { + $timeout(function() { + $scope.$openModal('modal-solucao.html', 'lg'); + }); + }; - $scope.editBeneficioEsperado = edit; + $scope.abrirBensServico = function(edit) { - $scope.beneficioEsperado = null; + $scope.editBemServico = edit; - var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked(); + $scope.bemServico = null; - if (beneficiosSelecionados.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + var bensServicosSelecionados = $scope.getBemServicoChecked(); - if(beneficiosSelecionados.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if (bensServicosSelecionados.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.beneficioEsperado = beneficiosSelecionados[0]; + if(bensServicosSelecionados.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $timeout(function() { - $scope.$openModal('modal-beneficio-esperado.html', 'lg'); - }); - }; + $scope.bemServico = bensServicosSelecionados[0]; - // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado - $scope.abrirRecursoMaterial = function(edit) { + $timeout(function() { + $scope.$openModal('modal-bem-servico.html', 'lg'); + }); + }; - $scope.editRecursoMaterial = edit; + $scope.abrirBeneficioEsperado = function(edit) { - $scope.estudoTecnicoRecursoMaterialTemp = null; + $scope.editBeneficioEsperado = edit; - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked(); + $scope.beneficioEsperado = null; - if (recursosMateriaisSelecionados.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked(); - if(recursosMateriaisSelecionados.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if (beneficiosSelecionados.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0]; + if(beneficiosSelecionados.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $timeout(function() { - $scope.$openModal('modal-recurso-material.html', 'lg'); - }); - }; + $scope.beneficioEsperado = beneficiosSelecionados[0]; - // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado - $scope.abrirRecursoHumano = function(edit) { + $timeout(function() { + $scope.$openModal('modal-beneficio-esperado.html', 'lg'); + }); + }; - $scope.editRecursoHumano = edit; + // Responsavel por abrir modal de recurso material para edicao ou visualizacao do item selecionado + $scope.abrirRecursoMaterial = function(edit) { - $scope.estudoTecnicoRecursoHumanoTemp = null; + $scope.editRecursoMaterial = edit; - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked(); + $scope.estudoTecnicoRecursoMaterialTemp = null; - if (recursosHumanosSelecionados.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked(); - if(recursosHumanosSelecionados.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if (recursosMateriaisSelecionados.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0]; + if(recursosMateriaisSelecionados.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $timeout(function() { - $scope.$openModal('modal-recurso-humano.html', 'lg'); - }); - }; + $scope.estudoTecnicoRecursoMaterialTemp = recursosMateriaisSelecionados[0]; - $scope.abrirAcaoContingencia = function(edit) { + $timeout(function() { + $scope.$openModal('modal-recurso-material.html', 'lg'); + }); + }; - $scope.editAcaoCont = edit; + // Responsavel por abrir modal de recurso humano para edicao ou visualizacao do item selecionado + $scope.abrirRecursoHumano = function(edit) { - $scope.acaoCont = null; + $scope.editRecursoHumano = edit; - var acoesSelecionadas = $scope.getAcaoContChecked(); + $scope.estudoTecnicoRecursoHumanoTemp = null; - if (acoesSelecionadas.length > 1) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked(); - if(acoesSelecionadas.length === 0) { - $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + if (recursosHumanosSelecionados.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.acaoCont = acoesSelecionadas[0]; + if(recursosHumanosSelecionados.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $timeout(function() { - $scope.$openModal('modal-acao-contingencia.html', 'lg'); - }); - }; + $scope.estudoTecnicoRecursoHumanoTemp = recursosHumanosSelecionados[0]; - $scope.removerRequisitoNegocio = function() { - // recupera a EstudoTecnico selecionada - var requisitosSelecionados = $scope.getReqNegocioChecked(); + $timeout(function() { + $scope.$openModal('modal-recurso-humano.html', 'lg'); + }); + }; - if (requisitosSelecionados.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { + $scope.abrirAcaoContingencia = function(edit) { - $scope.$modalConfirmInstance.dismiss('cancel'); + $scope.editAcaoCont = edit; - for (var i = 0; i < requisitosSelecionados.length; i++) { - if (requisitosSelecionados[i].id) { - EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var requisitos = []; - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { - if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) { - requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]); - } - } - $scope.listaRequisitoTecSelecao = []; - $scope.estudoTecnico.etRequisitosNegocio = requisitos; - $scope.atualizarListaSizeSelectReqNegocio(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + $scope.acaoCont = null; + + var acoesSelecionadas = $scope.getAcaoContChecked(); + + if (acoesSelecionadas.length > 1) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_APENAS_UM_ITEM_PARA_VISUALIZACAO')); + return; + } + + if(acoesSelecionadas.length === 0) { + $scope.showAlert('warning', edit? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } + + $scope.acaoCont = acoesSelecionadas[0]; + + $timeout(function() { + $scope.$openModal('modal-acao-contingencia.html', 'lg'); + }); + }; + + $scope.removerRequisitoNegocio = function() { + // recupera a EstudoTecnico selecionada + var requisitosSelecionados = $scope.getReqNegocioChecked(); + + if (requisitosSelecionados.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + + $scope.$modalConfirmInstance.dismiss('cancel'); + + for (var i = 0; i < requisitosSelecionados.length; i++) { + if (requisitosSelecionados[i].id) { + EstudoTecnicoRequisitoNegocioRepository.remove(requisitosSelecionados[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var requisitos = []; + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { + if (!$scope.estudoTecnico.etRequisitosNegocio[i].$checked) { + requisitos.push($scope.estudoTecnico.etRequisitosNegocio[i]); + } + } + $scope.listaRequisitoTecSelecao = []; + $scope.estudoTecnico.etRequisitosNegocio = requisitos; + $scope.atualizarListaSizeSelectReqNegocio(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; + + $scope.removerSolucao = function() { + var solucoesSelecionadas = $scope.getSolucaoChecked(); + + if (solucoesSelecionadas.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + + $scope.$modalConfirmInstance.dismiss('cancel'); + + for (var i = 0; i < solucoesSelecionadas.length; i++) { + if (solucoesSelecionadas[i].id) { + EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var solucoes = []; + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { + if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { + solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]); + } + } + $scope.listaAlternativa = []; + $scope.estudoTecnico.etLevantamentoAlternativas = solucoes; + $scope.atualizarListaSizeSelectSolucao(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; + + $scope.removerBensServico = function() { + var bensServicosSelecionados = $scope.getBemServicoChecked(); + + if (bensServicosSelecionados.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); + + for (var i = 0; i < bensServicosSelecionados.length; i++) { + if (bensServicosSelecionados[i].id) { + EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var bensServicos = []; + for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) { + if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { + bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]); + } + } + $scope.estudoTecnico.etBensServicosSolucoes = bensServicos; + $scope.atualizarListaSizeSelectServicoSolucao(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - $scope.removerSolucao = function() { - var solucoesSelecionadas = $scope.getSolucaoChecked(); + $scope.removerBeneficioEsperado = function() { - if (solucoesSelecionadas.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { + var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked(); - $scope.$modalConfirmInstance.dismiss('cancel'); + if (beneficiosSelecionados.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); - for (var i = 0; i < solucoesSelecionadas.length; i++) { - if (solucoesSelecionadas[i].id) { - EstudoTecnicoLevantamentoAlternativasRepository.remove(solucoesSelecionadas[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var solucoes = []; - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { - if (!$scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { - solucoes.push($scope.estudoTecnico.etLevantamentoAlternativas[i]); - } - } - $scope.listaAlternativa = []; - $scope.estudoTecnico.etLevantamentoAlternativas = solucoes; - $scope.atualizarListaSizeSelectSolucao(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + for (var i = 0; i < beneficiosSelecionados.length; i++) { + if (beneficiosSelecionados[i].id) { + EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var beneficios = []; + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { + if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { + beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]); + } + } + $scope.listaBeneficio = []; + $scope.estudoTecnico.etBeneficiosEsperados = beneficios; + $scope.atualizarListaSizeSelectBeneficio(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - $scope.removerBensServico = function() { - var bensServicosSelecionados = $scope.getBemServicoChecked(); - - if (bensServicosSelecionados.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); - - for (var i = 0; i < bensServicosSelecionados.length; i++) { - if (bensServicosSelecionados[i].id) { - EstudoTecnicoBemServicoSolucaoRepository.remove(bensServicosSelecionados[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var bensServicos = []; - for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) { - if (!$scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { - bensServicos.push($scope.estudoTecnico.etBensServicosSolucoes[i]); - } - } - $scope.estudoTecnico.etBensServicosSolucoes = bensServicos; - $scope.atualizarListaSizeSelectServicoSolucao(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + //responsavel por remover um/ou mais recurs(o)s materiais do estudo tecnico + $scope.removerRecursoMaterial = function (){ - $scope.removerBeneficioEsperado = function() { + var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked(); - var beneficiosSelecionados = $scope.getBeneficioEsperadoChecked(); + if (recursosMateriaisSelecionados.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); - if (beneficiosSelecionados.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); + for (var i = 0; i < recursosMateriaisSelecionados.length; i++) { + if (recursosMateriaisSelecionados[i].id) { + EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var recursosMateriais = []; + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { + if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) { + recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]); + } + } + $scope.listaRecursoMateriais = []; + $scope.estudoTecnico.etRecursosMateriais = recursosMateriais; + $scope.atualizarListaSizeSelectRecursoMaterial(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - for (var i = 0; i < beneficiosSelecionados.length; i++) { - if (beneficiosSelecionados[i].id) { - EstudoTecnicoBeneficioEsperadoRepository.remove(beneficiosSelecionados[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var beneficios = []; - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { - if (!$scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { - beneficios.push($scope.estudoTecnico.etBeneficiosEsperados[i]); - } - } - $scope.listaBeneficio = []; - $scope.estudoTecnico.etBeneficiosEsperados = beneficios; - $scope.atualizarListaSizeSelectBeneficio(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + //responsavel por remover um/ou mais recurs(o)s humanos do estudo tecnico + $scope.removerRecursoHumano = function (){ - //responsavel por remover um/ou mais recurs(o)s materiais do estudo tecnico - $scope.removerRecursoMaterial = function (){ + var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked(); - var recursosMateriaisSelecionados = $scope.getRecursoMaterialChecked(); + if (recursosHumanosSelecionados.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); - if (recursosMateriaisSelecionados.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); + for (var i = 0; i < recursosHumanosSelecionados.length; i++) { + if (recursosHumanosSelecionados[i].id) { + EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var recursosHumanos = []; + for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) { + if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) { + recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]); + } + } + $scope.estudoTecnico.etRecursosHumanos = recursosHumanos; + $scope.listaRecursoHumanos = []; + $scope.atualizarListaSizeSelectRecursoHumano(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - for (var i = 0; i < recursosMateriaisSelecionados.length; i++) { - if (recursosMateriaisSelecionados[i].id) { - EstudoTecnicoRecursoMaterialRepository.remove(recursosMateriaisSelecionados[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var recursosMateriais = []; - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { - if (!$scope.estudoTecnico.etRecursosMateriais[i].$checked) { - recursosMateriais.push($scope.estudoTecnico.etRecursosMateriais[i]); - } - } - $scope.listaRecursoMateriais = []; - $scope.estudoTecnico.etRecursosMateriais = recursosMateriais; - $scope.atualizarListaSizeSelectRecursoMaterial(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + $scope.removerAcaoContingencia = function() { - //responsavel por remover um/ou mais recurs(o)s humanos do estudo tecnico - $scope.removerRecursoHumano = function (){ + var acoesSelecionadas = $scope.getAcaoContChecked(); - var recursosHumanosSelecionados = $scope.getRecursoHumanoChecked(); + if (acoesSelecionadas.length > 0) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); - if (recursosHumanosSelecionados.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); + for (var i = 0; i < acoesSelecionadas.length; i++) { + if (acoesSelecionadas[i].id) { + EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } + } + var acoes = []; + for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) { + if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) { + acoes.push($scope.estudoTecnico.etAcoesContingencia[i]); + } + } + $scope.estudoTecnico.etAcoesContingencia = acoes; + $scope.listaAcoesContigencia = []; + $scope.atualizarListaSizeSelectAcaoContigencia(); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - for (var i = 0; i < recursosHumanosSelecionados.length; i++) { - if (recursosHumanosSelecionados[i].id) { - EstudoTecnicoRecursoHumanoRepository.remove(recursosHumanosSelecionados[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var recursosHumanos = []; - for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) { - if (!$scope.estudoTecnico.etRecursosHumanos[i].$checked) { - recursosHumanos.push($scope.estudoTecnico.etRecursosHumanos[i]); - } - } - $scope.estudoTecnico.etRecursosHumanos = recursosHumanos; - $scope.listaRecursoHumanos = []; - $scope.atualizarListaSizeSelectRecursoHumano(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + // recupera solucao selecionada + $scope.getQuestaoChecked = function() { + var questaoChecked = null; + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas) { + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) { + questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]; + } + } + } + return questaoChecked; + }; - $scope.removerAcaoContingencia = function() { + $scope.addQuestao = function() { + $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({ + questionarioPergunta : angular.copy($scope.questaoTemplate), + index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1, + edit : true + }); + }; - var acoesSelecionadas = $scope.getAcaoContChecked(); + $scope.editQuestao = function() { + var questao = $scope.getQuestaoChecked(); - if (acoesSelecionadas.length > 0) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); + if(!questao) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } - for (var i = 0; i < acoesSelecionadas.length; i++) { - if (acoesSelecionadas[i].id) { - EstudoTecnicoAcaoContingenciaRepository.remove(acoesSelecionadas[i]).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } - } - var acoes = []; - for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) { - if (!$scope.estudoTecnico.etAcoesContingencia[i].$checked) { - acoes.push($scope.estudoTecnico.etAcoesContingencia[i]); - } - } - $scope.estudoTecnico.etAcoesContingencia = acoes; - $scope.listaAcoesContigencia = []; - $scope.atualizarListaSizeSelectAcaoContigencia(); - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + questao.edit = true; + }; - // recupera solucao selecionada - $scope.getQuestaoChecked = function() { - var questaoChecked = null; - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas) { - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].$checked) { - questaoChecked = $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]; - } - } - } - return questaoChecked; - }; + $scope.removerQuestao = function() { + var questao = $scope.getQuestaoChecked(); - $scope.addQuestao = function() { - $scope.solucao.etlaQuestionario.etQuestionarioRespostas.push({ - questionarioPergunta : angular.copy($scope.questaoTemplate), - index : angular.copy($scope.solucao.etlaQuestionario.etQuestionarioRespostas.length) + 1, - edit : true - }); - }; + if(!questao) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR')); + return; + } + $scope.cancelarQuestao(questao); + }; - $scope.editQuestao = function() { - var questao = $scope.getQuestaoChecked(); + $scope.salvarQuestao = function(questao) { + if (questao.questionarioPergunta.questao) { + questao.edit = !questao.edit; + } else { + $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA')); + } + }; - if(!questao) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); - return; - } + $scope.cancelarQuestao = function(questao) { + var questTemp = []; + for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) { + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); + } + if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) { + $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--; + questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); + } + if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) { + $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); + } + } + $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp; + }; - questao.edit = true; - }; + $scope.removerRespostaPergunta = function(resposta) { + if (resposta) { + var pergunta = resposta.questionarioPergunta; + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + $scope.$modalConfirmInstance.dismiss('cancel'); + if ($scope.resposta.id) { + EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) { + $scope.removerPergunta(pergunta); + }); + } else { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - $scope.removerQuestao = function() { - var questao = $scope.getQuestaoChecked(); + $scope.removerPergunta = function(pergunta) { + if (pergunta) { + QuestionarioPerguntaRepository.remove(pergunta).then(function(result) { + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; - if(!questao) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR')); - return; - } - $scope.cancelarQuestao(questao); - }; + // ADICIONAR Requisito de negócio + $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio, continuarEditando) { - $scope.salvarQuestao = function(questao) { - if (questao.questionarioPergunta.questao) { - questao.edit = !questao.edit; - } else { - $scope.showAlert('warning', $translate.instant('MSG.QUESTAO_VAZIA')); - } - }; + formDialogRequisitoNegocio.$submitted = true; - $scope.cancelarQuestao = function(questao) { - var questTemp = []; - for (var i = 0; i < $scope.solucao.etlaQuestionario.etQuestionarioRespostas.length; i++) { - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index < questao.index) { - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); - } - if ($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index > questao.index) { - $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index--; - questTemp.push($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); - } - if (($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].index === questao.index) && $scope.solucao.etlaQuestionario.etQuestionarioRespostas[i].id) { - $scope.removerRespostaPergunta($scope.solucao.etlaQuestionario.etQuestionarioRespostas[i]); - } - } - $scope.solucao.etlaQuestionario.etQuestionarioRespostas = questTemp; - }; + //verifica se o formulario está valido para salvar + if (formDialogRequisitoNegocio.$invalid) { + //Mensagem de erro de campos obrigatorios não preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } + $scope.reqNegocioTemp = angular.copy($scope.reqNegocio); + if ($scope.reqNegocioTemp.objetivoEstrategicoNecessidade.originalElement) { + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement; + } else { + $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade; + } + delete $scope.reqNegocioTemp.objetivoEstrategico; + if ($scope.estudoTecnico.etRequisitosNegocio) { + if ($scope.reqNegocio.$checked) { + for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { + if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) { + $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocioTemp; + } + } + } else { + $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocioTemp); + } + } else { + $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocioTemp]; + } - $scope.removerRespostaPergunta = function(resposta) { - if (resposta) { - var pergunta = resposta.questionarioPergunta; - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - $scope.$modalConfirmInstance.dismiss('cancel'); - if ($scope.resposta.id) { - EstudoTecnicoQuestionarioRespostaRepository.remove(resposta).then(function(result) { - $scope.removerPergunta(pergunta); - }); - } else { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - } - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + if(continuarEditando){ + formDialogRequisitoNegocio.$submitted = false; + formDialogRequisitoNegocio.$setPristine(); + $scope.reqNegocioTemp = null; + $scope.reqNegocio = {}; + return; + } + $scope.atualizarListaSizeSelectReqNegocio(); + $scope.$modalInstance.dismiss('cancel'); + }; - $scope.removerPergunta = function(pergunta) { - if (pergunta) { - QuestionarioPerguntaRepository.remove(pergunta).then(function(result) { - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + // ADICIONAR Solucao + $scope.salvaSolucao = function(formDialogSolucao, continuarEditando) { - // ADICIONAR Requisito de negócio - $scope.salvaRequisitoNegocio = function(formDialogRequisitoNegocio, continuarEditando) { - - formDialogRequisitoNegocio.$submitted = true; - - //verifica se o formulario está valido para salvar - if (formDialogRequisitoNegocio.$invalid) { - //Mensagem de erro de campos obrigatorios não preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } - $scope.reqNegocioTemp = angular.copy($scope.reqNegocio); - if ($scope.reqNegocioTemp.objetivoEstrategicoNecessidade.originalElement) { - $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade.originalElement; - } else { - $scope.reqNegocioTemp.objetivoEstrategicoNecessidade = $scope.reqNegocio.objetivoEstrategicoNecessidade; - } - delete $scope.reqNegocioTemp.objetivoEstrategico; - if ($scope.estudoTecnico.etRequisitosNegocio) { - if ($scope.reqNegocio.$checked) { - for (var i = 0; i < $scope.estudoTecnico.etRequisitosNegocio.length; i++) { - if ($scope.estudoTecnico.etRequisitosNegocio[i].$checked) { - $scope.estudoTecnico.etRequisitosNegocio[i] = $scope.reqNegocioTemp; - } - } - } else { - $scope.estudoTecnico.etRequisitosNegocio.push($scope.reqNegocioTemp); - } - } else { - $scope.estudoTecnico.etRequisitosNegocio = [$scope.reqNegocioTemp]; - } - - if(continuarEditando){ - formDialogRequisitoNegocio.$submitted = false; - formDialogRequisitoNegocio.$setPristine(); - $scope.reqNegocioTemp = null; - $scope.reqNegocio = {}; - return; - } - $scope.atualizarListaSizeSelectReqNegocio(); - $scope.$modalInstance.dismiss('cancel'); - }; + formDialogSolucao.$submitted = true; - // ADICIONAR Solucao - $scope.salvaSolucao = function(formDialogSolucao, continuarEditando) { - - formDialogSolucao.$submitted = true; - - //verifica se o formulario está valido para salvar - if (formDialogSolucao.$invalid) { - //Mensagem de erro de campos obrigatorios não preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } - - if ($scope.estudoTecnico.etLevantamentoAlternativas) { - if ($scope.solucao.$checked) { - for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { - if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { - $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao; - } - } - } else { - $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao); - } - } else { - $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao]; - } - - if(continuarEditando){ - formDialogSolucao.$submitted = false; - formDialogSolucao.$setPristine(); - resetModalSolucao(); - }else{ - $scope.$modalInstance.dismiss('cancel'); - } - $scope.atualizarListaSizeSelectSolucao(); - }; + //verifica se o formulario está valido para salvar + if (formDialogSolucao.$invalid) { + //Mensagem de erro de campos obrigatorios não preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } + + if ($scope.estudoTecnico.etLevantamentoAlternativas) { + if ($scope.solucao.$checked) { + for (var i = 0; i < $scope.estudoTecnico.etLevantamentoAlternativas.length; i++) { + if ($scope.estudoTecnico.etLevantamentoAlternativas[i].$checked) { + $scope.estudoTecnico.etLevantamentoAlternativas[i] = $scope.solucao; + } + } + } else { + $scope.estudoTecnico.etLevantamentoAlternativas.push($scope.solucao); + } + } else { + $scope.estudoTecnico.etLevantamentoAlternativas = [$scope.solucao]; + } + + if(continuarEditando){ + formDialogSolucao.$submitted = false; + formDialogSolucao.$setPristine(); + resetModalSolucao(); + }else{ + $scope.$modalInstance.dismiss('cancel'); + } + $scope.atualizarListaSizeSelectSolucao(); + }; - // ADICIONAR Solucao - $scope.salvaBemServico = function(formDialogBensServico, continuarEditando) { + // ADICIONAR Solucao + $scope.salvaBemServico = function(formDialogBensServico, continuarEditando) { formDialogBensServico.$submitted = true; - + //verifica se o formulario está valido para salvar if (formDialogBensServico.$invalid) { //Mensagem de erro de campos obrigatorios não preenchidos $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); return; } - + if ($scope.estudoTecnico.etBensServicosSolucoes) { if ($scope.bemServico.$checked) { for (var i = 0; i < $scope.estudoTecnico.etBensServicosSolucoes.length; i++) { - if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { - $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico; + if ($scope.estudoTecnico.etBensServicosSolucoes[i].$checked) { + $scope.estudoTecnico.etBensServicosSolucoes[i] = $scope.bemServico; + } } - } } else { $scope.bemServico.$index = $scope.estudoTecnico.etBensServicosSolucoes.length + 1; $scope.estudoTecnico.etBensServicosSolucoes.push($scope.bemServico); @@ -1268,7 +1261,7 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.bemServico.$index = 1; $scope.estudoTecnico.etBensServicosSolucoes = [$scope.bemServico]; } - + if(continuarEditando){ formDialogBensServico.$submitted = false; formDialogBensServico.$setPristine(); @@ -1277,93 +1270,93 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.$modalInstance.dismiss('cancel'); } $scope.atualizarListaSizeSelectServicoSolucao(); - }; + }; - // ADICIONAR BENEFÍCIO ESPERADO - $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado, continuarEditando) { + // ADICIONAR BENEFÍCIO ESPERADO + $scope.salvaBeneficioEsperado = function(formDialogBeneficioEsperado, continuarEditando) { - formDialogBeneficioEsperado.$submitted = true; + formDialogBeneficioEsperado.$submitted = true; + + //verifica se o formulario está valido para salvar + if (formDialogBeneficioEsperado.$invalid) { + //Mensagem de erro de campos obrigatorios não preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } - //verifica se o formulario está valido para salvar - if (formDialogBeneficioEsperado.$invalid) { - //Mensagem de erro de campos obrigatorios não preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } - if ($scope.estudoTecnico.etBeneficiosEsperados) { - if ($scope.beneficioEsperado.$checked) { - for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { - if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { - $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado; - } - } - } else { - $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado); - } + if ($scope.beneficioEsperado.$checked) { + for (var i = 0; i < $scope.estudoTecnico.etBeneficiosEsperados.length; i++) { + if ($scope.estudoTecnico.etBeneficiosEsperados[i].$checked) { + $scope.estudoTecnico.etBeneficiosEsperados[i] = $scope.beneficioEsperado; + } + } + } else { + $scope.estudoTecnico.etBeneficiosEsperados.push($scope.beneficioEsperado); + } } else { - $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado]; + $scope.estudoTecnico.etBeneficiosEsperados = [$scope.beneficioEsperado]; } - + if(continuarEditando){ formDialogBeneficioEsperado.$submitted = false; formDialogBeneficioEsperado.$setPristine(); $scope.beneficioEsperado = {}; - } else { - $scope.$modalInstance.dismiss('cancel'); - } + } else { + $scope.$modalInstance.dismiss('cancel'); + } $scope.atualizarListaSizeSelectBeneficio(); - }; + }; - // responsavel por adicionar um recurso tecnico ao estudo tecnico - $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial, continuarEditando){ + // responsavel por adicionar um recurso tecnico ao estudo tecnico + $scope.salvaRecursoMaterial = function (formDialogRecursoMaterial, continuarEditando){ - formDialogRecursoMaterial.$submitted = true; + formDialogRecursoMaterial.$submitted = true; if (formDialogRecursoMaterial.$invalid) { //Mensagem de erro de campos obrigatorios não preenchidos $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); return; } - + if ($scope.estudoTecnico.etRecursosMateriais){ - if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){ - for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { - if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) { - $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp; - } - } - } else { - $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp); - } + if ($scope.estudoTecnicoRecursoMaterialTemp.$checked){ + for (var i = 0; i < $scope.estudoTecnico.etRecursosMateriais.length; i++) { + if ($scope.estudoTecnico.etRecursosMateriais[i].$checked) { + $scope.estudoTecnico.etRecursosMateriais[i] = $scope.estudoTecnicoRecursoMaterialTemp; + } + } + } else { + $scope.estudoTecnico.etRecursosMateriais.push($scope.estudoTecnicoRecursoMaterialTemp); + } } else { $scope.estudoTecnico.etRecursosMateriais = [$scope.estudoTecnicoRecursoMaterialTemp]; } - + if(continuarEditando){ formDialogRecursoMaterial.$submitted = false; formDialogRecursoMaterial.$setPristine(); $scope.estudoTecnicoRecursoMaterialTemp = { - disponivel : true + disponivel : true }; }else{ $scope.estudoTecnicoRecursoMaterialTemp = {}; $scope.$modalInstance.dismiss('cancel'); } $scope.atualizarListaSizeSelectRecursoMaterial(); - }; + }; - // Responsavel por adicionar um recurso humano ao estudo tecnico - $scope.salvaRecursoHumano = function (formDialogRecursoHumano, continuarEditando){ + // Responsavel por adicionar um recurso humano ao estudo tecnico + $scope.salvaRecursoHumano = function (formDialogRecursoHumano, continuarEditando){ - formDialogRecursoHumano.$submitted = true; + formDialogRecursoHumano.$submitted = true; if (formDialogRecursoHumano.$invalid) { //Mensagem de erro de campos obrigatorios não preenchidos $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); return; } - + if ($scope.estudoTecnico.etRecursosHumanos){ if ($scope.estudoTecnicoRecursoHumanoTemp.$checked){ for (var i = 0; i < $scope.estudoTecnico.etRecursosHumanos.length; i++) { @@ -1378,26 +1371,26 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.estudoTecnico.etRecursosHumanos = [$scope.estudoTecnicoRecursoHumanoTemp]; } $scope.estudoTecnicoRecursoHumanoTemp = {}; - + if(continuarEditando){ formDialogRecursoHumano.$submitted = false; formDialogRecursoHumano.$setPristine(); }else{ $scope.$modalInstance.dismiss('cancel'); } - $scope.atualizarListaSizeSelectRecursoHumano(); - }; + $scope.atualizarListaSizeSelectRecursoHumano(); + }; - $scope.salvaAcaoCont = function(formDialogAcaoContingencia, continuarEditando) { - formDialogAcaoContingencia.$submitted = true; + $scope.salvaAcaoCont = function(formDialogAcaoContingencia, continuarEditando) { + formDialogAcaoContingencia.$submitted = true; + + //verifica se o formulario está valido para salvar + if (formDialogAcaoContingencia.$invalid) { + //Mensagem de erro de campos obrigatorios não preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } - //verifica se o formulario está valido para salvar - if (formDialogAcaoContingencia.$invalid) { - //Mensagem de erro de campos obrigatorios não preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } - if ($scope.estudoTecnico.etAcoesContingencia) { if ($scope.acaoCont.$checked) { for (var i = 0; i < $scope.estudoTecnico.etAcoesContingencia.length; i++) { @@ -1413,7 +1406,7 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.acaoCont.$index = 1; $scope.estudoTecnico.etAcoesContingencia = [$scope.acaoCont]; } - + $scope.acaoCont = {}; if(continuarEditando){ formDialogAcaoContingencia.$submitted = false; @@ -1422,225 +1415,225 @@ citApp.controller('EstudoTecnicoController', ['$scope', 'EstudoTecnicoRepository $scope.$modalInstance.dismiss('cancel'); } $scope.atualizarListaSizeSelectAcaoContigencia(); - }; + }; - //Watch para calcular valor unitario - $scope.$watch('reqNegocio.objetivoEstrategico', function() { - if ($scope.reqNegocio.objetivoEstrategico && ($scope.reqNegocio.objetivoEstrategico.id)) { - ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) { - $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result; - }); - } - }); - - // ########################################### - // ########################################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS AO WIZARD - // ########################################### - - $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true}, - { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false}, - { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false}, - { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false}, - { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false}, - { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false}, - { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ]; - - $scope.steps = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']; - $scope.step = 0; - - // Verifica se o passo é o primeiro passo do wizard - $scope.isFirstStep = function() { - return $scope.step === 0; - }; + //Watch para calcular valor unitario + $scope.$watch('reqNegocio.objetivoEstrategico', function() { + if ($scope.reqNegocio.objetivoEstrategico && ($scope.reqNegocio.objetivoEstrategico.id)) { + ObjetivoEstrategicoNecessidadeRepository.findAllByObjetivoEstrategico($scope.reqNegocio.objetivoEstrategico).then(function(result) { + $scope.reqNegocio.objetivoEstrategico.necessidadesElencadas = result; + }); + } + }); + + // ########################################### + // ########################################### DAQUI PARA BAIXO SAO TODOS OS METODOS RELACIONADOS AO WIZARD + // ########################################### + + $scope.templates = [{ name: 'estudoTecnicoPg1.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg1.html', show: true}, + { name: 'estudoTecnicoPg2.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg2.html', show: false}, + { name: 'estudoTecnicoPg3.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg3.html', show: false}, + { name: 'estudoTecnicoPg4.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg4.html', show: false}, + { name: 'estudoTecnicoPg5.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg5.html', show: false}, + { name: 'estudoTecnicoPg6.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg6.html', show: false}, + { name: 'estudoTecnicoPg7.html', url: '/cit-contratos-web/html/estudoTecnico/estudoTecnicoPg7.html', show: false} ]; + + $scope.steps = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']; + $scope.step = 0; + + // Verifica se o passo é o primeiro passo do wizard + $scope.isFirstStep = function() { + return $scope.step === 0; + }; - // Verifica se o passo é o ultimo passo do wizard - $scope.isLastStep = function() { - return $scope.step === ($scope.steps.length - 1); - }; + // Verifica se o passo é o ultimo passo do wizard + $scope.isLastStep = function() { + return $scope.step === ($scope.steps.length - 1); + }; - // Verifica se o passo é o passo atual do wizard - $scope.isCurrentStep = function(step) { - return $scope.step === step; - }; + // Verifica se o passo é o passo atual do wizard + $scope.isCurrentStep = function(step) { + return $scope.step === step; + }; - // Utilizado pelo wizard para mudar para o passo desejado - $scope.setCurrentStep = function(step) { + // Utilizado pelo wizard para mudar para o passo desejado + $scope.setCurrentStep = function(step) { - $scope.setLoadingGet(true); + $scope.setLoadingGet(true); - if (step <= ($scope.step - 1)) { - $scope.templates[$scope.step].show = false; - $scope.step = step; - $scope.templates[step].show = true; - } else { - if (!$scope.edit) { - $scope.permitidoAvancar = true; - } else { - permiteAvancoFluxo(); - } + if (step <= ($scope.step - 1)) { + $scope.templates[$scope.step].show = false; + $scope.step = step; + $scope.templates[step].show = true; + } else { + if (!$scope.edit) { + $scope.permitidoAvancar = true; + } else { + permiteAvancoFluxo(); + } - if ($scope.permitidoAvancar) { - $scope.templates[$scope.step].show = false; - $scope.step = step; - $scope.templates[step].show = true; - } - } + if ($scope.permitidoAvancar) { + $scope.templates[$scope.step].show = false; + $scope.step = step; + $scope.templates[step].show = true; + } + } - $scope.setLoading(false); - }; + $scope.setLoading(false); + }; - // Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatórios - function permiteAvancoFluxo() { + // Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatórios + function permiteAvancoFluxo() { - $scope.permitidoAvancar = true; + $scope.permitidoAvancar = true; - if ($scope.step === 0) { - if (!validStepPlanejamentoContratacao() && $scope.permitidoAvancar) { - $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true; - } - } else if ($scope.step === 1) { - if (!validStepRequisitos() && $scope.permitidoAvancar) { - $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true; - } - } else if ($scope.step === 2) { - if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){ - $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true; - } - } else if ($scope.step === 3) { - if (!validStepBeneficiosNecessidades() && $scope.permitidoAvancar) { - $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true; - } - } else if ($scope.step === 4 && !validStepRecursosNecessarios()) { - $scope.recursosNecessariosForm.$submitted = true; - $scope.permitidoAvancar = false; - } else if ($scope.step === 5 && !validStepEstrategiaContratual()) { - $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true; - } else if ($scope.step === 6) { - $scope.observacoesEntradaForm.$submitted = true; - } + if ($scope.step === 0) { + if (!validStepPlanejamentoContratacao() && $scope.permitidoAvancar) { + $scope.estudoTecnicoForm.planejamentoContratacaoForm.$submitted = true; + } + } else if ($scope.step === 1) { + if (!validStepRequisitos() && $scope.permitidoAvancar) { + $scope.estudoTecnicoForm.definicaoRequisitosForm.$submitted = true; + } + } else if ($scope.step === 2) { + if(!validStepLevantamentoAlternativas() && $scope.permitidoAvancar){ + $scope.estudoTecnicoForm.levantamentoAlternativasForm.$submitted = true; + } + } else if ($scope.step === 3) { + if (!validStepBeneficiosNecessidades() && $scope.permitidoAvancar) { + $scope.estudoTecnicoForm.beneficiosNecessidadesForm.$submitted = true; + } + } else if ($scope.step === 4 && !validStepRecursosNecessarios()) { + $scope.recursosNecessariosForm.$submitted = true; + $scope.permitidoAvancar = false; + } else if ($scope.step === 5 && !validStepEstrategiaContratual()) { + $scope.estudoTecnicoForm.estrategiaContratualForm.$submitted = true; + } else if ($scope.step === 6) { + $scope.observacoesEntradaForm.$submitted = true; + } - if (!$scope.permitidoAvancar && !$scope.stepValid) { - //Mensagem de erro de campos obrigatorios nao preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - } - }; + if (!$scope.permitidoAvancar && !$scope.stepValid) { + //Mensagem de erro de campos obrigatorios nao preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + } + }; - // Recupera o passo atual do wizard - $scope.getCurrentStep = function() { - return $scope.steps[$scope.step]; - }; + // Recupera o passo atual do wizard + $scope.getCurrentStep = function() { + return $scope.steps[$scope.step]; + }; - // Faz com o que o wizard retroceda um passo - $scope.handlePrevious = function() { + // Faz com o que o wizard retroceda um passo + $scope.handlePrevious = function() { - $scope.setLoadingGet(true); + $scope.setLoadingGet(true); - $scope.templates[$scope.step].show = false; - $scope.step -= ($scope.isFirstStep()) ? 0 : 1; - $scope.templates[$scope.step].show = true; + $scope.templates[$scope.step].show = false; + $scope.step -= ($scope.isFirstStep()) ? 0 : 1; + $scope.templates[$scope.step].show = true; - $scope.setLoading(false); + $scope.setLoading(false); - }; + }; - // Faz com o que o wizard avance um passo - $scope.handleNext = function () { - $scope.setLoadingGet(true); + // Faz com o que o wizard avance um passo + $scope.handleNext = function () { + $scope.setLoadingGet(true); - if(!$scope.edit){ - $scope.permitidoAvancar = true; - } else { - permiteAvancoFluxo(); - } + if(!$scope.edit){ + $scope.permitidoAvancar = true; + } else { + permiteAvancoFluxo(); + } - if ($scope.permitidoAvancar){ - $scope.templates[$scope.step].show = false; - $scope.step += 1; - $scope.templates[$scope.step].show = true; - } + if ($scope.permitidoAvancar){ + $scope.templates[$scope.step].show = false; + $scope.step += 1; + $scope.templates[$scope.step].show = true; + } - $scope.setLoading(false); - }; + $scope.setLoading(false); + }; - // Funcao especifica que retorna se o formulario de dados da entrada esta valido - function validStepPlanejamentoContratacao() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de dados da entrada esta valido + function validStepPlanejamentoContratacao() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.planejamentoContratacaoForm.$invalid) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.planejamentoContratacaoForm.$invalid) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de requisitos esta valido - function validStepRequisitos() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de requisitos esta valido + function validStepRequisitos() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.definicaoRequisitosForm.$invalid || (!$scope.estudoTecnico.etRequisitosNegocio || $scope.estudoTecnico.etRequisitosNegocio.length < 1)) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.definicaoRequisitosForm.$invalid || (!$scope.estudoTecnico.etRequisitosNegocio || $scope.estudoTecnico.etRequisitosNegocio.length < 1)) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de levantamento de alternativas esta valido - function validStepLevantamentoAlternativas() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de levantamento de alternativas esta valido + function validStepLevantamentoAlternativas() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.levantamentoAlternativasForm.$invalid || (!$scope.estudoTecnico.etLevantamentoAlternativas || $scope.estudoTecnico.etLevantamentoAlternativas.length < 1) - || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.levantamentoAlternativasForm.$invalid || (!$scope.estudoTecnico.etLevantamentoAlternativas || $scope.estudoTecnico.etLevantamentoAlternativas.length < 1) + || (!$scope.estudoTecnico.etBensServicosSolucoes || $scope.estudoTecnico.etBensServicosSolucoes.length < 1)) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de beneficios e necessidades está valido - function validStepBeneficiosNecessidades() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de beneficios e necessidades está valido + function validStepBeneficiosNecessidades() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.beneficiosNecessidadesForm.$invalid || (!$scope.estudoTecnico.etBeneficiosEsperados || $scope.estudoTecnico.etBeneficiosEsperados.length < 1)) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.beneficiosNecessidadesForm.$invalid || (!$scope.estudoTecnico.etBeneficiosEsperados || $scope.estudoTecnico.etBeneficiosEsperados.length < 1)) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de recursos necessarios ao estudo está valido - function validStepRecursosNecessarios() { + // Funcao especifica que retorna se o formulario de recursos necessarios ao estudo está valido + function validStepRecursosNecessarios() { - $scope.stepValid = true; + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.recursosNecessariosForm.$invalid) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.recursosNecessariosForm.$invalid) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de observacoes da entrada esta valido - function validStepObservacoesEntrada() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de observacoes da entrada esta valido + function validStepObservacoesEntrada() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.anexosObservacoesForm.$invalid) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.anexosObservacoesForm.$invalid) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; - // Funcao especifica que retorna se o formulario de estrategia contratual esta valido - function validStepEstrategiaContratual() { - $scope.stepValid = true; + // Funcao especifica que retorna se o formulario de estrategia contratual esta valido + function validStepEstrategiaContratual() { + $scope.stepValid = true; - if ($scope.estudoTecnicoForm.estrategiaContratualForm.$invalid || (!$scope.estudoTecnico.etAcoesContingencia || $scope.estudoTecnico.etAcoesContingencia.length < 1)) { - $scope.stepValid = false; - } + if ($scope.estudoTecnicoForm.estrategiaContratualForm.$invalid || (!$scope.estudoTecnico.etAcoesContingencia || $scope.estudoTecnico.etAcoesContingencia.length < 1)) { + $scope.stepValid = false; + } - return $scope.stepValid; - }; + return $scope.stepValid; + }; $scope.atualizarListaSizeSelectReqNegocio = function() { if(!$scope.listaSize){ diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/NotificacaoContratoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/NotificacaoContratoController.js index af9ad27..1d1e327 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/NotificacaoContratoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/NotificacaoContratoController.js @@ -5,10 +5,10 @@ citApp.controller('NotificacaoContratoController', ['$scope', '$translate', '$ti NotificacaoContratoRepository, ContratoRepository, RegistroOcorrenciaRepository, FileUploader, $filter, NotificacaoContratoOcorrenciaRepository) { $scope.uploader = new FileUploader({ - autoUpload: false, - queueLimit: 1, - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' - }); + autoUpload: false, + queueLimit: 99, + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' + }); $scope.atualizaPaginaPesquisa = function () { angular.element('#searchNotificacaoContrato').scope().fetchResult(); @@ -57,10 +57,12 @@ citApp.controller('NotificacaoContratoController', ['$scope', '$translate', '$ti }; angular.forEach($scope.notificacao.documentos, function(documento, key) { if (documento.uploadsDocumento) { + documento.uuid = getUuid(); $scope.notificaoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) }); + // deleta esse atributo por causa de um erro de ciclo no json delete documento.uploadsDocumento; } }); @@ -98,16 +100,30 @@ citApp.controller('NotificacaoContratoController', ['$scope', '$translate', '$ti } }); }; - - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - $scope.uploader.uploadAll(); - } - }; + var salvarListaDocumentos = function(notificaoTemp) { + $scope.uploader.queue = []; + + angular.forEach($scope.notificacao.documentos, function(documentoSalvo, key) { + // verifica se a entidade documento foi salva + if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { + // percorre todos os documentos temporarios para verificacao do numero do documento + angular.forEach(notificaoTemp.documentos, function(documentoTransient, key) { + // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { + //salva o anexo ao documento que tiver o mesmo numero do documento transient + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); + } + }); + } + }); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); + } + delete $scope.notificaoTemp; + }; $scope.getNotificacaoContrato = function(notificacaoContrato, edit) { $scope.setLoadingGet(true); diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/OrdemFornecimentoController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/OrdemFornecimentoController.js index 8e99a8c..a85d1c9 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/OrdemFornecimentoController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/OrdemFornecimentoController.js @@ -10,7 +10,7 @@ citApp.controller('OrdemFornecimentoController', ['$scope', 'OrdemFornecimentoRe $scope.uploader = new FileUploader({ autoUpload: false, - queueLimit: 1, + queueLimit: 99, url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' }); @@ -263,16 +263,17 @@ citApp.controller('OrdemFornecimentoController', ['$scope', 'OrdemFornecimentoRe }; // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento - angular.forEach($scope.ordemFornecimento.documentos, function(documento, key) { - if (documento.uploadsDocumento) { - ordemFornecimentoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) - }); - // deleta esse atributo por causa de um erro de ciclo no json - delete documento.uploadsDocumento; - } - }); + angular.forEach($scope.ordemFornecimento.documentos, function(documento, key) { + if (documento.uploadsDocumento) { + documento.uuid = getUuid(); + ordemFornecimentoTemp.documentos.push({ + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) + }); + // deleta esse atributo por causa de um erro de ciclo no json + delete documento.uploadsDocumento; + } + }); OrdemFornecimentoRepository.save($scope.ordemFornecimento).then(function(result) { @@ -292,36 +293,28 @@ citApp.controller('OrdemFornecimentoController', ['$scope', 'OrdemFornecimentoRe // 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 var salvarListaDocumentos = function(ordemFornecimentoTemp) { - + $scope.uploader.queue = []; + angular.forEach($scope.ordemFornecimento.documentos, function(documentoSalvo, key) { // verifica se a entidade documento foi salva if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { // percorre todos os documentos temporarios para verificacao do numero do documento angular.forEach(ordemFornecimentoTemp.documentos, function(documentoTransient, key) { // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); } - }); - } }); - - }; - - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); } + delete $scope.ordemFornecimentoTemp; }; //Watch para buscar o gestor do contrato diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/RegistroOcorrenciaController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/RegistroOcorrenciaController.js index 50811e4..e8dc4a2 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/RegistroOcorrenciaController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/RegistroOcorrenciaController.js @@ -35,10 +35,10 @@ citApp.controller('RegistroOcorrenciaController', ['$scope', '$translate', '$tim $scope.resetForm(); $scope.uploader = new FileUploader({ - autoUpload: false, - queueLimit: 1, - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' - }); + autoUpload: false, + queueLimit: 99, + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' + }); $scope.editar = function () { $scope.edit = true; @@ -82,9 +82,10 @@ citApp.controller('RegistroOcorrenciaController', ['$scope', '$translate', '$tim // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento angular.forEach($scope.registroOcorrencia.documentos, function(documento, key) { if (documento.uploadsDocumento) { + documento.uuid = getUuid(); registroOcorrenciaTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) }); // deleta esse atributo por causa de um erro de ciclo no json delete documento.uploadsDocumento; @@ -106,36 +107,30 @@ citApp.controller('RegistroOcorrenciaController', ['$scope', '$translate', '$tim }; // 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 - var salvarListaDocumentos = function(registroOcorrencia) { - - angular.forEach($scope.registroOcorrencia.documentos, function(documentoSalvo, key) { - // verifica se a entidade documento foi salva - if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { - // percorre todos os documentos temporarios para verificacao do numero do documento - angular.forEach(registroOcorrencia.documentos, function(documentoTransient, key) { - // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { - //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); - } - }); - } - }); - }; - - // metodo responsavel para salvar os anexos depois de ter salvo o registro de ocorrencia, utilizando a referencia do id registroOcorrencia.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); - } - }; - + var salvarListaDocumentos = function(registroOcorrenciaTemp) { + $scope.uploader.queue = []; + + angular.forEach($scope.registroOcorrencia.documentos, function(documentoSalvo, key) { + // verifica se a entidade documento foi salva + if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { + // percorre todos os documentos temporarios para verificacao do numero do documento + angular.forEach(registroOcorrenciaTemp.documentos, function(documentoTransient, key) { + // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { + //salva o anexo ao documento que tiver o mesmo numero do documento transient + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); + } + }); + } + }); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); + } + delete $scope.registroOcorrenciaTemp; + }; $scope.isInformacoesValidas = function () { diff --git a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js index 18c0f0f..eb32b0e 100644 --- a/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js +++ b/cit-contratos-web/src/main/webapp/assets/js/angular/custom/controller/TermoReferenciaController.js @@ -34,239 +34,239 @@ citApp.controller('TermoReferenciaController', ['$scope', $timeout, $filter, EventoRegistroNaoConformidadeRepository) { - $scope.termoReferencia = { - estudoTecnico : {}, - detalhamentosSolucoes : [], - penalidades : [], - sancoes : [], - observacoes : [], - documentos : [], - deveresContratante : "", - deveresContratada : "", - deveresOrgaoRegistroPreco : "", - mecanismoComunicacao : "", - integrantesEstudoTecnico : {} - }; - - $scope.listaJustificativaContratacao = []; - $scope.listaBeneficiosEsperados = []; - $scope.listEtBensServicos = []; - $scope.papeis = ''; - - $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; - $scope.editDetalhamento = false; - $scope.editPenalidade = false; - $scope.editSancao = false; - - //Dados da tabela de Justificativa de Contratacao - $scope.headers = [{ - title : $translate.instant('LABEL.NECESSIDADE_NEGOCIO'), - value : 'objetivoEstrategicoNecessidade.descricao' - },{ - title : $translate.instant('LABEL.JUSTIFICATIVA'), - value : 'justificativaNecessidade' - }]; - - $scope.fields = [ 'id', 'objetivoEstrategicoNecessidade.descricao', 'justificativaNecessidade']; - - $scope.filters = [ { - type : 'string', - field : 'objetivoEstrategicoNecessidade.descricao' - },{ - type : 'string', - field : 'justificativaNecessidade', - },{ - type: 'numeric', - field: 'estudoTecnico.id', - value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0 ) - }]; - - $scope.filterCriteria = { - start : 1, - dir : 'asc', - sort : 'id', - limit : 10, - }; - - //Dados da tabela de Beneficios Esperados - $scope.headersBeneficios = [{ - title : $translate.instant('LABEL.BENEFICIO'), - value : 'beneficioEsperado' - },{ - title : $translate.instant('LABEL.DESCRICAO'), - value : 'descricaoBeneficioEsperado' - }]; - - $scope.fieldsBeneficios = [ 'id', 'beneficioEsperado', 'descricaoBeneficioEsperado']; - - $scope.filtersBeneficios = [ { - type : 'string', - field : 'beneficioEsperado' - },{ - type : 'string', - field : 'descricaoBeneficioEsperado', - },{ - type: 'numeric', - field: 'estudoTecnico.id', - value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0) - }]; - - $scope.filterCriteriaBeneficios = { - start : 1, - dir : 'asc', - sort : 'id', - limit : 10, - }; - - //#####################DOMINIOS########################### - - DominioRepository.findAllDominio('tipoFormaPagamento').then(function(result) { - $scope.dominiosTiposFormaPagamento = result; - }); - - DominioRepository.findAllDominio('tipoEmpreitada').then(function(result) { - $scope.dominiosEmpreitada = result; - }); - - DominioRepository.findAllDominio('tipoAdjudicacaoObjeto').then(function(result) { - $scope.dominiosAdjudicacao = result; - }); - - DominioRepository.findAllDominio('tipoModalidadeContrato').then(function(result) { - $scope.dominiosModalidade = result; - }); - - DominioRepository.findAllDominio('tipoNotificacaoContratoSancao').then(function(result) { - $scope.dominioTiposSancaoList = result; - }); - //##########################AUTOCOMPLETES########################################### - - $scope.findBemServicoSolucao = function (value){ - return EstudoTecnicoBemServicoSolucaoRepository.listarBensServicosPorNome(value).then(function(result) { - return result; - }); - }; - - $scope.findFornecedor = function(value){ - return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'] , value).then(function(result) { - return result; - }); - }; - - $scope.findOrgaoExterno = function(value){ - return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { - return result; - }); - }; - - $scope.findEstudoTecnico = function(value){ - return EstudoTecnicoRepository.listarEstudosPorCodigo(value).then(function(result) { - return result; - }); - }; - - $scope.atualizaInformacoesIntegrantesEstudoTecnico = function (item){ - - $scope.termoReferencia.integrantesEstudoTecnico = { - integranteTecnico : item.integranteTecnico.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteTecnico.matricula, - integranteAdministrativo : item.integranteAdministrativo.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteAdministrativo.matricula, - integranteRequisitante : item.integranteRequisitante.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteRequisitante.matricula - }; - }; - - // Metodo responsavel por limpar o auto complete de Modelo Email - $scope.limparModeloEmailAutoComplete = function(value) { - value = {}; - }; - - $scope.atualizaListaJustificativasContratacao = function(value){ - var listIdJustificativa = []; - angular.forEach(value.etRequisitosNegocio, function(value, key){ - listIdJustificativa.push(value.id); - }); - - $scope.listaJustificativaContratacao = listIdJustificativa; - }; - - $scope.atualizaListaBeneficiosEsperados = function(value){ - var listIdBeneficios = []; - angular.forEach(value.etBeneficiosEsperados, function(value, key){ - listIdBeneficios.push(value.id); - }); - - $scope.listaBeneficiosEsperados = listIdBeneficios; - }; - - $scope.atualizaListaEtBensServicos = function(value){ - if (!value){ - value = $scope.termoReferencia.estudoTecnico; - } - $scope.listEtBensServicos = $filter('idNotEqualObj')(value.etBensServicosSolucoes, $scope.termoReferencia.detalhamentosSolucoes, "bemServicoSolucao"); ; - }; - - - //###################### METODOS AUXILIARES #################################### - - // Limpa formulario para novo cadastro - $scope.resetForm = function() { - $scope.termoReferencia = { - detalhamentosSolucoes : [], - penalidades : [], - sancoes : [], - observacoes : [], - documentos : [], - deveresContratante : "", - deveresContratada : "", - deveresOrgaoRegistroPreco : "", - mecanismoComunicacao : "" - }; - $scope.listaJustificativaContratacao = []; - $scope.listaBeneficiosEsperados = []; - $scope.listEtBensServicos = []; - $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; - $scope.papeis = ''; - - $scope.penalidade = {}; - $scope.sancao = {}; - - $scope.edit = true; - $scope.pgEdit = true; - $scope.editDetalhamento = false; - $scope.editPenalidade = false; - $scope.editSancao = false; - $scope.step = 0; - - $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.termoReferencia, true); - - $timeout(function(){ - $scope.termoReferenciaForm.$submitted = false; - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = false; - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = false; - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = false; - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = false; - $scope.termoReferenciaForm.sancoesForm.$submitted = false; - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = false; - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = false; - - $scope.termoReferenciaForm.$setPristine(); - $scope.termoReferenciaForm.equipeContratacaoForm.$setPristine(); - $scope.termoReferenciaForm.justificativaContratacaoForm.$setPristine(); - $scope.termoReferenciaForm.especificacoesTecnicasForm.$setPristine(); - $scope.termoReferenciaForm.modeloGestaoForm.$setPristine(); - $scope.termoReferenciaForm.sancoesForm.$setPristine(); - $scope.termoReferenciaForm.criteriosSelecaoForm.$setPristine(); - $scope.termoReferenciaForm.anexosObservacoesForm.$setPristine(); - }); - - createTemplates(); - $scope.getConfiguracoesTemplate(); - $scope.preenchePapeis(); - $scope.carregarValoresPadrao(); - $scope.atualizarListaSizeSelect(); - $scope.atualizarListaSizeSelectPenalidade(); - $scope.atualizarListaSizeSelectSancao(); - - }; + $scope.termoReferencia = { + estudoTecnico : {}, + detalhamentosSolucoes : [], + penalidades : [], + sancoes : [], + observacoes : [], + documentos : [], + deveresContratante : "", + deveresContratada : "", + deveresOrgaoRegistroPreco : "", + mecanismoComunicacao : "", + integrantesEstudoTecnico : {} + }; + + $scope.listaJustificativaContratacao = []; + $scope.listaBeneficiosEsperados = []; + $scope.listEtBensServicos = []; + $scope.papeis = ''; + + $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; + $scope.editDetalhamento = false; + $scope.editPenalidade = false; + $scope.editSancao = false; + + //Dados da tabela de Justificativa de Contratacao + $scope.headers = [{ + title : $translate.instant('LABEL.NECESSIDADE_NEGOCIO'), + value : 'objetivoEstrategicoNecessidade.descricao' + },{ + title : $translate.instant('LABEL.JUSTIFICATIVA'), + value : 'justificativaNecessidade' + }]; + + $scope.fields = [ 'id', 'objetivoEstrategicoNecessidade.descricao', 'justificativaNecessidade']; + + $scope.filters = [ { + type : 'string', + field : 'objetivoEstrategicoNecessidade.descricao' + },{ + type : 'string', + field : 'justificativaNecessidade', + },{ + type: 'numeric', + field: 'estudoTecnico.id', + value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0 ) + }]; + + $scope.filterCriteria = { + start : 1, + dir : 'asc', + sort : 'id', + limit : 10, + }; + + //Dados da tabela de Beneficios Esperados + $scope.headersBeneficios = [{ + title : $translate.instant('LABEL.BENEFICIO'), + value : 'beneficioEsperado' + },{ + title : $translate.instant('LABEL.DESCRICAO'), + value : 'descricaoBeneficioEsperado' + }]; + + $scope.fieldsBeneficios = [ 'id', 'beneficioEsperado', 'descricaoBeneficioEsperado']; + + $scope.filtersBeneficios = [ { + type : 'string', + field : 'beneficioEsperado' + },{ + type : 'string', + field : 'descricaoBeneficioEsperado', + },{ + type: 'numeric', + field: 'estudoTecnico.id', + value: ($scope.termoReferencia.estudoTecnico ? $scope.termoReferencia.estudoTecnico.id : 0) + }]; + + $scope.filterCriteriaBeneficios = { + start : 1, + dir : 'asc', + sort : 'id', + limit : 10, + }; + + //#####################DOMINIOS########################### + + DominioRepository.findAllDominio('tipoFormaPagamento').then(function(result) { + $scope.dominiosTiposFormaPagamento = result; + }); + + DominioRepository.findAllDominio('tipoEmpreitada').then(function(result) { + $scope.dominiosEmpreitada = result; + }); + + DominioRepository.findAllDominio('tipoAdjudicacaoObjeto').then(function(result) { + $scope.dominiosAdjudicacao = result; + }); + + DominioRepository.findAllDominio('tipoModalidadeContrato').then(function(result) { + $scope.dominiosModalidade = result; + }); + + DominioRepository.findAllDominio('tipoNotificacaoContratoSancao').then(function(result) { + $scope.dominioTiposSancaoList = result; + }); + //##########################AUTOCOMPLETES########################################### + + $scope.findBemServicoSolucao = function (value){ + return EstudoTecnicoBemServicoSolucaoRepository.listarBensServicosPorNome(value).then(function(result) { + return result; + }); + }; + + $scope.findFornecedor = function(value){ + return ParceiroRepository.findParceiros('tipoParceiro', ['FORNECEDOR'] , value).then(function(result) { + return result; + }); + }; + + $scope.findOrgaoExterno = function(value){ + return ParceiroRepository.findParceiros('tipoParceiro', ['ORGAO_EXTERNO'] , value).then(function(result) { + return result; + }); + }; + + $scope.findEstudoTecnico = function(value){ + return EstudoTecnicoRepository.listarEstudosPorCodigo(value).then(function(result) { + return result; + }); + }; + + $scope.atualizaInformacoesIntegrantesEstudoTecnico = function (item){ + + $scope.termoReferencia.integrantesEstudoTecnico = { + integranteTecnico : item.integranteTecnico.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteTecnico.matricula, + integranteAdministrativo : item.integranteAdministrativo.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteAdministrativo.matricula, + integranteRequisitante : item.integranteRequisitante.pessoa.nome + ' - Mat. SIAPE: ' + item.integranteRequisitante.matricula + }; + }; + + // Metodo responsavel por limpar o auto complete de Modelo Email + $scope.limparModeloEmailAutoComplete = function(value) { + value = {}; + }; + + $scope.atualizaListaJustificativasContratacao = function(value){ + var listIdJustificativa = []; + angular.forEach(value.etRequisitosNegocio, function(value, key){ + listIdJustificativa.push(value.id); + }); + + $scope.listaJustificativaContratacao = listIdJustificativa; + }; + + $scope.atualizaListaBeneficiosEsperados = function(value){ + var listIdBeneficios = []; + angular.forEach(value.etBeneficiosEsperados, function(value, key){ + listIdBeneficios.push(value.id); + }); + + $scope.listaBeneficiosEsperados = listIdBeneficios; + }; + + $scope.atualizaListaEtBensServicos = function(value){ + if (!value){ + value = $scope.termoReferencia.estudoTecnico; + } + $scope.listEtBensServicos = $filter('idNotEqualObj')(value.etBensServicosSolucoes, $scope.termoReferencia.detalhamentosSolucoes, "bemServicoSolucao"); ; + }; + + + //###################### METODOS AUXILIARES #################################### + + // Limpa formulario para novo cadastro + $scope.resetForm = function() { + $scope.termoReferencia = { + detalhamentosSolucoes : [], + penalidades : [], + sancoes : [], + observacoes : [], + documentos : [], + deveresContratante : "", + deveresContratada : "", + deveresOrgaoRegistroPreco : "", + mecanismoComunicacao : "" + }; + $scope.listaJustificativaContratacao = []; + $scope.listaBeneficiosEsperados = []; + $scope.listEtBensServicos = []; + $scope.termoReferenciaDetalhamentoSolucao = {formaPagamento: {}, bemServicoSolucao:{}}; + $scope.papeis = ''; + + $scope.penalidade = {}; + $scope.sancao = {}; + + $scope.edit = true; + $scope.pgEdit = true; + $scope.editDetalhamento = false; + $scope.editPenalidade = false; + $scope.editSancao = false; + $scope.step = 0; + + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.termoReferencia, true); + + $timeout(function(){ + $scope.termoReferenciaForm.$submitted = false; + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = false; + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = false; + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = false; + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = false; + $scope.termoReferenciaForm.sancoesForm.$submitted = false; + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = false; + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = false; + + $scope.termoReferenciaForm.$setPristine(); + $scope.termoReferenciaForm.equipeContratacaoForm.$setPristine(); + $scope.termoReferenciaForm.justificativaContratacaoForm.$setPristine(); + $scope.termoReferenciaForm.especificacoesTecnicasForm.$setPristine(); + $scope.termoReferenciaForm.modeloGestaoForm.$setPristine(); + $scope.termoReferenciaForm.sancoesForm.$setPristine(); + $scope.termoReferenciaForm.criteriosSelecaoForm.$setPristine(); + $scope.termoReferenciaForm.anexosObservacoesForm.$setPristine(); + }); + + createTemplates(); + $scope.getConfiguracoesTemplate(); + $scope.preenchePapeis(); + $scope.carregarValoresPadrao(); + $scope.atualizarListaSizeSelect(); + $scope.atualizarListaSizeSelectPenalidade(); + $scope.atualizarListaSizeSelectSancao(); + + }; $scope.setRascunho = function(rascunho){ @@ -279,102 +279,94 @@ citApp.controller('TermoReferenciaController', ['$scope', $scope.setLoading(false); }; - // Atualiza pagina de pesquisa - $scope.atualizaPaginaPesquisa = function () { - angular.element('#searchTermoReferencia').scope().fetchResult(); - }; - - $scope.openModalDetalhamentoSolucao = function() { - $scope.edicao = false; - $scope.termoReferenciaDetalhamentoSolucao = {}; - $scope.editDetalhamento = true; -// $scope.atualizaListaEtBensServicos(); - $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; + // Atualiza pagina de pesquisa + $scope.atualizaPaginaPesquisa = function () { + angular.element('#searchTermoReferencia').scope().fetchResult(); + }; - $timeout(function() { - $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); - }); - }; + $scope.openModalDetalhamentoSolucao = function() { + $scope.edicao = false; + $scope.termoReferenciaDetalhamentoSolucao = {}; + $scope.editDetalhamento = true; +// $scope.atualizaListaEtBensServicos(); + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; - $scope.openModalPenalidade = function() { + $timeout(function() { + $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); + }); + }; - $scope.penalidade = {}; - $scope.editPenalidade = true; + $scope.openModalPenalidade = function() { - $timeout(function() { - $scope.$openModal('modal-penalidade.html', 'lg'); - }); - }; + $scope.penalidade = {}; + $scope.editPenalidade = true; - $scope.openModalSancao = function() { + $timeout(function() { + $scope.$openModal('modal-penalidade.html', 'lg'); + }); + }; - $scope.sancao = {}; - $scope.editSancao = true; + $scope.openModalSancao = function() { - $timeout(function() { - $scope.$openModal('modal-sancao.html', 'lg'); - }); - }; + $scope.sancao = {}; + $scope.editSancao = true; - $scope.uploader = new FileUploader({ - autoUpload: false, - queueLimit: 1, - url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' - }); + $timeout(function() { + $scope.$openModal('modal-sancao.html', 'lg'); + }); + }; - // 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 - var salvarListaDocumentos = function(termo) { + $scope.uploader = new FileUploader({ + autoUpload: false, + queueLimit: 99, + url: '/cit-tabelas-corp-web/rest/anexo/uploadAnexo?idDocumento=' + }); + // 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 + var salvarListaDocumentos = function(termoTemp) { + $scope.uploader.queue = []; + angular.forEach($scope.termoReferencia.documentos, function(documentoSalvo, key) { // verifica se a entidade documento foi salva if (documentoSalvo !== undefined && documentoSalvo.id !== undefined) { // percorre todos os documentos temporarios para verificacao do numero do documento - angular.forEach(termo.documentos, function(documentoTransient, key) { + angular.forEach(termoTemp.documentos, function(documentoTransient, key) { // verifica se o numero do documento salvo e igual ao numero do documento transient que o anexo ainda esta vinculado - if (documentoSalvo.numero === documentoTransient.numero) { + if (documentoTransient.file && documentoSalvo.uuid === documentoTransient.uuid) { //salva o anexo ao documento que tiver o mesmo numero do documento transient - salvarUpload(documentoSalvo, documentoTransient.uploadsDocumento); + + documentoTransient.file.url = documentoTransient.file.url + documentoSalvo.id; + $scope.uploader.queue.push(documentoTransient.file); } - }); - } }); - - }; - - // metodo responsavel para salvar os anexos da baixa depois de ter salvo a baixa, utilizando a referencia do id baixa.documento.id - var salvarUpload = function(documento, uploadsDocumento) { - $scope.uploader.queue = uploadsDocumento; - // percorre a lista de uploads a serem enviados - angular.forEach($scope.uploader.queue, function(item, key) { - item.url = item.url + documento.id; - }); - if ($scope.uploader.queue && $scope.uploader.queue.length > 0) { - // realiza o upload se existir no minimo um arquivo para upload - $scope.uploader.uploadAll(); + + if($scope.uploader.queue.length > 0){ + $scope.uploader.uploadAll(); } + delete $scope.termoTemp; }; - // ADICIONAR Detalhamento Solucao - $scope.addDetalhamentoSolucao = function(formDetalhamento, continuarEditando) { + // ADICIONAR Detalhamento Solucao + $scope.addDetalhamentoSolucao = function(formDetalhamento, continuarEditando) { var detalhe = $scope.termoReferenciaDetalhamentoSolucao; formDetalhamento.$submitted = true; - + //verifica se o formulario esta valido para salvar if (formDetalhamento.$invalid) { //Mensagem de erro de campos obrigatorios nao preenchidos $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); return; } - + if (detalhe.formaPagamento && detalhe.formaPagamento.codigo===1){ $scope.termoReferenciaDetalhamentoSolucao.numeroParcelas = null; } $scope.setLoadingSalva(true); var isDuplicado = false; - + if($scope.edicao && $scope.bemServicoSolucaoValidatorId != $scope.termoReferenciaDetalhamentoSolucao.bemServicoSolucao.id){ angular.forEach($scope.termoReferencia.detalhamentosSolucoes, function (item, idx) { if (item.bemServicoSolucao.id === detalhe.bemServicoSolucao.id) { @@ -393,738 +385,739 @@ citApp.controller('TermoReferenciaController', ['$scope', } }); } - + if (!isDuplicado) { - + if (detalhe.$index != undefined && detalhe.$index != null) { $scope.termoReferencia.detalhamentosSolucoes[detalhe.$index] = detalhe; } else { $scope.termoReferencia.detalhamentosSolucoes.push(detalhe); } - + if(continuarEditando){ $scope.edicao = false; delete $scope.bemServicoSolucaoValidatorId; formDetalhamento.$submitted = false; formDetalhamento.$setPristine(); $scope.termoReferenciaDetalhamentoSolucao = {}; - $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; }else{ $scope.$modalInstance.dismiss('cancel'); } $scope.atualizarListaSizeSelect(); } - + $scope.setLoadingSalva(false); - - }; - // ADICIONAR Penalidade - $scope.addPenalidade = function(formPenalidade, continuarEditando) { + }; - var penalid = $scope.penalidade; + // ADICIONAR Penalidade + $scope.addPenalidade = function(formPenalidade, continuarEditando) { - formPenalidade.$submitted = true; + var penalid = $scope.penalidade; - //verifica se o formulario esta valido para salvar - if (formPenalidade.$invalid) { - //Mensagem de erro de campos obrigatorios nao preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } + formPenalidade.$submitted = true; - $scope.setLoadingSalva(true); + //verifica se o formulario esta valido para salvar + if (formPenalidade.$invalid) { + //Mensagem de erro de campos obrigatorios nao preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } - if (penalid.$index != undefined && penalid.$index != null) { - $scope.termoReferencia.penalidades[penalid.$index] = penalid; - } else { - $scope.termoReferencia.penalidades.push(penalid); - } + $scope.setLoadingSalva(true); - $scope.setLoadingSalva(false); - - if(continuarEditando){ - formPenalidade.$submitted = false; - formPenalidade.$setPristine(); - $scope.penalidade = {}; - }else{ - $scope.$modalInstance.dismiss('cancel'); - } + if (penalid.$index != undefined && penalid.$index != null) { + $scope.termoReferencia.penalidades[penalid.$index] = penalid; + } else { + $scope.termoReferencia.penalidades.push(penalid); + } + + $scope.setLoadingSalva(false); + + if(continuarEditando){ + formPenalidade.$submitted = false; + formPenalidade.$setPristine(); + $scope.penalidade = {}; + }else{ + $scope.$modalInstance.dismiss('cancel'); + } $scope.atualizarListaSizeSelectPenalidade(); - }; + }; - // ADICIONAR Penalidade - $scope.addSancao = function(formSancao, continuarEditando) { + // ADICIONAR Penalidade + $scope.addSancao = function(formSancao, continuarEditando) { - var sans = $scope.sancao; + var sans = $scope.sancao; - formSancao.$submitted = true; + formSancao.$submitted = true; - //verifica se o formulario esta valido para salvar - if (formSancao.$invalid) { - //Mensagem de erro de campos obrigatorios nao preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - return; - } + //verifica se o formulario esta valido para salvar + if (formSancao.$invalid) { + //Mensagem de erro de campos obrigatorios nao preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + return; + } - $scope.setLoadingSalva(true); + $scope.setLoadingSalva(true); - if (sans.$index != undefined && sans.$index != null) { - $scope.termoReferencia.sancoes[sans.$index] = sans; - } else { - $scope.termoReferencia.sancoes.push(sans); - } + if (sans.$index != undefined && sans.$index != null) { + $scope.termoReferencia.sancoes[sans.$index] = sans; + } else { + $scope.termoReferencia.sancoes.push(sans); + } - $scope.setLoadingSalva(false); + $scope.setLoadingSalva(false); - if(continuarEditando){ - formSancao.$submitted = false; - formSancao.$setPristine(); - $scope.sancao = {}; - } else { - $scope.$modalInstance.dismiss('cancel'); - } - }; + if(continuarEditando){ + formSancao.$submitted = false; + formSancao.$setPristine(); + $scope.sancao = {}; + } else { + $scope.$modalInstance.dismiss('cancel'); + } + }; - //Watch para calcular total - $scope.$watch('termoReferenciaDetalhamentoSolucao.valor', function() { - $timeout(function() { - if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { - $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; - } else { - if ($scope.termoReferenciaDetalhamentoSolucao) { - $scope.termoReferenciaDetalhamentoSolucao.total = null; - } - } - }); - }); - - //Watch para calcular total - $scope.$watch('termoReferenciaDetalhamentoSolucao.quantidade', function() { - $timeout(function() { - if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { - $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; - } else { - if ($scope.termoReferenciaDetalhamentoSolucao) { - $scope.termoReferenciaDetalhamentoSolucao.total = null; - } - } - }); - }); - - $scope.getConfiguracoesTemplate = function () { - ConfiguracaoRepository.getConfiguracao($scope.usuarioLogado.organizacao.id).then(function (result) { - var configTemp = result.originalElement; - var parametro; - for (var i = 0; i < configTemp.parametros.length; i++){ - parametro = configTemp.parametros[i]; - switch (parametro.chave) { - case "DEVERES_RESPONSABILIDADES_CONTRATANTE" : - $scope.termoReferencia.deveresContratante = parametro.valor; - break; - case "DEVERES_RESPONSABILIDADES_CONTRATADA" : - $scope.termoReferencia.deveresContratada = parametro.valor; - break; - case "DEVERES_RESPONSABILIDADES_ORGAO" : - $scope.termoReferencia.deveresOrgaoRegistroPreco = parametro.valor; - break; - case "MECANISMOS_FORMAIS_COMUNICACAO" : - $scope.termoReferencia.mecanismoComunicacao = parametro.valor; - break; - }; - }; - }); - }; + //Watch para calcular total + $scope.$watch('termoReferenciaDetalhamentoSolucao.valor', function() { + $timeout(function() { + if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { + $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; + } else { + if ($scope.termoReferenciaDetalhamentoSolucao) { + $scope.termoReferenciaDetalhamentoSolucao.total = null; + } + } + }); + }); - // marca DetalhamentoSolucao - $scope.checkDetalhamentoSolucao = function(index) { - $timeout(function() { - for (var i = 0; i < $scope.termoReferencia.detalhamentosSolucoes.length; i++) { - if (i == index) { - $scope.termoReferencia.detalhamentosSolucoes[i].$checked = true; - } else { - $scope.termoReferencia.detalhamentosSolucoes[i].$checked = false; - } - } - $scope.atualizarListaSizeSelect(); - }); - }; + //Watch para calcular total + $scope.$watch('termoReferenciaDetalhamentoSolucao.quantidade', function() { + $timeout(function() { + if ($scope.termoReferenciaDetalhamentoSolucao && ($scope.termoReferenciaDetalhamentoSolucao.valor && $scope.termoReferenciaDetalhamentoSolucao.quantidade)) { + $scope.termoReferenciaDetalhamentoSolucao.total = $scope.termoReferenciaDetalhamentoSolucao.valor * $scope.termoReferenciaDetalhamentoSolucao.quantidade; + } else { + if ($scope.termoReferenciaDetalhamentoSolucao) { + $scope.termoReferenciaDetalhamentoSolucao.total = null; + } + } + }); + }); + + $scope.getConfiguracoesTemplate = function () { + ConfiguracaoRepository.getConfiguracao($scope.usuarioLogado.organizacao.id).then(function (result) { + var configTemp = result.originalElement; + var parametro; + for (var i = 0; i < configTemp.parametros.length; i++){ + parametro = configTemp.parametros[i]; + switch (parametro.chave) { + case "DEVERES_RESPONSABILIDADES_CONTRATANTE" : + $scope.termoReferencia.deveresContratante = parametro.valor; + break; + case "DEVERES_RESPONSABILIDADES_CONTRATADA" : + $scope.termoReferencia.deveresContratada = parametro.valor; + break; + case "DEVERES_RESPONSABILIDADES_ORGAO" : + $scope.termoReferencia.deveresOrgaoRegistroPreco = parametro.valor; + break; + case "MECANISMOS_FORMAIS_COMUNICACAO" : + $scope.termoReferencia.mecanismoComunicacao = parametro.valor; + break; + }; + }; + }); + }; - // recupera DetalhamentoSolucao selecionada - $scope.getDetalhamentoSolucaoChecked = function() { - var detalhamentoSolucaoChecked = undefined; - $scope.termoReferenciaDetalhamentoSolucao = {}; - $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhe) { - if (detalhe.$checked) { - detalhamentoSolucaoChecked = detalhe; - } - }); + // marca DetalhamentoSolucao + $scope.checkDetalhamentoSolucao = function(index) { + $timeout(function() { + for (var i = 0; i < $scope.termoReferencia.detalhamentosSolucoes.length; i++) { + if (i == index) { + $scope.termoReferencia.detalhamentosSolucoes[i].$checked = true; + } else { + $scope.termoReferencia.detalhamentosSolucoes[i].$checked = false; + } + } + $scope.atualizarListaSizeSelect(); + }); + }; - return detalhamentoSolucaoChecked; - }; + // recupera DetalhamentoSolucao selecionada + $scope.getDetalhamentoSolucaoChecked = function() { + var detalhamentoSolucaoChecked = undefined; + $scope.termoReferenciaDetalhamentoSolucao = {}; + $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhe) { + if (detalhe.$checked) { + detalhamentoSolucaoChecked = detalhe; + } + }); - // marca Penalidade - $scope.checkPenalidade = function(index) { - $timeout(function() { - for (var i = 0; i < $scope.termoReferencia.penalidades.length; i++) { - if (i == index) { - $scope.termoReferencia.penalidades[i].$checked = true; - } else { - $scope.termoReferencia.penalidades[i].$checked = false; - } - } - $scope.atualizarListaSizeSelectPenalidade(); - }); - }; + return detalhamentoSolucaoChecked; + }; - // recupera Penalidade selecionada - $scope.getPenalidadeChecked = function() { - var penalidadeChecked = undefined; - $scope.termoReferenciaPenalidade = {}; - $scope.termoReferencia.penalidades.forEach(function(penalidade) { - if (penalidade.$checked) { - penalidadeChecked = penalidade; - } - }); + // marca Penalidade + $scope.checkPenalidade = function(index) { + $timeout(function() { + for (var i = 0; i < $scope.termoReferencia.penalidades.length; i++) { + if (i == index) { + $scope.termoReferencia.penalidades[i].$checked = true; + } else { + $scope.termoReferencia.penalidades[i].$checked = false; + } + } + $scope.atualizarListaSizeSelectPenalidade(); + }); + }; - return penalidadeChecked; - }; + // recupera Penalidade selecionada + $scope.getPenalidadeChecked = function() { + var penalidadeChecked = undefined; + $scope.termoReferenciaPenalidade = {}; + $scope.termoReferencia.penalidades.forEach(function(penalidade) { + if (penalidade.$checked) { + penalidadeChecked = penalidade; + } + }); - // marca Sancao - $scope.checkSancao = function(index) { - $timeout(function() { - for (var i = 0; i < $scope.termoReferencia.sancoes.length; i++) { - if (i == index) { - $scope.termoReferencia.sancoes[i].$checked = true; - } else { - $scope.termoReferencia.sancoes[i].$checked = false; - } - } - $scope.atualizarListaSizeSelectSancao(); - }); - }; + return penalidadeChecked; + }; - // recupera Sancao selecionada - $scope.getSancaoChecked = function() { - var sancaoChecked = undefined; - $scope.termoReferenciaSancao = {}; - $scope.termoReferencia.sancoes.forEach(function(sancao) { - if (sancao.$checked) { - sancaoChecked = sancao; - } - }); + // marca Sancao + $scope.checkSancao = function(index) { + $timeout(function() { + for (var i = 0; i < $scope.termoReferencia.sancoes.length; i++) { + if (i == index) { + $scope.termoReferencia.sancoes[i].$checked = true; + } else { + $scope.termoReferencia.sancoes[i].$checked = false; + } + } + $scope.atualizarListaSizeSelectSancao(); + }); + }; - return sancaoChecked; - }; + // recupera Sancao selecionada + $scope.getSancaoChecked = function() { + var sancaoChecked = undefined; + $scope.termoReferenciaSancao = {}; + $scope.termoReferencia.sancoes.forEach(function(sancao) { + if (sancao.$checked) { + sancaoChecked = sancao; + } + }); - $scope.preenchePapeis = function(){ - DominioRepository.findAllDominio('tipoPapelEquipeContratos').then(function(result) { - $scope.dominioPapeis = result; + return sancaoChecked; + }; - angular.forEach($scope.dominioPapeis, function(value, key){ - $scope.papeis+= value.descricao + '\n'; - }); + $scope.preenchePapeis = function(){ + DominioRepository.findAllDominio('tipoPapelEquipeContratos').then(function(result) { + $scope.dominioPapeis = result; - }); + angular.forEach($scope.dominioPapeis, function(value, key){ + $scope.papeis+= value.descricao + '\n'; + }); - }; + }); - $scope.carregarValoresPadrao = function() { - DominioRepository.findAllDominioByCodigo('tipoEmpreitada', 2).then(function(result) { - $scope.termoReferencia.empreitada = result.originalElement; - }); + }; - DominioRepository.findAllDominioByCodigo('tipoAdjudicacaoObjeto', 2).then(function(result) { - $scope.termoReferencia.adjudicacaoObjeto = result.originalElement; - }); + $scope.carregarValoresPadrao = function() { + DominioRepository.findAllDominioByCodigo('tipoEmpreitada', 2).then(function(result) { + $scope.termoReferencia.empreitada = result.originalElement; + }); - if($scope.dominioTiposSancaoList){ - angular.forEach($scope.dominioTiposSancaoList, function(sancaoDominio) { - var sans = {sancao : sancaoDominio.descricao, dominioTipoSancao : sancaoDominio.originalElement, descricao : $translate.instant('LABEL.DESCREVER_SANCAO')}; - $scope.termoReferencia.sancoes.push(sans); - }); - } - }; + DominioRepository.findAllDominioByCodigo('tipoAdjudicacaoObjeto', 2).then(function(result) { + $scope.termoReferencia.adjudicacaoObjeto = result.originalElement; + }); - //###################### METODOS DA BARRA DE ACOES DO FORMULARIO #################################### - - function setFormsTermoReferenciaSubmitted(valor){ - $scope.termoReferenciaForm.$submitted = valor; - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = valor; - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = valor; - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = valor; - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = valor; - $scope.termoReferenciaForm.sancoesForm.$submitted = valor; - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = valor; - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = valor; - } - // SALVA O TERMO - $scope.saveOrUpdate = function(){ - - setFormsTermoReferenciaSubmitted(true); - - //Vefifica se o termoReferenciaForm esta invalido, caso esteja envia um alerta para o usuario - if($scope.termoReferenciaForm.$invalid){ - $scope.showAlert('error', $translate.instant('MSG.MN001')); - } else { - var termoTemp = { - documentos: [] - }; - - // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento - angular.forEach($scope.termoReferencia.documentos, function(documento, key) { - if (documento.uploadsDocumento) { - termoTemp.documentos.push({ - uploadsDocumento: clone(documento.uploadsDocumento), - numero: clone(documento.numero) - }); - // deleta esse atributo por causa de um erro de ciclo no json - delete documento.uploadsDocumento; - } - }); - - $scope.setLoadingSalva(true); - - $scope.termoReferencia.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null; - TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) { - - $scope.termoReferencia = result.originalElement; - $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); - $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); - $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); - - $scope.setLoading(false); - $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_TERMO_REFERENCIA')); - // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver - salvarListaDocumentos(termoTemp); - setFormsTermoReferenciaSubmitted(false); - - $timeout(function() { - $scope.$showPageSearchWorkspace($scope.workspace); - $scope.atualizaPaginaPesquisa(); + if($scope.dominioTiposSancaoList){ + angular.forEach($scope.dominioTiposSancaoList, function(sancaoDominio) { + var sans = {sancao : sancaoDominio.descricao, dominioTipoSancao : sancaoDominio.originalElement, descricao : $translate.instant('LABEL.DESCREVER_SANCAO')}; + $scope.termoReferencia.sancoes.push(sans); }); - - }); - }; - }; - - $scope.editar = function () { - $scope.edit = true; - $scope.pgEdit = true; - }; - - // Consulta entidade e mostra no formulario - $scope.getTermo = function(idTermo, edit) { - $scope.resetForm(); - $scope.setLoadingGet(true); - - TermoReferenciaRepository.get(idTermo).then(function(result) { - - $scope.termoReferencia = result.originalElement; - $scope.edit = edit; - $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); - $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); - $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); - $scope.stopTimerIntervalDraft($scope.workspace); - $scope.setLoading(false); - }); - }; + } + }; - // MODAL QUE CONFIRMA REMOVER TERMO - $scope.remover = function(termo){ - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUIR_TERMO_REFERENCIA'), - callback: function () { - TermoReferenciaRepository.remove(termo).then(function() { - $scope.termoReferencia = {}; + //###################### METODOS DA BARRA DE ACOES DO FORMULARIO #################################### + + function setFormsTermoReferenciaSubmitted(valor){ + $scope.termoReferenciaForm.$submitted = valor; + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = valor; + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = valor; + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = valor; + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = valor; + $scope.termoReferenciaForm.sancoesForm.$submitted = valor; + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = valor; + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = valor; + } + // SALVA O TERMO + $scope.saveOrUpdate = function(){ + + setFormsTermoReferenciaSubmitted(true); + + //Vefifica se o termoReferenciaForm esta invalido, caso esteja envia um alerta para o usuario + if($scope.termoReferenciaForm.$invalid){ + $scope.showAlert('error', $translate.instant('MSG.MN001')); + } else { + var termoTemp = { + documentos: [] + }; - $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_TERMO_REFERENCIA')); - angular.element('#searchTermoReferencia').scope().fetchResult(); + // preencher lista de documentos temporarios para verificacao dos anexos. verificar qual anexo e de qual documento pelo numero do documento + angular.forEach($scope.termoReferencia.documentos, function(documento, key) { + if (documento.uploadsDocumento) { + documento.uuid = getUuid(); + termoTemp.documentos.push({ + file: documento.uploadsDocumento[0], + uuid: clone(documento.uuid) + }); + // deleta esse atributo por causa de um erro de ciclo no json + delete documento.uploadsDocumento; + } + }); - }); - - $scope.$modalConfirmInstance.dismiss('cancel'); - $scope.resetForm(); - } - }); - }; - - $scope.abrirDetalhamentoSolucao = function(edit) { - - $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; - $scope.termoReferenciaDetalhamentoSolucao = clone($scope.getDetalhamentoSolucaoChecked()); - $scope.edicao = true; - $scope.editDetalhamento = edit; - - $scope.bemServicoSolucaoValidatorId = $scope.termoReferenciaDetalhamentoSolucao.bemServicoSolucao.id; + $scope.setLoadingSalva(true); - if(!edit && !$scope.termoReferenciaDetalhamentoSolucao) {//DetalhamentoSolucao - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + $scope.termoReferencia.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null; + TermoReferenciaRepository.save($scope.termoReferencia).then(function(result) { - if(edit && !$scope.termoReferenciaDetalhamentoSolucao) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); - return; - } + $scope.termoReferencia = result.originalElement; + $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); + $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); + $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); - if ($scope.termoReferenciaDetalhamentoSolucao.prazoEntrega){ + $scope.setLoading(false); + $scope.showAlert("success", $translate.instant('MSG.SUCESSO_SALVAR_TERMO_REFERENCIA')); + // depois de salvar o termo ja tendo uma referencia do id do termo, esse metodo ira salvar os documentos se houver + salvarListaDocumentos(termoTemp); + setFormsTermoReferenciaSubmitted(false); - $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega = $filter('date')( $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega, "dd/MM/yyyy"); - } + $timeout(function() { + $scope.$showPageSearchWorkspace($scope.workspace); + $scope.atualizaPaginaPesquisa(); + }); - $timeout(function() { - $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); - }); - }; + }); + }; + }; - $scope.abrirPenalidade = function(edit) { + $scope.editar = function () { + $scope.edit = true; + $scope.pgEdit = true; + }; - $scope.penalidade = clone($scope.getPenalidadeChecked()); + // Consulta entidade e mostra no formulario + $scope.getTermo = function(idTermo, edit) { + $scope.resetForm(); + $scope.setLoadingGet(true); - $scope.editPenalidade = edit; + TermoReferenciaRepository.get(idTermo).then(function(result) { - if(!edit && !$scope.penalidade) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + $scope.termoReferencia = result.originalElement; + $scope.edit = edit; + $scope.atualizaListaBeneficiosEsperados($scope.termoReferencia.estudoTecnico); + $scope.atualizaListaJustificativasContratacao($scope.termoReferencia.estudoTecnico); + $scope.atualizaInformacoesIntegrantesEstudoTecnico($scope.termoReferencia.estudoTecnico); + $scope.stopTimerIntervalDraft($scope.workspace); + $scope.setLoading(false); + }); + }; - if(edit && !$scope.penalidade) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); - return; - } + // MODAL QUE CONFIRMA REMOVER TERMO + $scope.remover = function(termo){ + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUIR_TERMO_REFERENCIA'), + callback: function () { + TermoReferenciaRepository.remove(termo).then(function() { + $scope.termoReferencia = {}; - $timeout(function() { - $scope.$openModal('modal-penalidade.html', 'lg'); - }); - }; + $scope.showAlert("success", $translate.instant('MSG.SUCESSO_EXCLUSAO_TERMO_REFERENCIA')); + angular.element('#searchTermoReferencia').scope().fetchResult(); - $scope.abrirSancao = function(edit) { + }); - $scope.sancao = clone($scope.getSancaoChecked()); + $scope.$modalConfirmInstance.dismiss('cancel'); + $scope.resetForm(); + } + }); + }; - $scope.editSancao = edit; + $scope.abrirDetalhamentoSolucao = function(edit) { - if(!edit && !$scope.sancao) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); - return; - } + $scope.listEtBensServicos = $scope.termoReferencia.estudoTecnico.etBensServicosSolucoes; + $scope.termoReferenciaDetalhamentoSolucao = clone($scope.getDetalhamentoSolucaoChecked()); + $scope.edicao = true; + $scope.editDetalhamento = edit; - if(edit && !$scope.sancao) { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); - return; - } + $scope.bemServicoSolucaoValidatorId = $scope.termoReferenciaDetalhamentoSolucao.bemServicoSolucao.id; - $timeout(function() { - $scope.$openModal('modal-sancao.html', 'lg'); - }); - }; + if(!edit && !$scope.termoReferenciaDetalhamentoSolucao) {//DetalhamentoSolucao + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } - $scope.removerPenalidade = function() { - $scope.penalidade = $scope.getPenalidadeChecked(); - - if ($scope.penalidade) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - var index = 0; - - $scope.termoReferencia.penalidades.forEach(function(penalidade, key) { - if (penalidade.$checked) { - index = key; - } - }); - - $scope.termoReferencia.penalidades.splice(index, 1); - $scope.atualizarListaSizeSelectPenalidade(); - $scope.$modalConfirmInstance.dismiss('cancel'); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + if(edit && !$scope.termoReferenciaDetalhamentoSolucao) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } - $scope.removerSancao = function() { - $scope.sancao = $scope.getSancaoChecked(); - - if ($scope.sancao) { - EventoRegistroNaoConformidadeRepository.existeVinculoSancoesComNaoConformidade($scope.sancao.id).then(function(result) { - if(result){ - $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.SANCAO_VINCULADA_NAO_CONFORMIDADE')); - }else{ - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - var index = 0; - - $scope.termoReferencia.sancoes.forEach(function(sancao, key) { - if (sancao.$checked) { - index = key; - } - }); - - - $scope.termoReferencia.sancoes.splice(index, 1); - $scope.atualizarListaSizeSelectSancao(); - $scope.$modalConfirmInstance.dismiss('cancel'); - } - }); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + if ($scope.termoReferenciaDetalhamentoSolucao.prazoEntrega){ - $scope.removerDetalhamentoSolucao = function() { - $scope.termoReferenciaDetalhamentoSolucao = $scope.getDetalhamentoSolucaoChecked(); - - if ($scope.termoReferenciaDetalhamentoSolucao) { - $scope.$openModalConfirm({ - message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), - callback: function() { - var index = 0; - - $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhamento, key) { - if (detalhamento.$checked) { - index = key; - } - }); - - $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1); - $scope.atualizarListaSizeSelect(); - $scope.$modalConfirmInstance.dismiss('cancel'); - } - }); - } else { - $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); - } - }; + $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega = $filter('date')( $scope.termoReferenciaDetalhamentoSolucao.prazoEntrega, "dd/MM/yyyy"); + } + $timeout(function() { + $scope.$openModal('modal-detalhamento-solucao.html', 'lg'); + }); + }; + $scope.abrirPenalidade = function(edit) { -/*################################## -* # METODOS RELACIONADOS AO WIZARD # -* ##################################*/ + $scope.penalidade = clone($scope.getPenalidadeChecked()); - function createTemplates(){ - $scope.templates = [{ name: 'termoReferenciaPg1.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg1.html', show: true }, - { name: 'termoReferenciaPg2.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg2.html', show: false}, - { name: 'termoReferenciaPg3.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg3.html', show: false}, - { name: 'termoReferenciaPg4.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg4.html', show: false}, - { name: 'termoReferenciaPg5.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg5.html', show: false}, - { name: 'termoReferenciaPg6.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg6.html', show: false}, - { name: 'termoReferenciaPg7.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg7.html', show: false}]; - }; - - createTemplates(); - - $scope.step = 0; - - // Verifica se o passo e o primeiro passo do wizard - $scope.isFirstStep = function () { - return $scope.step === 0; - }; - - // Verifica é o ultimo passo do wizard - $scope.isLastStep = function () { - return $scope.step === ($scope.templates.length - 1); - }; - - // Verifica se o passo e o passo atual do wizard - $scope.isCurrentStep = function (step) { - return $scope.step === step; - }; - - // Recupera o label do botao de comando - $scope.getNextLabel = function () { - return ($scope.isLastStep()) ? $translate.instant("LABEL.SALVAR") : $translate.instant("LABEL.PROXIMO"); - }; - - // Utilizado pelo wizard para mudar para o passo desejado - $scope.setCurrentStep = function (step) { - - $scope.setLoadingGet(true); - - if (step <= ($scope.step - 1)) { - $scope.templates[$scope.step].show = false; - $scope.step = step; - $scope.templates[step].show = true; - } else { - if (!$scope.edit) { - $scope.permitidoAvancar = true; - } else { - permiteAvancoFluxo(); - } - - if ($scope.permitidoAvancar) { - $scope.templates[$scope.step].show = false; - $scope.step = step; - $scope.templates[step].show = true; - } - } - $scope.setLoading(false); - }; - - // Faz com o que o wizard retroceda um passo - $scope.handlePrevious = function () { - - $scope.setLoadingGet(true); - - $scope.templates[$scope.step].show = false; - $scope.step -= ($scope.isFirstStep()) ? 0 : 1; - $scope.templates[$scope.step].show = true; - - $scope.setLoading(false); - - }; - - // Faz com o que o wizard avance um passo - $scope.handleNext = function () { - - if ($scope.isLastStep()) { - $scope.saveOrUpdate(); - } else { - $scope.setLoadingGet(true); - - if (!$scope.edit) { - $scope.permitidoAvancar = true; - } else { - permiteAvancoFluxo(); - } - - if ($scope.permitidoAvancar) { - $scope.templates[$scope.step].show = false; - $scope.step += 1; - $scope.templates[$scope.step].show = true; - } - $scope.setLoading(false); - } - }; - - -//Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatorios - function permiteAvancoFluxo() { - - $scope.permitidoAvancar = true; - - switch ($scope.step) { - case 0 : - //equipeContratacaoForm - if (isFormValid($scope.termoReferenciaForm.equipeContratacaoForm) && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = true; - } - break; - case 1 : - //justificativaContratacaoForm - if (isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = true; - } - break; - case 2 : - //especificacoesTecnicasForm - if (isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm) && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = true; - } - break; - case 3 : - //modeloGestaoForm - if (isFormValid($scope.termoReferenciaForm.modeloGestaoForm) && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.modeloGestaoForm.$submitted = true; - } - break; - case 4 : - //sancoesForm - if (($scope.termoReferencia.sancoes.length >= 1 || $scope.termoReferencia.penalidades.length >= 1) && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.sancoesForm.$submitted = true; - } - break; - case 5 : - //criteriosSelecaoForm - if (isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm) && $scope.permitidoAvancar) { - $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = true; - } - break; - case 6 : - //anexosObservacoesForm - $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = true; - break; - } - - if (!$scope.permitidoAvancar && !$scope.stepValid) { - //Mensagem de erro de campos obrigatorios nao preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); - } - }; - - //Evita erros verificando se determinadas propriedades existem no form. - function isFormValid (form) { - $scope.stepValid = true; - if (form && form.$invalid) { - $scope.stepValid = false; - } - return $scope.stepValid; - }; - //Evita erros verificando se determinadas propriedades existem no form. - function isFormSubmited (form){ - var submitted = false; - if(form && form.$submitted){ - submitted = true; - } - return submitted; - } - - - $scope.getClassEdit = function (step){ - - switch (step) { - case 0 : - //equipeContratacaoForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step >= step && isFormValid($scope.termoReferenciaForm.equipeContratacaoForm)), - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.equipeContratacaoForm)|| $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.equipeContratacaoForm))}; - break; - case 1 : - //justificativaContratacaoForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 ), - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.termoReferencia.detalhamentosSolucoes.length < 1)}; - break; - case 2 : - //especificacoesTecnicasForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)), - 'invalid' : (isFormSubmited($scope.termoReferenciaForm.especificacoesTecnicasForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)}; - break; - case 3 : - //modeloGestaoForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step > step || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm)))}; - break; - case 4 : - //sancoesForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.sancoesForm) && ($scope.termoReferencia.sancoes.length >= 1 && $scope.termoReferencia.penalidades.length >= 1)), - 'invalid' : ($scope.step > step && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))}; - break; - case 5 : - //criteriosSelecaoForm - return {'active': $scope.isCurrentStep(step), - 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm)), - 'invalid' : ((isFormSubmited($scope.termoReferenciaForm.criteriosSelecaoForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm))}; - break; - case 6 : - //anexosObservacoesForm - return {'active': $scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm), - 'complete' : ($scope.isCurrentStep(step) || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm)))}; - break; - }; - }; - - $scope.getClassList = function (){ - return {'active': false, 'complete' : true, 'invalid' : false}; - }; + $scope.editPenalidade = edit; + + if(!edit && !$scope.penalidade) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } + + if(edit && !$scope.penalidade) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } + + $timeout(function() { + $scope.$openModal('modal-penalidade.html', 'lg'); + }); + }; + + $scope.abrirSancao = function(edit) { + + $scope.sancao = clone($scope.getSancaoChecked()); + + $scope.editSancao = edit; + + if(!edit && !$scope.sancao) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO')); + return; + } + + if(edit && !$scope.sancao) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } + + $timeout(function() { + $scope.$openModal('modal-sancao.html', 'lg'); + }); + }; + + $scope.removerPenalidade = function() { + $scope.penalidade = $scope.getPenalidadeChecked(); + + if ($scope.penalidade) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + var index = 0; + + $scope.termoReferencia.penalidades.forEach(function(penalidade, key) { + if (penalidade.$checked) { + index = key; + } + }); + + $scope.termoReferencia.penalidades.splice(index, 1); + $scope.atualizarListaSizeSelectPenalidade(); + $scope.$modalConfirmInstance.dismiss('cancel'); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; + + $scope.removerSancao = function() { + $scope.sancao = $scope.getSancaoChecked(); + + if ($scope.sancao) { + EventoRegistroNaoConformidadeRepository.existeVinculoSancoesComNaoConformidade($scope.sancao.id).then(function(result) { + if(result){ + $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.SANCAO_VINCULADA_NAO_CONFORMIDADE')); + }else{ + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + var index = 0; + + $scope.termoReferencia.sancoes.forEach(function(sancao, key) { + if (sancao.$checked) { + index = key; + } + }); + + + $scope.termoReferencia.sancoes.splice(index, 1); + $scope.atualizarListaSizeSelectSancao(); + $scope.$modalConfirmInstance.dismiss('cancel'); + } + }); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; + + $scope.removerDetalhamentoSolucao = function() { + $scope.termoReferenciaDetalhamentoSolucao = $scope.getDetalhamentoSolucaoChecked(); + + if ($scope.termoReferenciaDetalhamentoSolucao) { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function() { + var index = 0; + + $scope.termoReferencia.detalhamentosSolucoes.forEach(function(detalhamento, key) { + if (detalhamento.$checked) { + index = key; + } + }); + + $scope.termoReferencia.detalhamentosSolucoes.splice(index, 1); + $scope.atualizarListaSizeSelect(); + $scope.$modalConfirmInstance.dismiss('cancel'); + } + }); + } else { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + } + }; + + + + /*################################## + * # METODOS RELACIONADOS AO WIZARD # + * ##################################*/ + + function createTemplates(){ + $scope.templates = [{ name: 'termoReferenciaPg1.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg1.html', show: true }, + { name: 'termoReferenciaPg2.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg2.html', show: false}, + { name: 'termoReferenciaPg3.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg3.html', show: false}, + { name: 'termoReferenciaPg4.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg4.html', show: false}, + { name: 'termoReferenciaPg5.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg5.html', show: false}, + { name: 'termoReferenciaPg6.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg6.html', show: false}, + { name: 'termoReferenciaPg7.html', url: '/cit-contratos-web/html/termoReferencia/termoReferenciaPg7.html', show: false}]; + }; + + createTemplates(); + + $scope.step = 0; + + // Verifica se o passo e o primeiro passo do wizard + $scope.isFirstStep = function () { + return $scope.step === 0; + }; + + // Verifica é o ultimo passo do wizard + $scope.isLastStep = function () { + return $scope.step === ($scope.templates.length - 1); + }; + + // Verifica se o passo e o passo atual do wizard + $scope.isCurrentStep = function (step) { + return $scope.step === step; + }; + + // Recupera o label do botao de comando + $scope.getNextLabel = function () { + return ($scope.isLastStep()) ? $translate.instant("LABEL.SALVAR") : $translate.instant("LABEL.PROXIMO"); + }; + + // Utilizado pelo wizard para mudar para o passo desejado + $scope.setCurrentStep = function (step) { + + $scope.setLoadingGet(true); + + if (step <= ($scope.step - 1)) { + $scope.templates[$scope.step].show = false; + $scope.step = step; + $scope.templates[step].show = true; + } else { + if (!$scope.edit) { + $scope.permitidoAvancar = true; + } else { + permiteAvancoFluxo(); + } + + if ($scope.permitidoAvancar) { + $scope.templates[$scope.step].show = false; + $scope.step = step; + $scope.templates[step].show = true; + } + } + $scope.setLoading(false); + }; + + // Faz com o que o wizard retroceda um passo + $scope.handlePrevious = function () { + + $scope.setLoadingGet(true); + + $scope.templates[$scope.step].show = false; + $scope.step -= ($scope.isFirstStep()) ? 0 : 1; + $scope.templates[$scope.step].show = true; + + $scope.setLoading(false); + + }; + + // Faz com o que o wizard avance um passo + $scope.handleNext = function () { + + if ($scope.isLastStep()) { + $scope.saveOrUpdate(); + } else { + $scope.setLoadingGet(true); + + if (!$scope.edit) { + $scope.permitidoAvancar = true; + } else { + permiteAvancoFluxo(); + } + + if ($scope.permitidoAvancar) { + $scope.templates[$scope.step].show = false; + $scope.step += 1; + $scope.templates[$scope.step].show = true; + } + $scope.setLoading(false); + } + }; + + +// Controla se o usuario pode avancar o fluxo no wizard, validando os itens obrigatorios + function permiteAvancoFluxo() { + + $scope.permitidoAvancar = true; + + switch ($scope.step) { + case 0 : + //equipeContratacaoForm + if (isFormValid($scope.termoReferenciaForm.equipeContratacaoForm) && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.equipeContratacaoForm.$submitted = true; + } + break; + case 1 : + //justificativaContratacaoForm + if (isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.justificativaContratacaoForm.$submitted = true; + } + break; + case 2 : + //especificacoesTecnicasForm + if (isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm) && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.especificacoesTecnicasForm.$submitted = true; + } + break; + case 3 : + //modeloGestaoForm + if (isFormValid($scope.termoReferenciaForm.modeloGestaoForm) && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.modeloGestaoForm.$submitted = true; + } + break; + case 4 : + //sancoesForm + if (($scope.termoReferencia.sancoes.length >= 1 || $scope.termoReferencia.penalidades.length >= 1) && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.sancoesForm.$submitted = true; + } + break; + case 5 : + //criteriosSelecaoForm + if (isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm) && $scope.permitidoAvancar) { + $scope.termoReferenciaForm.criteriosSelecaoForm.$submitted = true; + } + break; + case 6 : + //anexosObservacoesForm + $scope.termoReferenciaForm.anexosObservacoesForm.$submitted = true; + break; + } + + if (!$scope.permitidoAvancar && !$scope.stepValid) { + //Mensagem de erro de campos obrigatorios nao preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + } + }; + + //Evita erros verificando se determinadas propriedades existem no form. + function isFormValid (form) { + $scope.stepValid = true; + if (form && form.$invalid) { + $scope.stepValid = false; + } + return $scope.stepValid; + }; + //Evita erros verificando se determinadas propriedades existem no form. + function isFormSubmited (form){ + var submitted = false; + if(form && form.$submitted){ + submitted = true; + } + return submitted; + } + + + $scope.getClassEdit = function (step){ + + switch (step) { + case 0 : + //equipeContratacaoForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step >= step && isFormValid($scope.termoReferenciaForm.equipeContratacaoForm)), + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.equipeContratacaoForm)|| $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.equipeContratacaoForm))}; + break; + case 1 : + //justificativaContratacaoForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) && $scope.termoReferencia.detalhamentosSolucoes.length >= 1 ), + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.step > step) && (!isFormValid($scope.termoReferenciaForm.justificativaContratacaoForm) || $scope.termoReferencia.detalhamentosSolucoes.length < 1)}; + break; + case 2 : + //especificacoesTecnicasForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)), + 'invalid' : (isFormSubmited($scope.termoReferenciaForm.especificacoesTecnicasForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.especificacoesTecnicasForm)}; + break; + case 3 : + //modeloGestaoForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step > step || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.modeloGestaoForm)))}; + break; + case 4 : + //sancoesForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.sancoesForm) && ($scope.termoReferencia.sancoes.length >= 1 && $scope.termoReferencia.penalidades.length >= 1)), + 'invalid' : ($scope.step > step && ($scope.termoReferencia.sancoes.length < 1 || $scope.termoReferencia.penalidades.length < 1))}; + break; + case 5 : + //criteriosSelecaoForm + return {'active': $scope.isCurrentStep(step), + 'complete' : ($scope.step > step && isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm)), + 'invalid' : ((isFormSubmited($scope.termoReferenciaForm.criteriosSelecaoForm) || $scope.step > step) && !isFormValid($scope.termoReferenciaForm.criteriosSelecaoForm))}; + break; + case 6 : + //anexosObservacoesForm + return {'active': $scope.isCurrentStep(step) || isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm), + 'complete' : ($scope.isCurrentStep(step) || ($scope.step > step && isFormSubmited($scope.termoReferenciaForm.anexosObservacoesForm)))}; + break; + }; + }; + + $scope.getClassList = function (){ + return {'active': false, 'complete' : true, 'invalid' : false}; + }; $scope.atualizarListaSizeSelect = function() { $timeout(function(){ -- libgit2 0.21.2