Commit 38bf80faa1c85019e73768b257f7035f18a502db

Authored by Erick.sato
1 parent 9130d51b
Exists in master

Redmine #5043 Salvar e editar atendimento requisicao

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
... ... @@ -79,7 +79,7 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
79 79 @JoinColumn(name = "AtendimentoReqConsumo_Id")
80 80 private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo;
81 81  
82   - @ManyToOne(fetch = FetchType.LAZY, optional = false)
  82 + @ManyToOne(fetch = FetchType.LAZY)
83 83 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class,
84 84 ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class,
85 85 ViewsAdmMateriais.RequisicaoConsumoEditView.class })
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java
... ... @@ -149,7 +149,6 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
149 149 public void superRemove(AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) {
150 150  
151 151 AtendimentoRequisicaoConsumoItem entity = this.find(atendimentoRequisicaoConsumoItem.getId());
152   -
153 152 super.remove(entity);
154 153 }
155 154  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
... ... @@ -169,10 +169,13 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl<
169 169  
170 170 if(atendimento.getId() == null && atendimento.getDataAtendimento() == null){
171 171 atendimento.setDataAtendimento(entity.getDataAtendimento());
172   - this.montarEntidade(atendimento);
  172 +
  173 + atendimento.setRequisicaoConsumo(this.requisicaoConsumoService.find(atendimento.getRequisicaoConsumo().getId()));
173 174  
174 175 this.validarDataAtendimento(atendimento);
175 176  
  177 + this.montarEntidade(atendimento);
  178 +
176 179 this.atualizarStatusRquisicao(atendimento);
177 180  
178 181 if(atendimento.getId() == null){
... ... @@ -269,9 +272,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl<
269 272 removerLancamentosPassados(entity);
270 273 }
271 274  
272   - this.montarEntidade(entity);
273   -
  275 + entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId()));
274 276 this.validarDataAtendimento(entity);
  277 +
  278 + this.montarEntidade(entity);
275 279  
276 280 this.atualizarStatusRquisicao(entity);
277 281  
... ... @@ -352,11 +356,39 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl<
352 356 */
353 357 private void montarEntidade(AtendimentoRequisicaoConsumo entity) {
354 358  
355   - entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId()));
  359 + if(entity.getRequisicaoConsumo().getRequisicaoConsumoItens().size() != entity.getAtendimentoRequisicaoConsumoItems().size()){
  360 + for (RequisicaoConsumoItem reqItem : entity.getRequisicaoConsumo().getRequisicaoConsumoItens()) {
  361 + if(reqItem.getDataInativo() != null){
  362 + continue;
  363 + }
  364 + boolean addItem = false;
  365 + for (AtendimentoRequisicaoConsumoItem atendReqItem : entity.getAtendimentoRequisicaoConsumoItems()) {
  366 + if(atendReqItem.getMaterial().getId().doubleValue() != reqItem.getMaterialConsumo().getId().doubleValue()){
  367 + addItem = true;
  368 + }else{
  369 + addItem = false;
  370 + break;
  371 + }
  372 + }
  373 + if(addItem){
  374 + AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem = new AtendimentoRequisicaoConsumoItem();
  375 + atendimentoRequisicaoConsumoItem.setMaterial(reqItem.getMaterialConsumo());
  376 + atendimentoRequisicaoConsumoItem.setRequisicaoConsumoItem(reqItem);
  377 +
  378 + AtendimentoRequisicaoConsumoItemEndereco itemEndereco = new AtendimentoRequisicaoConsumoItemEndereco();
  379 + itemEndereco.setMaterialLocalEstoque(this.materialLocalEstoqueService.buscarLocaisEstoquePorIdMaterial(reqItem.getMaterialConsumo().getId()).get(0));
  380 + List<AtendimentoRequisicaoConsumoItemEndereco> endItem = new ArrayList<>();
  381 + endItem.add(itemEndereco);
  382 + atendimentoRequisicaoConsumoItem.setAtendimentoRequisicaoConsumoItemEnderecos(endItem);
  383 + entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoRequisicaoConsumoItem);
  384 + }
  385 + }
  386 + }
