Commit fce6165a66f4b351b3cc59db7263c4aa7dfa2ef7
Exists in
master
Merge branch 'tarefa-3822' of http://ferramentasgo.centralit.com.br:8080/scm/git…
…/cit-grp-almoxarifado into tarefa-3822
Showing
9 changed files
with
130 additions
and
30 deletions
Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
@@ -52,7 +52,7 @@ import com.fasterxml.jackson.annotation.JsonView; | @@ -52,7 +52,7 @@ import com.fasterxml.jackson.annotation.JsonView; | ||
52 | */ | 52 | */ |
53 | @Entity | 53 | @Entity |
54 | @Table(name="alm_rc_atendimentoitem") | 54 | @Table(name="alm_rc_atendimentoitem") |
55 | -@JsonIgnoreProperties({"$info", "$verInfo", "$quantidade", "$locaisEstoque"}) | 55 | +@JsonIgnoreProperties({"$info", "$verInfo", "$quantidade", "$locaisEstoque", "$hasError"}) |
56 | public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrganizacao { | 56 | public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrganizacao { |
57 | 57 | ||
58 | /** Atributo serialVersionUID. */ | 58 | /** Atributo serialVersionUID. */ |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java
@@ -255,4 +255,28 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { | @@ -255,4 +255,28 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { | ||
255 | this.capacidade = capacidade; | 255 | this.capacidade = capacidade; |
256 | } | 256 | } |
257 | 257 | ||
258 | + @Override | ||
259 | + public int hashCode() { | ||
260 | + final int prime = 31; | ||
261 | + int result = super.hashCode(); | ||
262 | + result = prime * result + ((id == null) ? 0 : id.hashCode()); | ||
263 | + return result; | ||
264 | + } | ||
265 | + | ||
266 | + @Override | ||
267 | + public boolean equals(Object obj) { | ||
268 | + if (this == obj) | ||
269 | + return true; | ||
270 | + if (!super.equals(obj)) | ||
271 | + return false; | ||
272 | + if (getClass() != obj.getClass()) | ||
273 | + return false; | ||
274 | + MaterialLocalEstoque other = (MaterialLocalEstoque) obj; | ||
275 | + if (id == null) { | ||
276 | + if (other.id != null) | ||
277 | + return false; | ||
278 | + } else if (!id.equals(other.id)) | ||
279 | + return false; | ||
280 | + return true; | ||
281 | + } | ||
258 | } | 282 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/AtendimentoRequisicaoConsumoService.java
@@ -3,6 +3,7 @@ package br.com.centralit.api.service; | @@ -3,6 +3,7 @@ package br.com.centralit.api.service; | ||
3 | import java.util.List; | 3 | import java.util.List; |
4 | 4 | ||
5 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; | 5 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; |
6 | +import br.com.centralit.api.model.MaterialLocalEstoque; | ||
6 | import br.com.centralit.api.viewHelper.InformacoesAtendimentoVH; | 7 | import br.com.centralit.api.viewHelper.InformacoesAtendimentoVH; |
7 | import br.com.centralit.framework.service.arquitetura.GenericService; | 8 | import br.com.centralit.framework.service.arquitetura.GenericService; |
8 | 9 | ||
@@ -69,4 +70,6 @@ public interface AtendimentoRequisicaoConsumoService extends GenericService<Aten | @@ -69,4 +70,6 @@ public interface AtendimentoRequisicaoConsumoService extends GenericService<Aten | ||
69 | 70 | ||
70 | Boolean excluirAtendimentos(List<Long> idsRequisicao, Long idOrganizacao); | 71 | Boolean excluirAtendimentos(List<Long> idsRequisicao, Long idOrganizacao); |
71 | 72 | ||
73 | + List<MaterialLocalEstoque> validarQuantidadesAtendidas(AtendimentoRequisicaoConsumo entity); | ||
74 | + | ||
72 | } | 75 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
@@ -5,6 +5,7 @@ import java.util.ArrayList; | @@ -5,6 +5,7 @@ import java.util.ArrayList; | ||
5 | import java.util.HashMap; | 5 | import java.util.HashMap; |
6 | import java.util.List; | 6 | import java.util.List; |
7 | import java.util.Map; | 7 | import java.util.Map; |
8 | +import java.util.Map.Entry; | ||
8 | 9 | ||
9 | import org.apache.commons.lang3.StringUtils; | 10 | import org.apache.commons.lang3.StringUtils; |
10 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -16,6 +17,7 @@ import br.com.centralit.api.dao.AtendimentoRequisicaoConsumoDao; | @@ -16,6 +17,7 @@ import br.com.centralit.api.dao.AtendimentoRequisicaoConsumoDao; | ||
16 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; | 17 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; |
17 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem; | 18 | import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem; |
18 | import br.com.centralit.api.model.DominioAlmoxarifado; | 19 | import br.com.centralit.api.model.DominioAlmoxarifado; |
20 | +import br.com.centralit.api.model.MaterialLocalEstoque; | ||
19 | import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService; | 21 | import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService; |
20 | import br.com.centralit.api.service.AtendimentoRequisicaoConsumoService; | 22 | import br.com.centralit.api.service.AtendimentoRequisicaoConsumoService; |
21 | import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; | 23 | import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; |
@@ -134,12 +136,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -134,12 +136,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
134 | @Override | 136 | @Override |
135 | public AtendimentoRequisicaoConsumo save(AtendimentoRequisicaoConsumo entity) { | 137 | public AtendimentoRequisicaoConsumo save(AtendimentoRequisicaoConsumo entity) { |
136 | 138 | ||
137 | -// this.validarEntidade(entity, this.validator); | ||
138 | - | 139 | + this.validarEntidade(entity, this.validator); |
140 | + | ||
139 | if (!UtilColecao.isVazio(entity.getAtendimentos())) { | 141 | if (!UtilColecao.isVazio(entity.getAtendimentos())) { |
140 | 142 | ||
141 | for (AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()) { | 143 | for (AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()) { |
142 | - | 144 | + |
143 | if(atendimento.getId() == null && atendimento.getDataAtendimento() == null){ | 145 | if(atendimento.getId() == null && atendimento.getDataAtendimento() == null){ |
144 | atendimento.setDataAtendimento(entity.getDataAtendimento()); | 146 | atendimento.setDataAtendimento(entity.getDataAtendimento()); |
145 | } | 147 | } |
@@ -165,6 +167,37 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -165,6 +167,37 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
165 | return new AtendimentoRequisicaoConsumo(); | 167 | return new AtendimentoRequisicaoConsumo(); |
166 | } | 168 | } |
167 | 169 | ||
170 | + @Override | ||
171 | + public List<MaterialLocalEstoque> validarQuantidadesAtendidas(AtendimentoRequisicaoConsumo entity) { | ||
172 | + Map<MaterialLocalEstoque, BigDecimal> somatorioQuantidadesAtentidasPorMaterial = new HashMap<MaterialLocalEstoque, BigDecimal>(); | ||
173 | + | ||
174 | + for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){ | ||
175 | + for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){ | ||
176 | + | ||
177 | + if(somatorioQuantidadesAtentidasPorMaterial.containsKey(atendimentoItem.getMaterialLocalEstoque())){ | ||
178 | + | ||
179 | + somatorioQuantidadesAtentidasPorMaterial.put(atendimentoItem.getMaterialLocalEstoque(), | ||
180 | + somatorioQuantidadesAtentidasPorMaterial.get(atendimentoItem.getMaterialLocalEstoque()).add(atendimentoItem.getQuantidade())); | ||
181 | + | ||
182 | + }else{ | ||
183 | + somatorioQuantidadesAtentidasPorMaterial.put(atendimentoItem.getMaterialLocalEstoque(), atendimentoItem.getQuantidade()); | ||
184 | + } | ||
185 | + } | ||
186 | + } | ||
187 | + | ||
188 | + List<MaterialLocalEstoque> materiaisRejeitados = new ArrayList<MaterialLocalEstoque>(); | ||
189 | + | ||
190 | + for(Entry<MaterialLocalEstoque, BigDecimal> somaItem : somatorioQuantidadesAtentidasPorMaterial.entrySet()){ | ||
191 | + | ||
192 | + if(somaItem.getValue().compareTo(somaItem.getKey().getQuantidade()) > 0){ | ||
193 | + materiaisRejeitados.add(somaItem.getKey()); | ||
194 | + } | ||
195 | + } | ||
196 | + | ||
197 | + return materiaisRejeitados; | ||
198 | + | ||
199 | + } | ||
200 | + | ||
168 | /** | 201 | /** |
169 | * | 202 | * |
170 | * Método responsável por | 203 | * Método responsável por |
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/AtendimentoRequisicaoConsumoController.java
@@ -212,5 +212,13 @@ public class AtendimentoRequisicaoConsumoController extends GenericController<At | @@ -212,5 +212,13 @@ public class AtendimentoRequisicaoConsumoController extends GenericController<At | ||
212 | return this.atendimentoRequisicaoConsumoService.excluirAtendimentos(atendimentoVH.getIdsRequisicao(), atendimentoVH.getIdOrganizacao()); | 212 | return this.atendimentoRequisicaoConsumoService.excluirAtendimentos(atendimentoVH.getIdsRequisicao(), atendimentoVH.getIdOrganizacao()); |
213 | 213 | ||
214 | } | 214 | } |
215 | + | ||
216 | + @RequestMapping(value = "/validaQuantidadesAtendidas", method = RequestMethod.POST) | ||
217 | + @ResponseBody | ||
218 | + public ResponseBodyWrapper validaQuantidadesAtendidas(@RequestBody AtendimentoRequisicaoConsumo entity){ | ||
219 | + | ||
220 | + return new ResponseBodyWrapper(this.atendimentoRequisicaoConsumoService.validarQuantidadesAtendidas(entity), this.getEditView()); | ||
221 | + | ||
222 | + } | ||
215 | 223 | ||
216 | } | 224 | } |
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -411,6 +411,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | @@ -411,6 +411,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat | ||
411 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.DATA_FINALIZACAO_FORA_REFERENCIA", "Exclusão não permitida. Data de finalização da requisição %s fora da referência vigente.", dominio, modulo)); | 411 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.DATA_FINALIZACAO_FORA_REFERENCIA", "Exclusão não permitida. Data de finalização da requisição %s fora da referência vigente.", dominio, modulo)); |
412 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO", "O atendimento será realizado para os materiais selecionados na busca avançada.", dominio, modulo)); | 412 | internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFO_FILTRO_MATERIAL_REQUISICAO", "O atendimento será realizado para os materiais selecionados na busca avançada.", dominio, modulo)); |
413 | 413 | ||
414 | + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO", "Remover requisição deste atendimento", dominio, modulo)); | ||
415 | + | ||
414 | } | 416 | } |
415 | } | 417 | } |
416 | 418 |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -85,6 +85,22 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | @@ -85,6 +85,22 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
85 | } | 85 | } |
86 | }); | 86 | }); |
87 | }; | 87 | }; |
88 | + | ||
89 | + $scope.removerRequisicaoDoAtendimento = function(index){ | ||
90 | + $scope.$openModalConfirm({ | ||
91 | + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), | ||
92 | + callback: function(){ | ||
93 | + $scope.atendimentos.splice(index, 1); | ||
94 | + | ||
95 | + $scope.$modalConfirmInstance.dismiss('cancel'); | ||
96 | + | ||
97 | + if($scope.atendimentos.length == 0){ | ||
98 | + $scope.$showPageSearchWorkspace($scope.workspace); | ||
99 | + $scope.atualizaPaginaPesquisa(); | ||
100 | + } | ||
101 | + } | ||
102 | + }); | ||
103 | + }; | ||
88 | 104 | ||
89 | 105 | ||
90 | // Limpa o formulario preenchido | 106 | // Limpa o formulario preenchido |
@@ -374,15 +390,30 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | @@ -374,15 +390,30 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
374 | $scope.finalizarRequisicoes($scope.atendimentoRequisicaoConsumo); | 390 | $scope.finalizarRequisicoes($scope.atendimentoRequisicaoConsumo); |
375 | } else { | 391 | } else { |
376 | $scope.setLoadingSalva(true); | 392 | $scope.setLoadingSalva(true); |
377 | - AtendimentoRequisicaoConsumoRepository.save($scope.atendimentoRequisicaoConsumo).then(function(result) { | ||
378 | - $scope.resetForm(); | ||
379 | - $scope.listaSelecionados = []; | ||
380 | - $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); | ||
381 | - $scope.atendimentoRequisicaoConsumoForm.$submitted = false; | ||
382 | - $scope.$modalInstance.dismiss('cancel'); | ||
383 | - angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); | ||
384 | - $scope.resetForm(); | ||
385 | - $scope.setLoading(false); | 393 | + AtendimentoRequisicaoConsumoRepository.validaQuantidadesAtendidas($scope.atendimentoRequisicaoConsumo).then(function(result){ |
394 | + if(result.length > 0){ | ||
395 | + result.forEach(function(localEstoque){ | ||
396 | + $scope.atendimentos.forEach(function(atendimento){ | ||
397 | + atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){ | ||
398 | + if(atendimentoItem.materialLocalEstoque.id === localEstoque.id){ | ||
399 | + atendimentoItem.$hasError = true; | ||
400 | + } | ||
401 | + }); | ||
402 | + }); | ||
403 | + }); | ||
404 | + $scope.setLoading(false); | ||
405 | + }else{ | ||
406 | + AtendimentoRequisicaoConsumoRepository.save($scope.atendimentoRequisicaoConsumo).then(function(result) { | ||
407 | + $scope.resetForm(); | ||
408 | + $scope.listaSelecionados = []; | ||
409 | + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); | ||
410 | + $scope.atendimentoRequisicaoConsumoForm.$submitted = false; | ||
411 | + $scope.$modalInstance.dismiss('cancel'); | ||
412 | + angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); | ||
413 | + $scope.resetForm(); | ||
414 | + $scope.setLoading(false); | ||
415 | + }); | ||
416 | + } | ||
386 | }); | 417 | }); |
387 | } | 418 | } |
388 | } else { | 419 | } else { |
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/AtendimentoRequisicaoConsumoRepository.js
@@ -30,6 +30,10 @@ citApp.factory('AtendimentoRequisicaoConsumoRepository', ['RestangularAlmoxarifa | @@ -30,6 +30,10 @@ citApp.factory('AtendimentoRequisicaoConsumoRepository', ['RestangularAlmoxarifa | ||
30 | return restangularAlmoxarifado.all(this.route + '/excluirAtendimentos').post(atendimentoVH).then(); | 30 | return restangularAlmoxarifado.all(this.route + '/excluirAtendimentos').post(atendimentoVH).then(); |
31 | }; | 31 | }; |
32 | 32 | ||
33 | + this.validaQuantidadesAtendidas = function(atendimentoRequisicaoConsumo){ | ||
34 | + return restangularAlmoxarifado.all(this.route + "/validaQuantidadesAtendidas").post(atendimentoRequisicaoConsumo).then(); | ||
35 | + }; | ||
36 | + | ||
33 | } | 37 | } |
34 | 38 | ||
35 | AbstractRepository.extend(AtendimentoRequisicaoConsumoRepository); | 39 | AbstractRepository.extend(AtendimentoRequisicaoConsumoRepository); |
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
@@ -9,21 +9,13 @@ | @@ -9,21 +9,13 @@ | ||
9 | </button> | 9 | </button> |
10 | <ul class="dropdown-menu-center dropdown-menu dropdown-caret" role="menu"> | 10 | <ul class="dropdown-menu-center dropdown-menu dropdown-caret" role="menu"> |
11 | <li> | 11 | <li> |
12 | - <a href="#void" ng-click="saveEdit(false)" ><i class="fa fa-file-text-o red"></i> <translate>ALMOXARIFADO.LABEL.SALVAR_APENAS</translate></a> | 12 | + <a href="#void" ng-click="saveOrUpdate(false, atendimentoRequisicaoConsumoForm)" ><i class="fa fa-file-text-o red"></i> <translate>ALMOXARIFADO.LABEL.SALVAR_APENAS</translate></a> |
13 | </li> | 13 | </li> |
14 | <li> | 14 | <li> |
15 | - <a href="#void" ng-click="saveEdit(true)" ><i class="fa fa-file-text green"></i> <translate>ALMOXARIFADO.LABEL.SALVAR_E_FINALIZAR_REQUISICOES</translate></a> | 15 | + <a href="#void" ng-click="saveOrUpdate(false, atendimentoRequisicaoConsumoForm)" ><i class="fa fa-file-text green"></i> <translate>ALMOXARIFADO.LABEL.SALVAR_E_FINALIZAR_REQUISICOES</translate></a> |
16 | </li> | 16 | </li> |
17 | </ul> | 17 | </ul> |
18 | </div> | 18 | </div> |
19 | - <button class="btn btn-clear" ng-show="!edit" ng-click="edit = true"> | ||
20 | - <i class="fa fa-pencil blue"></i> | ||
21 | - <translate>LABEL.EDITAR</translate> | ||
22 | - </button> | ||
23 | -<!-- <button class="btn btn-clear" ng-click="removerAtendimentoRequisicao();" ng-show="edit"> --> | ||
24 | -<!-- <i class="fa fa-times red"></i> --> | ||
25 | -<!-- <translate>LABEL.REMOVER</translate> --> | ||
26 | -<!-- </button> --> | ||
27 | <button class="btn btn-clear" ng-click="$showPageSearchWorkspace(workspace); atualizaPaginaPesquisa();"> | 19 | <button class="btn btn-clear" ng-click="$showPageSearchWorkspace(workspace); atualizaPaginaPesquisa();"> |
28 | <i class="fa fa-search"></i> | 20 | <i class="fa fa-search"></i> |
29 | <translate>LABEL.PESQUISAR</translate> | 21 | <translate>LABEL.PESQUISAR</translate> |
@@ -45,9 +37,9 @@ | @@ -45,9 +37,9 @@ | ||
45 | 37 | ||
46 | <fieldset id="tableAtendimentos" ng-show="atendimentos.length > 0"> | 38 | <fieldset id="tableAtendimentos" ng-show="atendimentos.length > 0"> |
47 | <legend id="top"> | 39 | <legend id="top"> |
48 | - <label ng-class="{'has-error' : formDialogAtendimento.$submitted && atendimentos && atendimentos.length < 1}"> | 40 | + <label ng-class="{'has-error' : atendimentoRequisicaoConsumoForm.$submitted && atendimentos && atendimentos.length < 1}"> |
49 | <translate>ALMOXARIFADO.LABEL.DADOS_ATENDIMENTO_REQUISICAO_CONSUMO</translate> | 41 | <translate>ALMOXARIFADO.LABEL.DADOS_ATENDIMENTO_REQUISICAO_CONSUMO</translate> |
50 | - <span class='red'>*</span> <i ng-show="formDialogAtendimento.$submitted && atendimentos && atendimentos.length < 1" | 42 | + <span class='red'>*</span> <i ng-show="atendimentoRequisicaoConsumoForm.$submitted && atendimentos && atendimentos.length < 1" |
51 | class='fa fa-warning red' | 43 | class='fa fa-warning red' |
52 | tooltip="{{$translate.instant('DADOS_ATENDIMENTO_REQUISICAO_CONSUMO') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" | 44 | tooltip="{{$translate.instant('DADOS_ATENDIMENTO_REQUISICAO_CONSUMO') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" |
53 | tooltip-placement='top'></i> | 45 | tooltip-placement='top'></i> |
@@ -61,11 +53,11 @@ | @@ -61,11 +53,11 @@ | ||
61 | <div class="row"> | 53 | <div class="row"> |
62 | <div class="col-md-6"> | 54 | <div class="col-md-6"> |
63 | <label-input-data ng-id="atendimentoRequisicaoConsumo.dataAtendimento" ng-label="ALMOXARIFADO.LABEL.DATA_ATENDIMENTO" | 55 | <label-input-data ng-id="atendimentoRequisicaoConsumo.dataAtendimento" ng-label="ALMOXARIFADO.LABEL.DATA_ATENDIMENTO" |
64 | - ng-model="atendimentoRequisicaoConsumo.dataAtendimento" form="formDialogAtendimento" ng-obrigatorio="true" | 56 | + ng-model="atendimentoRequisicaoConsumo.dataAtendimento" form="atendimentoRequisicaoConsumoForm" ng-obrigatorio="true" |
65 | ng-disabled="!edit" ng-mode="day" ng-format="dd/MM/yyyy" /> | 57 | ng-disabled="!edit" ng-mode="day" ng-format="dd/MM/yyyy" /> |
66 | </div> | 58 | </div> |
67 | </div> | 59 | </div> |
68 | - <div style="margin-top: 20px" ng-repeat="atendimento in atendimentos"> | 60 | + <div style="margin-top: 20px;" ng-repeat="atendimento in atendimentos"> |
69 | <div class="widget-box margin-bottom"> | 61 | <div class="widget-box margin-bottom"> |
70 | <div class="widget-header"> | 62 | <div class="widget-header"> |
71 | <h2 class="widget-title" style="font-size: 16px !important"> | 63 | <h2 class="widget-title" style="font-size: 16px !important"> |
@@ -75,6 +67,9 @@ | @@ -75,6 +67,9 @@ | ||
75 | <a href="#void" ng-click="widgetAtendimentoCollapsed = !widgetAtendimentoCollapsed"> | 67 | <a href="#void" ng-click="widgetAtendimentoCollapsed = !widgetAtendimentoCollapsed"> |
76 | <i class="fa" ng-class="{'fa-chevron-up': widgetAtendimentoCollapsed, 'fa-chevron-down': !widgetAtendimentoCollapsed}"></i> | 68 | <i class="fa" ng-class="{'fa-chevron-up': widgetAtendimentoCollapsed, 'fa-chevron-down': !widgetAtendimentoCollapsed}"></i> |
77 | </a> | 69 | </a> |
70 | + <a href="#void" style="margin-left: 3px" ng-click="removerRequisicaoDoAtendimento($index) "> | ||
71 | + <i class="fa fa-trash-o bigger-130 red" tooltip="{{$translate.instant('ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO')}}"></i> | ||
72 | + </a> | ||
78 | </div> | 73 | </div> |
79 | </div> | 74 | </div> |
80 | <div collapse="!widgetAtendimentoCollapsed" class="widget-body"> | 75 | <div collapse="!widgetAtendimentoCollapsed" class="widget-body"> |
@@ -122,7 +117,7 @@ | @@ -122,7 +117,7 @@ | ||
122 | </tr> | 117 | </tr> |
123 | </thead> | 118 | </thead> |
124 | <tbody> | 119 | <tbody> |
125 | - <tr ng-repeat-start="atendimentoRequisicaoConsumoItem in atendimento.atendimentoRequisicaoConsumoItems"> | 120 | + <tr ng-repeat-start="atendimentoRequisicaoConsumoItem in atendimento.atendimentoRequisicaoConsumoItems" ng-class="atendimentoRequisicaoConsumoItem.$hasError ? 'danger' : ''"> |
126 | <td class="text-center" ng-show="edit"> | 121 | <td class="text-center" ng-show="edit"> |
127 | <button type="button" ng-click="atendimentoRequisicaoConsumoItem.$verInfo = !atendimentoRequisicaoConsumoItem.$verInfo"> | 122 | <button type="button" ng-click="atendimentoRequisicaoConsumoItem.$verInfo = !atendimentoRequisicaoConsumoItem.$verInfo"> |
128 | <i class="ace-icon fa {{atendimentoRequisicaoConsumoItem.$verInfo ? 'fa-minus' : 'fa-plus'}} bigger-125"></i> | 123 | <i class="ace-icon fa {{atendimentoRequisicaoConsumoItem.$verInfo ? 'fa-minus' : 'fa-plus'}} bigger-125"></i> |
@@ -141,14 +136,14 @@ | @@ -141,14 +136,14 @@ | ||
141 | <td class="text-center"> | 136 | <td class="text-center"> |
142 | <label-select ng-id="atendimentoRequisicaoConsumoItem.materialLocalEstoque$index" ng-obrigatorio="true" | 137 | <label-select ng-id="atendimentoRequisicaoConsumoItem.materialLocalEstoque$index" ng-obrigatorio="true" |
143 | ng-model="atendimentoRequisicaoConsumoItem.materialLocalEstoque.id" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque" | 138 | ng-model="atendimentoRequisicaoConsumoItem.materialLocalEstoque.id" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque" |
144 | - form="formDialogAtendimento" | 139 | + form="atendimentoRequisicaoConsumoForm" |
145 | ng-custom-options="materialLocalEstoque.id as materialLocalEstoque.endereco.descricao for materialLocalEstoque"></label-select> | 140 | ng-custom-options="materialLocalEstoque.id as materialLocalEstoque.endereco.descricao for materialLocalEstoque"></label-select> |
146 | 141 | ||
147 | </td> | 142 | </td> |
148 | 143 | ||
149 | <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida" class="text-center"> | 144 | <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida" class="text-center"> |
150 | <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-obrigatorio="true" ng-evento-blur="aplicarValidacaoDecimal" | 145 | <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-obrigatorio="true" ng-evento-blur="aplicarValidacaoDecimal" |
151 | - ng-model="atendimentoRequisicaoConsumoItem.quantidade" form="formDialogAtendimento" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}" | 146 | + ng-model="atendimentoRequisicaoConsumoItem.quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}" |
152 | ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" /> | 147 | ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" /> |
153 | </td> | 148 | </td> |
154 | <td class="text-center" ng-show="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade == atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida"> | 149 | <td class="text-center" ng-show="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade == atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida"> |