Commit 51ec173ca2eaf8b04146b9771a3b8c8a4455b952

Authored by Ronan Tavares Camargo
2 parents 01054cd3 d91375f4
Exists in master

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

…/cit-grp-almoxarifado into tarefa-3822
Showing 16 changed files with 278 additions and 134 deletions   Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MaterialEstoqueFIFOItemDao.java
1 package br.com.centralit.api.dao; 1 package br.com.centralit.api.dao;
2 2
  3 +import java.util.List;
  4 +
  5 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
3 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; 6 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
4 7
5 public interface MaterialEstoqueFIFOItemDao extends CitGenericDAO { 8 public interface MaterialEstoqueFIFOItemDao extends CitGenericDAO {
  9 +
  10 + List<MaterialEstoqueFIFOItem> findFIFOsByMaterial(long idMaterial);
6 11
7 } 12 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/RequisicaoConsumoItemDao.java
@@ -26,7 +26,7 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO { @@ -26,7 +26,7 @@ public interface RequisicaoConsumoItemDao extends CitGenericDAO {
26 * @param statusFinalizado 26 * @param statusFinalizado
27 * @return 27 * @return
28 */ 28 */
29 - Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida); 29 + Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida);
30 30
31 List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial); 31 List<RequisicaoConsumoItem> findItensRequisicaoPorMaterial(Long idRequisicao, Long idMaterial);
32 32
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MaterialEstoqueFIFOItemDaoHibernate.java
1 package br.com.centralit.api.dao.impl; 1 package br.com.centralit.api.dao.impl;
2 2
  3 +import java.util.List;
  4 +
3 import org.springframework.stereotype.Repository; 5 import org.springframework.stereotype.Repository;
4 6
  7 +import com.googlecode.genericdao.search.Sort;
  8 +
5 import br.com.centralit.api.dao.MaterialEstoqueFIFOItemDao; 9 import br.com.centralit.api.dao.MaterialEstoqueFIFOItemDao;
6 import br.com.centralit.api.model.MaterialEstoqueFIFOItem; 10 import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
7 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; 11 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
  12 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
