Commit 5e3de8ac70a2c5642f8202a588776413344b998d

Authored by Ronan Tavares Camargo
1 parent 259f3702
Exists in master

Redmine Atendimento #4999

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java
@@ -11,8 +11,8 @@ import javax.persistence.FetchType; @@ -11,8 +11,8 @@ import javax.persistence.FetchType;
11 import javax.persistence.GeneratedValue; 11 import javax.persistence.GeneratedValue;
12 import javax.persistence.GenerationType; 12 import javax.persistence.GenerationType;
13 import javax.persistence.Id; 13 import javax.persistence.Id;
14 -import javax.persistence.ManyToOne;  
15 import javax.persistence.OneToMany; 14 import javax.persistence.OneToMany;
  15 +import javax.persistence.OneToOne;
16 import javax.persistence.Table; 16 import javax.persistence.Table;
17 import javax.persistence.Temporal; 17 import javax.persistence.Temporal;
18 import javax.persistence.TemporalType; 18 import javax.persistence.TemporalType;
@@ -21,6 +21,7 @@ import javax.persistence.Transient; @@ -21,6 +21,7 @@ import javax.persistence.Transient;
21 import org.hibernate.envers.AuditTable; 21 import org.hibernate.envers.AuditTable;
22 import org.hibernate.envers.Audited; 22 import org.hibernate.envers.Audited;
23 23
  24 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
24 import br.com.centralit.api.framework.json.ViewsAlmoxarifado; 25 import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
25 import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; 26 import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer;
26 import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; 27 import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer;
@@ -93,13 +94,13 @@ public class AtendimentoRequisicaoConsumo extends PersistentObjectAuditOrganizac @@ -93,13 +94,13 @@ public class AtendimentoRequisicaoConsumo extends PersistentObjectAuditOrganizac
93 private String numeroAtendimento; 94 private String numeroAtendimento;
94 95
95 /** Atributo requisicaoConsumo. */ 96 /** Atributo requisicaoConsumo. */
96 - @ManyToOne(fetch = FetchType.LAZY, optional = false) 97 + @OneToOne(fetch = FetchType.LAZY, optional = false)
97 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoListView.class }) 98 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoListView.class })
98 private RequisicaoConsumo requisicaoConsumo; 99 private RequisicaoConsumo requisicaoConsumo;
99 100
100 /** Atributo atendimentoRequisicaoConsumoItems. */ 101 /** Atributo atendimentoRequisicaoConsumoItems. */
101 @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumo", cascade = CascadeType.ALL, orphanRemoval = true) 102 @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumo", cascade = CascadeType.ALL, orphanRemoval = true)
102 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) 103 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
103 private Collection<AtendimentoRequisicaoConsumoItem> atendimentoRequisicaoConsumoItems; 104 private Collection<AtendimentoRequisicaoConsumoItem> atendimentoRequisicaoConsumoItems;
104 105
105 @Transient 106 @Transient
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
@@ -17,6 +17,7 @@ import javax.persistence.Table; @@ -17,6 +17,7 @@ import javax.persistence.Table;
17 import org.hibernate.envers.AuditTable; 17 import org.hibernate.envers.AuditTable;
18 import org.hibernate.envers.Audited; 18 import org.hibernate.envers.Audited;
19 19
  20 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
