Commit 52dc0c10d4eb9e3df449a5210dc7e3f2c32c08ea

Authored by erick.sato
1 parent 4c092b18
Exists in master

[Redmine #5011]Impedimento para atendimento simultâneos na mesma requisição

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java
... ... @@ -10,6 +10,7 @@ import javax.persistence.FetchType;
10 10 import javax.persistence.GeneratedValue;
11 11 import javax.persistence.GenerationType;
12 12 import javax.persistence.Id;
  13 +import javax.persistence.JoinColumn;
13 14 import javax.persistence.ManyToOne;
14 15 import javax.persistence.OneToMany;
15 16 import javax.persistence.Table;
... ... @@ -26,6 +27,7 @@ import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer;
26 27 import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer;
27 28 import br.com.centralit.framework.json.Views;
28 29 import br.com.centralit.framework.model.Dominio;
  30 +import br.com.centralit.framework.model.Usuario;
29 31 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
30 32  
31 33 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
... ... @@ -68,8 +70,8 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
68 70 @Audited
69 71 @AuditTable(value = "alm_requisicaoconsumo_aud")
70 72 @Entity
71   -@Table(name="alm_requisicaoconsumo")
72   -@JsonIgnoreProperties({"$checked"})
  73 +@Table(name = "alm_requisicaoconsumo")
  74 +@JsonIgnoreProperties({ "$checked" })
73 75 public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
74 76  
75 77 public static final Long TIPO_STATUS_REQUISICAO_NAO_CONCLUIDA_CODIGO = 1L;
... ... @@ -88,17 +90,22 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
88 90 /** Atributo id. */
89 91 @Id
90 92 @GeneratedValue(strategy = GenerationType.AUTO)
91   - @JsonView({ Views.GenericView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class })
  93 + @JsonView({ Views.GenericView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class,
  94 + ViewsAlmoxarifado.DevolucaoEditView.class })
92 95 private Long id;
93 96  
94 97 /** Atributo almoxaifado. */
95 98 @ManyToOne(fetch = FetchType.LAZY, optional = false)
96   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoListView.class, ViewsAlmoxarifado.DevolucaoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  99 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  100 + ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoListView.class,
  101 + ViewsAlmoxarifado.DevolucaoEditView.class, Views.MaterialConsultaInfo.class,
  102 + ViewsAdmMateriais.RequisicaoConsumo.class })
97 103 private EstruturaOrganizacional almoxarifado;
98 104  
99 105 /** Atributo centroCusto. */
100 106 @ManyToOne(fetch = FetchType.LAZY)
101   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  107 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class,
  108 + ViewsAdmMateriais.RequisicaoConsumo.class })
102 109 private CentroCusto centroCusto;
103 110  
104 111 /** Atributo dataRequisicao. */
... ... @@ -106,28 +113,33 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
106 113 @Temporal(TemporalType.TIMESTAMP)
107 114 @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
108 115 @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
109   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
110   - ViewsAlmoxarifado.DevolucaoListView.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  116 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  117 + ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
  118 + ViewsAlmoxarifado.DevolucaoListView.class, ViewsAdmMateriais.RequisicaoConsumo.class })
111 119 private Calendar dataRequisicao;
112 120  
113 121 @Column(name = "dataFinalizacaoAtendimento", nullable = true)
114 122 @Temporal(TemporalType.TIMESTAMP)
115 123 @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
116 124 @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
117   - @JsonView({ ViewsAlmoxarifado.DevolucaoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoListView.class,
118   - Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  125 + @JsonView({ ViewsAlmoxarifado.DevolucaoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class,
  126 + ViewsAlmoxarifado.DevolucaoListView.class, Views.MaterialConsultaInfo.class,
  127 + ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumo.class })
119 128 private Calendar dataFinalizacaoAtendimento;
120 129  
121 130 /** Atributo materiais. */
122 131 @OneToMany(fetch = FetchType.LAZY, mappedBy = "requisicaoConsumo", cascade = CascadeType.ALL, orphanRemoval = true)
123   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
124   - Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  132 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  133 + ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
  134 + Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
125 135 private Collection<RequisicaoConsumoItem> requisicaoConsumoItens;
126 136  
127 137 /** Atributo numeroRequisicao. */
128 138 @Column(length = 30)
129   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
130   - ViewsAlmoxarifado.DevolucaoListView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  139 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  140 + ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoEditView.class,
  141 + ViewsAlmoxarifado.DevolucaoListView.class, Views.MaterialConsultaInfo.class,
  142 + ViewsAdmMateriais.RequisicaoConsumo.class })