8 13
9 @Repository("materialEstoqueFIFOItemDao") 14 @Repository("materialEstoqueFIFOItemDao")
10 public class MaterialEstoqueFIFOItemDaoHibernate extends CitGenericDAOImpl implements MaterialEstoqueFIFOItemDao { 15 public class MaterialEstoqueFIFOItemDaoHibernate extends CitGenericDAOImpl implements MaterialEstoqueFIFOItemDao {
@@ -12,5 +17,17 @@ public class MaterialEstoqueFIFOItemDaoHibernate extends CitGenericDAOImpl imple @@ -12,5 +17,17 @@ public class MaterialEstoqueFIFOItemDaoHibernate extends CitGenericDAOImpl imple
12 public MaterialEstoqueFIFOItemDaoHibernate() { 17 public MaterialEstoqueFIFOItemDaoHibernate() {
13 super(MaterialEstoqueFIFOItem.class); 18 super(MaterialEstoqueFIFOItem.class);
14 } 19 }
  20 +
  21 + @Override
  22 + public List<MaterialEstoqueFIFOItem> findFIFOsByMaterial(long idMaterial) {
  23 +
  24 + SearchSeven search = new SearchSeven(this.persistentClass);
  25 +
  26 + search.addFilterEqual("material.id", idMaterial);
  27 +
  28 + search.addSort(Sort.asc("id"));
  29 +
  30 + return this.search(search, this.persistentClass);
  31 + }
15 32
16 } 33 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java
@@ -288,7 +288,7 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M @@ -288,7 +288,7 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M
288 SearchSeven search = new SearchSeven(); 288 SearchSeven search = new SearchSeven();
289 289
290 search.addFilterEqual("dominioClasseReferencia.id", classeReferencia.getId()); 290 search.addFilterEqual("dominioClasseReferencia.id", classeReferencia.getId());
291 - search.addFilterEqual("idClasseReferencia", idReferencia); 291 + search.addFilterEqual("idClasseReferencia", null);
292 292
293 return search(search); 293 return search(search);
294 } 294 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/RequisicaoConsumoItemDaoHibernate.java
@@ -158,13 +158,13 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme @@ -158,13 +158,13 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme
158 * {@inheritDoc} 158 * {@inheritDoc}
159 */ 159 */
160 @Override 160 @Override
161 - public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida, Dominio statusAtendida) { 161 + public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante, Dominio statusFinalizado, Dominio statusParcialmenteAtendida) {
162 162
163 StringBuilder str = new StringBuilder(); 163 StringBuilder str = new StringBuilder();
164 str.append("select RequisicaoConsumo.id "); 164 str.append("select RequisicaoConsumo.id ");
165 str.append("from alm_rc_item as RequisicaoConsumoItem "); 165 str.append("from alm_rc_item as RequisicaoConsumoItem ");
166 str.append("inner join alm_requisicaoconsumo RequisicaoConsumo on RequisicaoConsumo.id = RequisicaoConsumoItem.requisicaoconsumo_id "); 166 str.append("inner join alm_requisicaoconsumo RequisicaoConsumo on RequisicaoConsumo.id = RequisicaoConsumoItem.requisicaoconsumo_id ");
167 - str.append("where (RequisicaoConsumo.tipostatusrequisicao_id = :dominioFinalizado OR RequisicaoConsumo.tipostatusrequisicao_id = :dominioParcialmenteAtendida OR RequisicaoConsumo.tipostatusrequisicao_id = :dominioAtendida) AND RequisicaoConsumoItem.materialConsumo_id = :idMaterial AND RequisicaoConsumo.unidaderequisitante_id = :idUnidadeRequisitante "); 167 + str.append("where (RequisicaoConsumo.tipostatusrequisicao_id = :dominioFinalizado OR RequisicaoConsumo.tipostatusrequisicao_id = :dominioParcialmenteAtendida) AND RequisicaoConsumoItem.materialConsumo_id = :idMaterial AND RequisicaoConsumo.unidaderequisitante_id = :idUnidadeRequisitante ");
168 str.append("order by RequisicaoConsumo.id desc"); 168 str.append("order by RequisicaoConsumo.id desc");
169 169
170 Query query = em().createNativeQuery(str.toString()); 170 Query query = em().createNativeQuery(str.toString());
@@ -173,7 +173,6 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme @@ -173,7 +173,6 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme
173 query.setParameter("idUnidadeRequisitante", unidadeRequisitante.getId()); 173 query.setParameter("idUnidadeRequisitante", unidadeRequisitante.getId());
174 query.setParameter("dominioFinalizado", statusFinalizado.getId()); 174 query.setParameter("dominioFinalizado", statusFinalizado.getId());
175 query.setParameter("dominioParcialmenteAtendida", statusParcialmenteAtendida.getId()); 175 query.setParameter("dominioParcialmenteAtendida", statusParcialmenteAtendida.getId());
176 - query.setParameter("dominioAtendida", statusAtendida.getId());  
177 176
178 query.setMaxResults(1); 177 query.setMaxResults(1);
179 178
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/DominioAlmoxarifado.java
@@ -25,17 +25,17 @@ public class DominioAlmoxarifado { @@ -25,17 +25,17 @@ public class DominioAlmoxarifado {
25 /** Atributo TIPO_STATUS_REQUISICAO. */ 25 /** Atributo TIPO_STATUS_REQUISICAO. */
26 public static final String TIPO_STATUS_REQUISICAO = "tipoStatusRequisicao"; 26 public static final String TIPO_STATUS_REQUISICAO = "tipoStatusRequisicao";
27 27
28 - /** Atributo TIPO_STATUS_NAO_CONCLUIDA. */  
29 - public static final Long TIPO_STATUS_NAO_CONCLUIDA = 1L;  
30 - 28 + /** Atributo TIPO_STATUS_ATENDIDA_PARCIALMENTE. */
  29 + public static final Long TIPO_STATUS_ATENDIDA_PARCIALMENTE = 1L;
  30 +
31 /** Atributo TIPO_STATUS_PRONTA_PARA_ATENDIMENTO. */ 31 /** Atributo TIPO_STATUS_PRONTA_PARA_ATENDIMENTO. */
32 public static final Long TIPO_STATUS_PRONTA_PARA_ATENDIMENTO = 2L; 32 public static final Long TIPO_STATUS_PRONTA_PARA_ATENDIMENTO = 2L;
  33 +
  34 + /** Atributo TIPO_STATUS_NAO_CONCLUIDA. */
  35 + public static final Long TIPO_STATUS_NAO_CONCLUIDA = 3L;
33 36
34 - /** Atributo TIPO_STATUS_ATENDIDA_PARCIALMENTE. */  
35 - public static final Long TIPO_STATUS_ATENDIDA_PARCIALMENTE = 3L;  
36 -  
37 - /** Atributo TIPO_STATUS_ATENDIDA. */  
38 - public static final Long TIPO_STATUS_ATENDIDA = 4L; 37 + /** Atributo TIPO_STATUS_DEVOLVIDA. */
  38 + public static final Long TIPO_STATUS_DEVOLVIDA = 4L;
39 39
40 /** Atributo TIPO_STATUS_FINALIZADA. */ 40 /** Atributo TIPO_STATUS_FINALIZADA. */
41 public static final Long TIPO_STATUS_FINALIZADA = 5L; 41 public static final Long TIPO_STATUS_FINALIZADA = 5L;
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java
@@ -18,18 +18,30 @@ import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganiz @@ -18,18 +18,30 @@ import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganiz
18 18
19 /** 19 /**
20 * 20 *
21 - * <p><img src="http://centralit.com.br/images/logo_central.png"></p> 21 + * <p>
  22 + * <img src="http://centralit.com.br/images/logo_central.png">
  23 + * </p>
22 * 24 *
23 - * <p><b>Company: </b> Central IT - Governança Corporativa - </p> 25 + * <p>
  26 + * <b>Company: </b> Central IT - Governança Corporativa -
  27 + * </p>
24 * 28 *
25 - * <p><b>Title: </b></p> 29 + * <p>
  30 + * <b>Title: </b>
  31 + * </p>
26 * 32 *
27 - * <p><b>Description: </b></p> 33 + * <p>
  34 + * <b>Description: </b>
  35 + * </p>
28 * 36 *
29 - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a></p> 37 + * <p>
  38 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  39 + * </p>
30 * 40 *
31 - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>  
32 - * 41 + * <p>
  42 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  43 + * </p>
  44 + *
33 * @since 29/04/2016 - 15:55:15 45 * @since 29/04/2016 - 15:55:15
34 * 46 *
35 * @version 1.0.0 47 * @version 1.0.0
@@ -45,16 +57,16 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -45,16 +57,16 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
45 /** Atributo serialVersionUID. */ 57 /** Atributo serialVersionUID. */
46 private static final long serialVersionUID = 1170228299223134768L; 58 private static final long serialVersionUID = 1170228299223134768L;
47 private static int SCALE_DIVISOR_DECIMAL = 4; 59 private static int SCALE_DIVISOR_DECIMAL = 4;
48 - 60 +
49 /** Atributo id. */ 61 /** Atributo id. */
50 @Id 62 @Id
51 @GeneratedValue(strategy = GenerationType.AUTO) 63 @GeneratedValue(strategy = GenerationType.AUTO)
52 private Long id; 64 private Long id;
53 - 65 +
54 /** Atributo material. */ 66 /** Atributo material. */
55 @ManyToOne(fetch = FetchType.LAZY, optional = false) 67 @ManyToOne(fetch = FetchType.LAZY, optional = false)
56 private MaterialConsumo material; 68 private MaterialConsumo material;
57 - 69 +
58 /** Atributo materialEstoque. */ 70 /** Atributo materialEstoque. */
59 @ManyToOne(fetch = FetchType.LAZY, optional = true) 71 @ManyToOne(fetch = FetchType.LAZY, optional = true)
60 private MaterialEstoque materialEstoque; 72 private MaterialEstoque materialEstoque;
@@ -62,7 +74,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -62,7 +74,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
62 /** Atributo materialEstoqueInativo. */ 74 /** Atributo materialEstoqueInativo. */
63 @ManyToOne(fetch = FetchType.LAZY, optional = true) 75 @ManyToOne(fetch = FetchType.LAZY, optional = true)
64 private MaterialEstoque materialEstoqueInativo; 76 private MaterialEstoque materialEstoqueInativo;
65 - 77 +
66 /** Atributo quantidadeInicial. */ 78 /** Atributo quantidadeInicial. */
67 @Column(precision = 20, scale = 4, nullable = false) 79 @Column(precision = 20, scale = 4, nullable = false)
68 private BigDecimal quantidadeInicial; 80 private BigDecimal quantidadeInicial;
@@ -70,7 +82,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -70,7 +82,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
70 /** Atributo quantidadeRestante. */ 82 /** Atributo quantidadeRestante. */
71 @Column(precision = 20, scale = 4, nullable = false) 83 @Column(precision = 20, scale = 4, nullable = false)
72 private BigDecimal quantidadeRestante; 84 private BigDecimal quantidadeRestante;
73 - 85 +
74 /** Atributo valorUnitario. */ 86 /** Atributo valorUnitario. */
75 @Column(precision = 20, scale = 4, nullable = false) 87 @Column(precision = 20, scale = 4, nullable = false)
76 private BigDecimal valorUnitario; 88 private BigDecimal valorUnitario;
@@ -78,20 +90,23 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -78,20 +90,23 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
78 /** Atributo valorSobra. */ 90 /** Atributo valorSobra. */
79 @Column(precision = 20, scale = 4, nullable = false) 91 @Column(precision = 20, scale = 4, nullable = false)
80 private BigDecimal valorSobra; 92 private BigDecimal valorSobra;
81 - 93 +
  94 + @Column(precision = 20, scale = 4, nullable = false)
  95 + private BigDecimal valorResto;
  96 +
82 /** Atributo valorTotal. */ 97 /** Atributo valorTotal. */
83 @Column(precision = 20, scale = 4, nullable = false) 98 @Column(precision = 20, scale = 4, nullable = false)
84 private BigDecimal valorTotal; 99 private BigDecimal valorTotal;
85 - 100 +
86 @ManyToOne(fetch = FetchType.EAGER, optional = false) 101 @ManyToOne(fetch = FetchType.EAGER, optional = false)
87 private EntradaAlmoxarifadoItem entradaItem; 102 private EntradaAlmoxarifadoItem entradaItem;
88 -  
89 - 103 +
90 protected MaterialEstoqueFIFOItem() { 104 protected MaterialEstoqueFIFOItem() {
91 super(); 105 super();
92 } 106 }
93 107
94 - public MaterialEstoqueFIFOItem( MaterialEstoque materialEstoque, BigDecimal quantidadeInicial, BigDecimal valorTotal, EntradaAlmoxarifadoItem entradaItem ) { 108 + public MaterialEstoqueFIFOItem(MaterialEstoque materialEstoque, BigDecimal quantidadeInicial, BigDecimal valorTotal,
  109 + EntradaAlmoxarifadoItem entradaItem) {
95 super(); 110 super();
96 this.material = materialEstoque.getMaterial(); 111 this.material = materialEstoque.getMaterial();
97 this.materialEstoque = materialEstoque; 112 this.materialEstoque = materialEstoque;
@@ -99,7 +114,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -99,7 +114,7 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
99 this.quantidadeRestante = quantidadeInicial; 114 this.quantidadeRestante = quantidadeInicial;
100 this.valorTotal = valorTotal; 115 this.valorTotal = valorTotal;
101 this.valorUnitario = valorTotal.divide(quantidadeInicial, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING); 116 this.valorUnitario = valorTotal.divide(quantidadeInicial, SCALE_DIVISOR_DECIMAL, RoundingMode.CEILING);
102 - this.valorSobra = valorTotal.min(this.valorUnitario.multiply(quantidadeInicial)); 117 + this.valorSobra = valorTotal.subtract(this.valorUnitario.multiply(quantidadeInicial));
103 this.entradaItem = entradaItem; 118 this.entradaItem = entradaItem;
104 } 119 }
105 120
@@ -123,70 +138,63 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -123,70 +138,63 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
123 this.id = id; 138 this.id = id;
124 } 139 }
125 140
126 -  
127 /** 141 /**
128 * Retorna o valor do atributo <code>material</code> 142 * Retorna o valor do atributo <code>material</code>
129 * 143 *
130 * @return <code>MaterialConsumo</code> 144 * @return <code>MaterialConsumo</code>
131 */ 145 */
132 public MaterialConsumo getMaterial() { 146 public MaterialConsumo getMaterial() {
133 - 147 +
134 return material; 148 return material;
135 } 149 }
136 150
137 -  
138 /** 151 /**
139 * Define o valor do atributo <code>material</code>. 152 * Define o valor do atributo <code>material</code>.
140 * 153 *
141 - * @param material 154 + * @param material
142 */ 155 */
143 public void setMaterial(MaterialConsumo material) { 156 public void setMaterial(MaterialConsumo material) {
144 - 157 +
145 this.material = material; 158 this.material = material;
146 } 159 }
147 160
148 -  
149 -  
150 /** 161 /**
151 * Retorna o valor do atributo <code>materialEstoque</code> 162 * Retorna o valor do atributo <code>materialEstoque</code>
152 * 163 *
153 * @return <code>MaterialEstoque</code> 164 * @return <code>MaterialEstoque</code>
154 */ 165 */
155 public MaterialEstoque getMaterialEstoque() { 166 public MaterialEstoque getMaterialEstoque() {
156 - 167 +
157 return materialEstoque; 168 return materialEstoque;
158 } 169 }
159 170
160 -  
161 /** 171 /**
162 * Define o valor do atributo <code>materialEstoque</code>. 172 * Define o valor do atributo <code>materialEstoque</code>.
163 * 173 *
164 - * @param materialEstoque 174 + * @param materialEstoque
165 */ 175 */
166 public void setMaterialEstoque(MaterialEstoque materialEstoque) { 176 public void setMaterialEstoque(MaterialEstoque materialEstoque) {
167 - 177 +
168 this.materialEstoque = materialEstoque; 178 this.materialEstoque = materialEstoque;
169 } 179 }
170 180
171 -  
172 /** 181 /**
173 * Retorna o valor do atributo <code>materialEstoqueInativo</code> 182 * Retorna o valor do atributo <code>materialEstoqueInativo</code>
174 * 183 *
175 * @return <code>MaterialEstoque</code> 184 * @return <code>MaterialEstoque</code>
176 */ 185 */
177 public MaterialEstoque getMaterialEstoqueInativo() { 186 public MaterialEstoque getMaterialEstoqueInativo() {
178 - 187 +
179 return materialEstoqueInativo; 188 return materialEstoqueInativo;
180 } 189 }
181 190
182 -  
183 /** 191 /**
184 * Define o valor do atributo <code>materialEstoqueInativo</code>. 192 * Define o valor do atributo <code>materialEstoqueInativo</code>.
185 * 193 *
186 - * @param materialEstoqueInativo 194 + * @param materialEstoqueInativo
187 */ 195 */
188 public void setMaterialEstoqueInativo(MaterialEstoque materialEstoqueInativo) { 196 public void setMaterialEstoqueInativo(MaterialEstoque materialEstoqueInativo) {
189 - 197 +
190 this.materialEstoqueInativo = materialEstoqueInativo; 198 this.materialEstoqueInativo = materialEstoqueInativo;
191 } 199 }
192 200
@@ -196,128 +204,117 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { @@ -196,128 +204,117 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao {
196 * @return <code>BigDecimal</code> 204 * @return <code>BigDecimal</code>
197 */ 205 */
198 public BigDecimal getQuantidadeInicial() { 206 public BigDecimal getQuantidadeInicial() {
199 - 207 +
200 return quantidadeInicial; 208 return quantidadeInicial;
201 } 209 }
202 210
203 -  
204 /** 211 /**
205 * Define o valor do atributo <code>quantidadeInicial</code>. 212 * Define o valor do atributo <code>quantidadeInicial</code>.
206 * 213 *
207 - * @param quantidadeInicial 214 + * @param quantidadeInicial
208 */ 215 */
209 public void setQuantidadeInicial(BigDecimal quantidadeInicial) { 216 public void setQuantidadeInicial(BigDecimal quantidadeInicial) {
210 - 217 +
211 this.quantidadeInicial = quantidadeInicial; 218 this.quantidadeInicial = quantidadeInicial;
212 } 219 }
213 220
214 -  
215 /** 221 /**
216 * Retorna o valor do atributo <code>quantidadeRestante</code> 222 * Retorna o valor do atributo <code>quantidadeRestante</code>
217 * 223 *
218 * @return <code>BigDecimal</code> 224 * @return <code>BigDecimal</code>
219 */ 225 */
220 public BigDecimal getQuantidadeRestante() { 226 public BigDecimal getQuantidadeRestante() {
221 - 227 +
222 return quantidadeRestante; 228 return quantidadeRestante;
223 } 229 }
224 230
225 -  
226 /** 231 /**
227 * Define o valor do atributo <code>quantidadeRestante</code>. 232 * Define o valor do atributo <code>quantidadeRestante</code>.
228 * 233 *
229 - * @param quantidadeRestante 234 + * @param quantidadeRestante
230 */ 235 */
231 public void setQuantidadeRestante(BigDecimal quantidadeRestante) { 236 public void setQuantidadeRestante(BigDecimal quantidadeRestante) {
232 - 237 +
233 this.quantidadeRestante = quantidadeRestante; 238 this.quantidadeRestante = quantidadeRestante;
234 } 239 }
235 240
236 -  
237 /** 241 /**
238 * Retorna o valor do atributo <code>valorUnitario</code> 242 * Retorna o valor do atributo <code>valorUnitario</code>
239 * 243 *
240 * @return <code>BigDecimal</code> 244 * @return <code>BigDecimal</code>
241 */ 245 */
242 public BigDecimal getValorUnitario() { 246 public BigDecimal getValorUnitario() {
243 - 247 +
244 return valorUnitario; 248 return valorUnitario;
245 } 249 }
246 250
247 -  
248 /** 251 /**
249 * Define o valor do atributo <code>valorUnitario</code>. 252 * Define o valor do atributo <code>valorUnitario</code>.
250 * 253 *
251 - * @param valorUnitario 254 + * @param valorUnitario
252 */ 255 */
253 public void setValorUnitario(BigDecimal valorUnitario) { 256 public void setValorUnitario(BigDecimal valorUnitario) {
254 - 257 +
255 this.valorUnitario = valorUnitario; 258 this.valorUnitario = valorUnitario;
256 } 259 }
257 260
258 -  
259 /** 261 /**
260 * Retorna o valor do atributo <code>valorSobra</code> 262 * Retorna o valor do atributo <code>valorSobra</code>
261 * 263 *
262 * @return <code>BigDecimal</code> 264 * @return <code>BigDecimal</code>
263 */ 265 */
264 public BigDecimal getValorSobra() { 266 public BigDecimal getValorSobra() {
265 - 267 +
266 return valorSobra; 268 return valorSobra;
267 } 269 }
268 270
269 -  
270 /** 271 /**
271 * Define o valor do atributo <code>valorSobra</code>. 272 * Define o valor do atributo <code>valorSobra</code>.
272 * 273 *
273 - * @param valorSobra 274 + * @param valorSobra
274 */ 275 */
275 public void setValorSobra(BigDecimal valorSobra) { 276 public void setValorSobra(BigDecimal valorSobra) {
276 - 277 +
277 this.valorSobra = valorSobra; 278 this.valorSobra = valorSobra;
278 } 279 }
279 280
280 -  
281 /** 281 /**
282 * Retorna o valor do atributo <code>valorTotal</code> 282 * Retorna o valor do atributo <code>valorTotal</code>
283 * 283 *
284 * @return <code>BigDecimal</code> 284 * @return <code>BigDecimal</code>
285 */ 285 */
286 public BigDecimal getValorTotal() { 286 public BigDecimal getValorTotal() {
287 - 287 +
288 return valorTotal; 288 return valorTotal;
289 } 289 }
290 290
291 -  
292 /** 291 /**
293 * Define o valor do atributo <code>valorTotal</code>. 292 * Define o valor do atributo <code>valorTotal</code>.
294 * 293 *
295 - * @param valorTotal 294 + * @param valorTotal
296 */ 295 */
297 public void setValorTotal(BigDecimal valorTotal) { 296 public void setValorTotal(BigDecimal valorTotal) {
298 - 297 +
299 this.valorTotal = valorTotal; 298 this.valorTotal = valorTotal;
300 } 299 }
301 300
302 -  
303 /** 301 /**
304 * Retorna o valor do atributo <code>entradaItem</code> 302 * Retorna o valor do atributo <code>entradaItem</code>
305 * 303 *
306 * @return <code>EntradaAlmoxarifadoItem</code> 304 * @return <code>EntradaAlmoxarifadoItem</code>
307 */ 305 */
308 public EntradaAlmoxarifadoItem getEntradaItem() { 306 public EntradaAlmoxarifadoItem getEntradaItem() {
309 - 307 +
310 return entradaItem; 308 return entradaItem;
311 } 309 }
312 310
313 -  
314 /** 311 /**
315 * Define o valor do atributo <code>entradaItem</code>. 312 * Define o valor do atributo <code>entradaItem</code>.
316 * 313 *
317 - * @param entradaItem 314 + * @param entradaItem
318 */ 315 */
319 public void setEntradaItem(EntradaAlmoxarifadoItem entradaItem) { 316 public void setEntradaItem(EntradaAlmoxarifadoItem entradaItem) {
320 - 317 +
321 this.entradaItem = entradaItem; 318 this.entradaItem = entradaItem;
322 } 319 }
323 320
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EntradaAlmoxarifadoItemService.java
@@ -139,4 +139,6 @@ public interface EntradaAlmoxarifadoItemService extends GenericService&lt;EntradaAl @@ -139,4 +139,6 @@ public interface EntradaAlmoxarifadoItemService extends GenericService&lt;EntradaAl
139 public List<EntradaAlmoxarifadoItem> findItensPorEntradaId(Long idEntrada); 139 public List<EntradaAlmoxarifadoItem> findItensPorEntradaId(Long idEntrada);
140 140
141 Boolean existeItemVinculadoAMaterialLocalEstoque(Long idMaterialLocalEstoque); 141 Boolean existeItemVinculadoAMaterialLocalEstoque(Long idMaterialLocalEstoque);
  142 +
  143 + public BigDecimal getValorFIFOPorMaterial(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada);
142 } 144 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MaterialEstoqueFIFOItemService.java
1 package br.com.centralit.api.service; 1 package br.com.centralit.api.service;
2 2
  3 +import java.util.List;
  4 +
3 import br.com.centralit.api.model.MaterialEstoqueFIFOItem; 5 import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
4 import br.com.centralit.framework.service.arquitetura.GenericService; 6 import br.com.centralit.framework.service.arquitetura.GenericService;
5 7
6 public interface MaterialEstoqueFIFOItemService extends GenericService<MaterialEstoqueFIFOItem, Long> { 8 public interface MaterialEstoqueFIFOItemService extends GenericService<MaterialEstoqueFIFOItem, Long> {
  9 +
  10 + List<MaterialEstoqueFIFOItem> findFIFOsByMaterial(long idMaterial);
7 11
8 } 12 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoItemServiceImpl.java
@@ -164,8 +164,6 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI @@ -164,8 +164,6 @@ public class AtendimentoRequisicaoConsumoItemServiceImpl extends GenericServiceI
164 idsDominiosTipoStatusRequisicao.add(statusFinalizado.getId()); 164 idsDominiosTipoStatusRequisicao.add(statusFinalizado.getId());
165 Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE); 165 Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE);
166 idsDominiosTipoStatusRequisicao.add(statusParcialmenteAtendida.getId()); 166 idsDominiosTipoStatusRequisicao.add(statusParcialmenteAtendida.getId());
167 - Dominio statusAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA);  
168 - idsDominiosTipoStatusRequisicao.add(statusAtendida.getId());  
169 167
170 RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getId()); 168 RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoRequisicaoConsumoItem.getRequisicaoConsumoItem().getId());
171 169
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
@@ -19,6 +19,7 @@ import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem; @@ -19,6 +19,7 @@ import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
19 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItemEndereco; 19 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItemEndereco;
20 import br.com.centralit.api.model.DominioAlmoxarifado; 20 import br.com.centralit.api.model.DominioAlmoxarifado;
21 import br.com.centralit.api.model.MaterialLocalEstoque; 21 import br.com.centralit.api.model.MaterialLocalEstoque;
  22 +import br.com.centralit.api.model.RequisicaoConsumoItem;
