diff --git a/cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvido.java b/cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvido.java index 2eae398..6f0fa70 100644 --- a/cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvido.java +++ b/cit-contratos-api/src/main/java/br/com/centralit/api/model/ContratoEnvolvido.java @@ -55,7 +55,7 @@ import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; */ @Entity @Table(name = "cnt_cn_envolvido") -@JsonIgnoreProperties({ "$checked" }) +@JsonIgnoreProperties({ "$checked", "justificativasAnterioresLength" }) public class ContratoEnvolvido extends PersistentObjectAudit { /** Atributo serialVersionUID. */ diff --git a/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java b/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java index 81dc52f..88c28de 100644 --- a/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java +++ b/cit-contratos-api/src/main/java/br/com/centralit/api/service/impl/ContratoServiceImpl.java @@ -22,6 +22,7 @@ import br.com.centralit.api.model.Contrato; import br.com.centralit.api.model.ContratoDocumento; import br.com.centralit.api.model.ContratoEmpenho; import br.com.centralit.api.model.ContratoEnvolvido; +import br.com.centralit.api.model.ContratoEnvolvidoJustificativa; import br.com.centralit.api.model.ContratoItem; import br.com.centralit.api.model.ContratoObservacao; import br.com.centralit.api.model.ContratoValorPagamento; @@ -252,17 +253,16 @@ public class ContratoServiceImpl extends GenericServiceImpl impl } } - // cria vinculo do contrato com as ctrtItens + // cria vinculo do contrato com os envolvidos if (CollectionUtils.isNotEmpty(contrato.getCtrtEnvolvidos())){ - for (ContratoEnvolvido contratoEnvolvido : contrato.getCtrtEnvolvidos()) { - contratoEnvolvido.setEnvolvido(this.colaboradorService.find(contratoEnvolvido.getEnvolvido().getId())); - contratoEnvolvido.setContrato(contrato); - if (CollectionUtils.isNotEmpty(contratoEnvolvido.getJustificativas())){ - contratoEnvolvido.setJustificativas(contratoEnvolvido.getJustificativas()); + for(ContratoEnvolvidoJustificativa justificativa : contratoEnvolvido.getJustificativas()){ + justificativa.setContratoEnvolvido(contratoEnvolvido); + justificativa.setAutor(this.usuarioService.find(justificativa.getAutor().getId())); + } } } } 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 57a2a3c..7555bc1 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 @@ -245,6 +245,17 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C return; }; + if ($scope.contrato.id && $scope.contrato.ctrtEnvolvidos){ + angular.forEach($scope.contrato.ctrtEnvolvidos, function(envolvido){ + if (envolvido.justificativas.length === 0){ + angular.forEach(envolvido.justificativas, function(justificativa){ + delete justificativa.autor; + delete justificativa.dataCriacao; + }); + } + }); + } + if ($scope.contrato.ctrtValoresPagamento && $scope.contrato.ctrtValoresPagamento.length > 0){ if (!validarContratoValoresPagamento()){ return; @@ -297,16 +308,6 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C $scope.showAlert('error', $translate.instant('VALIDACAO.CONTRATO_EXIGE_MINIMO_TRES_ENVOLVIDOS')); return false; } - - if($scope.contrato.id && $scope.hasAlteracaoEnvolvido){ - $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); - return false; - } else if ($scope.contrato.ctrtEnvolvidos){ - angular.forEach($scope.contrato.ctrtEnvolvidos.justificativas, function(justificativa){ - delete justificativa.autor; - delete justificativa.dataCriacao; - }); - } return true; }; @@ -1366,10 +1367,14 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C // responsavel por abrir modal de adicao de um contratoEnvolvido $scope.openModalContratoEnvolvido = function() { - //filtrarPapeisSelecionados(); - - $scope.contratoEnvolvidoTemp = {}; $scope.editEnvolvido = true; + $scope.contratoEnvolvidoTemp = {justificativas : []}; + $scope.contrato.ctrtEnvolvidos.forEach(function(item){ + if(item.$checked){ + item.$checked = false; + } + }); + filtrarPapeisSelecionados(); $scope.$openModal('dialog_envolvido.html', 'lg'); }; @@ -1383,7 +1388,8 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C formDialogEnvolvido.$submitted = true; if($scope.contrato.id && $scope.hasAlteracaoEnvolvido){ - if($scope.contratoEnvolvidoTemp.justificativas.length === 0 || $scope.contratoEnvolvidoTemp.justificativas.length === $scope.justificativasAnterioresLength){ + if($scope.contratoEnvolvidoTemp.justificativas.length === 0 || + $scope.contratoEnvolvidoTemp.justificativas.length === $scope.contratoEnvolvidoTemp.justificativasAnterioresLength){ $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); return; } @@ -1408,10 +1414,11 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C $scope.contratoEnvolvidoTemp = {}; $scope.justificativaTemp = {}; + $scope.hasAlteracaoEnvolvido = false; if (continuarEditando) { formDialogEnvolvido.$submitted = false; formDialogEnvolvido.$setPristine(); - //filtrarPapeisSelecionados(); + filtrarPapeisSelecionados(); } else { $scope.$modalInstance.dismiss('cancel'); } @@ -1421,9 +1428,8 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C form.$submitted = true; - if (form.$invalid) { - //Mensagem de erro de campos obrigatorios nao preenchidos - $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + if ($scope.justificativaTemp.descricao === '' || $scope.justificativaTemp.descricao == undefined) { + $scope.showAlert('error', $translate.instant('CONTRATOS.VALIDACAO.ALTERACAO_ENVOLVIDOS_EXIGE_JUSTIFICATIVA')); return; } if ($scope.contratoEnvolvidoTemp.justificativas){ @@ -1432,25 +1438,28 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C $scope.contratoEnvolvidoTemp.justificativas.push($scope.justificativaTemp); } $scope.justificativaTemp = {}; - $scope.hasAlteracaoEnvolvido = false; }; -// function filtrarPapeisSelecionados() { -// if ($scope.contrato.ctrtEnvolvidos && $scope.contrato.ctrtEnvolvidos.length > 0){ -// -// var dominiosPapelEnvolvidoContrato = []; -// $scope.contrato.ctrtEnvolvidos.forEach(function(item){ -// dominiosPapelEnvolvidoContrato.push(item.dominioPapelEnvolvidoContrato); -// }); -// -// $scope.dominioPapelEnvolvidoList = $filter('idNotEqualDominio')($scope.dominioPapelEnvolvidoListFixa, dominiosPapelEnvolvidoContrato); -// -// if ($scope.dominioPapelEnvolvidoList && $scope.dominioPapelEnvolvidoList.length === 0){ -// $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.TODOS_PAPEIS_ENVOLVIDOS_ADICIONADOS')); -// return; -// } -// } -// }; + function filtrarPapeisSelecionados() { + if ($scope.contrato.ctrtEnvolvidos && $scope.contrato.ctrtEnvolvidos.length > 0){ + + var dominiosPapelEnvolvidoContrato = []; + $scope.contrato.ctrtEnvolvidos.forEach(function(item){ + if(!item.$checked){ + dominiosPapelEnvolvidoContrato.push(item.dominioPapelEnvolvidoContrato); + } + }); + + $scope.dominioPapelEnvolvidoList = $filter('idNotEqualDominio')($scope.dominioPapelEnvolvidoListFixa, dominiosPapelEnvolvidoContrato); + + if($scope.editEnvolvido){ + if ($scope.dominioPapelEnvolvidoList && $scope.dominioPapelEnvolvidoList.length === 0){ + $scope.showAlert('warning', $translate.instant('CONTRATOS.MSG.TODOS_PAPEIS_ENVOLVIDOS_ADICIONADOS')); + return; + } + } + } + }; //responsavel por remover um/ou mais item(ns) de contrato $scope.removerContratoEnvolvido = function (){ @@ -1497,10 +1506,6 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C } $scope.dominioPapelEnvolvidoList.push(papelExcluido); - - if ($scope.contrato.id) { - $scope.hasAlteracaoEnvolvido = true; - } } }); }; @@ -1536,9 +1541,7 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C }; // Responsavel por abrir modal de envolvido para edicao ou visualizacao do item selecionado - $scope.abrirContratoEnvolvido = function(edit) { - - //filtrarPapeisSelecionados(); + $scope.visualizarEditarContratoEnvolvido = function(edit) { $scope.editEnvolvido = edit; $scope.contratoEnvolvidoTemp = null; @@ -1549,12 +1552,16 @@ citApp.controller('ContratoController', ['$scope', '$filter', 'FileUploader', 'C return; } $scope.justificativaTemp = {}; - $scope.justificativasAnterioresLength = $scope.contratoEnvolvidoTemp.justificativas.length; - - if ($scope.contrato.id) { + if($scope.contratoEnvolvidoTemp.justificativas){ + $scope.contratoEnvolvidoTemp.justificativasAnterioresLength = $scope.contratoEnvolvidoTemp.justificativas.length; + } else { + $scope.contratoEnvolvidoTemp.justificativasAnterioresLength = 0; + $scope.contratoEnvolvidoTemp.justificativas = []; + } + if($scope.contrato.id){ $scope.hasAlteracaoEnvolvido = edit; } - + filtrarPapeisSelecionados(); $timeout(function() { $scope.$openModal('dialog_envolvido.html', 'lg'); }); diff --git a/cit-contratos-web/src/main/webapp/html/contrato/contratoPg5.html b/cit-contratos-web/src/main/webapp/html/contrato/contratoPg5.html index 798140c..2ba508f 100644 --- a/cit-contratos-web/src/main/webapp/html/contrato/contratoPg5.html +++ b/cit-contratos-web/src/main/webapp/html/contrato/contratoPg5.html @@ -25,13 +25,13 @@ diff --git a/cit-contratos-web/src/main/webapp/html/contrato/dialog_envolvido.html b/cit-contratos-web/src/main/webapp/html/contrato/dialog_envolvido.html index 7e311e5..8490dcc 100644 --- a/cit-contratos-web/src/main/webapp/html/contrato/dialog_envolvido.html +++ b/cit-contratos-web/src/main/webapp/html/contrato/dialog_envolvido.html @@ -6,7 +6,7 @@ LABEL.ADICIONAR @@ -29,7 +29,7 @@
+ ng-disabled="!edit" form="formDialogEnvolvido" ng-obrigatorio="true" />
@@ -38,10 +38,11 @@ ng-disabled="true" ng-obrigatorio="false"/>
-
+
@@ -59,7 +60,7 @@
-- libgit2 0.21.2