From e74c816d9b0697cdb77855e09a8d2cea60f9c770 Mon Sep 17 00:00:00 2001 From: Erick.sato Date: Sun, 1 May 2016 17:48:33 -0300 Subject: [PATCH] [Redmine Atendimento #4648]Edição transferencia --- citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js | 62 ++++++++++++++++++++++++++++++++++++++------------------------ 2 files changed, 153 insertions(+), 26 deletions(-) diff --git a/citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java b/citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java index d5f586c..4c6feee 100644 --- a/citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java +++ b/citgrp-patrimonio-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaServiceImpl.java @@ -177,6 +177,119 @@ public class TransferenciaServiceImpl extends GenericServiceImpl listaTransferenciaSalva) { + + // VALIDA CAMPO OBRIGATÓRIO DA ENTIDADE + if (UtilObjeto.isReferencia(this.validator)) { + if (transferencia.getDataTransferencia() == null) { + transferencia.setDataTransferencia(Calendar.getInstance()); + } + this.validarEntidade(transferencia, this.validator); + } + + // MONTA OS DADOS DO OBJETO TRANSFERÊNCIA + this.montarDadosTransferencia(transferencia, false); + + // REMOVER DETENTOR DO BEM NA TRANSFERENCIA + if (UtilObjeto.isReferencia(transferencia.isRemoveDetentor()) && transferencia.isRemoveDetentor() && !UtilColecao.isVazio(transferencia.getSaidaTemporariaItens())) { + for (TransferenciaItem item : transferencia.getSaidaTemporariaItens()) { + + if (UtilObjeto.isReferencia(item.getBemPatrimonial().getDetentor())) { + // INSERI DATA DE FIM ATRIBUIACAO PARA A DEFINICAO DE DETENTOR + definicaoDetentorService.setFimAtribuicao(item.getBemPatrimonial().getId(), item.getBemPatrimonial().getDetentor().getId(), transferencia.getDataTransferencia()); + } + + // REMOVE O DETENTOR E RESPONSAVEL + bemPatrimonialService.removeDetentorBemPatrimonialTransferencia(item.getBemPatrimonial()); + } + } + + updateTransferenciaGeraTermo(transferencia, listaTransferenciaSalva); + + // GERA HISTÓRICO DO BEM PATRIMONIAL + this.historicoBempatrimonialService.gerarHistoricoBemPatrimonialTransferencia(transferencia); + + // GERA CONTA CONTÁBIL MOVIMENTO + this.contaContabilMovimentoPatrimonioService.geraMovimento(transferencia); + } + + private void updateTransferenciaGeraTermo(Transferencia transferencia, List listaTransferenciaSalva) { + + Long idUltimaEstrutura = 0L; + + List transferenciaItemListTemp = new ArrayList(); + // Cria uma lista de transferência item a partir da lista da transferência + ArrayList transferenciaItemListOrdenadoEstrutura = new ArrayList(transferencia.getSaidaTemporariaItens()); + + if(!UtilColecao.isVazio(transferenciaItemListOrdenadoEstrutura) && transferenciaItemListOrdenadoEstrutura.size() == 1){ + List transferenciaItens = this.transferenciaItemService.buscarTransferenciaItens(transferencia.getId()); + for (TransferenciaItem transferenciaItem : transferenciaItens) { + for (TransferenciaItem transferenciaOrdem : transferenciaItemListOrdenadoEstrutura) { + if(transferenciaItem.getBemPatrimonial().getId() == transferenciaOrdem.getBemPatrimonial().getId()){ + transferencia.setSaidaTemporariaItens(transferenciaItens); + } + } + } + this.merge(transferencia); + }else{ + // Ordena a lista de transferência item por estrutura organizacional + Collections.sort((List) transferenciaItemListOrdenadoEstrutura); + + // Percorre a lista de transferência item ordenada e gera o termo de responsabilidade por estrutura organizacional + for (Iterator iterator = transferenciaItemListOrdenadoEstrutura.iterator(); iterator.hasNext();) { + + TransferenciaItem transferenciaItem = (TransferenciaItem) iterator.next(); + + // Valida se o idUltimaEstrutura da estrutura organizacional é o mesmo da iteração. + if (idUltimaEstrutura.equals(0L) || idUltimaEstrutura.equals(transferenciaItem.getEstruturaOrganizacionalOrigem().getId())) { + + idUltimaEstrutura = transferenciaItem.getEstruturaOrganizacionalOrigem().getId(); + transferenciaItemListTemp.add(transferenciaItem); + } else { + boolean salvarNovaTransferencia = true; + for (TransferenciaItem transferenciaItemTemp : transferenciaItemListTemp) { + if(transferenciaItemTemp.getEstruturaOrganizacionalOrigem().getId() == transferencia.getEstruturaOrganizacionalDestino().getId()){ + salvarNovaTransferencia = false; + break; + } + } + + // SALVA A TRANSFERÊNCIA + if(salvarNovaTransferencia){ + Transferencia transferenciaSave = geraTransferenciaInterna(transferencia, transferenciaItemListTemp); + this.transferenciaDao.save(transferenciaSave); + this.salvarTermo(transferenciaSave, this.estruturaOrganizacionalService.getReference(idUltimaEstrutura)); + if (listaTransferenciaSalva != null) { + listaTransferenciaSalva.add(transferenciaSave); + } + } + idUltimaEstrutura = transferenciaItem.getEstruturaOrganizacionalOrigem().getId(); + transferenciaItemListTemp = new ArrayList(); + transferenciaItemListTemp.add(transferenciaItem); + } + } + + boolean salvarNovaTransferencia = true; + for (TransferenciaItem transferenciaItemTemp : transferenciaItemListTemp) { + if(transferenciaItemTemp.getEstruturaOrganizacionalOrigem().getId() == transferencia.getEstruturaOrganizacionalDestino().getId()){ + salvarNovaTransferencia = false; + break; + } + } + if(salvarNovaTransferencia){ + Transferencia transferenciaSave = geraTransferenciaInterna(transferencia, transferenciaItemListTemp); + this.transferenciaDao.save(transferenciaSave); + configurarCodigo(transferenciaSave); + this.salvarTermo(transferenciaSave, this.estruturaOrganizacionalService.getReference(idUltimaEstrutura)); + if (listaTransferenciaSalva != null) { + listaTransferenciaSalva.add(transferencia); + } + + } + + } + } private void saveTransferenciaGeraTermo(Transferencia transferencia, List listaTransferenciaSalva) { @@ -322,7 +435,7 @@ public class TransferenciaServiceImpl extends GenericServiceImpl listaTransferenciaSalva = new ArrayList(); - this.salvarNovoRegistro(transferencia, listaTransferenciaSalva); + this.atualizarRegistroTransferencia(transferencia, listaTransferenciaSalva); // this.transferenciaDao.merge(transferencia); this.contaContabilMovimentoPatrimonioService.alterarMovimentoTransferencia(transferencia); diff --git a/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js b/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js index 0041cc9..af5df26 100644 --- a/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js +++ b/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaController.js @@ -175,6 +175,7 @@ citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', ' $scope.listaBemPatrimonialTemp = []; $scope.saidaTemp = null; $scope.referenciaVigente = null; + $scope.salvarEdicaoUltimoItem = false; $timeout(function(){ $scope.transferenciaForm.$submitted = true; $scope.transferenciaForm.$setPristine(); @@ -308,21 +309,25 @@ citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', ' $scope.transferencia.removeDetentor = removerDetentor; - TransferenciaRepository.validarTransferenciaMesmoDia($scope.transferencia).then(function(result) { - if(result){ - $scope.setLoading(false); - $scope.$openModalConfirm({ - message: $translate.instant("PATRIMONIO.VALIDACAO.TRANSFERENCIA_MESMO_DIA"), - callback: function () { - $scope.setLoading(true); - $scope.$modalConfirmInstance.dismiss('cancel'); - saveAposValidacoes(result); - } - }); - } else { - saveAposValidacoes(result); - } - }); + if($scope.salvarEdicaoUltimoItem){ + saveAposValidacoes(); + }else{ + TransferenciaRepository.validarTransferenciaMesmoDia($scope.transferencia).then(function(result) { + if(result){ + $scope.setLoading(false); + $scope.$openModalConfirm({ + message: $translate.instant("PATRIMONIO.VALIDACAO.TRANSFERENCIA_MESMO_DIA"), + callback: function () { + $scope.setLoading(true); + $scope.$modalConfirmInstance.dismiss('cancel'); + saveAposValidacoes(result); + } + }); + } else { + saveAposValidacoes(result); + } + }); + } } else { @@ -358,11 +363,15 @@ citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', ' $scope.setLoading(false); - $scope.showAlert("success", $translate.instant("MSG.MG001")); - if(!$scope.edit){ - $scope.gerarReport(); + if(!$scope.salvarEdicaoUltimoItem){ + $scope.showAlert("success", $translate.instant("MSG.MG001")); + if(!$scope.edit){ + $scope.gerarReport(); + } + $scope.resetForm(); + }else{ + $scope.salvarEdicaoUltimoItem = false; } - $scope.resetForm(); } }); }; @@ -467,12 +476,12 @@ citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', ' $scope.permiteExcluirItem = function() { var deferred = $q.defer(); - if($scope.listaBemPatrimonialTemp.length == $scope.listaItensSelecionados.length){ - $scope.showAlert("error", $translate.instant("PATRIMONIO.VALIDACAO.REMOVER_TODOS_ITEM_TRASNFERENCIA")); + if($scope.transferencia.id && $scope.listaBemPatrimonialTemp.length == $scope.listaItensSelecionados.length){ + $scope.showAlert("warning", $translate.instant("PATRIMONIO.VALIDACAO.REMOVER_TODOS_ITEM_TRASNFERENCIA")); deferred.resolve(false); }else{ - if($scope.listaBemPatrimonialTemp.length == 1 && $scope.transferencia.id){ - $scope.showAlert("error", $translate.instant("PATRIMONIO.VALIDACAO.REMOVER_ULTIMO_ITEM_TRASNFERENCIA")); + if($scope.transferencia.id && $scope.listaBemPatrimonialTemp.length == 1 && $scope.transferencia.id){ + $scope.showAlert("warning", $translate.instant("PATRIMONIO.VALIDACAO.REMOVER_ULTIMO_ITEM_TRASNFERENCIA")); deferred.resolve(false); }else{ deferred.resolve(true); @@ -487,7 +496,12 @@ citApp.controller('TransferenciaController', ['$scope', '$filter', '$timeout', ' TransferenciaItemRepository.findTransferenciaItemBemPatrimonialTransferencia(bemSelecionado.id, $scope.transferencia.id).then(function(result) { TransferenciaItemRepository.removerItem(result.id).then(function(result) { $scope.showAlert('success', $translate.instant('MSG.EXCLUSAO_SUCESSO'), " ", false); - $scope.setLoading(false); + if($scope.listaBemPatrimonialTemp.length == 1){ + $scope.salvarEdicaoUltimoItem = true; + $scope.saveOrUpdate(false); + }else{ + $scope.setLoading(false); + } }); }); } -- libgit2 0.21.2