22 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService; 23 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoItemService;
23 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoService; 24 import br.com.centralit.api.service.AtendimentoRequisicaoConsumoService;
24 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; 25 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
@@ -144,6 +145,11 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -144,6 +145,11 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
144 145
145 this.validarEntidade(entity, this.validator); 146 this.validarEntidade(entity, this.validator);
146 147
  148 + ValidacaoAtendimentoRequisicaoConsumoVH validacao = this.validarQuantidadesAtendidas(entity);
  149 + if(StringUtils.isNotBlank(validacao.getMensagemErro())){
  150 + throw new BusinessException(validacao.getMensagemErro(), CodigoErro.REGRA_NEGOCIO.getValue());
  151 + }
  152 +
147 if (!UtilColecao.isVazio(entity.getAtendimentos())) { 153 if (!UtilColecao.isVazio(entity.getAtendimentos())) {
148 154
149 for (AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()) { 155 for (AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()) {
@@ -289,8 +295,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -289,8 +295,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
289 * @param entity 295 * @param entity
290 */ 296 */
291 private void atualizarStatusRquisicao(AtendimentoRequisicaoConsumo entity) { 297 private void atualizarStatusRquisicao(AtendimentoRequisicaoConsumo entity) {
  298 +
  299 + entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE));
292 300
293 - Boolean atendidoCompletamente = Boolean.TRUE; 301 + /*Boolean atendidoCompletamente = Boolean.TRUE;
294 302
295 for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { 303 for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
296 304
@@ -315,7 +323,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -315,7 +323,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
315 323
316 entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE)); 324 entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE));
317 325
318 - } 326 + }*/
319 327
320 } 328 }
321 329
@@ -329,8 +337,61 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -329,8 +337,61 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
329 private void montarEntidade(AtendimentoRequisicaoConsumo entity) { 337 private void montarEntidade(AtendimentoRequisicaoConsumo entity) {
330 338
331 entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId())); 339 entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId()));
332 -  
333 - List<AtendimentoRequisicaoConsumoItem> listaSemAtendimentosComQuantidadeZero = new ArrayList<AtendimentoRequisicaoConsumoItem>(); 340 +
  341 + for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
  342 +
  343 + RequisicaoConsumoItem requisicaoConsumoItem = this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId());
  344 + requisicaoConsumoItem.setQuantidadeAtendida(atendimentoItem.getQuantidade());
  345 +
  346 + atendimentoItem.setAtendimentoRequisicaoConsumo(entity);
  347 + atendimentoItem.setOrganizacao(getUsuario().getOrganizacao());
  348 + atendimentoItem.setRequisicaoConsumoItem(requisicaoConsumoItem);
  349 + for (AtendimentoRequisicaoConsumoItemEndereco atendimentoRequisicaoConsumoItemEndereco : atendimentoItem.getAtendimentoRequisicaoConsumoItemEnderecos()) {
  350 + atendimentoRequisicaoConsumoItemEndereco.setAtendimentoRequisicaoConsumoItem(atendimentoItem);
  351 + }
  352 +
  353 + this.requisicaoConsumoItemService.merge(requisicaoConsumoItem);
  354 + }
  355 +
  356 + /*if(entity.getRequisicaoConsumo().getRequisicaoConsumoItens().size() > entity.getAtendimentoRequisicaoConsumoItems().size()){
  357 +
  358 + List<AtendimentoRequisicaoConsumoItem> listaAtendimentoItem = new ArrayList<AtendimentoRequisicaoConsumoItem>();
  359 + boolean addNovoAtendimentoItem = true;
  360 +
  361 + for (RequisicaoConsumoItem requisicaoConsumoItem : entity.getRequisicaoConsumo().getRequisicaoConsumoItens()) {
  362 +
  363 + for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
  364 +
  365 + if(requisicaoConsumoItem.getMaterialConsumo().getId().doubleValue() == atendimentoRequisicaoConsumoItem.getMaterial().getId().doubleValue()){
  366 + atendimentoRequisicaoConsumoItem.setAtendimentoRequisicaoConsumo(entity);
  367 + atendimentoRequisicaoConsumoItem.setOrganizacao(getUsuario().getOrganizacao());
  368 + atendimentoRequisicaoConsumoItem.setRequisicaoConsumoItem(requisicaoConsumoItem);
  369 + atendimentoRequisicaoConsumoItem.setMaterial(this.materialConsumoService.find(atendimentoRequisicaoConsumoItem.getMaterial().getId()));
  370 + addNovoAtendimentoItem = false;
  371 + break;
  372 + }
  373 + }
  374 +
  375 + if(addNovoAtendimentoItem){
  376 + AtendimentoRequisicaoConsumoItem item = new AtendimentoRequisicaoConsumoItem();
  377 + item.setAtendimentoRequisicaoConsumo(entity);
  378 + item.setOrganizacao(getUsuario().getOrganizacao());
  379 + item.setRequisicaoConsumoItem(requisicaoConsumoItem);
  380 + item.setMaterial(requisicaoConsumoItem.getMaterialConsumo());
  381 +
  382 + AtendimentoRequisicaoConsumoItemEndereco atendimentoRequisicaoConsumoItemEndereco = new AtendimentoRequisicaoConsumoItemEndereco();
  383 + atendimentoRequisicaoConsumoItemEndereco.setAtendimentoRequisicaoConsumoItem(item);
  384 + atendimentoRequisicaoConsumoItemEndereco.setQuantidade(new BigDecimal(0));
  385 +
  386 + List<AtendimentoRequisicaoConsumoItemEndereco> listaAtendimentoRequisicaoConsumoItemEndereco = new ArrayList<AtendimentoRequisicaoConsumoItemEndereco>();
  387 + listaAtendimentoRequisicaoConsumoItemEndereco.add(atendimentoRequisicaoConsumoItemEndereco);
  388 + item.setAtendimentoRequisicaoConsumoItemEnderecos(listaAtendimentoRequisicaoConsumoItemEndereco);
  389 + }
  390 + addNovoAtendimentoItem = true;
  391 + }
  392 + }*/
  393 +
  394 + /*List<AtendimentoRequisicaoConsumoItem> listaSemAtendimentosComQuantidadeZero = new ArrayList<AtendimentoRequisicaoConsumoItem>();
334 395
335 for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { 396 for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) {
336 if(atendimentoItem.getQuantidade() == null){ 397 if(atendimentoItem.getQuantidade() == null){
@@ -347,7 +408,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -347,7 +408,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
347 atendimentoItem.setOrganizacao(getUsuario().getOrganizacao()); 408 atendimentoItem.setOrganizacao(getUsuario().getOrganizacao());
348 atendimentoItem.setRequisicaoConsumoItem(this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId())); 409 atendimentoItem.setRequisicaoConsumoItem(this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId()));
349 410
350 - atendimentoItem.setMaterial(this.materialConsumoService.find(atendimentoItem.getMaterial().getId())); 411 + atendimentoItem.setMaterial(this.materialConsumoService.find(atendimentoItem.getMaterial().getId()));
351 BigDecimal qtdMaterialEmEstoque = this.materialConsumoService.getQuantidadeAtualMaterial(atendimentoItem.getMaterial().getId(), getUsuario().getOrganizacao().getId()); 412 BigDecimal qtdMaterialEmEstoque = this.materialConsumoService.getQuantidadeAtualMaterial(atendimentoItem.getMaterial().getId(), getUsuario().getOrganizacao().getId());
352 413
353 if (!atendimentoItem.isNew()) { 414 if (!atendimentoItem.isNew()) {
@@ -371,14 +432,14 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -371,14 +432,14 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
371 432
372 } 433 }
373 434
374 -// if (!UtilObjeto.isReferencia(atendimentoItem.getQuantidade()) || atendimentoItem.getQuantidade().doubleValue() <= 0) {  
375 -//  
376 -// throw new BusinessException(VALIDACAO_QUANTIDADE_ZERADA_NEGATIVA, CodigoErro.REGRA_NEGOCIO.getValue(), atendimentoItem.getMaterial().getDescricao());  
377 -// } 435 + if (!UtilObjeto.isReferencia(atendimentoItem.getQuantidade()) || atendimentoItem.getQuantidade().doubleValue() <= 0) {
  436 +
  437 + throw new BusinessException(VALIDACAO_QUANTIDADE_ZERADA_NEGATIVA, CodigoErro.REGRA_NEGOCIO.getValue(), atendimentoItem.getMaterial().getDescricao());
  438 + }
378 439
379 entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoItem); 440 entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoItem);
380 441
381 - } 442 + }*/
382 443
383 } 444 }
384 445
@@ -494,20 +555,20 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -494,20 +555,20 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
494 */ 555 */
495 private void configurarNumeroAtendimento(AtendimentoRequisicaoConsumo entity) { 556 private void configurarNumeroAtendimento(AtendimentoRequisicaoConsumo entity) {
496 557
497 - if(entity.getOrganizacao() == null && entity.getRequisicaoConsumo() != null && entity.getRequisicaoConsumo().getOrganizacao() != null){  
498 - entity.setOrganizacao(entity.getRequisicaoConsumo().getOrganizacao());  
499 - }  
500 -  
501 - AtendimentoRequisicaoConsumo ultimoRegistro =  
502 - (AtendimentoRequisicaoConsumo) atendimentoRequisicaoConsumoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroAtendimento", entity.getOrganizacao().getId());  
503 -  
504 - Long sequencial = null;  
505 - if (UtilObjeto.isReferencia(ultimoRegistro)) {  
506 - sequencial = ultimoRegistro.getNumeroAtendimento() == null ? null : Long.parseLong(ultimoRegistro.getNumeroAtendimento());  
507 - }  
508 - String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao()); 558 +// if(entity.getOrganizacao() == null && entity.getRequisicaoConsumo() != null && entity.getRequisicaoConsumo().getOrganizacao() != null){
  559 +// entity.setOrganizacao(entity.getRequisicaoConsumo().getOrganizacao());
  560 +// }
  561 +//
  562 +// AtendimentoRequisicaoConsumo ultimoRegistro =
  563 +// (AtendimentoRequisicaoConsumo) atendimentoRequisicaoConsumoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroAtendimento", entity.getOrganizacao().getId());
  564 +//
  565 +// Long sequencial = null;
  566 +// if (UtilObjeto.isReferencia(ultimoRegistro)) {
  567 +// sequencial = ultimoRegistro.getNumeroAtendimento() == null ? null : Long.parseLong(ultimoRegistro.getNumeroAtendimento());
  568 +// }
  569 +// String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao());
509 570
510 - entity.setNumeroAtendimento(codigo); 571 + entity.setNumeroAtendimento(entity.getRequisicaoConsumo().getNumeroRequisicao());
511 } 572 }
512 573
513 @Override 574 @Override
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoItemServiceImpl.java
@@ -15,12 +15,14 @@ import br.com.centralit.api.model.ContaContabilMovimento; @@ -15,12 +15,14 @@ import br.com.centralit.api.model.ContaContabilMovimento;
15 import br.com.centralit.api.model.EntradaAlmoxarifadoItem; 15 import br.com.centralit.api.model.EntradaAlmoxarifadoItem;
16 import br.com.centralit.api.model.EstruturaOrganizacional; 16 import br.com.centralit.api.model.EstruturaOrganizacional;
17 import br.com.centralit.api.model.MaterialConsumo; 17 import br.com.centralit.api.model.MaterialConsumo;
  18 +import br.com.centralit.api.model.MaterialEstoqueFIFOItem;
