Commit 7a3f8066fb11eefe0f5f85b9f16ea2296518aebf

Authored by Ronan Tavares Camargo
1 parent ddef4fa3
Exists in master

Atendimento #4943

cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java
1 package br.com.centralit.api.dao; 1 package br.com.centralit.api.dao;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.util.ArrayList;
4 import java.util.Calendar; 5 import java.util.Calendar;
5 import java.util.Collection; 6 import java.util.Collection;
6 import java.util.List; 7 import java.util.List;
7 -import java.util.Map;  
8 8
9 import br.com.centralit.api.model.EstruturaOrganizacional; 9 import br.com.centralit.api.model.EstruturaOrganizacional;
10 import br.com.centralit.api.model.MaterialConsumo; 10 import br.com.centralit.api.model.MaterialConsumo;
@@ -116,7 +116,7 @@ public interface MovimentoEstoqueDao extends CitGenericDAO { @@ -116,7 +116,7 @@ public interface MovimentoEstoqueDao extends CitGenericDAO {
116 * @param dataFim 116 * @param dataFim
117 * @return 117 * @return
118 */ 118 */
119 - List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao); 119 + List<ArrayList<Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao);
120 120
121 /** 121 /**
122 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 122 * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p>
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java
1 package br.com.centralit.api.dao.impl; 1 package br.com.centralit.api.dao.impl;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
  4 +import java.util.ArrayList;
4 import java.util.Calendar; 5 import java.util.Calendar;
5 import java.util.Collection; 6 import java.util.Collection;
  7 +import java.util.HashMap;
6 import java.util.List; 8 import java.util.List;
7 import java.util.Map; 9 import java.util.Map;
8 10
@@ -13,6 +15,7 @@ import org.springframework.stereotype.Repository; @@ -13,6 +15,7 @@ import org.springframework.stereotype.Repository;
13 15
14 import br.com.centralit.api.dao.MovimentoEstoqueDao; 16 import br.com.centralit.api.dao.MovimentoEstoqueDao;
15 import br.com.centralit.api.model.DominioAlmoxarifado; 17 import br.com.centralit.api.model.DominioAlmoxarifado;
  18 +import br.com.centralit.api.model.DominioMaterial;
16 import br.com.centralit.api.model.EstruturaOrganizacional; 19 import br.com.centralit.api.model.EstruturaOrganizacional;
17 import br.com.centralit.api.model.MaterialConsumo; 20 import br.com.centralit.api.model.MaterialConsumo;
18 import br.com.centralit.api.model.MovimentoEstoque; 21 import br.com.centralit.api.model.MovimentoEstoque;
@@ -25,8 +28,6 @@ import br.com.centralit.framework.util.UtilColecao; @@ -25,8 +28,6 @@ import br.com.centralit.framework.util.UtilColecao;
25 import br.com.centralit.framework.util.UtilObjeto; 28 import br.com.centralit.framework.util.UtilObjeto;
26 29
27 import com.googlecode.genericdao.search.Field; 30 import com.googlecode.genericdao.search.Field;
28 -import com.googlecode.genericdao.search.Filter;  
29 -import com.googlecode.genericdao.search.Search;  
30 31
31 /** 32 /**
32 * <p> 33 * <p>
@@ -173,38 +174,69 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M @@ -173,38 +174,69 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M
173 /** 174 /**
174 * {@inheritDoc} 175 * {@inheritDoc}
175 */ 176 */
  177 + @SuppressWarnings("unchecked")
