Commit 15e3278f2c1160ce0c520f32696d73639539e81f

Authored by erick.sato
2 parents 134f8d97 c35acfcc
Exists in master

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

…/cit-grp-almoxarifado into tarefa-3822

# Conflicts:
#	cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
1 package br.com.centralit.api.model; 1 package br.com.centralit.api.model;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.util.Collection;
4 5
  6 +import javax.persistence.CascadeType;
5 import javax.persistence.Entity; 7 import javax.persistence.Entity;
6 import javax.persistence.FetchType; 8 import javax.persistence.FetchType;
7 import javax.persistence.GeneratedValue; 9 import javax.persistence.GeneratedValue;
@@ -9,6 +11,7 @@ import javax.persistence.GenerationType; @@ -9,6 +11,7 @@ import javax.persistence.GenerationType;
9 import javax.persistence.Id; 11 import javax.persistence.Id;
10 import javax.persistence.JoinColumn; 12 import javax.persistence.JoinColumn;
11 import javax.persistence.ManyToOne; 13 import javax.persistence.ManyToOne;
  14 +import javax.persistence.OneToMany;
12 import javax.persistence.Table; 15 import javax.persistence.Table;
13 16
14 import org.hibernate.envers.AuditTable; 17 import org.hibernate.envers.AuditTable;
@@ -84,13 +87,9 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -84,13 +87,9 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
84 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) 87 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
85 private MaterialConsumo material; 88 private MaterialConsumo material;
86 89
87 - /** Atributo quantidade. */  
88 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class })  
89 - private BigDecimal quantidade;  
90 -  
91 - @ManyToOne(fetch = FetchType.LAZY, optional = false)  
92 - @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class})  
93 - private MaterialLocalEstoque materialLocalEstoque; 90 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumoItem", cascade = CascadeType.ALL, orphanRemoval = true)
  91 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
  92 + private Collection<AtendimentoRequisicaoConsumoItemEndereco> atendimentoRequisicaoConsumoItemEnderecos;