18 import br.com.centralit.api.model.MovimentoEstoque; 19 import br.com.centralit.api.model.MovimentoEstoque;
19 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; 20 import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
20 import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService; 21 import br.com.centralit.api.service.ContaContabilMovimentoAlmoxarifadoService;
21 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService; 22 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
22 import br.com.centralit.api.service.EstruturaOrganizacionalService; 23 import br.com.centralit.api.service.EstruturaOrganizacionalService;
23 import br.com.centralit.api.service.MaterialConsumoService; 24 import br.com.centralit.api.service.MaterialConsumoService;
  25 +import br.com.centralit.api.service.MaterialEstoqueFIFOItemService;
24 import br.com.centralit.api.service.MovimentoEstoqueService; 26 import br.com.centralit.api.service.MovimentoEstoqueService;
25 import br.com.centralit.framework.exception.BusinessException; 27 import br.com.centralit.framework.exception.BusinessException;
26 import br.com.centralit.framework.exception.CodigoErro; 28 import br.com.centralit.framework.exception.CodigoErro;
@@ -76,6 +78,9 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -76,6 +78,9 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
76 78
77 @Autowired 79 @Autowired
78 private ContaContabilMovimentoAlmoxarifadoService contaContabilMovimentoAlmoxarifadoService; 80 private ContaContabilMovimentoAlmoxarifadoService contaContabilMovimentoAlmoxarifadoService;
  81 +
  82 + @Autowired
  83 + private MaterialEstoqueFIFOItemService materialEstoqueFIFOItemService;