176 @Override 178 @Override
177 - public List<Map<String, Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao) {  
178 -  
179 - SearchSeven search = new SearchSeven(); 179 + public List<ArrayList<Object>> getQuantidadeMaterialAtendido(MaterialConsumo materialConsumo, EstruturaOrganizacional almoxarifado, EstruturaOrganizacional unidadeRequisitante, Calendar dataInicio, Calendar dataFim, List<Long> idsDominiosTipoStatusRequisicao) {
180 180
181 - search.setResultMode(Search.RESULT_MAP); 181 + Map<String, Object> parametros = new HashMap<String, Object>();
  182 + StringBuilder sql = new StringBuilder();
182 183
183 - search.addField("atendimentoRequisicaoConsumoItem.quantidade"); 184 + sql.append("select atendimento.dataAtendimento, atendimentoItem.quantidade from alm_me_movimentoestoque me ");
  185 + sql.append(" inner join dominio dominio on dominio.id = me.dominioClasseReferencia_id ");
  186 + sql.append(" left join alm_rc_atendimentoitem atendimentoItem on atendimentoItem.id = me.idClasseReferencia ");
  187 + sql.append(" left join alm_rc_atendimento atendimento on atendimento.id = atendimentoItem.AtendimentoReqConsumo_Id ");
  188 + sql.append(" left join alm_rc_item rci on rci.id = atendimentoItem.requisicaoConsumoItem_id ");
  189 + sql.append(" left join alm_requisicaoconsumo rc on rc.id = rci.requisicaoConsumo_id ");
184 190
185 - search.addField("atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumo.dataAtendimento"); 191 + sql.append(" where dominio.codigo = :codigoDominio and dominio.chave = :chaveDominio ");
186 192
187 - search.addFilterEqual("material.id", materialConsumo.getId()); 193 + parametros.put("codigoDominio", DominioMaterial.REFERENCIA_ATENDIMENTO_ALMOXARIFADO_ITEM);
  194 + parametros.put("chaveDominio", "classeReferencia");
188 195
189 - search.addFilterEqual("atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.requisicaoConsumo.almoxarifado.id", almoxarifado.getId()); 196 + sql.append(" and me.material_id = :materialConsumoId ");
  197 + parametros.put("materialConsumoId", materialConsumo.getId());
  198 +
  199 + sql.append(" and rc.almoxarifado_id = :almoxarifadoId ");
  200 + parametros.put("almoxarifadoId", almoxarifado.getId());
190 201
191 if(UtilObjeto.isReferencia(unidadeRequisitante)){ 202 if(UtilObjeto.isReferencia(unidadeRequisitante)){
192 203
193 - search.addFilterEqual("atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.requisicaoConsumo.unidadeRequisitante.id", unidadeRequisitante.getId()); 204 + sql.append(" and rc.unidadeRequisitante_id = :unidadeRequisitanteId ");
  205 + parametros.put("unidadeRequisitanteId", unidadeRequisitante.getId());
194 } 206 }
195 207
196 if(!UtilColecao.isVazio(idsDominiosTipoStatusRequisicao)){ 208 if(!UtilColecao.isVazio(idsDominiosTipoStatusRequisicao)){
197 - search.addFilterIn("atendimentoRequisicaoConsumoItem.requisicaoConsumoItem.requisicaoConsumo.tipoStatusRequisicao.id", idsDominiosTipoStatusRequisicao); 209 +
  210 + sql.append(" and rc.tipoStatusRequisicao_id in ").append(addFilterIn(idsDominiosTipoStatusRequisicao));
198 } 211 }
199 212
200 if(UtilObjeto.isReferencia(dataInicio) && UtilObjeto.isReferencia(dataFim)){ 213 if(UtilObjeto.isReferencia(dataInicio) && UtilObjeto.isReferencia(dataFim)){
201 214
202 - search.addFilterAnd(  
203 - Filter.greaterOrEqual("atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumo.dataAtendimento", dataInicio),  
204 - Filter.lessOrEqual("atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumo.dataAtendimento", dataFim)); 215 + sql.append(" and (atendimento.dataAtendimento >= :dataInicio and atendimento.dataAtendimento <= :dataFim) ");
  216 + parametros.put("dataInicio", dataInicio);
  217 + parametros.put("dataFim", dataFim);
  218 + }
  219 +
  220 + Query query = em().createNativeQuery(sql.toString());
  221 +
  222 + for(java.util.Map.Entry<String, Object> parametro : parametros.entrySet()){
  223 + query.setParameter(parametro.getKey(), parametro.getValue());
205 } 224 }
206 225
207 - return this.search(search); 226 + return query.getResultList();
  227 + }
  228 +
  229 + private String addFilterIn(List<Long> ids){
  230 + String in = "(";
  231 +
  232 + for (Long id : ids) {
  233 + in += id + ",";
  234 + }
  235 +
  236 + in = in.substring(0, in.length() - 1);
  237 +
  238 + in += ")";
  239 + return in;
208 } 240 }
209 241
210 @Override 242 @Override
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
@@ -82,6 +82,10 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -82,6 +82,10 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
82 /** Atributo quantidade. */ 82 /** Atributo quantidade. */
83 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class }) 83 @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class })
84 private BigDecimal quantidade; 84 private BigDecimal quantidade;
  85 +
  86 + @ManyToOne(fetch = FetchType.LAZY, optional = false)
  87 + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class})
  88 + private MaterialLocalEstoque materialLocalEstoque;
