Commit a8f7aef9808733eb0260134f3d44973391e1c64d
1 parent
065990f7
Exists in
master
[Redmine #5043]Salvar atendimento requisição
Showing
15 changed files
with
291 additions
and
129 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/RequisicaoConsumoItemDaoHibernate.java
@@ -158,7 +158,7 @@ public class RequisicaoConsumoItemDaoHibernate extends CitGenericDAOImpl impleme | @@ -158,7 +158,7 @@ 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 "); |
@@ -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; |
@@ -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,129 +204,133 @@ public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { | @@ -196,129 +204,133 @@ 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 | ||
321 | + public BigDecimal getValorResto() { | ||
322 | + return valorResto; | ||
323 | + } | ||
324 | + | ||
325 | + public void setValorResto(BigDecimal valorResto) { | ||
326 | + | ||
327 | + if (valorTotal != null && quantidadeRestante != null) { | ||
328 | + BigDecimal valorUnitarioNovo = valorTotal.divide(quantidadeRestante, SCALE_DIVISOR_DECIMAL, | ||
329 | + RoundingMode.CEILING); | ||
330 | + | ||
331 | + this.valorResto = valorTotal.subtract(valorUnitarioNovo.multiply(quantidadeRestante)); | ||
332 | + } | ||
333 | + | ||
334 | + } | ||
335 | + | ||
324 | } | 336 | } |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EntradaAlmoxarifadoItemService.java
@@ -139,4 +139,6 @@ public interface EntradaAlmoxarifadoItemService extends GenericService<EntradaAl | @@ -139,4 +139,6 @@ public interface EntradaAlmoxarifadoItemService extends GenericService<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< | @@ -144,6 +145,11 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
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()) { |
@@ -288,8 +294,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -288,8 +294,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
288 | * @param entity | 294 | * @param entity |
289 | */ | 295 | */ |
290 | private void atualizarStatusRquisicao(AtendimentoRequisicaoConsumo entity) { | 296 | private void atualizarStatusRquisicao(AtendimentoRequisicaoConsumo entity) { |
297 | + | ||
298 | + entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE)); | ||
291 | 299 | ||
292 | - Boolean atendidoCompletamente = Boolean.TRUE; | 300 | + /*Boolean atendidoCompletamente = Boolean.TRUE; |
293 | 301 | ||
294 | for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { | 302 | for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { |
295 | 303 | ||
@@ -314,7 +322,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -314,7 +322,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
314 | 322 | ||
315 | entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE)); | 323 | entity.getRequisicaoConsumo().setTipoStatusRequisicao(this.dominioService.findByChaveAndCodigo(DominioAlmoxarifado.TIPO_STATUS_REQUISICAO, DominioAlmoxarifado.TIPO_STATUS_ATENDIDA_PARCIALMENTE)); |
316 | 324 | ||
317 | - } | 325 | + }*/ |
318 | 326 | ||
319 | } | 327 | } |
320 | 328 | ||
@@ -328,8 +336,55 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -328,8 +336,55 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
328 | private void montarEntidade(AtendimentoRequisicaoConsumo entity) { | 336 | private void montarEntidade(AtendimentoRequisicaoConsumo entity) { |
329 | 337 | ||
330 | entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId())); | 338 | entity.setRequisicaoConsumo(this.requisicaoConsumoService.find(entity.getRequisicaoConsumo().getId())); |
331 | - | ||
332 | - List<AtendimentoRequisicaoConsumoItem> listaSemAtendimentosComQuantidadeZero = new ArrayList<AtendimentoRequisicaoConsumoItem>(); | 339 | + |
340 | + for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { | ||
341 | + atendimentoItem.setAtendimentoRequisicaoConsumo(entity); | ||
342 | + atendimentoItem.setOrganizacao(getUsuario().getOrganizacao()); | ||
343 | + atendimentoItem.setRequisicaoConsumoItem(this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId())); | ||
344 | + for (AtendimentoRequisicaoConsumoItemEndereco atendimentoRequisicaoConsumoItemEndereco : atendimentoItem.getAtendimentoRequisicaoConsumoItemEnderecos()) { | ||
345 | + atendimentoRequisicaoConsumoItemEndereco.setAtendimentoRequisicaoConsumoItem(atendimentoItem); | ||
346 | + } | ||
347 | + } | ||
348 | + | ||
349 | + /*if(entity.getRequisicaoConsumo().getRequisicaoConsumoItens().size() > entity.getAtendimentoRequisicaoConsumoItems().size()){ | ||
350 | + | ||
351 | + List<AtendimentoRequisicaoConsumoItem> listaAtendimentoItem = new ArrayList<AtendimentoRequisicaoConsumoItem>(); | ||
352 | + boolean addNovoAtendimentoItem = true; | ||
353 | + | ||
354 | + for (RequisicaoConsumoItem requisicaoConsumoItem : entity.getRequisicaoConsumo().getRequisicaoConsumoItens()) { | ||
355 | + | ||
356 | + for (AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem : entity.getAtendimentoRequisicaoConsumoItems()) { | ||
357 | + | ||
358 | + if(requisicaoConsumoItem.getMaterialConsumo().getId().doubleValue() == atendimentoRequisicaoConsumoItem.getMaterial().getId().doubleValue()){ | ||
359 | + atendimentoRequisicaoConsumoItem.setAtendimentoRequisicaoConsumo(entity); | ||
360 | + atendimentoRequisicaoConsumoItem.setOrganizacao(getUsuario().getOrganizacao()); | ||
361 | + atendimentoRequisicaoConsumoItem.setRequisicaoConsumoItem(requisicaoConsumoItem); | ||
362 | + atendimentoRequisicaoConsumoItem.setMaterial(this.materialConsumoService.find(atendimentoRequisicaoConsumoItem.getMaterial().getId())); | ||
363 | + addNovoAtendimentoItem = false; | ||
364 | + break; | ||
365 | + } | ||
366 | + } | ||
367 | + | ||
368 | + if(addNovoAtendimentoItem){ | ||
369 | + AtendimentoRequisicaoConsumoItem item = new AtendimentoRequisicaoConsumoItem(); | ||
370 | + item.setAtendimentoRequisicaoConsumo(entity); | ||
371 | + item.setOrganizacao(getUsuario().getOrganizacao()); | ||
372 | + item.setRequisicaoConsumoItem(requisicaoConsumoItem); | ||
373 | + item.setMaterial(requisicaoConsumoItem.getMaterialConsumo()); | ||
374 | + | ||
375 | + AtendimentoRequisicaoConsumoItemEndereco atendimentoRequisicaoConsumoItemEndereco = new AtendimentoRequisicaoConsumoItemEndereco(); | ||
376 | + atendimentoRequisicaoConsumoItemEndereco.setAtendimentoRequisicaoConsumoItem(item); | ||
377 | + atendimentoRequisicaoConsumoItemEndereco.setQuantidade(new BigDecimal(0)); | ||
378 | + | ||
379 | + List<AtendimentoRequisicaoConsumoItemEndereco> listaAtendimentoRequisicaoConsumoItemEndereco = new ArrayList<AtendimentoRequisicaoConsumoItemEndereco>(); | ||
380 | + listaAtendimentoRequisicaoConsumoItemEndereco.add(atendimentoRequisicaoConsumoItemEndereco); | ||
381 | + item.setAtendimentoRequisicaoConsumoItemEnderecos(listaAtendimentoRequisicaoConsumoItemEndereco); | ||
382 | + } | ||
383 | + addNovoAtendimentoItem = true; | ||
384 | + } | ||
385 | + }*/ | ||
386 | + | ||
387 | + /*List<AtendimentoRequisicaoConsumoItem> listaSemAtendimentosComQuantidadeZero = new ArrayList<AtendimentoRequisicaoConsumoItem>(); | ||
333 | 388 | ||
334 | for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { | 389 | for (AtendimentoRequisicaoConsumoItem atendimentoItem : entity.getAtendimentoRequisicaoConsumoItems()) { |
335 | if(atendimentoItem.getQuantidade() == null){ | 390 | if(atendimentoItem.getQuantidade() == null){ |
@@ -346,7 +401,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -346,7 +401,7 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
346 | atendimentoItem.setOrganizacao(getUsuario().getOrganizacao()); | 401 | atendimentoItem.setOrganizacao(getUsuario().getOrganizacao()); |
347 | atendimentoItem.setRequisicaoConsumoItem(this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId())); | 402 | atendimentoItem.setRequisicaoConsumoItem(this.requisicaoConsumoItemService.find(atendimentoItem.getRequisicaoConsumoItem().getId())); |
348 | 403 | ||
349 | - atendimentoItem.setMaterial(this.materialConsumoService.find(atendimentoItem.getMaterial().getId())); | 404 | + atendimentoItem.setMaterial(this.materialConsumoService.find(atendimentoItem.getMaterial().getId())); |
350 | BigDecimal qtdMaterialEmEstoque = this.materialConsumoService.getQuantidadeAtualMaterial(atendimentoItem.getMaterial().getId(), getUsuario().getOrganizacao().getId()); | 405 | BigDecimal qtdMaterialEmEstoque = this.materialConsumoService.getQuantidadeAtualMaterial(atendimentoItem.getMaterial().getId(), getUsuario().getOrganizacao().getId()); |
351 | 406 | ||
352 | if (!atendimentoItem.isNew()) { | 407 | if (!atendimentoItem.isNew()) { |
@@ -370,14 +425,14 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -370,14 +425,14 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
370 | 425 | ||
371 | } | 426 | } |
372 | 427 | ||
373 | -// if (!UtilObjeto.isReferencia(atendimentoItem.getQuantidade()) || atendimentoItem.getQuantidade().doubleValue() <= 0) { | ||
374 | -// | ||
375 | -// throw new BusinessException(VALIDACAO_QUANTIDADE_ZERADA_NEGATIVA, CodigoErro.REGRA_NEGOCIO.getValue(), atendimentoItem.getMaterial().getDescricao()); | ||
376 | -// } | 428 | + if (!UtilObjeto.isReferencia(atendimentoItem.getQuantidade()) || atendimentoItem.getQuantidade().doubleValue() <= 0) { |
429 | + | ||
430 | + throw new BusinessException(VALIDACAO_QUANTIDADE_ZERADA_NEGATIVA, CodigoErro.REGRA_NEGOCIO.getValue(), atendimentoItem.getMaterial().getDescricao()); | ||
431 | + } | ||
377 | 432 | ||
378 | entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoItem); | 433 | entity.getAtendimentoRequisicaoConsumoItems().add(atendimentoItem); |
379 | 434 | ||
380 | - } | 435 | + }*/ |
381 | 436 | ||
382 | } | 437 | } |
383 | 438 | ||
@@ -493,20 +548,20 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | @@ -493,20 +548,20 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl< | ||
493 | */ | 548 | */ |
494 | private void configurarNumeroAtendimento(AtendimentoRequisicaoConsumo entity) { | 549 | private void configurarNumeroAtendimento(AtendimentoRequisicaoConsumo entity) { |
495 | 550 | ||
496 | - if(entity.getOrganizacao() == null && entity.getRequisicaoConsumo() != null && entity.getRequisicaoConsumo().getOrganizacao() != null){ | ||
497 | - entity.setOrganizacao(entity.getRequisicaoConsumo().getOrganizacao()); | ||
498 | - } | ||
499 | - | ||
500 | - AtendimentoRequisicaoConsumo ultimoRegistro = | ||
501 | - (AtendimentoRequisicaoConsumo) atendimentoRequisicaoConsumoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroAtendimento", entity.getOrganizacao().getId()); | ||
502 | - | ||
503 | - Long sequencial = null; | ||
504 | - if (UtilObjeto.isReferencia(ultimoRegistro)) { | ||
505 | - sequencial = ultimoRegistro.getNumeroAtendimento() == null ? null : Long.parseLong(ultimoRegistro.getNumeroAtendimento()); | ||
506 | - } | ||
507 | - String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao()); | 551 | +// if(entity.getOrganizacao() == null && entity.getRequisicaoConsumo() != null && entity.getRequisicaoConsumo().getOrganizacao() != null){ |
552 | +// entity.setOrganizacao(entity.getRequisicaoConsumo().getOrganizacao()); | ||
553 | +// } | ||
554 | +// | ||
555 | +// AtendimentoRequisicaoConsumo ultimoRegistro = | ||
556 | +// (AtendimentoRequisicaoConsumo) atendimentoRequisicaoConsumoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroAtendimento", entity.getOrganizacao().getId()); | ||
557 | +// | ||
558 | +// Long sequencial = null; | ||
559 | +// if (UtilObjeto.isReferencia(ultimoRegistro)) { | ||
560 | +// sequencial = ultimoRegistro.getNumeroAtendimento() == null ? null : Long.parseLong(ultimoRegistro.getNumeroAtendimento()); | ||
561 | +// } | ||
562 | +// String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao()); | ||
508 | 563 | ||
509 | - entity.setNumeroAtendimento(codigo); | 564 | + entity.setNumeroAtendimento(entity.getRequisicaoConsumo().getNumeroRequisicao()); |
510 | } | 565 | } |
511 | 566 | ||
512 | @Override | 567 | @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<Entra | @@ -76,6 +78,9 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<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<Entra | @@ -208,6 +213,38 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<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.getValorResto()); | ||
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.getValorResto()); | ||
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<Entra | @@ -217,24 +254,29 @@ public class EntradaAlmoxarifadoItemServiceImpl extends GenericServiceImpl<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<Mater | @@ -32,4 +34,9 @@ public class MaterialEstoqueFIFOItemServiceImpl extends GenericServiceImpl<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<MovimentoEst | @@ -415,27 +416,37 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl<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(atendimentoRequisicaoConsumoItem.getQuantidade().subtract(materialLocalEstoque.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); |
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/RequisicaoConsumoItemServiceImpl.java
@@ -142,10 +142,9 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl<Requisi | @@ -142,10 +142,9 @@ public class RequisicaoConsumoItemServiceImpl extends GenericServiceImpl<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
@@ -408,9 +408,20 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | @@ -408,9 +408,20 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', | ||
408 | $scope.atendimentos.forEach(function(atendimento){ | 408 | $scope.atendimentos.forEach(function(atendimento){ |
409 | atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){ | 409 | atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){ |
410 | result.materiaisLocalEstoque.forEach(function(localEstoque){ | 410 | result.materiaisLocalEstoque.forEach(function(localEstoque){ |
411 | - if(atendimentoItem.materialLocalEstoque.id === localEstoque.id){ | ||
412 | - atendimentoItem.$hasError = true; | 411 | + |
412 | + if(atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.length == 1){ | ||
413 | + if(atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos[0].materialLocalEstoque.id === localEstoque.id){ | ||
414 | + atendimentoItem.$hasError = true; | ||
415 | + } | ||
416 | + }else{ | ||
417 | + angular.forEach(atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos, function(atendimentoRequisicaoConsumoItemEndereco){ | ||
418 | + if(atendimentoRequisicaoConsumoItemEndereco.materialLocalEstoque.id === localEstoque.id){ | ||
419 | + atendimentoItem.$hasError = true; | ||
420 | + atendimentoRequisicaoConsumoItemEndereco.$hasError = true; | ||
421 | + } | ||
422 | + }); | ||
413 | } | 423 | } |
424 | + | ||
414 | }); | 425 | }); |
415 | }); | 426 | }); |
416 | }); | 427 | }); |