79 84
80 /** 85 /**
81 * Responsável pela criação de novas instâncias desta classe. 86 * Responsável pela criação de novas instâncias desta classe.
@@ -208,6 +213,38 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -208,6 +213,38 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
208 public Collection<EntradaAlmoxarifadoItem> obterEntradaItemComSaldoPorMaterial(Long idMaterial) { 213 public Collection<EntradaAlmoxarifadoItem> obterEntradaItemComSaldoPorMaterial(Long idMaterial) {
209 return this.entradaAlmoxarifadoItemDao.obterEntradaItemComSaldoPorMaterial(idMaterial); 214 return this.entradaAlmoxarifadoItemDao.obterEntradaItemComSaldoPorMaterial(idMaterial);
210 } 215 }
  216 +
  217 + public BigDecimal getValorFIFOPorMaterial(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada) {
  218 + BigDecimal retorno = BigDecimal.ZERO;
  219 +
  220 + List<MaterialEstoqueFIFOItem> fifOsByMaterial = this.materialEstoqueFIFOItemService.findFIFOsByMaterial(materialConsumo.getId());
  221 +
  222 + for (MaterialEstoqueFIFOItem materialEstoqueFIFOItem : fifOsByMaterial) {
  223 +
  224 + if (materialEstoqueFIFOItem.getQuantidadeRestante().compareTo(quantidadeMovimentada) > 0) {
  225 + retorno = retorno.add(quantidadeMovimentada.multiply(materialEstoqueFIFOItem.getValorUnitario()));
  226 + materialEstoqueFIFOItem.setQuantidadeRestante(materialEstoqueFIFOItem.getQuantidadeRestante().subtract(quantidadeMovimentada));
  227 + materialEstoqueFIFOItem.setValorSobra(materialEstoqueFIFOItem.getQuantidadeRestante().multiply(materialEstoqueFIFOItem.getValorUnitario()));
  228 + this.materialEstoqueFIFOItemService.merge(materialEstoqueFIFOItem);
  229 + break;
  230 +
  231 + } else if (materialEstoqueFIFOItem.getQuantidadeRestante().compareTo(quantidadeMovimentada) == 0) {
  232 + //TODO ERICK ADICIONAR VALOR RESTANTE
  233 + retorno = retorno.add(materialEstoqueFIFOItem.getValorSobra()).add(materialEstoqueFIFOItem.getValorSobra());
  234 + materialEstoqueFIFOItem.setQuantidadeRestante(materialEstoqueFIFOItem.getQuantidadeRestante().subtract(quantidadeMovimentada));
  235 + materialEstoqueFIFOItem.setValorSobra(materialEstoqueFIFOItem.getQuantidadeRestante().multiply(materialEstoqueFIFOItem.getValorUnitario()));
  236 + this.materialEstoqueFIFOItemService.merge(materialEstoqueFIFOItem);
  237 + break;
  238 +
  239 + } else {
  240 + retorno = retorno.add((materialEstoqueFIFOItem.getQuantidadeRestante().multiply(materialEstoqueFIFOItem.getValorUnitario()))).add(materialEstoqueFIFOItem.getValorSobra());
  241 + quantidadeMovimentada = quantidadeMovimentada.subtract(materialEstoqueFIFOItem.getQuantidadeRestante());
  242 + materialEstoqueFIFOItem.setQuantidadeRestante(BigDecimal.ZERO);
  243 + this.materialEstoqueFIFOItemService.merge(materialEstoqueFIFOItem);
  244 + }
  245 + }
  246 + return retorno;
  247 + }
211 248
212 /** 249 /**
213 * {@inheritDoc} 250 * {@inheritDoc}
@@ -217,24 +254,29 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra @@ -217,24 +254,29 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl&lt;Entra
217 public BigDecimal realizaMovimentoSaida(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada) { 254 public BigDecimal realizaMovimentoSaida(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada) {
218 BigDecimal retorno = BigDecimal.ZERO; 255 BigDecimal retorno = BigDecimal.ZERO;
219 256
220 - /*Collection<EntradaAlmoxarifadoItem> entradaAlmoxarifadoItems = this.obterEntradaItemComSaldoPorMaterial(materialConsumo.getId()); 257 + /* Collection<EntradaAlmoxarifadoItem> entradaAlmoxarifadoItems = this.obterEntradaItemComSaldoPorMaterial(materialConsumo.getId());
221 258
222 for (EntradaAlmoxarifadoItem itemEntrada : entradaAlmoxarifadoItems) { 259 for (EntradaAlmoxarifadoItem itemEntrada : entradaAlmoxarifadoItems) {
223 - if (itemEntrada.getQuantidadeSaldo().compareTo(quantidadeMovimentada) > 0) { 260 +
  261 +
  262 + if (itemEntrada.getMaterialLocalEstoque().getQuantidade().compareTo(quantidadeMovimentada) > 0) {
224 retorno = retorno.add(quantidadeMovimentada.multiply(itemEntrada.getValorUnitario())); 263 retorno = retorno.add(quantidadeMovimentada.multiply(itemEntrada.getValorUnitario()));
225 - itemEntrada.setQuantidadeSaldo(itemEntrada.getQuantidadeSaldo().subtract(quantidadeMovimentada)); 264 + itemEntrada.getMaterialLocalEstoque().setQuantidade(itemEntrada.getMaterialLocalEstoque().getQuantidade().subtract(quantidadeMovimentada));
226 this.save(itemEntrada); 265 this.save(itemEntrada);
227 break; 266 break;
228 - } else if (itemEntrada.getQuantidadeSaldo().compareTo(quantidadeMovimentada) == 0) { 267 +
  268 + } else if (itemEntrada.getMaterialLocalEstoque().getQuantidade().compareTo(quantidadeMovimentada) == 0) {
229 retorno = retorno.add((quantidadeMovimentada.multiply(itemEntrada.getValorUnitario())).add(itemEntrada.getValorSobra())); 269 retorno = retorno.add((quantidadeMovimentada.multiply(itemEntrada.getValorUnitario())).add(itemEntrada.getValorSobra()));
230 - itemEntrada.setQuantidadeSaldo(itemEntrada.getQuantidadeSaldo().subtract(quantidadeMovimentada)); 270 + itemEntrada.getMaterialLocalEstoque().setQuantidade(itemEntrada.getMaterialLocalEstoque().getQuantidade().subtract(quantidadeMovimentada));
231 this.save(itemEntrada); 271 this.save(itemEntrada);
232 break; 272 break;
  273 +
233 } else { 274 } else {
234 - retorno = retorno.add((itemEntrada.getQuantidadeSaldo().multiply(itemEntrada.getValorUnitario())).add(itemEntrada.getValorSobra()));  
235 - quantidadeMovimentada = quantidadeMovimentada.subtract(itemEntrada.getQuantidadeSaldo());  
236 - itemEntrada.setQuantidadeSaldo(BigDecimal.ZERO); 275 + retorno = retorno.add((itemEntrada.getMaterialLocalEstoque().getQuantidade().multiply(itemEntrada.getValorUnitario())).add(itemEntrada.getValorSobra()));
  276 + quantidadeMovimentada = quantidadeMovimentada.subtract(itemEntrada.getMaterialLocalEstoque().getQuantidade());
  277 + itemEntrada.getMaterialLocalEstoque().setQuantidade(BigDecimal.ZERO);
237 this.save(itemEntrada); 278 this.save(itemEntrada);
  279 +
238 } 280 }
239 }*/ 281 }*/
240 282
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialEstoqueFIFOItemServiceImpl.java
1 package br.com.centralit.api.service.impl; 1 package br.com.centralit.api.service.impl;
2 2
  3 +import java.util.List;
  4 +