356 387  
357 388 boolean todosItensSemQuantidade = true;
358 389 for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
359 390  
  391 + atendimentoItem.setDataInativo(null);
360 392 RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId());
361 393 requisicaoConsumoItem.setQuantidadeAtendida(atendimentoItem.getQuantidade());
362 394  
... ... @@ -396,9 +428,9 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
396 428  
397 429 for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
398 430  
  431 + atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().setQuantidadeAtendida(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getQuantidadeAtendida().subtract(atendimentoRequisicaoConsumoItem.getQuantidade()));
399 432 this.atendimentoRequisicaoConsumoItemService.superRemove(atendimentoRequisicaoConsumoItem);
400 433  
401   - atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().setQuantidadeAtendida(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getQuantidadeAtendida().subtract(atendimentoRequisicaoConsumoItem.getQuantidade()));
402 434  
403 435 }
404 436  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java
... ... @@ -68,9 +68,14 @@ public class MaterialLocalEstoqueServiceImpl extends GenericServiceImpl&lt;Material
68 68 }else{
69 69 if(entity.getLocalPrincipal()){
70 70 for (MaterialLocalEstoque materialLocalEstoque : locaisParMaterial) {
71   - if(materialLocalEstoque.getId().doubleValue() != entity.getId().doubleValue()){
  71 + if(entity.getId() != null){
  72 + if(materialLocalEstoque.getId().doubleValue() != entity.getId().doubleValue()){
  73 + materialLocalEstoque.setLocalPrincipal(Boolean.FALSE);
  74 + this.merge(materialLocalEstoque);
  75 + }
  76 + }else{
72 77 materialLocalEstoque.setLocalPrincipal(Boolean.FALSE);
73   - this.merge(materialLocalEstoque);
  78 + this.merge(materialLocalEstoque);
74 79 }
75 80 }
76 81 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java
... ... @@ -120,7 +120,7 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi
120 120 if(requisicaoConsumoItemTransient.getId() != null){
121 121 requisicaoConsumoItem.setId(requisicaoConsumoItemTransient.getId());
122 122 }
123   -
  123 +
124 124 return requisicaoConsumoItem;
125 125 }
126 126  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java
... ... @@ -290,6 +290,12 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
290 290 throw new BusinessException("PORTAL.MSG.MN020", CodigoErro.REGRA_NEGOCIO.getValue());
291 291  
292 292 }
  293 +
  294 + RequisicaoConsumo requisicaoConsumo = this.find(idRequisicaoConsumo);
  295 +
  296 + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) {
  297 + this.requisicaoConsumoItemService.remove(requisicaoConsumoItem);
  298 + }
293 299  
294 300 return super.removeById(idRequisicaoConsumo);
295 301  
... ... @@ -346,7 +352,10 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
346 352 private void montarEntidade(RequisicaoConsumo requisicaoConsumo) {
347 353  
348 354 // MONTA OS DADOS RELACIONADOS MATERIAL DE CONSUMO
349   - this.requisicaoConsumoItemService.montarRequisicaoConsumoItemMateriaisConsumo(requisicaoConsumo);
  355 + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) {
  356 + requisicaoConsumoItem.setRequisicaoConsumo(requisicaoConsumo);
  357 + }
  358 +// this.requisicaoConsumoItemService.montarRequisicaoConsumoItemMateriaisConsumo(requisicaoConsumo);
