diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java index 3aad379..8f46bbe 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java @@ -79,7 +79,7 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @JoinColumn(name = "AtendimentoReqConsumo_Id") private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo; - @ManyToOne(fetch = FetchType.LAZY, optional = false) + @ManyToOne(fetch = FetchType.LAZY) @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java index 3996f11..b856bef 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java @@ -149,7 +149,6 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI public void superRemove(AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) { AtendimentoRequisicaoConsumoItem entity = this.find(atendimentoRequisicaoConsumoItem.getId()); - super.remove(entity); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java index f49ac7e..26c6613 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java @@ -169,10 +169,13 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< if(atendimento.getId() == null && atendimento.getDataAtendimento() == null){ atendimento.setDataAtendimento(entity.getDataAtendimento()); - this.montarEntidade(atendimento); + + atendimento.setRequisicaoConsumo(this.requisicaoConsumoService.find(atendimento.getRequisicaoConsumo().getId())); this.validarDataAtendimento(atendimento); + this.montarEntidade(atendimento); + this.atualizarStatusRquisicao(atendimento); if(atendimento.getId() == null){ @@ -269,9 +272,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< removerLancamentosPassados(entity); } - this.montarEntidade(entity); - + entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId())); this.validarDataAtendimento(entity); + + this.montarEntidade(entity); this.atualizarStatusRquisicao(entity); @@ -352,11 +356,39 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< */ private void montarEntidade(AtendimentoRequisicaoConsumo entity) { - entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId())); + if(entity.getRequisicaoConsumo().getRequisicaoConsumoItens().size() != entity.getAtendimentoRequisicaoConsumoItems().size()){ + for (RequisicaoConsumoItem reqItem : entity.getRequisicaoConsumo().getRequisicaoConsumoItens()) { + if(reqItem.getDataInativo() != null){ + continue; + } + boolean addItem = false; + for (AtendimentoRequisicaoConsumoItem atendReqItem : entity.getAtendimentoRequisicaoConsumoItems()) { + if(atendReqItem.getMaterial().getId().doubleValue() != reqItem.getMaterialConsumo().getId().doubleValue()){ + addItem = true; + }else{ + addItem = false; + break; + } + } + if(addItem){ + AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem = new AtendimentoRequisicaoConsumoItem(); + atendimentoRequisicaoConsumoItem.setMaterial(reqItem.getMaterialConsumo()); + atendimentoRequisicaoConsumoItem.setRequisicaoConsumoItem(reqItem); + + AtendimentoRequisicaoConsumoItemEndereco itemEndereco = new AtendimentoRequisicaoConsumoItemEndereco(); + itemEndereco.setMaterialLocalEstoque(this.materialLocalEstoqueService.buscarLocaisEstoquePorIdMaterial(reqItem.getMaterialConsumo().getId()).get(0)); + List endItem = new ArrayList<>(); + endItem.add(itemEndereco); + atendimentoRequisicaoConsumoItem.setAtendimentoRequisicaoConsumoItemEnderecos(endItem); + entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoRequisicaoConsumoItem); + } + } + } boolean todosItensSemQuantidade = true; for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { + atendimentoItem.setDataInativo(null); RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId()); requisicaoConsumoItem.setQuantidadeAtendida(atendimentoItem.getQuantidade()); @@ -396,9 +428,9 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : entity.getAtendimentoRequisicaoConsumoItems()) { + atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().setQuantidadeAtendida(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getQuantidadeAtendida().subtract(atendimentoRequisicaoConsumoItem.getQuantidade())); this.atendimentoRequisicaoConsumoItemService.superRemove(atendimentoRequisicaoConsumoItem); - atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().setQuantidadeAtendida(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getQuantidadeAtendida().subtract(atendimentoRequisicaoConsumoItem.getQuantidade())); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java index e4023fa..342ffd4 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java @@ -68,9 +68,14 @@ public class MaterialLocalEstoqueServiceImpl extends GenericServiceImpl listaItens = new ArrayList<>(); + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) { + if(requisicaoConsumoItem.getDataInativo() == null){ + listaItens.add(requisicaoConsumoItem); + } + } + requisicaoConsumo.setRequisicaoConsumoItens(listaItens); + } + return requisicoes; } diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java index b9c8846..d4d57b7 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java @@ -7,6 +7,7 @@ import org.apache.commons.lang3.SerializationUtils; import org.hibernate.exception.ConstraintViolationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -255,4 +256,27 @@ public class RequisicaoConsumoController extends GenericController itens = new ArrayList<>(); + + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) { + if(requisicaoConsumoItem.getDataInativo() == null){ + itens.add(requisicaoConsumoItem); + } + } + + requisicaoConsumo.setRequisicaoConsumoItens(itens); + + ResultResponseVH resultResponseVH = new ResultResponseVH(requisicaoConsumo); + + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getEditView()); + + return responseBody; + } } diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java index fe949d8..e77e546 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java @@ -382,6 +382,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.QUANTIDADE_ATENDIDA_MAIOR_REQUISITADA", "A quantidade a ser atendida é superior a quantidade requisitada.", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.TODAS_QUANTIDADE_ATENDIDA_EM_BRANCO", "Ao menos um item 'Atender' deve ser preenchido para registrar o atendimento.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_TODOS_ITENS_REQUISICAO_CONSUMO", "Não é permitido remover todos os materiais de consumo.", dominio, modulo)); } private void gerarMensagem(Dominio dominio, Modulo modulo, List internacionalizacaoList) { diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js index 92e30e0..04baf68 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js @@ -621,6 +621,8 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); $scope.atendimentoRequisicaoConsumoForm.$submitted = false; $scope.setLoading(false); + $scope.$showPageSearchWorkspace($scope.workspace); + $scope.atualizaPaginaPesquisa(); }); }); } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/RequisicaoConsumoController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/RequisicaoConsumoController.js index abd2a7d..321467b 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/RequisicaoConsumoController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/RequisicaoConsumoController.js @@ -1,7 +1,9 @@ 'use strict'; -citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'RequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'EstruturaOrganizacionalAlmoxarifadoRepository', 'CatalogoMaterialRepository', 'CatalogoMaterialItemRepository', 'CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository', 'MaterialConsumoRepository', 'AtendimentoRequisicaoConsumoRepository', - function RequisicaoConsumoController($scope, $filter, RequisicaoConsumoRepository, $translate, $timeout, DominioRepository, EstruturaOrganizacionalAlmoxarifadoRepository, CatalogoMaterialRepository, CatalogoMaterialItemRepository, CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository, MaterialConsumoRepository, AtendimentoRequisicaoConsumoRepository) { +citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'RequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'EstruturaOrganizacionalAlmoxarifadoRepository', 'CatalogoMaterialRepository', 'CatalogoMaterialItemRepository', + 'CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository', 'MaterialConsumoRepository', 'AtendimentoRequisicaoConsumoRepository','RequisicaoConsumoItemRepository', + function RequisicaoConsumoController($scope, $filter, RequisicaoConsumoRepository, $translate, $timeout, DominioRepository, EstruturaOrganizacionalAlmoxarifadoRepository, CatalogoMaterialRepository, CatalogoMaterialItemRepository, + CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository, MaterialConsumoRepository, AtendimentoRequisicaoConsumoRepository, RequisicaoConsumoItemRepository) { // CONSTANTES DOMINIO var TIPO_STATUS_REQUISICAO = 'tipoStatusRequisicao'; @@ -485,7 +487,13 @@ citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'Requisic // REMOVE ITEM DA REQUISICAO $scope.removerRequisicaoConsumoItem = function(){ + + if($scope.requisicaoConsumo.requisicaoConsumoItens.length == 1 && $scope.requisicaoConsumo.id){ + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.VALIDACAO.REMOVER_TODOS_ITENS_REQUISICAO_CONSUMO')); + return; + } + if(!$scope.requisicaoConsumoItemChecked) { $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); @@ -499,12 +507,22 @@ citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'Requisic message: $translate.instant('MSG.DESEJA_EXCLUIR_ITENS'), callback: function () { - $scope.$modalConfirmInstance.dismiss('cancel'); - - $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1); - - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); - + if($scope.requisicaoConsumoItemChecked.id){ + RequisicaoConsumoItemRepository.remove($scope.requisicaoConsumoItemChecked).then(function(result) { + $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1); + $scope.changeListRequisicaoConsumoItem(); + $scope.$modalConfirmInstance.dismiss('cancel'); + + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + }); + }else{ + $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1); + $scope.changeListRequisicaoConsumoItem(); + $scope.$modalConfirmInstance.dismiss('cancel'); + + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + } + } }); -- libgit2 0.21.2