Commit 507dd014b0fa24b7f636c125dea5b01408ca4742

Authored by geovane.filho
1 parent 88ecdb38
Exists in master

Redmine #4483 Bloqueando serviço de baixa quando o mês de referência estiver sendo fechado.

citgrp-patrimonio-web/src/main/java/br/com/centralit/controller/BaixaController.java
@@ -11,10 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam; @@ -11,10 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam;
11 import org.springframework.web.bind.annotation.ResponseBody; 11 import org.springframework.web.bind.annotation.ResponseBody;
12 12
13 import br.com.centralit.api.model.BaixaPatrimonio; 13 import br.com.centralit.api.model.BaixaPatrimonio;
  14 +import br.com.centralit.api.model.MyMensagemRetorno;
  15 +import br.com.centralit.api.model.MyRetornoStatus;
14 import br.com.centralit.api.service.BaixaService; 16 import br.com.centralit.api.service.BaixaService;
  17 +import br.com.centralit.api.service.OrganizacaoService;
15 import br.com.centralit.framework.controller.GenericController; 18 import br.com.centralit.framework.controller.GenericController;
16 import br.com.centralit.framework.json.ResponseBodyWrapper; 19 import br.com.centralit.framework.json.ResponseBodyWrapper;
17 import br.com.centralit.framework.json.Views; 20 import br.com.centralit.framework.json.Views;
  21 +import br.com.centralit.framework.model.Organizacao;