131 143 private String numeroRequisicao;
132 144  
133 145 /** Atributo observacoes. */
... ... @@ -138,16 +150,27 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
138 150  
139 151 /** Atributo statusRequisicao. */
140 152 @ManyToOne(fetch = FetchType.LAZY, optional = false)
141   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAdmMateriais.AtendimentoRequisicaoConsumoItemView.class, Views.MaterialConsultaInfo.class,
142   - ViewsAdmMateriais.RequisicaoConsumo.class })
  153 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  154 + ViewsAdmMateriais.AtendimentoRequisicaoConsumoItemView.class, Views.MaterialConsultaInfo.class,
  155 + ViewsAdmMateriais.RequisicaoConsumo.class })
143 156 private Dominio tipoStatusRequisicao;
144 157  
145 158 /** Atributo unidadeRequisitante. */
146 159 @ManyToOne(fetch = FetchType.LAZY, optional = false)
147   - @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoListView.class,
148   - ViewsAlmoxarifado.DevolucaoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumo.class })
  160 + @JsonView({ ViewsAdmMateriais.RequisicaoConsumoEditView.class,
  161 + ViewsAlmoxarifado.RequisicaoConsumoAutoCompleteView.class, ViewsAlmoxarifado.DevolucaoListView.class,
  162 + ViewsAlmoxarifado.DevolucaoEditView.class, Views.MaterialConsultaInfo.class,
  163 + ViewsAdmMateriais.RequisicaoConsumo.class })
149 164 private EstruturaOrganizacional unidadeRequisitante;
150 165  
  166 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
  167 + private boolean emAtendimento;
  168 +
  169 + @ManyToOne(fetch = FetchType.LAZY)
  170 + @JoinColumn(name = "atendente_id")
  171 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
  172 + private Usuario atendente;
  173 +