85 89
86 /** 90 /**
87 * Retorna o valor do atributo <code>id</code> 91 * Retorna o valor do atributo <code>id</code>
@@ -183,4 +187,11 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -183,4 +187,11 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
183 this.requisicaoConsumoItem = requisicaoConsumoItem; 187 this.requisicaoConsumoItem = requisicaoConsumoItem;
184 } 188 }
185 189
  190 + public MaterialLocalEstoque getMaterialLocalEstoque() {
  191 + return materialLocalEstoque;
  192 + }
  193 +
  194 + public void setMaterialLocalEstoque(MaterialLocalEstoque materialLocalEstoque) {
  195 + this.materialLocalEstoque = materialLocalEstoque;
  196 + }
186 } 197 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java
@@ -179,31 +179,31 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI @@ -179,31 +179,31 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
179 179
180 Calendar ultimoDiaAnoAtual = UtilDate.dateToCalendar(UtilDate.getUltimoDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()))); 180 Calendar ultimoDiaAnoAtual = UtilDate.dateToCalendar(UtilDate.getUltimoDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual())));
181 181
182 -// informacoesAtendimentoVH.setConsumoExercicioAtual(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),  
183 -// requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),  
184 -// primeiroDiaAnoAtual, ultimoDiaAnoAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));  
185 -//  
186 -// Calendar primeiroDiaAnoAnterior = UtilDate.dateToCalendar(UtilDate.getPrimeiroDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()) - 1));  
187 -//  
188 -// Calendar ultimoDiaAnoAnterior = UtilDate.dateToCalendar(UtilDate.getUltimoDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()) - 1));  
189 -//  
190 -// informacoesAtendimentoVH.setConsumoExercicioAnterior(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),  
191 -// requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),  
192 -// primeiroDiaAnoAnterior, ultimoDiaAnoAnterior, Boolean.FALSE, idsDominiosTipoStatusRequisicao));  
193 -//  
194 -// Calendar data12MesesAtras = UtilDate.dateToCalendar(UtilDate.somaMeses(UtilDate.calendarUltimoDiaDoMes(Calendar.getInstance()).getTime(), -12));  
195 -//  
196 -// Calendar dataMesAtual = UtilDate.calendarUltimoDiaDoMes(Calendar.getInstance());  
197 -//  
198 -// informacoesAtendimentoVH.setConsumo12meses(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),  
199 -// requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),  
200 -// data12MesesAtras, dataMesAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));  
201 -//  
202 -// informacoesAtendimentoVH.setConsumoMedioMensalMaterial(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),  
203 -// requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), null, null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao));  
204 -//  
205 -// informacoesAtendimentoVH.setConsumoMedioMensalUR(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),  
206 -// requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(), null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao)); 182 + informacoesAtendimentoVH.setConsumoExercicioAtual(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
  183 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
  184 + primeiroDiaAnoAtual, ultimoDiaAnoAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
  185 +
  186 + Calendar primeiroDiaAnoAnterior = UtilDate.dateToCalendar(UtilDate.getPrimeiroDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()) - 1));
  187 +
  188 + Calendar ultimoDiaAnoAnterior = UtilDate.dateToCalendar(UtilDate.getUltimoDiaDoAno(Integer.parseInt(UtilDate.getAnoAtual()) - 1));
  189 +
  190 + informacoesAtendimentoVH.setConsumoExercicioAnterior(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
  191 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
  192 + primeiroDiaAnoAnterior, ultimoDiaAnoAnterior, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
  193 +
  194 + Calendar data12MesesAtras = UtilDate.dateToCalendar(UtilDate.somaMeses(UtilDate.calendarUltimoDiaDoMes(Calendar.getInstance()).getTime(), -12));
  195 +
  196 + Calendar dataMesAtual = UtilDate.calendarUltimoDiaDoMes(Calendar.getInstance());
  197 +
  198 + informacoesAtendimentoVH.setConsumo12meses(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
  199 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(),
  200 + data12MesesAtras, dataMesAtual, Boolean.FALSE, idsDominiosTipoStatusRequisicao));
  201 +
  202 + informacoesAtendimentoVH.setConsumoMedioMensalMaterial(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
  203 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), null, null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao));
  204 +
  205 + informacoesAtendimentoVH.setConsumoMedioMensalUR(this.movimentoEstoqueService.getMediaQuantidadeMaterial(requisicaoConsumoItem.getMaterialConsumo(),
  206 + requisicaoConsumoItem.getRequisicaoConsumo().getAlmoxarifado(), requisicaoConsumoItem.getRequisicaoConsumo().getUnidadeRequisitante(), null, null, Boolean.TRUE, idsDominiosTipoStatusRequisicao));
207 207
208 return informacoesAtendimentoVH; 208 return informacoesAtendimentoVH;
209 } 209 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
@@ -89,9 +89,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -89,9 +89,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
89 89
90 private static int SCALE_DIVISOR_DECIMAL = 4; 90 private static int SCALE_DIVISOR_DECIMAL = 4;
91 91
92 - private static final String ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_ATENDIMENTO_REQUISICAO_CONSUMO_DATA_ATENDIMENTO = "atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumo.dataAtendimento"; 92 + private static final int ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_ATENDIMENTO_REQUISICAO_CONSUMO_DATA_ATENDIMENTO = 0;
93 93
94 - private static final String ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE = "atendimentoRequisicaoConsumoItem.quantidade"; 94 + private static final int ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE = 1;
95 95
96 /** Atributo movimentoEstoqueDao. */ 96 /** Atributo movimentoEstoqueDao. */
97 private MovimentoEstoqueDao movimentoEstoqueDao; 97 private MovimentoEstoqueDao movimentoEstoqueDao;
@@ -500,28 +500,22 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -500,28 +500,22 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
500 500
501 BigDecimal result = BigDecimal.valueOf(0); 501 BigDecimal result = BigDecimal.valueOf(0);
502 502
503 - List<Map<String, Object>> valoresAtendidos = this.movimentoEstoqueDao.getQuantidadeMaterialAtendido(materialConsumo, almoxarifado, unidadeRequisitante, dataInicio, dataFim, idsDominiosTipoStatusRequisicao); 503 + List<ArrayList<Object>> valoresAtendidos = this.movimentoEstoqueDao.getQuantidadeMaterialAtendido(materialConsumo, almoxarifado, unidadeRequisitante, dataInicio, dataFim, idsDominiosTipoStatusRequisicao);
504 504
505 if (!UtilColecao.isVazio(valoresAtendidos)) { 505 if (!UtilColecao.isVazio(valoresAtendidos)) {
506 506
507 Map<String, List<BigDecimal>> mapaDeMesesPorQuantidade = new HashMap<String, List<BigDecimal>>(); 507 Map<String, List<BigDecimal>> mapaDeMesesPorQuantidade = new HashMap<String, List<BigDecimal>>();
508 508
509 - for (Map<String, Object> mapaPropriedades : valoresAtendidos) { 509 + for (ArrayList<Object> listaPropriedades : valoresAtendidos) {
510 510
511 if (mensal) { 511 if (mensal) {
512 512
513 - this.divideValoresPorMesEAno(mapaPropriedades, mapaDeMesesPorQuantidade); 513 + this.divideValoresPorMesEAno(listaPropriedades, mapaDeMesesPorQuantidade);
514 514
515 } else { 515 } else {
  516 +
  517 + result = result.add((BigDecimal) listaPropriedades.get(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE));
516 518
517 - for (String chave : mapaPropriedades.keySet()) {  
518 -  
519 - if (chave.equalsIgnoreCase(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE)) {  
520 -  
521 - result = result.add((BigDecimal) mapaPropriedades.get(chave));  
522 -  
523 - }  
524 - }  
525 } 519 }
526 } 520 }
527 521
@@ -577,9 +571,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -577,9 +571,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
577 * @param mapaDeMesesPorQuantidade2 571 * @param mapaDeMesesPorQuantidade2
578 * @return 572 * @return
579 */ 573 */
580 - private void divideValoresPorMesEAno(Map<String, Object> mapaPropriedades, Map<String, List<BigDecimal>> mapaDeMesesPorQuantidade) { 574 + private void divideValoresPorMesEAno(ArrayList<Object> listaPropriedades, Map<String, List<BigDecimal>> mapaDeMesesPorQuantidade) {
581 575
582 - Calendar data = (Calendar) mapaPropriedades.get(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_ATENDIMENTO_REQUISICAO_CONSUMO_DATA_ATENDIMENTO); 576 + Calendar data = (Calendar) listaPropriedades.get(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_ATENDIMENTO_REQUISICAO_CONSUMO_DATA_ATENDIMENTO);
583 577
584 Integer mes = data.get(Calendar.MONTH); 578 Integer mes = data.get(Calendar.MONTH);
585 579
@@ -592,7 +586,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -592,7 +586,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
592 mapaDeMesesPorQuantidade.put(chave, new ArrayList<BigDecimal>()); 586 mapaDeMesesPorQuantidade.put(chave, new ArrayList<BigDecimal>());
593 } 587 }
594 588
595 - BigDecimal valor = (BigDecimal) mapaPropriedades.get(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE); 589 + BigDecimal valor = (BigDecimal) listaPropriedades.get(ATENDIMENTO_REQUISICAO_CONSUMO_ITEM_QUANTIDADE);
596 590
597 mapaDeMesesPorQuantidade.get(chave).add(valor); 591 mapaDeMesesPorQuantidade.get(chave).add(valor);
598 592
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -340,7 +340,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -340,7 +340,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
340 340
341 result.forEach(function(localEstoque){ 341 result.forEach(function(localEstoque){
342 if(localEstoque.localPrincipal){ 342 if(localEstoque.localPrincipal){
343 - atendimentoItem.localEstoque = localEstoque; 343 + atendimentoItem.materialLocalEstoque = localEstoque.originalElement;
344 } 344 }
345 }); 345 });
346 }); 346 });
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
@@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
65 ng-disabled="!edit" ng-mode="day" ng-format="dd/MM/yyyy" /> 65 ng-disabled="!edit" ng-mode="day" ng-format="dd/MM/yyyy" />
66 </div> 66 </div>
67 </div> 67 </div>
68 - <div class="row" style="margin-top: 20px" ng-repeat="atendimento in atendimentos"> 68 + <div style="margin-top: 20px" ng-repeat="atendimento in atendimentos">
69 <div class="widget-box margin-bottom"> 69 <div class="widget-box margin-bottom">
70 <div class="widget-header"> 70 <div class="widget-header">
71 <h2 class="widget-title" style="font-size: 16px !important"> 71 <h2 class="widget-title" style="font-size: 16px !important">
@@ -139,10 +139,10 @@ @@ -139,10 +139,10 @@
139 - atendimentoRequisicaoConsumoItem.$quantidade}}</td> 139 - atendimentoRequisicaoConsumoItem.$quantidade}}</td>
140 140
141 <td class="text-center"> 141 <td class="text-center">
142 - <label-select ng-id="atendimentoRequisicaoConsumoItem.localEstoque$index" ng-obrigatorio="true"  
143 - ng-model="atendimentoRequisicaoConsumoItem.localEstoque" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque" 142 + <label-select ng-id="atendimentoRequisicaoConsumoItem.materialLocalEstoque$index" ng-obrigatorio="true"
  143 + ng-model="atendimentoRequisicaoConsumoItem.materialLocalEstoque.id" ng-list="atendimentoRequisicaoConsumoItem.$locaisEstoque"