94 93
95 /** 94 /**
96 * Retorna o valor do atributo <code>id</code> 95 * Retorna o valor do atributo <code>id</code>
@@ -153,26 +152,6 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -153,26 +152,6 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
153 } 152 }
154 153
155 /** 154 /**
156 - * Retorna o valor do atributo <code>quantidade</code>  
157 - *  
158 - * @return <code>BigDecimal</code>  
159 - */  
160 - public BigDecimal getQuantidade() {  
161 -  
162 - return quantidade;  
163 - }  
164 -  
165 - /**  
166 - * Define o valor do atributo <code>quantidade</code>.  
167 - *  
168 - * @param quantidade  
169 - */  
170 - public void setQuantidade(BigDecimal quantidade) {  
171 -  
172 - this.quantidade = quantidade;  
173 - }  
174 -  
175 - /**  
176 * Retorna o valor do atributo <code>requisicaoConsumoItem</code> 155 * Retorna o valor do atributo <code>requisicaoConsumoItem</code>
177 * 156 *
178 * @return <code>RequisicaoConsumoItem</code> 157 * @return <code>RequisicaoConsumoItem</code>
@@ -192,11 +171,23 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -192,11 +171,23 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
192 this.requisicaoConsumoItem = requisicaoConsumoItem; 171 this.requisicaoConsumoItem = requisicaoConsumoItem;
193 } 172 }
194 173
195 - public MaterialLocalEstoque getMaterialLocalEstoque() {  
196 - return materialLocalEstoque; 174 + public Collection<AtendimentoRequisicaoConsumoItemEndereco> getAtendimentoRequisicaoConsumoItemEnderecos() {
  175 + return atendimentoRequisicaoConsumoItemEnderecos;
197 } 176 }
198 177
199 - public void setMaterialLocalEstoque(MaterialLocalEstoque materialLocalEstoque) {  
200 - this.materialLocalEstoque = materialLocalEstoque; 178 + public void setAtendimentoRequisicaoConsumoItemEnderecos(Collection<AtendimentoRequisicaoConsumoItemEndereco> atendimentoRequisicaoConsumoItemEnderecos) {
  179 + this.atendimentoRequisicaoConsumoItemEnderecos = atendimentoRequisicaoConsumoItemEnderecos;
  180 + }
  181 +
  182 + public BigDecimal getQuantidade(){
  183 + BigDecimal quantidade = BigDecimal.ZERO;
  184 +
  185 + if(atendimentoRequisicaoConsumoItemEnderecos != null){
  186 + for(AtendimentoRequisicaoConsumoItemEndereco itemEndereco : atendimentoRequisicaoConsumoItemEnderecos){
  187 + quantidade = quantidade.add(itemEndereco.getQuantidade());
  188 + }
  189 + }
  190 +
  191 + return quantidade;
201 } 192 }
202 } 193 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java 0 → 100644
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
  1 +package br.com.centralit.api.model;
  2 +
  3 +import java.math.BigDecimal;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.FetchType;
  7 +import javax.persistence.GeneratedValue;
  8 +import javax.persistence.GenerationType;
  9 +import javax.persistence.Id;
  10 +import javax.persistence.JoinColumn;
  11 +import javax.persistence.ManyToOne;
  12 +import javax.persistence.Table;
  13 +
  14 +import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
  15 +import br.com.centralit.framework.json.Views;
  16 +import br.com.centralit.framework.model.arquitetura.PersistentObject;
  17 +
  18 +import com.fasterxml.jackson.annotation.JsonView;
  19 +
  20 +@Entity
  21 +@Table(name = "alm_rc_at_item_endereco")
  22 +public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject {
  23 +
  24 + private static final long serialVersionUID = 1L;
  25 +
  26 + @Id
  27 + @GeneratedValue(strategy = GenerationType.AUTO)
  28 + @JsonView({ Views.GenericView.class })
  29 + private Long id;
  30 +
  31 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class })
  32 + private BigDecimal quantidade;
  33 +
  34 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  35 + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class})
  36 + private MaterialLocalEstoque materialLocalEstoque;
  37 +
  38 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  39 + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class})
  40 + @JoinColumn(name = "at_req_consumoitem_id")
  41 + private AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem;
  42 +
  43 + @Override
  44 + public Long getId() {
  45 + return this.id;
  46 + }
  47 +
  48 + public void setId(Long id) {
  49 + this.id = id;
  50 + }
  51 +
  52 + public BigDecimal getQuantidade() {
  53 + return quantidade;
  54 + }
  55 +
  56 + public void setQuantidade(BigDecimal quantidade) {
  57 + this.quantidade = quantidade;
  58 + }
  59 +
  60 + public MaterialLocalEstoque getMaterialLocalEstoque() {
  61 + return materialLocalEstoque;
  62 + }
  63 +
  64 + public void setMaterialLocalEstoque(MaterialLocalEstoque materialLocalEstoque) {
  65 + this.materialLocalEstoque = materialLocalEstoque;
  66 + }
  67 +
  68 + public AtendimentoRequisicaoConsumoItem getAtendimentoRequisicaoConsumoItem() {
  69 + return atendimentoRequisicaoConsumoItem;
  70 + }
  71 +
  72 + public void setAtendimentoRequisicaoConsumoItem(
  73 + AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) {
  74 + this.atendimentoRequisicaoConsumoItem = atendimentoRequisicaoConsumoItem;
  75 + }
  76 +
  77 +}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
@@ -16,6 +16,7 @@ import org.springframework.validation.Validator; @@ -16,6 +16,7 @@ import org.springframework.validation.Validator;
16 import br.com.centralit.api.dao.AtendimentoRequisicaoConsumoDao; 16 import br.com.centralit.api.dao.AtendimentoRequisicaoConsumoDao;
17 import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; 17 import br.com.centralit.api.model.AtendimentoRequisicaoConsumo;
18 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem; 18 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
  19 +import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItemEndereco;
19 import br.com.centralit.api.model.DominioAlmoxarifado; 20 import br.com.centralit.api.model.DominioAlmoxarifado;
20 import br.com.centralit.api.model.MaterialLocalEstoque; 21 import br.com.centralit.api.model.MaterialLocalEstoque;
21 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService; 22 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService;
@@ -180,14 +181,16 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -180,14 +181,16 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
180 181
181 for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){ 182 for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){
182 for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){ 183 for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){
183 -  
184 - if(somatorioQuantidadesAtentidasPorMaterial.containsKey(atendimentoItem.getMaterialLocalEstoque())){  
185 -  
186 - somatorioQuantidadesAtentidasPorMaterial.put(atendimentoItem.getMaterialLocalEstoque(),  
187 - somatorioQuantidadesAtentidasPorMaterial.get(atendimentoItem.getMaterialLocalEstoque()).add(atendimentoItem.getQuantidade())); 184 + for(AtendimentoRequisicaoConsumoItemEndereco itemEndereco : atendimentoItem.getAtendimentoRequisicaoConsumoItemEnderecos()){
188 185
189 - }else{  
190 - somatorioQuantidadesAtentidasPorMaterial.put(atendimentoItem.getMaterialLocalEstoque(), atendimentoItem.getQuantidade()); 186 + if(somatorioQuantidadesAtentidasPorMaterial.containsKey(itemEndereco.getMaterialLocalEstoque())){
  187 +
  188 + somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(),
  189 + somatorioQuantidadesAtentidasPorMaterial.get(itemEndereco.getMaterialLocalEstoque()).add(itemEndereco.getQuantidade()));
  190 +
  191 + }else{
  192 + somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(), itemEndereco.getQuantidade());
  193 + }
191 } 194 }
192 } 195 }
193 } 196 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
@@ -415,10 +415,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -415,10 +415,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
415 415
416 for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : atendimento.getAtendimentoRequisicaoConsumoItems()) { 416 for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : atendimento.getAtendimentoRequisicaoConsumoItems()) {
417 417
418 - if(atendimentoRequisicaoConsumoItem.getQuantidade() == null){  
419 - atendimentoRequisicaoConsumoItem.setQuantidade(new BigDecimal(0));;  
420 - }  
421 -  
422 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade()); 418 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
423 BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade()); 419 BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
424 420
cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java
@@ -421,6 +421,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat @@ -421,6 +421,7 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat
421 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REMOVER_REQUISICAO_ATENDIMENTO", "Remover requisição deste atendimento", dominio, modulo)); 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)); 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)); 423 internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DESMARQUE_REQUISICAO_EM_ATENDIMENTO", "Desmarque esta requisição de consumo para prosseguir o atendimento.", dominio, modulo));
  424 + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.ATENDER_MAIS_DE_UM_ENDERECO", "Atender utilizando mais de um endereco", dominio, modulo));
424 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)); 425 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));
425 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)); 426 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));
426 427
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -358,20 +358,25 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -358,20 +358,25 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
358 var atendimentoItem = { 358 var atendimentoItem = {
359 material : requisicaoConsumoItem.materialConsumo, 359 material : requisicaoConsumoItem.materialConsumo,
360 requisicaoConsumoItem : requisicaoConsumoItem, 360 requisicaoConsumoItem : requisicaoConsumoItem,
361 - $locaisEstoque: [] 361 + $locaisEstoque: [],
  362 + atendimentoRequisicaoConsumoItemEnderecos: []
362 }; 363 };
363 364
364 MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) { 365 MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) {
365 - atendimentoItem.$locaisEstoque = result;  
366 -  
367 result.forEach(function(localEstoque){ 366 result.forEach(function(localEstoque){
  367 + var atendimentoRequisicaoConsumoItemEndereco = {
  368 + materialLocalEstoque: localEstoque.originalElement
  369 + };
  370 +
  371 + atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco);
  372 +
368 if(localEstoque.localPrincipal){ 373 if(localEstoque.localPrincipal){
369 - atendimentoItem.materialLocalEstoque = localEstoque.originalElement; 374 + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.push(atendimentoRequisicaoConsumoItemEndereco);
370 } 375 }
371 }); 376 });
372 }); 377 });
373 378
374 - buscarInformacoesParaAtendimento(atendimentoItem); 379 + //buscarInformacoesParaAtendimento(atendimentoItem);
375 380
376 atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem); 381 atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem);
377 }); 382 });
@@ -550,5 +555,20 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -550,5 +555,20 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
550 $scope.apresentarInfoAtendimentoItem = function(atendimento){ 555 $scope.apresentarInfoAtendimentoItem = function(atendimento){
551 atendimento.$verInfo = !atendimento.$verInfo; 556 atendimento.$verInfo = !atendimento.$verInfo;
552 }; 557 };
  558 +
  559 + $scope.openModalEnderecosMaterial = function(enderecosItem, enderecosAdicionados){
  560 + $scope.listaEnderecosSelect = [];
  561 + $scope.listaEnderecosAdicionados = enderecosAdicionados;
  562 +
  563 + enderecosItem.forEach(function(enderecoItem){
  564 + enderecosAdicionados.forEach(function(enderecoAdicionado){
  565 + if(enderecoItem.materialLocalEstoque.id != enderecoAdicionado.materialLocalEstoque.id){
  566 + $scope.listaEnderecosSelect.push(enderecoItem);
  567 + }
  568 + });
  569 + });
  570 +
  571 + $scope.$openModal('modal-atendimento-item-enderecos.html', 'md');
  572 + }
553 573
554 }]); 574 }]);
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
@@ -113,7 +113,7 @@ @@ -113,7 +113,7 @@
113 <th class="text-center"><translate>ALMOXARIFADO.LABEL.QUANTIDADE_PEDIDA</translate></th> 113 <th class="text-center"><translate>ALMOXARIFADO.LABEL.QUANTIDADE_PEDIDA</translate></th>
114 <th class="text-center"><translate>ALMOXARIFADO.LABEL.QUANTIDADE_ATENDIDA</translate></th> 114 <th class="text-center"><translate>ALMOXARIFADO.LABEL.QUANTIDADE_ATENDIDA</translate></th>
115 <th class="text-center" width="20%"><translate>ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE</translate></th> 115 <th class="text-center" width="20%"><translate>ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE</translate></th>
116 - <th class="text-center"><translate>ALMOXARIFADO.LABEL.ATENDER</translate><span class="red">*</span></th> 116 + <th class="text-center"><translate>ALMOXARIFADO.LABEL.ATENDER</translate><span class="red"> *</span></th>
117 </tr> 117 </tr>
118 </thead> 118 </thead>
119 <tbody> 119 <tbody>
@@ -137,16 +137,25 @@ @@ -137,16 +137,25 @@
137 - atendimentoRequisicaoConsumoItem.$quantidade}}</td> 137 - atendimentoRequisicaoConsumoItem.$quantidade}}</td>
138 138
139 <td class="text-center"> 139 <td class="text-center">
140 - <label-select ng-id="atendimentoRequisicaoConsumoItem.materialLocalEstoque$index" ng-obrigatorio="true"  
141 - ng-model="atendimentoRequisicaoConsumoItem.materialLocalEstoque.id" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque"  
142 - form="atendimentoRequisicaoConsumoForm"  
143 - ng-custom-options="materialLocalEstoque.id as materialLocalEstoque.endereco.descricao for materialLocalEstoque"></label-select>  
144 - 140 + <table style="width: 100%">
  141 + <tr>
  142 + <td>
  143 + <label-select ng-id="atendimentoRequisicaoConsumoItem.materialLocalEstoque$index" ng-obrigatorio="true"
  144 + ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0]" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque"
  145 + form="atendimentoRequisicaoConsumoForm"
  146 + ng-custom-options="atendimentoRequisicaoConsumoItemEndereco as atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.endereco.descricao for atendimentoRequisicaoConsumoItemEndereco"></label-select>
  147 + </td>
  148 + <td style="padding-left: 8px; text-align: right;">
  149 + <i class="fa fa-plus green" style="cursor: pointer;" ng-click="openModalEnderecosMaterial(atendimentoRequisicaoConsumoItem.$locaisEstoque, atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos)"
  150 + tooltip="{{$translate.instant('ALMOXARIFADO.MSG.ATENDER_MAIS_DE_UM_ENDERECO')}}"/>
  151 + </td>
  152 + </tr>
  153 + </table>
145 </td> 154 </td>
146 155
147 <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida" class="text-center"> 156 <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida" class="text-center">
148 <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-obrigatorio="true" ng-evento-blur="aplicarValidacaoDecimal" 157 <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-obrigatorio="true" ng-evento-blur="aplicarValidacaoDecimal"
149 - ng-model="atendimentoRequisicaoConsumoItem.quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}" 158 + ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}"
150 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" /> 159 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" />
151 </td> 160 </td>
152 <td class="text-center" ng-show="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade == atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida"> 161 <td class="text-center" ng-show="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade == atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida">
@@ -226,5 +235,9 @@ @@ -226,5 +235,9 @@
226 </div> 235 </div>
227 </fieldset> 236 </fieldset>
228 </div> 237 </div>
  238 +
  239 + <script type="text/ng-template" id="modal-atendimento-item-enderecos.html">
  240 + <div ng-include src="'/cit-almoxarifado-web/html/atendimentoRequisicaoConsumo/dialog_atendimento_item_enderecos.html'" />
  241 + </script>
229 </form> 242 </form>
230 </div> 243 </div>
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/dialog_atendimento_item_enderecos.html 0 → 100644
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
  1 +<div class="modal-header">
  2 + <button class="btn btn-clear" type="button"
  3 + title="{{$translate.instant('ALMOXARIFADO.LABEL.FILTRAR')}}"
  4 + alt="{{$translate.instant('ALMOXARIFADO.LABEL.FILTRAR')}}"
  5 + ng-click="filtrarRequisicoes();">
  6 + <i class="fa fa-plus-circle yellow-dark"></i>
  7 + <translate>ALMOXARIFADO.LABEL.FILTRAR</translate>
  8 + </button>
  9 +
  10 + <button title="{{$translate.instant('LABEL.LIMPAR')}}"
  11 + alt="{{$translate.instant('LABEL.LIMPAR')}}"
  12 + ng-click="limparBuscaAvancada()" class="btn btn-clear" type="button">
  13 + <i class="fa fa-eraser"></i>
  14 + <translate>LABEL.LIMPAR</translate>
  15 + </button>
  16 +
  17 + <button title="{{$translate.instant('LABEL.CANCELAR')}}"
  18 + alt="{{$translate.instant('LABEL.CANCELAR')}}"
  19 + ng-click="$dismiss('cancel');" class="btn btn-clear" type="button">
  20 + <i class="fa fa-times red"></i>
  21 + <translate>LABEL.CANCELAR</translate>
  22 + </button>
  23 +</div>
  24 +
  25 +<div class="modal-body">
  26 + <legend style="font-size: 20px">
  27 + <translate>LABEL.MATERIAIS</translate>
  28 + </legend>
  29 +
  30 + <div class="row">
  31 + <div class="col-md-12">
  32 + <label-select ng-id="selectEnderecosMaterial" ng-obrigatorio="true"
  33 + ng-model="enderecoSelecionado" ng-list="listaEnderecosSelect"
  34 + ng-custom-options="atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.endereco.descricao for atendimentoRequisicaoConsumoItemEndereco"></label-select>
  35 + </div>
  36 + </div>
  37 + <div class="row">
  38 + <div class="col-sm-12">
  39 + <div class="panel panel-default">
  40 + <div class="panel-heading clearfix">
  41 + <button class="btn btn-clear" type="button"
  42 + <i class="fa fa-times red"></i>
  43 + <translate>LABEL.REMOVER</translate>
  44 + </button>
  45 + </div>
  46 + <table class="table table-bordered table-striped">
  47 + <thead>
  48 + <tr>
  49 + <th style="width: 3%;" class="text-center"><input type="checkbox" ng-model="filtroAtendimento.unidadeRequisitanteSelectedAll" ng-click="selectAllUnidadesRequisitantes(unidadeRequisitanteSelectedAll)" /></th>
  50 + <th style="text-align: center"><translate>ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE</translate></th>
  51 + <th style="text-align: center"><translate>ALMOXARIFADO.LABEL.SALDO_ENDERECO</translate></th>
  52 + <th style="text-align: center"><translate>ALMOXARIFADO.LABEL.ATENDER</translate></th>
  53 + </tr>
  54 + </thead>
  55 + <tbody ng-repeat="atendimentoRequisicaoConsumoItemEndereco in listaEnderecosAdicionados">
  56 + <tr>
  57 + <td class="text-center"><input type="checkbox" ng-checked="unidadeRequisitanteSelecionada.$checkedChBox" ng-model="unidadeRequisitanteSelecionada.$checkedChBox" /></td>
  58 + <td class="text-center">{{atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.endereco.descricao}}</td>
  59 + <td class="text-center">{{atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.quantidade}}</td>
  60 + <td class="text-center">
  61 + <label-input-decimal ng-id="atendimentoRequisicaoConsumoItemEndereco.quantidade" ng-obrigatorio="true" ng-evento-blur="aplicarValidacaoDecimal"
  62 + ng-model="atendimentoRequisicaoConsumoItemEndereco.quantidade" form="atendimentoRequisicaoConsumoForm"
  63 + ng-custom-maxlength="{{atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.materialEstoque.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}"
  64 + ng-precisao="{{atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.materialEstoque.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" />
  65 + </td>
  66 + </tr>
  67 + </tbody>
  68 + </table>
  69 + </div>
  70 + </div>
  71 + </div>
  72 +</div>