151 174 /**
152 175 * Retorna o valor do atributo <code>id</code>
153 176 *
... ... @@ -351,4 +374,20 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
351 374 this.dataFinalizacaoAtendimento = dataFinalizacaoAtendimento;
352 375 }
353 376  
  377 + public boolean isEmAtendimento() {
  378 + return emAtendimento;
  379 + }
  380 +
  381 + public void setEmAtendimento(boolean emAtendimento) {
  382 + this.emAtendimento = emAtendimento;
  383 + }
  384 +
  385 + public Usuario getAtendente() {
  386 + return atendente;
  387 + }
  388 +
  389 + public void setAtendente(Usuario atendente) {
  390 + this.atendente = atendente;
  391 + }
  392 +
354 393 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/RequisicaoConsumoService.java
... ... @@ -129,4 +129,6 @@ public interface RequisicaoConsumoService extends GenericService&lt;RequisicaoConsu
129 129  
130 130 List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH);
131 131  
  132 + Boolean atualizarSituacaoAtendimento(Long idRequisicao, boolean situacaoAtendimento);
  133 +
132 134 }
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoServiceImpl.java
... ... @@ -522,7 +522,31 @@ public class RequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;RequisicaoC
522 522  
523 523 @Override
524 524 public List<RequisicaoConsumo> findRequisicoesParaAtendimento(AtendimentoVH atendimentoVH) {
525   - return this.requisicaoConsumoDao.findRequisicoesParaAtendimento(atendimentoVH);
  525 + List<RequisicaoConsumo> requisicoes = this.requisicaoConsumoDao.findRequisicoesParaAtendimento(atendimentoVH);
  526 + this.atualizarStatusAtendimento(requisicoes);
  527 + return requisicoes;
  528 + }
  529 +
  530 + private void atualizarStatusAtendimento(List<RequisicaoConsumo> requisicoes) {
  531 + Usuario usuarioLogado = (Usuario) usuarioService.find(( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() ).getId());
  532 + for (RequisicaoConsumo requisicaoConsumo : requisicoes) {
  533 + requisicaoConsumo.setEmAtendimento(Boolean.TRUE);
  534 + requisicaoConsumo.setAtendente(usuarioLogado);
  535 + super.merge(requisicaoConsumo);
  536 + flush();
  537 + }
  538 +
  539 + }
  540 +
  541 + @Override
  542 + public Boolean atualizarSituacaoAtendimento(Long idRequisicao, boolean situacaoAtendimento) {
  543 + RequisicaoConsumo requisicaoConsumo = this.find(idRequisicao);
  544 + requisicaoConsumo.setEmAtendimento(situacaoAtendimento);
  545 + if(!situacaoAtendimento){
  546 + requisicaoConsumo.setAtendente(null);
  547 + }
  548 + super.merge(requisicaoConsumo);
  549 + return true;
526 550 }
527 551  
528 552 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/RequisicaoConsumoController.java
... ... @@ -239,4 +239,14 @@ public class RequisicaoConsumoController extends GenericController&lt;RequisicaoCon
239 239 return responseBody;
240 240 }
241 241  
  242 + @RequestMapping(value = "/atualizarSituacaoAtendimento", method = RequestMethod.GET, produces = "application/json")
  243 + @ResponseBody
  244 + public ResponseBodyWrapper atualizarSituacaoAtendimento(@RequestParam(value = "idRequisicao") Long idRequisicao, @RequestParam(value = "situacaoAtendimento") boolean situacaoAtendimento) {
  245 +
  246 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.requisicaoConsumoService.atualizarSituacaoAtendimento(idRequisicao, situacaoAtendimento), getEditView());
  247 +
  248 + return responseBody;
  249 + }
  250 +
  251 +
242 252 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
... ... @@ -329,6 +329,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
329 329 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.LIMPAR_BUSCA_AVANCADA", "Limpar busca avançada", dominio, modulo));
330 330  
331 331 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ATENDIMENTO_REQUISICAO", "Atendimento de requisição consumo", dominio, modulo));
  332 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ATENDIMENTO_INICIADO", "Atendimento iniciado", dominio, modulo));
  333 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.INTERROMPER_ATENDIMENTO_INICIADO", "Interromper atendimento iniciado", dominio, modulo));
332 334 }
333 335  
334 336 private void gerarValidacao(Dominio dominio, Modulo modulo, List<Internacionalizacao> internacionalizacaoList) {
... ... @@ -417,6 +419,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
417 419 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO", "O atendimento será realizado para os materiais selecionados na busca avançada.", dominio, modulo));
418 420  
419 421 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO", "Remover requisição deste atendimento", dominio, modulo));
  422 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REQUISICAO_EM_ATENDIMENTO", "está em atendimento pelo atendente ", dominio, modulo));
  423 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO", "Desmarque esta requisição de consumo para prosseguir o atendimento.", dominio, modulo));
420 424  
421 425 }
422 426 }
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
... ... @@ -90,14 +90,16 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
90 90 $scope.$openModalConfirm({
91 91 message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
92 92 callback: function(){
93   - $scope.atendimentos.splice(index, 1);
  93 + var requisicaoRemover = $scope.atendimentos[index];
  94 + RequisicaoConsumoRepository.atualizarSituacaoAtendimento(requisicaoRemover.requisicaoConsumo.id, false).then(function(result) {
  95 + $scope.atendimentos.splice(index, 1);
  96 + $scope.$modalConfirmInstance.dismiss('cancel');
  97 + if($scope.atendimentos.length == 0){
  98 + $scope.$showPageSearchWorkspace($scope.workspace);
  99 + $scope.atualizaPaginaPesquisa();
  100 + }
  101 + });
94 102  
95   - $scope.$modalConfirmInstance.dismiss('cancel');
96   -
97   - if($scope.atendimentos.length == 0){
98   - $scope.$showPageSearchWorkspace($scope.workspace);
99   - $scope.atualizaPaginaPesquisa();
100   - }
101 103 }
102 104 });
103 105 };
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoListController.js
... ... @@ -6,6 +6,7 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
6 6 function AtendimentoRequisicaoConsumoListController($scope, AtendimentoRequisicaoConsumoRepository, $translate,
7 7 $timeout, DominioRepository, RequisicaoConsumoRepository, EstruturaOrganizacionalAlmoxarifadoRepository, MaterialConsumoRepository, $filter) {
8 8 $scope.$showAdvancedFilters = false;
  9 + $scope.permiteInterromperAtendimento = false;
9 10 $scope.listaSelecionados = [];
10 11 $scope.resetForm = function() {
11 12 angular.element("#editAtendimentoRequisicaoConsumo").scope().resetForm();
... ... @@ -22,19 +23,22 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
22 23 {title : $translate.instant('ALMOXARIFADO.LABEL.STATUS_REQUISICAO'), value : 'tipoStatusRequisicao.descricao' } ,
23 24 {title : $translate.instant('ALMOXARIFADO.LABEL.DATA_REQUISICAO'), value : 'dataRequisicao' , filter : 'dateBR', tamanho : 28} ,
24 25 {title : $translate.instant('ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE'), value : 'unidadeRequisitante.nome' } ,
25   - {title : $translate.instant('ALMOXARIFADO.LABEL.ALMOXARIFADO'), value : 'almoxarifado.nome' } ];
  26 + {title : $translate.instant('ALMOXARIFADO.LABEL.ALMOXARIFADO'), value : 'almoxarifado.nome' },
  27 + {title : $translate.instant('ALMOXARIFADO.LABEL.ATENDIMENTO_INICIADO'), value : 'emAtendimento'}];
26 28 // DIFINE FILTROS DE PESQUISA E CAMPOS QUE DEVEM SER APRESENTADOS NA LISTAGEM
27 29 $scope.filterCriteria = {
28 30 start : 1,
29 31 dir : 'asc',
30 32 sort : 'desc:numeroRequisicao;tipoStatusRequisicao.codigo',
31 33 limit : 10,
32   - fields: ['id', 'numeroRequisicao', 'tipoStatusRequisicao.descricao', 'dataRequisicao', 'unidadeRequisitante.nome', 'almoxarifado.nome', 'tipoStatusRequisicao.codigo'],
  34 + fields: ['id', 'numeroRequisicao', 'tipoStatusRequisicao.descricao', 'dataRequisicao', 'unidadeRequisitante.nome', 'almoxarifado.nome', 'tipoStatusRequisicao.codigo',
  35 + 'emAtendimento', 'atendente.id', 'atendente.username'],
33 36 filters : [ {type : 'numeric-range', field : 'numeroRequisicao' } ,
34 37 {type : 'dominio', field : 'tipoStatusRequisicao.descricao', listaDominio : []} ,
35 38 {type : 'date-range', field : 'dataRequisicao' } ,
36 39 {type : 'string', field : 'unidadeRequisitante.nome' } ,
37   - {type : 'string', field : 'almoxarifado.nome' } ]
  40 + {type : 'string', field : 'almoxarifado.nome' },
  41 + {type : 'boolean', field : 'emAtendimento' }]
38 42 };
39 43  
40 44 $scope.filterCriteria.filters.push({type: 'string', field: 'tipoStatusRequisicao.nome', value: 'DEVOLVIDA', comparison: 'ne', notFilter : true});
... ... @@ -108,6 +112,13 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
108 112 permiteAtender = false;
109 113 $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.MSG.NAO_PERMITIDO_ATENDER_REQUISICAO_FINALIZADA'));
110 114 }
  115 + if(requisicaoSelecionado.emAtendimento && requisicaoSelecionado['atendente.id'] != $scope.usuarioLogado.id){
  116 + permiteAtender = false;
  117 + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.LABEL.REQUISICAO_CONSUMO') + ' ' + requisicaoSelecionado.numeroRequisicao
  118 + + ' ' + $translate.instant('ALMOXARIFADO.MSG.REQUISICAO_EM_ATENDIMENTO') + ' ' + requisicaoSelecionado['atendente.username']
  119 + + ' ' + $translate.instant('ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO'));
  120 + return;
  121 + }
111 122 });
112 123  
113 124 if(permiteAtender){
... ... @@ -323,4 +334,5 @@ citApp.controller(&#39;AtendimentoRequisicaoConsumoListController&#39;, [&#39;$scope&#39;, &#39;Aten
323 334  
324 335 };
325 336  
  337 +
326 338 }]);
327 339 \ No newline at end of file
... ...
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/RequisicaoConsumoRepository.js
... ... @@ -26,6 +26,10 @@ citApp.factory(&#39;RequisicaoConsumoRepository&#39;, [&#39;RestangularAlmoxarifado&#39;, &#39;Abstr
26 26 this.filtrarRequisicoesAtendimento = function(atendimentoVH) {
27 27 return this.restangular.all(this.route+ "/filtrarRequisicoesAtendimento").post(atendimentoVH);
28 28 };
  29 +
  30 + this.atualizarSituacaoAtendimento = function(idRequisicao, situacaoAtendimento){
  31 + return this.restangular.one(this.route + "/atualizarSituacaoAtendimento").get({'idRequisicao': idRequisicao, 'situacaoAtendimento': situacaoAtendimento}).then();
  32 + };
29 33 }
30 34  
31 35 AbstractRepository.extend(RequisicaoConsumoRepository);
... ...
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoList.html
... ... @@ -23,6 +23,11 @@
23 23 <translate>LABEL.VISUALIZAR</translate>
24 24 </button>
25 25  
  26 + <button ng-show="permiteInterromperAtendimento" class="btn btn-clear" ng-click="interromperAtendimentoIniciado()">
  27 + <i class="fa fa-times-circle-o orange"></i>
  28 + <translate>ALMOXARIFADO.LABEL.INTERROMPER_ATENDIMENTO_INICIADO</translate>
  29 + </button>
  30 +
26 31 <span class="divider-vertical"></span>
27 32  
28 33 <filtros ng-filter="filterCriteria" ng-workspace="workspace"></filtros>
... ... @@ -58,7 +63,7 @@
58 63  
59 64 <list-view ng-lista="atendimentoRequisicaoConsumoList" ng-repository="RequisicaoConsumoRepository" ng-use-custom-remove="false"
60 65 ng-headers="headers" ng-filter-criteria="filterCriteria" ng-item-selecionado="atendimentoRequisicaoConsumoChecked"
61   - ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true"
  66 + ng-lista-itens-selecionados="listaSelecionados" ng-check-on="true" ng-exibir-boolean-sim-nao="true"
62 67 set-total-pages="setTotalPages" set-total-itens="setTotalItens"
63 68 use-custom-filter-temp="filtrarCustomizado" ng-custom-filter="filtrarRequisicoes()"></list-view>
64 69  
... ...