3 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.beans.factory.annotation.Qualifier; 6 import org.springframework.beans.factory.annotation.Qualifier;
5 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
@@ -32,4 +34,9 @@ public class MaterialEstoqueFIFOItemServiceImpl extends GenericServiceImpl&lt;Mater @@ -32,4 +34,9 @@ public class MaterialEstoqueFIFOItemServiceImpl extends GenericServiceImpl&lt;Mater
32 return super.remove(fifoItem); 34 return super.remove(fifoItem);
33 } 35 }
34 36
  37 + @Override
  38 + public List<MaterialEstoqueFIFOItem> findFIFOsByMaterial(long idMaterial) {
  39 + return materialEstoqueFIFOItemDao.findFIFOsByMaterial(idMaterial);
  40 + }
  41 +
35 } 42 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
@@ -19,6 +19,7 @@ import org.springframework.validation.Validator; @@ -19,6 +19,7 @@ import org.springframework.validation.Validator;
19 import br.com.centralit.api.dao.MovimentoEstoqueDao; 19 import br.com.centralit.api.dao.MovimentoEstoqueDao;
20 import br.com.centralit.api.model.AtendimentoRequisicaoConsumo; 20 import br.com.centralit.api.model.AtendimentoRequisicaoConsumo;
21 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem; 21 import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItem;
  22 +import br.com.centralit.api.model.AtendimentoRequisicaoConsumoItemEndereco;
