Commit 05ebd335278ec7f22836feb552777f28ebde18bb

Authored by Ronan Tavares Camargo
2 parents 19bdd101 65144306
Exists in master

Merge branch 'tarefa-3822' of http://ferramentasgo.centralit.com.br:8080/scm/git…

…/cit-grp-almoxarifado into tarefa-3822
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&lt;
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&lt;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&lt;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&lt;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( &#39;AtendimentoRequisicaoConsumoController&#39;,
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(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;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(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;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(&#39;RequisicaoConsumoRepository&#39;, [&#39;RestangularAlmoxarifado&#39;, &#39;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>
... ...