18 import br.com.centralit.framework.util.UtilDate; 22 import br.com.centralit.framework.util.UtilDate;
19 23
20 /** 24 /**
@@ -46,6 +50,9 @@ import br.com.centralit.framework.util.UtilDate; @@ -46,6 +50,9 @@ import br.com.centralit.framework.util.UtilDate;
46 public class BaixaController extends GenericController<BaixaPatrimonio> { 50 public class BaixaController extends GenericController<BaixaPatrimonio> {
47 51
48 private BaixaService baixaService; 52 private BaixaService baixaService;
  53 +
  54 + @Autowired
  55 + private OrganizacaoService organizacaoService;
49 56
50 public BaixaController() { 57 public BaixaController() {
51 super(); 58 super();
@@ -83,32 +90,66 @@ public class BaixaController extends GenericController&lt;BaixaPatrimonio&gt; { @@ -83,32 +90,66 @@ public class BaixaController extends GenericController&lt;BaixaPatrimonio&gt; {
83 @RequestMapping(method = RequestMethod.POST, value = "") 90 @RequestMapping(method = RequestMethod.POST, value = "")
84 @ResponseBody 91 @ResponseBody
85 public ResponseBodyWrapper save(@RequestBody BaixaPatrimonio entity) throws Exception{ 92 public ResponseBodyWrapper save(@RequestBody BaixaPatrimonio entity) throws Exception{
86 - boolean uniqueConstraintViolate = true;  
87 -  
88 - BaixaPatrimonio baixa = new BaixaPatrimonio();  
89 -  
90 - //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  
91 - for(int i = 5; i > 0 && uniqueConstraintViolate; i--){  
92 - try{  
93 - baixa = this.baixaService.save(SerializationUtils.clone(entity));  
94 - uniqueConstraintViolate = false;  
95 - }catch(Throwable e){  
96 - if(e.getCause() instanceof ConstraintViolationException){  
97 - ConstraintViolationException ex = (ConstraintViolationException) e.getCause();  
98 - if(ex.getSQLException().getMessage().contains("codigo_unico")){  
99 - uniqueConstraintViolate = true; 93 + Organizacao organizacao = this.organizacaoService.find(this.getUsuario().getOrganizacao().getId());
  94 +
  95 + if (!organizacao.getEmFechamento()) {
  96 +
  97 + boolean uniqueConstraintViolate = true;
  98 +
  99 + BaixaPatrimonio baixa = new BaixaPatrimonio();
  100 +
  101 + //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
  102 + for(int i = 5; i > 0 && uniqueConstraintViolate; i--){
  103 + try{
  104 + baixa = this.baixaService.save(SerializationUtils.clone(entity));
  105 + uniqueConstraintViolate = false;
  106 + }catch(Throwable e){
  107 + if(e.getCause() instanceof ConstraintViolationException){
  108 + ConstraintViolationException ex = (ConstraintViolationException) e.getCause();
  109 + if(ex.getSQLException().getMessage().contains("codigo_unico")){
  110 + uniqueConstraintViolate = true;
  111 + }else{
  112 + throw e;
  113 + }
100 }else{ 114 }else{
101 throw e; 115 throw e;
102 } 116 }
103 - }else{  
104 - throw e;  
105 } 117 }
106 } 118 }
  119 +
  120 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(baixa, getEditView());
  121 +
  122 + return responseBody;
  123 +
  124 + } else {
  125 + MyRetornoStatus retorno = new MyRetornoStatus();
  126 + retorno.data = entity;
  127 + retorno.mensagens.add(new MyMensagemRetorno(MyMensagemRetorno.TipoMensagemRetorno.warning, "MSG.ORGANIZACAO_EM_FECHAMENTO_MES"));
  128 +
  129 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(retorno, getEditView());
  130 +
  131 + return responseBody;
  132 + }
  133 + }
  134 +
  135 + @RequestMapping(method = RequestMethod.POST, value = "/update")
  136 + @ResponseBody
  137 + public ResponseBodyWrapper update(@RequestBody BaixaPatrimonio objeto) {
  138 + Organizacao organizacao = this.organizacaoService.find(this.getUsuario().getOrganizacao().getId());
  139 +
  140 + if (!organizacao.getEmFechamento()) {
  141 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.baixaService.merge(objeto), getEditView());
  142 +
  143 + return responseBody;
  144 + } else {
  145 + MyRetornoStatus retorno = new MyRetornoStatus();
  146 + retorno.data = objeto;
  147 + retorno.mensagens.add(new MyMensagemRetorno(MyMensagemRetorno.TipoMensagemRetorno.warning, "MSG.ORGANIZACAO_EM_FECHAMENTO_MES"));
  148 +
  149 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(retorno, getEditView());
  150 +
  151 + return responseBody;
107 } 152 }
108 -  
109 - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(baixa, getEditView());  
110 -  
111 - return responseBody;  
112 } 153 }
113 154
114 @RequestMapping(value = "/findIdsBemPatrimonialPorData", method = RequestMethod.GET, produces = "application/json") 155 @RequestMapping(value = "/findIdsBemPatrimonialPorData", method = RequestMethod.GET, produces = "application/json")
citgrp-patrimonio-web/src/main/webapp/assets/js/angular/custom/controller/BaixaController.js
@@ -744,27 +744,32 @@ citApp.controller(&#39;BaixaController&#39;, @@ -744,27 +744,32 @@ citApp.controller(&#39;BaixaController&#39;,
744 $scope.setLoadingSalva(true); 744 $scope.setLoadingSalva(true);
745 745
746 BaixaRepository.save($scope.baixa).then(function(result) { 746 BaixaRepository.save($scope.baixa).then(function(result) {
  747 + if (result.originalElement && result.originalElement.status != undefined && !result.originalElement.status && result.originalElement.mensagens) {
  748 + $scope.setLoading(false);
  749 + angular.forEach(result.originalElement.mensagens, function (mensagem) {
  750 + $scope.showAlert(mensagem.tipoMensagem, $translate.instant(mensagem.mensagem));
  751 + });
  752 + } else {
  753 + $scope.baixa = result.originalElement;
747 754
748 - $scope.baixa = result.originalElement;  
749 -  
750 - $scope.atualizarDominioSituacaoBaixa($scope.baixa); 755 + $scope.atualizarDominioSituacaoBaixa($scope.baixa);
751 756
752 - if($scope.baixa.portador){  
753 - $scope.baixa.portador['pessoa.nome'] = $scope.baixa.portador.pessoa.nome;  
754 - }  
755 - if($scope.baixa.destino){  
756 - $scope.baixa.destino['pessoa.nome'] = $scope.baixa.destino.pessoa.nome;  
757 - }  
758 -  
759 - // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir  
760 - salvarListaDocumentos($scope.baixaTemp); 757 + if($scope.baixa.portador){
  758 + $scope.baixa.portador['pessoa.nome'] = $scope.baixa.portador.pessoa.nome;
  759 + }
  760 + if($scope.baixa.destino){
  761 + $scope.baixa.destino['pessoa.nome'] = $scope.baixa.destino.pessoa.nome;
  762 + }
761 763
762 - $scope.setLoading(false); 764 + // depois de salvar a baixa ja tendo uma referencia do id da baixa, esse metodo ira salvar os documentos se existir
  765 + salvarListaDocumentos($scope.baixaTemp);
763 766
764 - // exibe a MSG de sucesso de acordo com a especificacao do caso de uso  
765 - exibeMsgSucesso();  
766 - $scope.resetForm(); 767 + $scope.setLoading(false);
767 768
  769 + // exibe a MSG de sucesso de acordo com a especificacao do caso de uso
  770 + exibeMsgSucesso();
  771 + $scope.resetForm();
  772 + }
768 }); 773 });
769 } 774 }
770 775