144 form="formDialogAtendimento" 144 form="formDialogAtendimento"
145 - ng-custom-options="localEstoque as localEstoque.endereco.descricao for localEstoque"></label-select> 145 + ng-custom-options="materialLocalEstoque.id as materialLocalEstoque.endereco.descricao for materialLocalEstoque"></label-select>
146 146
147 </td> 147 </td>
148 148
@@ -165,7 +165,6 @@ @@ -165,7 +165,6 @@
165 <th class="text-center" colspan="8"><translate>ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE</translate></th> 165 <th class="text-center" colspan="8"><translate>ALMOXARIFADO.LABEL.UNIDADE_REQUISITANTE</translate></th>
166 </tr> 166 </tr>
167 <tr> 167 <tr>
168 - <th class="text-center"><translate>ALMOXARIFADO.LABEL.QTD_EM_ESTOQUE</translate></th>  
169 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_MEDIO_MENSAL</translate></th> 168 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_MEDIO_MENSAL</translate></th>
170 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_EXERCICIO_ANTERIOR</translate></th> 169 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_EXERCICIO_ANTERIOR</translate></th>
171 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_EXERCICIO_ATUAL</translate></th> 170 <th class="text-center"><translate>ALMOXARIFADO.LABEL.CONSUMO_EXERCICIO_ATUAL</translate></th>
@@ -178,16 +177,37 @@ @@ -178,16 +177,37 @@
178 </tr> 177 </tr>
179 </thead> 178 </thead>
180 <tbody> 179 <tbody>
181 - <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.qtdEstoque}}</td>  
182 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoMedioMensalMaterial}}</td> 180 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoMedioMensalMaterial}}</td>
183 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoExercicioAnterior}}</td> 181 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoExercicioAnterior}}</td>
184 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoExercicioAtual}}</td> 182 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoExercicioAtual}}</td>
185 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumo12meses}}</td> 183 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumo12meses}}</td>
186 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoMedioMensalUR}}</td> 184 <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.consumoMedioMensalUR}}</td>
187 - <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.numeroUltimaRequisicao}}</td>  
188 - <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.dataUltimaRequisicao | dateBR}}</td>  
189 - <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.qtdRequeridaUltimaRequisicao}}</td>  
190 - <td class="text-center">{{atendimentoRequisicaoConsumoItem.$info.qtdFornecidaUltimaRequisicao}}</td> 185 + <td class="text-center">
  186 + {{atendimentoRequisicaoConsumoItem.$info.numeroUltimaRequisicao ? atendimentoRequisicaoConsumoItem.$info.numeroUltimaRequisicao : "-"}}
  187 + </td>
  188 + <td class="text-center">
  189 + {{atendimentoRequisicaoConsumoItem.$info.dataUltimaRequisicao ? (atendimentoRequisicaoConsumoItem.$info.dataUltimaRequisicao | dateBR) : "-"}}
  190 + </td>
  191 + <td class="text-center">
  192 + {{atendimentoRequisicaoConsumoItem.$info.qtdRequeridaUltimaRequisicao ? atendimentoRequisicaoConsumoItem.$info.qtdRequeridaUltimaRequisicao : "-"}}
  193 + </td>
  194 + <td class="text-center">
  195 + {{atendimentoRequisicaoConsumoItem.$info.qtdFornecidaUltimaRequisicao ? atendimentoRequisicaoConsumoItem.$info.qtdFornecidaUltimaRequisicao : "-"}}
  196 + </td>
  197 + </tbody>
  198 + </table>
  199 + <table class="table table-bordered table-striped">
  200 + <thead>
  201 + <tr>
  202 + <th class="text-center"><translate>ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE</translate></th>
  203 + <th class="text-center"><translate>ALMOXARIFADO.LABEL.SALDO_ENDERECO</translate></th>
  204 + <th class="text-center"><translate>LABEL.CAPACIDADE</translate></th>
  205 + </tr>
  206 + </thead>
  207 + <tbody ng-repeat="localEstoque in atendimentoRequisicaoConsumoItem.$locaisEstoque">
  208 + <td class="text-center">{{localEstoque.endereco.descricao}}</td>
  209 + <td class="text-center">{{localEstoque.quantidade}}</td>
  210 + <td class="text-center">{{localEstoque.capacidade}}</td>
191 </tbody> 211 </tbody>
192 </table> 212 </table>
193 </td> 213 </td>