20 import br.com.centralit.api.framework.json.ViewsAlmoxarifado; 21 import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
21 import br.com.centralit.framework.json.Views; 22 import br.com.centralit.framework.json.Views;
22 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; 23 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
@@ -79,16 +80,16 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -79,16 +80,16 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
79 private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo; 80 private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo;
80 81
81 @ManyToOne(fetch = FetchType.LAZY, optional = false) 82 @ManyToOne(fetch = FetchType.LAZY, optional = false)
82 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class }) 83 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
83 private RequisicaoConsumoItem requisicaoConsumoItem; 84 private RequisicaoConsumoItem requisicaoConsumoItem;
84 85
85 /** Atributo material. */ 86 /** Atributo material. */
86 @ManyToOne(fetch = FetchType.LAZY, optional = false) 87 @ManyToOne(fetch = FetchType.LAZY, optional = false)
87 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) 88 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
88 private MaterialConsumo material; 89 private MaterialConsumo material;
89 90
90 @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumoItem", cascade = CascadeType.ALL, orphanRemoval = true) 91 @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumoItem", cascade = CascadeType.ALL, orphanRemoval = true)
91 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) 92 + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
92 private Collection<AtendimentoRequisicaoConsumoItemEndereco> atendimentoRequisicaoConsumoItemEnderecos; 93 private Collection<AtendimentoRequisicaoConsumoItemEndereco> atendimentoRequisicaoConsumoItemEnderecos;
93 94
94 /** 95 /**
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java
@@ -10,10 +10,12 @@ import javax.persistence.Id; @@ -10,10 +10,12 @@ import javax.persistence.Id;
10 import javax.persistence.JoinColumn; 10 import javax.persistence.JoinColumn;
11 import javax.persistence.ManyToOne; 11 import javax.persistence.ManyToOne;
12 import javax.persistence.Table; 12 import javax.persistence.Table;
  13 +import javax.persistence.Transient;
13 14
14 import org.hibernate.envers.AuditTable; 15 import org.hibernate.envers.AuditTable;
15 import org.hibernate.envers.Audited; 16 import org.hibernate.envers.Audited;
16 17
  18 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
17 import br.com.centralit.api.framework.json.ViewsAlmoxarifado; 19 import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
18 import br.com.centralit.framework.json.Views; 20 import br.com.centralit.framework.json.Views;
19 import br.com.centralit.framework.model.arquitetura.PersistentObject; 21 import br.com.centralit.framework.model.arquitetura.PersistentObject;
@@ -35,17 +37,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { @@ -35,17 +37,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject {
35 @JsonView({ Views.GenericView.class }) 37 @JsonView({ Views.GenericView.class })
36 private Long id; 38 private Long id;
37 39
38 - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class }) 40 + @JsonView({Views.GenericView.class })
39 private BigDecimal quantidade; 41 private BigDecimal quantidade;
40 42
41 @ManyToOne(fetch = FetchType.LAZY, optional = false) 43 @ManyToOne(fetch = FetchType.LAZY, optional = false)
42 - @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class}) 44 + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class})
43 private MaterialLocalEstoque materialLocalEstoque; 45 private MaterialLocalEstoque materialLocalEstoque;
44 46
45 @ManyToOne(fetch = FetchType.LAZY, optional = false) 47 @ManyToOne(fetch = FetchType.LAZY, optional = false)
46 @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class}) 48 @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class})
47 @JoinColumn(name = "at_req_consumoitem_id") 49 @JoinColumn(name = "at_req_consumoitem_id")
48 private AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem; 50 private AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem;
  51 +
  52 + @Transient
  53 + @JsonView({ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
  54 + private BigDecimal quantidadeAnterior;
49 55
50 @Override 56 @Override
51 public Long getId() { 57 public Long getId() {
@@ -80,5 +86,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { @@ -80,5 +86,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject {
80 AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) { 86 AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) {
81 this.atendimentoRequisicaoConsumoItem = atendimentoRequisicaoConsumoItem; 87 this.atendimentoRequisicaoConsumoItem = atendimentoRequisicaoConsumoItem;
82 } 88 }
  89 +
  90 + public BigDecimal getQuantidadeAnterior() {
  91 + if(quantidadeAnterior == null){
  92 + if(quantidade == null){
  93 + quantidadeAnterior = BigDecimal.ZERO;
  94 + }else{
  95 + quantidadeAnterior = quantidade;
  96 + }
  97 + }
  98 +
  99 + return quantidadeAnterior;
  100 + }
  101 +
  102 + public void setQuantidadeAnterior(BigDecimal quantidadeAnterior) {
  103 + this.quantidadeAnterior = quantidadeAnterior;
  104 + }
83 105
84 } 106 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java
@@ -85,7 +85,7 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { @@ -85,7 +85,7 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao {
85 private String sigla; 85 private String sigla;
86 86
87 @Column(name = "descricao", length = 400, nullable = false) 87 @Column(name = "descricao", length = 400, nullable = false)
88 - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) 88 + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
89 private String descricao; 89 private String descricao;
90 90
91 @ManyToOne(fetch = FetchType.LAZY, optional = true) 91 @ManyToOne(fetch = FetchType.LAZY, optional = true)
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoque.java
@@ -18,6 +18,7 @@ import org.hibernate.envers.Audited; @@ -18,6 +18,7 @@ import org.hibernate.envers.Audited;
18 18
19 import com.fasterxml.jackson.annotation.JsonView; 19 import com.fasterxml.jackson.annotation.JsonView;
20 20
  21 +import br.com.centralit.api.framework.json.ViewsAdmMateriais;
21 import br.com.centralit.framework.json.Views; 22 import br.com.centralit.framework.json.Views;
22 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; 23 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
23 import br.com.centralit.framework.util.UtilObjeto; 24 import br.com.centralit.framework.util.UtilObjeto;
@@ -71,7 +72,7 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao { @@ -71,7 +72,7 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao {
71 72
72 /** Atributo material. */ 73 /** Atributo material. */
73 @OneToOne(fetch = FetchType.LAZY, optional = false) 74 @OneToOne(fetch = FetchType.LAZY, optional = false)
74 - @JsonView({ Views.MaterialLocalEstoqueView.class }) 75 + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
75 private MaterialConsumo material; 76 private MaterialConsumo material;
76 77
77 /** Atributo locaisEstoque. */ 78 /** Atributo locaisEstoque. */
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java
@@ -68,7 +68,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { @@ -68,7 +68,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao {
68 68
69 /** Atributo materialEstoque. */ 69 /** Atributo materialEstoque. */
70 @ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.PERSIST) 70 @ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.PERSIST)
71 - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) 71 + @JsonView({Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
72 private MaterialEstoque materialEstoque; 72 private MaterialEstoque materialEstoque;
73 73
74 /** Atributo materialEstoqueInativo. */ 74 /** Atributo materialEstoqueInativo. */
@@ -77,7 +77,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { @@ -77,7 +77,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao {
77 77
78 /** Atributo endereco. */ 78 /** Atributo endereco. */
79 @ManyToOne(fetch = FetchType.LAZY, optional = false) 79 @ManyToOne(fetch = FetchType.LAZY, optional = false)
80 - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) 80 + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
81 private EnderecoEstoque endereco; 81 private EnderecoEstoque endereco;
82 82
83 /** Atributo enderecoInativo. */ 83 /** Atributo enderecoInativo. */
@@ -88,7 +88,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { @@ -88,7 +88,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao {
88 private BigDecimal capacidade; 88 private BigDecimal capacidade;
89 89
90 /** Atributo quantidade. */ 90 /** Atributo quantidade. */
91 - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) 91 + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class })
92 private BigDecimal quantidade = BigDecimal.ZERO; 92 private BigDecimal quantidade = BigDecimal.ZERO;
93 93
94 /** Atributo unidadeMedidaEntrada. */ 94 /** Atributo unidadeMedidaEntrada. */
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java
@@ -13,6 +13,7 @@ import javax.persistence.Id; @@ -13,6 +13,7 @@ import javax.persistence.Id;
13 import javax.persistence.JoinColumn; 13 import javax.persistence.JoinColumn;
14 import javax.persistence.ManyToOne; 14 import javax.persistence.ManyToOne;
15 import javax.persistence.OneToMany; 15 import javax.persistence.OneToMany;
  16 +import javax.persistence.OneToOne;
16 import javax.persistence.Table; 17 import javax.persistence.Table;
17 import javax.persistence.Temporal; 18 import javax.persistence.Temporal;
18 import javax.persistence.TemporalType; 19 import javax.persistence.TemporalType;
@@ -171,6 +172,10 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao { @@ -171,6 +172,10 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
171 @JoinColumn(name = "atendente_id") 172 @JoinColumn(name = "atendente_id")
172 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) 173 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class })
173 private Usuario atendente; 174 private Usuario atendente;
  175 +
  176 + @OneToOne(mappedBy = "requisicaoConsumo", fetch = FetchType.LAZY)
  177 + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class})
  178 + private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo;
