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 | 11 | import javax.persistence.ManyToOne; |
12 | 12 | import javax.persistence.Table; |
13 | 13 | |
14 | +import org.hibernate.envers.AuditTable; | |
15 | +import org.hibernate.envers.Audited; | |
16 | + | |
14 | 17 | import br.com.centralit.api.framework.json.ViewsAlmoxarifado; |
15 | 18 | import br.com.centralit.framework.json.Views; |
16 | 19 | import br.com.centralit.framework.model.arquitetura.PersistentObject; |
17 | 20 | |
18 | 21 | import com.fasterxml.jackson.annotation.JsonView; |
19 | 22 | |
23 | +@Audited | |
24 | +@AuditTable(value = "alm_rc_at_item_end_aud") | |
20 | 25 | @Entity |
21 | 26 | @Table(name = "alm_rc_at_item_endereco") |
22 | 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 | 131 | |
132 | 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 | 165 | super.save(atendimento); |
166 | 166 | |
167 | 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 | 255 | this.contaContabilMovimentoService.removerMovimentosAtendimento(atendimentoItem.getId()); |
254 | 256 | } |
255 | 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 | 422 | |
419 | 423 | //Remove movimentos estoque |
420 | 424 | this.movimentoEstoqueService.removerMovimentosAtendimento(entity); |
425 | + | |
426 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(entity.getRequisicaoConsumo().getId(), false); | |
421 | 427 | |
422 | 428 | return super.remove(entity); |
423 | 429 | } |
... | ... | @@ -519,10 +525,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< |
519 | 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 | 536 | return true; |
... | ... | @@ -535,6 +543,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< |
535 | 543 | for (AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo : listaAtendimentoPorRequisicaoConsumo) { |
536 | 544 | atendimentoRequisicaoConsumo.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA)); |
537 | 545 | super.merge(atendimentoRequisicaoConsumo); |
546 | + this.requisicaoConsumoService.atualizarSituacaoAtendimento(atendimentoRequisicaoConsumo.getRequisicaoConsumo().getId(), false); | |
538 | 547 | } |
539 | 548 | } |
540 | 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 | 321 | Date previousExecution = cron.getTimeAfter(date); |
322 | 322 | long timeMili = previousExecution.getTime() - date.getTime(); |
323 | 323 | if(timeMili <= 0 || timeMili > (horasDia * minutoHora * segundoMinuto * milisegundos)){ |
324 | - timeMili = 4 * minutoHora * segundoMinuto * milisegundos; | |
324 | + timeMili = getMilisegundosCron(minutoHora, segundoMinuto, milisegundos); | |
325 | 325 | } |
326 | 326 | entity.setMilissegundoCron(timeMili + (5 * 1000)); |
327 | 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 | 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 | 68 | }else{ |
69 | 69 | if(entity.getLocalPrincipal()){ |
70 | 70 | for (MaterialLocalEstoque materialLocalEstoque : locaisParMaterial) { |
71 | - if(materialLocalEstoque.getId() != entity.getId()){ | |
71 | + if(materialLocalEstoque.getId().doubleValue() != entity.getId().doubleValue()){ | |
72 | 72 | materialLocalEstoque.setLocalPrincipal(Boolean.FALSE); |
73 | 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 | 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 | 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 | 426 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REQUISICAO_EM_ATENDIMENTO", "está em atendimento pelo atendente ", dominio, modulo)); |
427 | 427 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO", "Desmarque esta requisição de consumo para prosseguir o atendimento.", dominio, modulo)); |
428 | 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 | 58 | |
59 | 59 | // Atualiza pagina de pesquisa |
60 | 60 | $scope.atualizaPaginaPesquisa = function () { |
61 | + | |
62 | + var requisicaoVH = { idsRequisicoes : $scope.idsRequisicoesSelecionados, statusAtendimentoRequsicao : false}; | |
63 | + | |
64 | + RequisicaoConsumoRepository.atualizarSituacaoAtendimentoRequisicoes(requisicaoVH).then(function(result) { | |
61 | 65 | angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); |
66 | + }); | |
67 | + | |
62 | 68 | }; |
63 | 69 | |
64 | 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 | 43 | |
44 | 44 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'DEVOLVIDA', comparison: 'ne', notFilter : true}); |
45 | 45 | $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'NAO_CONCLUIDA', comparison: 'ne', notFilter : true}); |
46 | + | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | $scope.recarregar(); |
... | ... | @@ -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 | 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 | 30 | this.atualizarSituacaoAtendimento = function(idRequisicao, situacaoAtendimento){ |
31 | 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 | 39 | AbstractRepository.extend(RequisicaoConsumoRepository); | ... | ... |
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 | <translate>LABEL.VISUALIZAR</translate> |
24 | 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 | 27 | <i class="fa fa-times-circle-o orange"></i> |
28 | 28 | <translate>ALMOXARIFADO.LABEL.INTERROMPER_ATENDIMENTO_INICIADO</translate> |
29 | 29 | </button> | ... | ... |