350 359  
351 360 // TRANSIENT OBSERVACOES
352 361 if (!UtilColecao.isVazio(requisicaoConsumo.getObservacoes())) {
... ... @@ -361,6 +370,11 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
361 370 }
362 371  
363 372 requisicaoConsumo.setCentroCusto(UtilObjeto.isReferencia(requisicaoConsumo.getCentroCusto()) ? this.centroCustoService.find(requisicaoConsumo.getCentroCusto().getId()) : null);
  373 +
  374 + if(requisicaoConsumo.getOrganizacao() == null){
  375 + Usuario usuarioLogado = (Usuario) usuarioService.find(( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId());
  376 + requisicaoConsumo.setOrganizacao(usuarioLogado.getOrganizacao());
  377 + }
364 378 }
365 379  
366 380 /**
... ... @@ -526,6 +540,17 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
526 540 if(atendimentoVH.isBloquearAtendimento()){
527 541 this.atualizarStatusAtendimento(requisicoes);
528 542 }
  543 +
  544 + for (RequisicaoConsumo requisicaoConsumo : requisicoes) {
  545 + List<RequisicaoConsumoItem> listaItens = new ArrayList<>();
  546 + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) {
  547 + if(requisicaoConsumoItem.getDataInativo() == null){
  548 + listaItens.add(requisicaoConsumoItem);
  549 + }
  550 + }
  551 + requisicaoConsumo.setRequisicaoConsumoItens(listaItens);
  552 + }
  553 +
529 554 return requisicoes;
530 555 }
531 556  
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java
... ... @@ -7,6 +7,7 @@ import org.apache.commons.lang3.SerializationUtils;
7 7 import org.hibernate.exception.ConstraintViolationException;
8 8 import org.springframework.beans.factory.annotation.Autowired;
9 9 import org.springframework.stereotype.Controller;
  10 +import org.springframework.web.bind.annotation.PathVariable;
10 11 import org.springframework.web.bind.annotation.RequestBody;
11 12 import org.springframework.web.bind.annotation.RequestMapping;
12 13 import org.springframework.web.bind.annotation.RequestMethod;
... ... @@ -255,4 +256,27 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon
255 256 return this.requisicaoConsumoService.atualizarSituacaoAtendimentoRequisicoes(requisicaoVH);
256 257  
257 258 }
  259 +
  260 + @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  261 + @ResponseBody
  262 + public ResponseBodyWrapper getObject(@PathVariable("id") Long id) {
  263 +
  264 + RequisicaoConsumo requisicaoConsumo = this.requisicaoConsumoService.getReference(id);
  265 +
  266 + List<RequisicaoConsumoItem> itens = new ArrayList<>();
  267 +
  268 + for (RequisicaoConsumoItem requisicaoConsumoItem : requisicaoConsumo.getRequisicaoConsumoItens()) {
  269 + if(requisicaoConsumoItem.getDataInativo() == null){
  270 + itens.add(requisicaoConsumoItem);
  271 + }
  272 + }
  273 +
  274 + requisicaoConsumo.setRequisicaoConsumoItens(itens);
  275 +
  276 + ResultResponseVH<RequisicaoConsumo> resultResponseVH = new ResultResponseVH<RequisicaoConsumo>(requisicaoConsumo);
  277 +
  278 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getEditView());
  279 +
  280 + return responseBody;
  281 + }
258 282 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... ... @@ -382,6 +382,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
382 382  
383 383 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.QUANTIDADE_ATENDIDA_MAIOR_REQUISITADA", "A quantidade a ser atendida é superior a quantidade requisitada.", dominio, modulo));
384 384 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));
  385 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_TODOS_ITENS_REQUISICAO_CONSUMO", "Não é permitido remover todos os materiais de consumo.", dominio, modulo));
385 386 }
386 387  
387 388 private void gerarMensagem(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
... ... @@ -621,6 +621,8 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
621 621 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
622 622 $scope.atendimentoRequisicaoConsumoForm.$submitted = false;
623 623 $scope.setLoading(false);
  624 + $scope.$showPageSearchWorkspace($scope.workspace);
  625 + $scope.atualizaPaginaPesquisa();
624 626 });
625 627 });
626 628 }
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/RequisicaoConsumoController.js
1 1 'use strict';
2 2  
3   -citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'RequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'EstruturaOrganizacionalAlmoxarifadoRepository', 'CatalogoMaterialRepository', 'CatalogoMaterialItemRepository', 'CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository', 'MaterialConsumoRepository', 'AtendimentoRequisicaoConsumoRepository',
4   - function RequisicaoConsumoController($scope, $filter, RequisicaoConsumoRepository, $translate, $timeout, DominioRepository, EstruturaOrganizacionalAlmoxarifadoRepository, CatalogoMaterialRepository, CatalogoMaterialItemRepository, CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository, MaterialConsumoRepository, AtendimentoRequisicaoConsumoRepository) {
  3 +citApp.controller('RequisicaoConsumoController', ['$scope', '$filter', 'RequisicaoConsumoRepository', '$translate', '$timeout', 'DominioRepository', 'EstruturaOrganizacionalAlmoxarifadoRepository', 'CatalogoMaterialRepository', 'CatalogoMaterialItemRepository',
  4 + 'CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository', 'MaterialConsumoRepository', 'AtendimentoRequisicaoConsumoRepository','RequisicaoConsumoItemRepository',
  5 + function RequisicaoConsumoController($scope, $filter, RequisicaoConsumoRepository, $translate, $timeout, DominioRepository, EstruturaOrganizacionalAlmoxarifadoRepository, CatalogoMaterialRepository, CatalogoMaterialItemRepository,
  6 + CatalogoMaterialUnidadeConsumidoraRequisitanteItemRepository, MaterialConsumoRepository, AtendimentoRequisicaoConsumoRepository, RequisicaoConsumoItemRepository) {
5 7  
6 8 // CONSTANTES DOMINIO
7 9 var TIPO_STATUS_REQUISICAO = 'tipoStatusRequisicao';
... ... @@ -485,7 +487,13 @@ citApp.controller(&#39;RequisicaoConsumoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;Requisic
485 487  
486 488 // REMOVE ITEM DA REQUISICAO
487 489 $scope.removerRequisicaoConsumoItem = function(){
  490 +
  491 + if($scope.requisicaoConsumo.requisicaoConsumoItens.length == 1 && $scope.requisicaoConsumo.id){
  492 + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.VALIDACAO.REMOVER_TODOS_ITENS_REQUISICAO_CONSUMO'));
488 493  
  494 + return;
  495 + }
  496 +
489 497 if(!$scope.requisicaoConsumoItemChecked) {
490 498  
491 499 $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
... ... @@ -499,12 +507,22 @@ citApp.controller(&#39;RequisicaoConsumoController&#39;, [&#39;$scope&#39;, &#39;$filter&#39;, &#39;Requisic
499 507 message: $translate.instant('MSG.DESEJA_EXCLUIR_ITENS'),
500 508 callback: function () {
501 509  
502   - $scope.$modalConfirmInstance.dismiss('cancel');
503   -
504   - $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1);
505   -
506   - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
507   -
  510 + if($scope.requisicaoConsumoItemChecked.id){
  511 + RequisicaoConsumoItemRepository.remove($scope.requisicaoConsumoItemChecked).then(function(result) {
  512 + $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1);
  513 + $scope.changeListRequisicaoConsumoItem();
  514 + $scope.$modalConfirmInstance.dismiss('cancel');
  515 +
  516 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  517 + });
  518 + }else{
  519 + $scope.requisicaoConsumo.requisicaoConsumoItens.splice($scope.requisicaoConsumoItemChecked.$index, 1);
  520 + $scope.changeListRequisicaoConsumoItem();
  521 + $scope.$modalConfirmInstance.dismiss('cancel');
  522 +
  523 + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO'));
  524 + }
  525 +
508 526 }
509 527  
510 528 });
... ...