22 import br.com.centralit.api.model.BaixaAlmoxarifado; 23 import br.com.centralit.api.model.BaixaAlmoxarifado;
23 import br.com.centralit.api.model.BaixaAlmoxarifadoItem; 24 import br.com.centralit.api.model.BaixaAlmoxarifadoItem;
24 import br.com.centralit.api.model.Devolucao; 25 import br.com.centralit.api.model.Devolucao;
@@ -415,27 +416,37 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -415,27 +416,37 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
415 416
416 for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : atendimento.getAtendimentoRequisicaoConsumoItems()) { 417 for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : atendimento.getAtendimentoRequisicaoConsumoItems()) {
417 418
418 - BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());  
419 - BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());  
420 -  
421 - MovimentoEstoque movimentoEstoque = new MovimentoEstoque(atendimento.getDataAtendimento(), atendimentoRequisicaoConsumoItem.getQuantidade().multiply(BigDecimal.valueOf(-1)),  
422 - valorMovimentoFIFO.multiply(BigDecimal.valueOf(-1)), valorMovimentoMediaMovel.multiply(BigDecimal.valueOf(-1)), tipoMovimento); //Movimentos negativos pois o valor esta saindo do estoque.  
423 -  
424 - //TODO Corrigir movimento de atendimento com versão nova 419 + BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.getValorFIFOPorMaterial(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
  420 + BigDecimal valorMovimentoMediaMovel = this.materialEstoqueService.findByIdMaterial(atendimentoRequisicaoConsumoItem.getMaterial().getId()).getValorUnitarioMedio();
