Commit fce6165a66f4b351b3cc59db7263c4aa7dfa2ef7

Authored by erick.sato
2 parents bcb1df9d cee37d24
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/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&lt; @@ -134,12 +136,12 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
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&lt; @@ -165,6 +167,37 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
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&lt;At @@ -212,5 +212,13 @@ public class AtendimentoRequisicaoConsumoController extends GenericController&lt;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( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -85,6 +85,22 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
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( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -374,15 +390,30 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
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(&#39;AtendimentoRequisicaoConsumoRepository&#39;, [&#39;RestangularAlmoxarifa @@ -30,6 +30,10 @@ citApp.factory(&#39;AtendimentoRequisicaoConsumoRepository&#39;, [&#39;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">