diff --git a/citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/BaixaController.java b/citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/BaixaController.java index aaf46ee..1633f68 100644 --- a/citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/BaixaController.java +++ b/citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/BaixaController.java @@ -11,10 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import br.com.centralit.api.model.BaixaPatrimonio; +import br.com.centralit.api.model.MyMensagemRetorno; +import br.com.centralit.api.model.MyRetornoStatus; import br.com.centralit.api.service.BaixaService; +import br.com.centralit.api.service.OrganizacaoService; import br.com.centralit.framework.controller.GenericController; import br.com.centralit.framework.json.ResponseBodyWrapper; import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.model.Organizacao; import br.com.centralit.framework.util.UtilDate; /** @@ -46,6 +50,9 @@ import br.com.centralit.framework.util.UtilDate; public class BaixaController extends GenericController { private BaixaService baixaService; + + @Autowired + private OrganizacaoService organizacaoService; public BaixaController() { super(); @@ -83,32 +90,66 @@ public class BaixaController extends GenericController { @RequestMapping(method = RequestMethod.POST, value = "") @ResponseBody public ResponseBodyWrapper save(@RequestBody BaixaPatrimonio entity) throws Exception{ - boolean uniqueConstraintViolate = true; - - BaixaPatrimonio baixa = new BaixaPatrimonio(); - - //TODO Solução temporária para evitar que sejam criados registros com o código duplicado. Alterar solução quando for implementado o cache compartilhado - for(int i = 5; i > 0 && uniqueConstraintViolate; i--){ - try{ - baixa = this.baixaService.save(SerializationUtils.clone(entity)); - uniqueConstraintViolate = false; - }catch(Throwable e){ - if(e.getCause() instanceof ConstraintViolationException){ - ConstraintViolationException ex = (ConstraintViolationException) e.getCause(); - if(ex.getSQLException().getMessage().contains("codigo_unico")){ - uniqueConstraintViolate = true; + Organizacao organizacao = this.organizacaoService.find(this.getUsuario().getOrganizacao().getId()); + + if (!organizacao.getEmFechamento()) { + + boolean uniqueConstraintViolate = true; + + BaixaPatrimonio baixa = new BaixaPatrimonio(); + + //TODO Solução temporária para evitar que sejam criados registros com o código duplicado. Alterar solução quando for implementado o cache compartilhado + for(int i = 5; i > 0 && uniqueConstraintViolate; i--){ + try{ + baixa = this.baixaService.save(SerializationUtils.clone(entity)); + uniqueConstraintViolate = false; + }catch(Throwable e){ + if(e.getCause() instanceof ConstraintViolationException){ + ConstraintViolationException ex = (ConstraintViolationException) e.getCause(); + if(ex.getSQLException().getMessage().contains("codigo_unico")){ + uniqueConstraintViolate = true; + }else{ + throw e; + } }else{ throw e; } - }else{ - throw e; } } + + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(baixa, getEditView()); + + return responseBody; + + } else { + MyRetornoStatus retorno = new MyRetornoStatus(); + retorno.data = entity; + retorno.mensagens.add(new MyMensagemRetorno(MyMensagemRetorno.TipoMensagemRetorno.warning, "MSG.ORGANIZACAO_EM_FECHAMENTO_MES")); + + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(retorno, getEditView()); + + return responseBody; + } + } + + @RequestMapping(method = RequestMethod.POST, value = "/update") + @ResponseBody + public ResponseBodyWrapper update(@RequestBody BaixaPatrimonio objeto) { + Organizacao organizacao = this.organizacaoService.find(this.getUsuario().getOrganizacao().getId()); + + if (!organizacao.getEmFechamento()) { + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.baixaService.merge(objeto), getEditView()); + + return responseBody; + } else { + MyRetornoStatus retorno = new MyRetornoStatus(); + retorno.data = objeto; + retorno.mensagens.add(new MyMensagemRetorno(MyMensagemRetorno.TipoMensagemRetorno.warning, "MSG.ORGANIZACAO_EM_FECHAMENTO_MES")); + + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(retorno, getEditView()); + + return responseBody; } - - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(baixa, getEditView()); - - return responseBody; } @RequestMapping(value = "/findIdsBemPatrimonialPorData", method = RequestMethod.GET, produces = "application/json") diff --git a/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/BaixaController.js b/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/BaixaController.js index ea2c0a7..ecd6bee 100644 --- a/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/BaixaController.js +++ b/citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/BaixaController.js @@ -744,27 +744,32 @@ citApp.controller('BaixaController', $scope.setLoadingSalva(true); BaixaRepository.save($scope.baixa).then(function(result) { + if (result.originalElement && result.originalElement.status != undefined && !result.originalElement.status && result.originalElement.mensagens) { + $scope.setLoading(false); + angular.forEach(result.originalElement.mensagens, function (mensagem) { + $scope.showAlert(mensagem.tipoMensagem, $translate.instant(mensagem.mensagem)); + }); + } else { + $scope.baixa = result.originalElement; - $scope.baixa = result.originalElement; - - $scope.atualizarDominioSituacaoBaixa($scope.baixa); + $scope.atualizarDominioSituacaoBaixa($scope.baixa); - if($scope.baixa.portador){ - $scope.baixa.portador['pessoa.nome'] = $scope.baixa.portador.pessoa.nome; - } - if($scope.baixa.destino){ - $scope.baixa.destino['pessoa.nome'] = $scope.baixa.destino.pessoa.nome; - } - - // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir - salvarListaDocumentos($scope.baixaTemp); + if($scope.baixa.portador){ + $scope.baixa.portador['pessoa.nome'] = $scope.baixa.portador.pessoa.nome; + } + if($scope.baixa.destino){ + $scope.baixa.destino['pessoa.nome'] = $scope.baixa.destino.pessoa.nome; + } - $scope.setLoading(false); + // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir + salvarListaDocumentos($scope.baixaTemp); - // exibe a MSG de sucesso de acordo com a especificacao do caso de uso - exibeMsgSucesso(); - $scope.resetForm(); + $scope.setLoading(false); + // exibe a MSG de sucesso de acordo com a especificacao do caso de uso + exibeMsgSucesso(); + $scope.resetForm(); + } }); } -- libgit2 0.21.2