425 421
426 - /*movimentoEstoque.setAtendimentoRequisicaoConsumoItem(atendimentoRequisicaoConsumoItem);  
427 - movimentoEstoque.setLocalEstoque(this.materialLocalEstoqueService.find(getUsuario().getOrganizacao().getId()));  
428 - movimentoEstoque.setMaterial(atendimentoRequisicaoConsumoItem.getMaterial());*/  
429 -  
430 - movimentos.add(movimentoEstoque);  
431 -  
432 - String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", atendimento.getOrganizacao()).getValor();  
433 -  
434 - if (DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME == tipoAvaliacao) { //Realiza movimento de saida em conta contábil baseado em FIFO se estiver configurado como tal.  
435 - this.contaContabilMovimentoService.salvaMovimentoSaidaAtendimento(movimentoEstoque.getMaterial().getContaContabil(), valorMovimentoFIFO, classeReferenciaAtendimento, atendimentoRequisicaoConsumoItem.getId());  
436 - } else { //Realiza movimento de saida em conta contábil baseado em Média Móvel (Padrão)  
437 - this.contaContabilMovimentoService.salvaMovimentoSaidaAtendimento(movimentoEstoque.getMaterial().getContaContabil(), valorMovimentoMediaMovel, classeReferenciaAtendimento, atendimentoRequisicaoConsumoItem.getId()); 422 + for (AtendimentoRequisicaoConsumoItemEndereco atendimentoRequisicaoConsumoItemEndereco : atendimentoRequisicaoConsumoItem.getAtendimentoRequisicaoConsumoItemEnderecos()) {
  423 +
  424 + MovimentoEstoque movimentoEstoque = new MovimentoEstoque(atendimento.getDataAtendimento(), atendimentoRequisicaoConsumoItem.getQuantidade().multiply(BigDecimal.valueOf(-1)),
  425 + valorMovimentoFIFO.multiply(BigDecimal.valueOf(-1)), valorMovimentoMediaMovel.multiply(BigDecimal.valueOf(-1)), tipoMovimento); //Movimentos negativos pois o valor esta saindo do estoque.
  426 +
  427 + movimentoEstoque.setDominioClasseReferencia(classeReferenciaAtendimento);
  428 + movimentoEstoque.setIdClasseReferencia(atendimentoRequisicaoConsumoItem.getId());
  429 + movimentoEstoque.setMaterialLocalEstoque(atendimentoRequisicaoConsumoItemEndereco.getMaterialLocalEstoque());
  430 + movimentoEstoque.setMaterialEstoque(movimentoEstoque.getMaterialEstoque());
  431 + movimentoEstoque.setMaterial(atendimentoRequisicaoConsumoItem.getMaterial());
  432 +
  433 + String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", atendimento.getOrganizacao()).getValor();
  434 +
  435 + MaterialConsumo materialConsumo = this.materialConsumoService.find(movimentoEstoque.getMaterial().getId());
  436 +
  437 + if (DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME == tipoAvaliacao) { //Realiza movimento de saida em conta contábil baseado em FIFO se estiver configurado como tal.
  438 + this.contaContabilMovimentoService.salvaMovimentoSaidaAtendimento(materialConsumo.getContaContabil(), valorMovimentoFIFO, classeReferenciaAtendimento, atendimentoRequisicaoConsumoItem.getId());
  439 + } else { //Realiza movimento de saida em conta contábil baseado em Média Móvel (Padrão)
  440 + this.contaContabilMovimentoService.salvaMovimentoSaidaAtendimento(materialConsumo.getContaContabil(), valorMovimentoMediaMovel, classeReferenciaAtendimento, atendimentoRequisicaoConsumoItem.getId());
  441 + }
  442 +
  443 + MaterialLocalEstoque materialLocalEstoque = this.materialLocalEstoqueService.find(atendimentoRequisicaoConsumoItemEndereco.getMaterialLocalEstoque().getId());
  444 + materialLocalEstoque.setQuantidade(materialLocalEstoque.getQuantidade().subtract(atendimentoRequisicaoConsumoItem.getQuantidade()));
  445 + this.materialLocalEstoqueService.merge(materialLocalEstoque);
  446 +
  447 + movimentos.add(movimentoEstoque);
438 } 448 }
  449 +
439 } 450 }
440 451
441 this.saveList(movimentos); 452 this.saveList(movimentos);
@@ -671,8 +682,10 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst @@ -671,8 +682,10 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
671 @Override 682 @Override
672 public Collection<MovimentoEstoque> findAllByEntradaItem(EntradaAlmoxarifadoItem entradaAlmoxarifadoItem) { 683 public Collection<MovimentoEstoque> findAllByEntradaItem(EntradaAlmoxarifadoItem entradaAlmoxarifadoItem) {
673 Dominio classeReferenciaEntradaItem = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM); 684 Dominio classeReferenciaEntradaItem = this.dominioService.findByChaveAndCodigo(DominioMaterial.CLASSE_REFERENCIA, DominioMaterial.REFERENCIA_ENTRADA_ALMOXARIFADO_ITEM);
674 -  
675 - return this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaAlmoxarifadoItem.getId()); 685 + if(entradaAlmoxarifadoItem.getId() != null){
  686 + return this.findAllByClasseReferencia(classeReferenciaEntradaItem, entradaAlmoxarifadoItem.getId());
  687 + }
  688 + return new ArrayList<MovimentoEstoque>();
676 } 689 }
677 690
678 } 691 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java
@@ -142,10 +142,9 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi @@ -142,10 +142,9 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl&lt;Requisi
142 public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante) { 142 public Long findRequisicaoAnteriorPorMaterial(MaterialConsumo materialConsumo, EstruturaOrganizacional unidadeRequisitante) {
143 143
144 Dominio statusFinalizado = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA); 144 Dominio statusFinalizado = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_FINALIZADA);
145 - Dominio statusAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA);  
146 Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE); 145 Dominio statusParcialmenteAtendida = this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE);
147 146
148 - return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado, statusParcialmenteAtendida, statusAtendida); 147 + return this.requisicaoConsumoItemDao.findRequisicaoAnteriorPorMaterial(materialConsumo, unidadeRequisitante, statusFinalizado, statusParcialmenteAtendida);
149 } 148 }
150 149
151 150
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -414,6 +414,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -414,6 +414,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
414 itemEndereco.$hasError = true; 414 itemEndereco.$hasError = true;
415 } 415 }
416 }); 416 });
  417 +
417 }); 418 });
418 }); 419 });
419 }); 420 });
@@ -425,13 +426,12 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -425,13 +426,12 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
425 $scope.listaSelecionados = []; 426 $scope.listaSelecionados = [];
426 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); 427 $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO'));
427 $scope.atendimentoRequisicaoConsumoForm.$submitted = false; 428 $scope.atendimentoRequisicaoConsumoForm.$submitted = false;
428 - $scope.$modalInstance.dismiss('cancel');  
429 angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); 429 angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult();
430 $scope.resetForm(); 430 $scope.resetForm();
431 $scope.setLoading(false); 431 $scope.setLoading(false);
432 }); 432 });
433 } 433 }
434 - }); 434 + });
435 } 435 }
436 } else { 436 } else {
437 $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.MSG.ATENDA_AO_MENOS_UMA_REQUISICAO'), " ", false); 437 $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.MSG.ATENDA_AO_MENOS_UMA_REQUISICAO'), " ", false);