174 179
175 /** 180 /**
176 * Retorna o valor do atributo <code>id</code> 181 * Retorna o valor do atributo <code>id</code>
@@ -391,4 +396,12 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao { @@ -391,4 +396,12 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
391 this.atendente = atendente; 396 this.atendente = atendente;
392 } 397 }
393 398
  399 + public AtendimentoRequisicaoConsumo getAtendimentoRequisicaoConsumo() {
  400 + return atendimentoRequisicaoConsumo;
  401 + }
  402 +
  403 + public void setAtendimentoRequisicaoConsumo(
  404 + AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo) {
  405 + this.atendimentoRequisicaoConsumo = atendimentoRequisicaoConsumo;
  406 + }
394 } 407 }
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -317,41 +317,90 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -317,41 +317,90 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
317 } 317 }
318 318
319 $scope.addRequisicaoConsumoAoAtendimento = function(req){ 319 $scope.addRequisicaoConsumoAoAtendimento = function(req){
320 - var atendimento = {requisicaoConsumo : req};  
321 -  
322 - if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){ 320 + if(req.atendimentoRequisicaoConsumo){
  321 + var atendimento = req.atendimentoRequisicaoConsumo;
  322 + delete req.atendimentoRequisicaoConsumo;
  323 +
  324 + atendimento.requisicaoConsumo = req;
  325 +
323 326
324 - atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function (requisicaoConsumoItem) {  
325 - if(!atendimento.atendimentoRequisicaoConsumoItems){  
326 - atendimento.atendimentoRequisicaoConsumoItems = []; 327 + if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){
  328 + var contem = false;
  329 + for(var index = atendimento.atendimentoRequisicaoConsumoItems.length - 1; index >= 0; index--){
  330 + atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function(item){
  331 + if(item.id === atendimento.atendimentoRequisicaoConsumoItems[index].requisicaoConsumoItem.id){
  332 + contem = true;
  333 + }
  334 + });
  335 +
  336 + if(!contem){
  337 + atendimento.atendimentoRequisicaoConsumoItems.splice(index, 1);
  338 + }else{
  339 + contem = false;
  340 + }
327 } 341 }
328 342
329 - var atendimentoItem = {  
330 - material : requisicaoConsumoItem.materialConsumo,  
331 - requisicaoConsumoItem : requisicaoConsumoItem,  
332 - $locaisEstoque: [],  
333 - atendimentoRequisicaoConsumoItemEnderecos: []  
334 - };  
335 -  
336 - MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) {  
337 - result.forEach(function(localEstoque){  
338 - var atendimentoRequisicaoConsumoItemEndereco = {  
339 - materialLocalEstoque: localEstoque.originalElement  
340 - };  
341 -  
342 - atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco);  
343 -  
344 - if(localEstoque.localPrincipal){  
345 - atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.push(atendimentoRequisicaoConsumoItemEndereco);  
346 - } 343 + atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){
  344 + atendimentoItem.$locaisEstoque = [];
  345 + MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(atendimentoItem.material.id, req.almoxarifado.id).then(function(result) {
  346 + result.forEach(function(localEstoque){
  347 + var atendimentoRequisicaoConsumoItemEndereco = {
  348 + materialLocalEstoque: localEstoque.originalElement
  349 + };
  350 +
  351 + atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco);
  352 + });
347 }); 353 });
  354 +
  355 + atendimentoItem.$somaQtdAtendida = 0;
  356 + if(atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.length > 1){
  357 + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.forEach(function(atendimentoItemEndereco){
  358 + atendimentoItem.$somaQtdAtendida += parseFloat(atendimentoItemEndereco.quantidade);
  359 + });
  360 + }
  361 +
  362 + buscarInformacoesParaAtendimento(atendimentoItem);
348 }); 363 });
  364 + $scope.atendimentos.push(atendimento);
  365 + }
  366 +
  367 + }else{
  368 + var atendimento = {requisicaoConsumo : req};
  369 + if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){
349 370
350 - buscarInformacoesParaAtendimento(atendimentoItem);  
351 -  
352 - atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem);  
353 - });  
354 - $scope.atendimentos.push(atendimento); 371 + atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function (requisicaoConsumoItem) {
  372 + if(!atendimento.atendimentoRequisicaoConsumoItems){
  373 + atendimento.atendimentoRequisicaoConsumoItems = [];
  374 + }
  375 +
  376 + var atendimentoItem = {
  377 + material : requisicaoConsumoItem.materialConsumo,
  378 + requisicaoConsumoItem : requisicaoConsumoItem,
  379 + $locaisEstoque: [],
  380 + atendimentoRequisicaoConsumoItemEnderecos: []
  381 + };
  382 +
  383 + MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) {
  384 + result.forEach(function(localEstoque){
  385 + var atendimentoRequisicaoConsumoItemEndereco = {
  386 + materialLocalEstoque: localEstoque.originalElement
  387 + };
  388 +
  389 + atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco);
  390 +
  391 + if(localEstoque.localPrincipal){
  392 + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.push(atendimentoRequisicaoConsumoItemEndereco);
  393 + }
  394 + });
  395 + });
  396 +
  397 + buscarInformacoesParaAtendimento(atendimentoItem);
  398 +
  399 + atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem);
  400 + });
  401 + $scope.atendimentos.push(atendimento);
  402 + }
  403 +
355 } 404 }
356 405
357 if($scope.atendimentoRequisicaoConsumo && $scope.atendimentoRequisicaoConsumo.dataAtendimento){ 406 if($scope.atendimentoRequisicaoConsumo && $scope.atendimentoRequisicaoConsumo.dataAtendimento){
@@ -586,18 +635,25 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -586,18 +635,25 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
586 if(enderecosAdicionados[0] && enderecosAdicionados[0].materialLocalEstoque){ 635 if(enderecosAdicionados[0] && enderecosAdicionados[0].materialLocalEstoque){
587 if(enderecosAdicionados.length > 0){ 636 if(enderecosAdicionados.length > 0){
588 enderecosItem.forEach(function(enderecoItem){ 637 enderecosItem.forEach(function(enderecoItem){
  638 + var contem = false;
589 enderecosAdicionados.forEach(function(enderecoAdicionado){ 639 enderecosAdicionados.forEach(function(enderecoAdicionado){
590 - if(enderecoItem.materialLocalEstoque.id != enderecoAdicionado.materialLocalEstoque.id){  
591 - $scope.listaEnderecosSelect.push(enderecoItem); 640 + if(enderecoItem.materialLocalEstoque.id === enderecoAdicionado.materialLocalEstoque.id){
  641 + contem = true;
592 } 642 }
593 }); 643 });
  644 +
  645 + if(!contem){
  646 + $scope.listaEnderecosSelect.push(enderecoItem);
  647 + }else{
  648 + contem = false;
  649 + }
594 }); 650 });
595 }else{ 651 }else{
596 - $scope.listaEnderecosSelect = enderecosItem; 652 + $scope.listaEnderecosSelect = angular.copy(enderecosItem);
597 } 653 }
598 }else{ 654 }else{
599 enderecosAdicionados = []; 655 enderecosAdicionados = [];
600 - $scope.listaEnderecosSelect = enderecosItem; 656 + $scope.listaEnderecosSelect = angular.copy(enderecosItem);
601 } 657 }
602 658
603 $scope.listaEnderecosAdicionados = enderecosAdicionados; 659 $scope.listaEnderecosAdicionados = enderecosAdicionados;
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
@@ -157,15 +157,12 @@ @@ -157,15 +157,12 @@
157 </table> 157 </table>
158 </td> 158 </td>
159 159
160 - <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida && atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length <= 1" class="text-center"> 160 + <td ng-if="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length <= 1" class="text-center">
161 <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-evento-blur="aplicarValidacaoDecimal" ng-evento-keyup="validarQuantidadesAtendidas()" 161 <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-evento-blur="aplicarValidacaoDecimal" ng-evento-keyup="validarQuantidadesAtendidas()"
162 ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}" 162 ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}"
163 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" /> 163 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" />
164 </td> 164 </td>
165 - <td class="text-center" ng-show="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade == atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida">  
166 - <i class='fa fa-check green' tooltip="{{$translate.instant('ALMOXARIFADO.LABEL.ATENDIDA')}}"></i>  
167 - </td>  
168 - <td ng-if="atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidade != atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.quantidadeAtendida && atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length > 1"> 165 + <td ng-if="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length > 1">
169 <label-input ng-type="text" ng-model="atendimentoRequisicaoConsumoItem.$somaQtdAtendida" ng-disabled="true"></label-input> 166 <label-input ng-type="text" ng-model="atendimentoRequisicaoConsumoItem.$somaQtdAtendida" ng-disabled="true"></label-input>
170 </td> 167 </td>
171 168