Commit 05ebd335278ec7f22836feb552777f28ebde18bb
Exists in
master
Merge branch 'tarefa-3822' of http://ferramentasgo.centralit.com.br:8080/scm/git…
…/cit-grp-almoxarifado into tarefa-3822
Showing
12 changed files
with
94 additions
and
9 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java
@@ -11,12 +11,17 @@ import javax.persistence.JoinColumn; | @@ -11,12 +11,17 @@ import javax.persistence.JoinColumn; | ||
11 | import javax.persistence.ManyToOne; | 11 | import javax.persistence.ManyToOne; |
12 | import javax.persistence.Table; | 12 | import javax.persistence.Table; |
13 | 13 | ||
14 | +import org.hibernate.envers.AuditTable; | ||
15 | +import org.hibernate.envers.Audited; | ||
16 | + | ||
14 | import br.com.centralit.api.framework.json.ViewsAlmoxarifado; | 17 | import br.com.centralit.api.framework.json.ViewsAlmoxarifado; |
15 | import br.com.centralit.framework.json.Views; | 18 | import br.com.centralit.framework.json.Views; |
16 | import br.com.centralit.framework.model.arquitetura.PersistentObject; | 19 | import br.com.centralit.framework.model.arquitetura.PersistentObject; |
17 | 20 | ||
18 | import com.fasterxml.jackson.annotation.JsonView; | 21 | import com.fasterxml.jackson.annotation.JsonView; |
19 | 22 | ||
23 | +@Audited | ||
24 | +@AuditTable(value = "alm_rc_at_item_end_aud") | ||
20 | @Entity | 25 | @Entity |
21 | @Table(name = "alm_rc_at_item_endereco") | 26 | @Table(name = "alm_rc_at_item_endereco") |
22 | public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { | 27 | public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java
@@ -131,4 +131,6 @@ public interface RequisicaoConsumoService extends GenericService<RequisicaoConsu | @@ -131,4 +131,6 @@ public interface RequisicaoConsumoService extends GenericService<RequisicaoConsu | ||
131 | 131 | ||
132 | Boolean atualizarSituacaoAtendimento(Long idRequisicao, boolean situacaoAtendimento); | 132 | Boolean atualizarSituacaoAtendimento(Long idRequisicao, boolean situacaoAtendimento); |
133 | 133 | ||
134 | + Boolean atualizarSituacaoAtendimentoRequisicoes(RequisicaoVH requisicaoVH); | ||
135 | + | ||
134 | } | 136 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
@@ -165,6 +165,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -165,6 +165,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
165 | super.save(atendimento); | 165 | super.save(atendimento); |
166 | 166 | ||
167 | this.movimentoEstoqueService.gerarMovimentoAtendimento(atendimento); | 167 | this.movimentoEstoqueService.gerarMovimentoAtendimento(atendimento); |
168 | + | ||
169 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(atendimento.getRequisicaoConsumo().getId(), false); | ||
168 | 170 | ||
169 | } | 171 | } |
170 | 172 | ||
@@ -253,6 +255,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -253,6 +255,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
253 | this.contaContabilMovimentoService.removerMovimentosAtendimento(atendimentoItem.getId()); | 255 | this.contaContabilMovimentoService.removerMovimentosAtendimento(atendimentoItem.getId()); |
254 | } | 256 | } |
255 | this.movimentoEstoqueService.gerarMovimentoAtendimento(atendimentoRequisicaoConsumo); | 257 | this.movimentoEstoqueService.gerarMovimentoAtendimento(atendimentoRequisicaoConsumo); |
258 | + | ||
259 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(atendimento.getRequisicaoConsumo().getId(), false); | ||
256 | } | 260 | } |
257 | 261 | ||
258 | } | 262 | } |
@@ -418,6 +422,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -418,6 +422,8 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
418 | 422 | ||
419 | //Remove movimentos estoque | 423 | //Remove movimentos estoque |
420 | this.movimentoEstoqueService.removerMovimentosAtendimento(entity); | 424 | this.movimentoEstoqueService.removerMovimentosAtendimento(entity); |
425 | + | ||
426 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(entity.getRequisicaoConsumo().getId(), false); | ||
421 | 427 | ||
422 | return super.remove(entity); | 428 | return super.remove(entity); |
423 | } | 429 | } |
@@ -519,10 +525,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -519,10 +525,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
519 | arrayLong[i] = Long.parseLong(array[i]); | 525 | arrayLong[i] = Long.parseLong(array[i]); |
520 | } | 526 | } |
521 | } | 527 | } |
522 | - for (Long idRequisicao : arrayLong) { | ||
523 | - List<AtendimentoRequisicaoConsumo> listaAtendimentoPorRequisicaoConsumo = this.listaAtendimentoPorRequisicaoConsumo(idRequisicao, idOrganizacao); | ||
524 | - for (AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo : listaAtendimentoPorRequisicaoConsumo) { | ||
525 | - this.remove(atendimentoRequisicaoConsumo); | 528 | + if(arrayLong != null){ |
529 | + for (Long idRequisicao : arrayLong) { | ||
530 | + List<AtendimentoRequisicaoConsumo> listaAtendimentoPorRequisicaoConsumo = this.listaAtendimentoPorRequisicaoConsumo(idRequisicao, idOrganizacao); | ||
531 | + for (AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo : listaAtendimentoPorRequisicaoConsumo) { | ||
532 | + this.remove(atendimentoRequisicaoConsumo); | ||
533 | + } | ||
526 | } | 534 | } |
527 | } | 535 | } |
528 | return true; | 536 | return true; |
@@ -535,6 +543,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -535,6 +543,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
535 | for (AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo : listaAtendimentoPorRequisicaoConsumo) { | 543 | for (AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo : listaAtendimentoPorRequisicaoConsumo) { |
536 | atendimentoRequisicaoConsumo.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA)); | 544 | atendimentoRequisicaoConsumo.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA)); |
537 | super.merge(atendimentoRequisicaoConsumo); | 545 | super.merge(atendimentoRequisicaoConsumo); |
546 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(atendimentoRequisicaoConsumo.getRequisicaoConsumo().getId(), false); | ||
538 | } | 547 | } |
539 | } | 548 | } |
540 | return true; | 549 | return true; |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java
@@ -321,13 +321,17 @@ public class ConfiguracaoNotificacaoRessuprimentoServiceImpl extends GenericServ | @@ -321,13 +321,17 @@ public class ConfiguracaoNotificacaoRessuprimentoServiceImpl extends GenericServ | ||
321 | Date previousExecution = cron.getTimeAfter(date); | 321 | Date previousExecution = cron.getTimeAfter(date); |
322 | long timeMili = previousExecution.getTime() - date.getTime(); | 322 | long timeMili = previousExecution.getTime() - date.getTime(); |
323 | if(timeMili <= 0 || timeMili > (horasDia * minutoHora * segundoMinuto * milisegundos)){ | 323 | if(timeMili <= 0 || timeMili > (horasDia * minutoHora * segundoMinuto * milisegundos)){ |
324 | - timeMili = 4 * minutoHora * segundoMinuto * milisegundos; | 324 | + timeMili = getMilisegundosCron(minutoHora, segundoMinuto, milisegundos); |
325 | } | 325 | } |
326 | entity.setMilissegundoCron(timeMili + (5 * 1000)); | 326 | entity.setMilissegundoCron(timeMili + (5 * 1000)); |
327 | } catch (ParseException e) { | 327 | } catch (ParseException e) { |
328 | - entity.setMilissegundoCron(4l * minutoHora * segundoMinuto * milisegundos); | 328 | + entity.setMilissegundoCron(getMilisegundosCron(minutoHora, segundoMinuto, milisegundos)); |
329 | } | 329 | } |
330 | } | 330 | } |
331 | + | ||
332 | + private long getMilisegundosCron(int minutoHora, int segundoMinuto, int milisegundos){ | ||
333 | + return new Long((4 * minutoHora * segundoMinuto * milisegundos)); | ||
334 | + } | ||
331 | 335 | ||
332 | /** | 336 | /** |
333 | * <p> | 337 | * <p> |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialLocalEstoqueServiceImpl.java
@@ -68,7 +68,7 @@ public class MaterialLocalEstoqueServiceImpl extends GenericServiceImpl<Material | @@ -68,7 +68,7 @@ public class MaterialLocalEstoqueServiceImpl extends GenericServiceImpl<Material | ||
68 | }else{ | 68 | }else{ |
69 | if(entity.getLocalPrincipal()){ | 69 | if(entity.getLocalPrincipal()){ |
70 | for (MaterialLocalEstoque materialLocalEstoque : locaisParMaterial) { | 70 | for (MaterialLocalEstoque materialLocalEstoque : locaisParMaterial) { |
71 | - if(materialLocalEstoque.getId() != entity.getId()){ | 71 | + if(materialLocalEstoque.getId().doubleValue() != entity.getId().doubleValue()){ |
72 | materialLocalEstoque.setLocalPrincipal(Boolean.FALSE); | 72 | materialLocalEstoque.setLocalPrincipal(Boolean.FALSE); |
73 | this.merge(materialLocalEstoque); | 73 | this.merge(materialLocalEstoque); |
74 | } | 74 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java
@@ -549,4 +549,12 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<RequisicaoC | @@ -549,4 +549,12 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl<RequisicaoC | ||
549 | return true; | 549 | return true; |
550 | } | 550 | } |
551 | 551 | ||
552 | + @Override | ||
553 | + public Boolean atualizarSituacaoAtendimentoRequisicoes(RequisicaoVH requisicaoVH) { | ||
554 | + for (Long idRequisicao : requisicaoVH.getIdsRequisicoes()) { | ||
555 | + this.atualizarSituacaoAtendimento(idRequisicao, requisicaoVH.getStatusAtendimentoRequsicao()); | ||
556 | + } | ||
557 | + return true; | ||
558 | + } | ||
559 | + | ||
552 | } | 560 | } |
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java
@@ -248,5 +248,11 @@ public class RequisicaoConsumoController extends GenericController<RequisicaoCon | @@ -248,5 +248,11 @@ public class RequisicaoConsumoController extends GenericController<RequisicaoCon | ||
248 | return responseBody; | 248 | return responseBody; |
249 | } | 249 | } |
250 | 250 | ||
251 | - | 251 | + @RequestMapping(value = "/atualizarSituacaoAtendimentoRequisicoes", method = RequestMethod.POST, produces = "application/json") |
252 | + @ResponseBody | ||
253 | + public Boolean atualizarSituacaoAtendimentoRequisicoes(@RequestBody RequisicaoVH requisicaoVH) { | ||
254 | + | ||
255 | + return this.requisicaoConsumoService.atualizarSituacaoAtendimentoRequisicoes(requisicaoVH); | ||
256 | + | ||
257 | + } | ||
252 | } | 258 | } |
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -426,6 +426,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | @@ -426,6 +426,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | ||
426 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REQUISICAO_EM_ATENDIMENTO", "está em atendimento pelo atendente ", dominio, modulo)); | 426 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REQUISICAO_EM_ATENDIMENTO", "está em atendimento pelo atendente ", dominio, modulo)); |
427 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO", "Desmarque esta requisição de consumo para prosseguir o atendimento.", dominio, modulo)); | 427 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO", "Desmarque esta requisição de consumo para prosseguir o atendimento.", dominio, modulo)); |
428 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ATENDER_MAIS_DE_UM_ENDERECO", "Atender utilizando mais de um endereco", dominio, modulo)); | 428 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ATENDER_MAIS_DE_UM_ENDERECO", "Atender utilizando mais de um endereco", dominio, modulo)); |
429 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INTERROMPER_ATENDIMENTO_NAO_INICIADO", "Somente é permitido realizar essa ação para requisições que foram iniciadas o atendimento por você. Desmarque as requisições que não foram iniciadas o atendimento para prosseguir.", dominio, modulo)); | ||
430 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INTERROMPER_ATENDIMENTO_INICIADO_OUTRO_ATENDENTE", "Somente é permitido realizar essa ação para requisições que foram iniciadas o atendimento por você. Desmarque as requisições que foram iniciadas por outros atendentes para prosseguir.", dominio, modulo)); | ||
429 | 431 | ||
430 | } | 432 | } |
431 | } | 433 | } |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -58,7 +58,13 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | @@ -58,7 +58,13 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
58 | 58 | ||
59 | // Atualiza pagina de pesquisa | 59 | // Atualiza pagina de pesquisa |
60 | $scope.atualizaPaginaPesquisa = function () { | 60 | $scope.atualizaPaginaPesquisa = function () { |
61 | + | ||
62 | + var requisicaoVH = { idsRequisicoes : $scope.idsRequisicoesSelecionados, statusAtendimentoRequsicao : false}; | ||
63 | + | ||
64 | + RequisicaoConsumoRepository.atualizarSituacaoAtendimentoRequisicoes(requisicaoVH).then(function(result) { | ||
61 | angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); | 65 | angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); |
66 | + }); | ||
67 | + | ||
62 | }; | 68 | }; |
63 | 69 | ||
64 | $scope.removerAtendimentoRequisicao = function(){ | 70 | $scope.removerAtendimentoRequisicao = function(){ |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js
@@ -43,6 +43,7 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -43,6 +43,7 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | ||
43 | 43 | ||
44 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'DEVOLVIDA', comparison: 'ne', notFilter : true}); | 44 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'DEVOLVIDA', comparison: 'ne', notFilter : true}); |
45 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'NAO_CONCLUIDA', comparison: 'ne', notFilter : true}); | 45 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'NAO_CONCLUIDA', comparison: 'ne', notFilter : true}); |
46 | + | ||
46 | }; | 47 | }; |
47 | 48 | ||
48 | $scope.recarregar(); | 49 | $scope.recarregar(); |
@@ -334,5 +335,43 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | @@ -334,5 +335,43 @@ citApp.controller('AtendimentoRequisicaoConsumoListController', ['$scope', 'Aten | ||
334 | 335 | ||
335 | }; | 336 | }; |
336 | 337 | ||
338 | + $scope.interromperAtendimentoIniciado = function(){ | ||
339 | + | ||
340 | + if($scope.listaSelecionados && $scope.listaSelecionados.length == 0) { | ||
341 | + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_AO_MENOS_UM_ITEM')); | ||
342 | + return; | ||
343 | + } | ||
344 | + | ||
345 | + var permiteInterromperAtendimentoIniciado = true; | ||
346 | + angular.forEach($scope.listaSelecionados, function (requisicaoSelecionado) { | ||
347 | + if(!requisicaoSelecionado.emAtendimento){ | ||
348 | + permiteInterromperAtendimentoIniciado = false; | ||
349 | + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.MSG.INTERROMPER_ATENDIMENTO_NAO_INICIADO')); | ||
350 | + } | ||
351 | + if(requisicaoSelecionado.emAtendimento && requisicaoSelecionado['atendente.id'] != $scope.usuarioLogado.id){ | ||
352 | + permiteInterromperAtendimentoIniciado = false; | ||
353 | + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.MSG.INTERROMPER_ATENDIMENTO_INICIADO_OUTRO_ATENDENTE')); | ||
354 | + return; | ||
355 | + } | ||
356 | + }); | ||
357 | + | ||
358 | + $scope.setLoading(true); | ||
359 | + if(permiteInterromperAtendimentoIniciado){ | ||
360 | + | ||
361 | + var idsRequisicoesSelecionados = []; | ||
362 | + $scope.listaSelecionados.forEach(function(requisicao){ | ||
363 | + idsRequisicoesSelecionados.push(requisicao.id); | ||
364 | + }); | ||
365 | + | ||
366 | + var requisicaoVH = { idsRequisicoes : idsRequisicoesSelecionados, statusAtendimentoRequsicao : false}; | ||
367 | + | ||
368 | + RequisicaoConsumoRepository.atualizarSituacaoAtendimentoRequisicoes(requisicaoVH).then(function(result) { | ||
369 | + $scope.setLoading(false); | ||
370 | + $scope.recarregar(); | ||
371 | + angular.element("#searchAtendimentoRequisicaoConsumo").scope().fetchResult(); | ||
372 | + }); | ||
373 | + } | ||
374 | + }; | ||
375 | + | ||
337 | 376 | ||
338 | }]); | 377 | }]); |
339 | \ No newline at end of file | 378 | \ No newline at end of file |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js
@@ -30,6 +30,10 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr | @@ -30,6 +30,10 @@ citApp.factory('RequisicaoConsumoRepository', ['RestangularAlmoxarifado', 'Abstr | ||
30 | this.atualizarSituacaoAtendimento = function(idRequisicao, situacaoAtendimento){ | 30 | this.atualizarSituacaoAtendimento = function(idRequisicao, situacaoAtendimento){ |
31 | return this.restangular.one(this.route + "/atualizarSituacaoAtendimento").get({'idRequisicao': idRequisicao, 'situacaoAtendimento': situacaoAtendimento}).then(); | 31 | return this.restangular.one(this.route + "/atualizarSituacaoAtendimento").get({'idRequisicao': idRequisicao, 'situacaoAtendimento': situacaoAtendimento}).then(); |
32 | }; | 32 | }; |
33 | + | ||
34 | + this.atualizarSituacaoAtendimentoRequisicoes = function(requisicaoVH) { | ||
35 | + return restangularAlmoxarifado.all(this.route + "/atualizarSituacaoAtendimentoRequisicoes").post(requisicaoVH).then(); | ||
36 | + }; | ||
33 | } | 37 | } |
34 | 38 | ||
35 | AbstractRepository.extend(RequisicaoConsumoRepository); | 39 | AbstractRepository.extend(RequisicaoConsumoRepository); |
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
@@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
23 | <translate>LABEL.VISUALIZAR</translate> | 23 | <translate>LABEL.VISUALIZAR</translate> |
24 | </button> | 24 | </button> |
25 | 25 | ||
26 | - <button ng-show="permiteInterromperAtendimento" class="btn btn-clear" ng-click="interromperAtendimentoIniciado()"> | 26 | + <button class="btn btn-clear" ng-click="interromperAtendimentoIniciado()"> |
27 | <i class="fa fa-times-circle-o orange"></i> | 27 | <i class="fa fa-times-circle-o orange"></i> |
28 | <translate>ALMOXARIFADO.LABEL.INTERROMPER_ATENDIMENTO_INICIADO</translate> | 28 | <translate>ALMOXARIFADO.LABEL.INTERROMPER_ATENDIMENTO_INICIADO</translate> |
29 | </button> | 29 | </button> |