Commit 42850c0f4a2ce68e1975603272adb495a100b4b6

Authored by geovane.filho
1 parent 67b3da65
Exists in master

Redmine #4679 Terminando alteração do modelo

Showing 28 changed files with 484 additions and 1215 deletions   Show diff stats
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MaterialEstoqueSaldoMedioDao.java
... ... @@ -1,47 +0,0 @@
1   -package br.com.centralit.api.dao;
2   -
3   -import java.math.BigDecimal;
4   -
5   -import br.com.centralit.api.model.Material;
6   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
7   -import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
8   -
9   -public interface MaterialEstoqueSaldoMedioDao extends CitGenericDAO {
10   -
11   - /**
12   - * Recupera os dados do estoque e saldo de um material a partir da análise média
13   - *
14   - * @param material Material a se buscar os dados de estoque médio.
15   - * @return
16   - */
17   - public MaterialEstoqueSaldoMedio findByMaterial(Material material);
18   -
19   - /**
20   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
21   - *
22   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
23   - *
24   - * Método responsável por buscar o valor unitario do material na quando o sistema esta configurado para trabalhar com a media movel
25   - *
26   - * @author juliana.barbosa
27   - *
28   - * @param materialId
29   - * @return
30   - */
31   - public BigDecimal buscaValorUnitario(Long materialId);
32   -
33   - /**
34   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
35   - *
36   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
37   - *
38   - * Método responsável por buscar o resto do material na quando o sistema esta configurado para trabalhar com a media movel
39   - *
40   - * @author juliana.barbosa
41   - *
42   - * @param materialId
43   - * @return
44   - */
45   - public BigDecimal buscaValorResto(Long materialId);
46   -
47   -}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MaterialEstoqueSaldoMedioDaoHibernate.java
... ... @@ -1,97 +0,0 @@
1   -package br.com.centralit.api.dao.impl;
2   -
3   -import java.math.BigDecimal;
4   -
5   -import javax.persistence.NoResultException;
6   -import javax.persistence.Query;
7   -
8   -import org.springframework.stereotype.Repository;
9   -
10   -import br.com.centralit.api.dao.MaterialEstoqueSaldoMedioDao;
11   -import br.com.centralit.api.model.Material;
12   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
13   -import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
14   -import br.com.centralit.framework.dao.arquitetura.SearchSeven;
15   -
16   -@Repository("materialEstoqueSaldoMedioDao")
17   -public class MaterialEstoqueSaldoMedioDaoHibernate extends CitGenericDAOImpl implements MaterialEstoqueSaldoMedioDao {
18   -
19   - public MaterialEstoqueSaldoMedioDaoHibernate() {
20   - super(MaterialEstoqueSaldoMedio.class);
21   - }
22   -
23   - @Override
24   - public MaterialEstoqueSaldoMedio findByMaterial(Material material) {
25   - SearchSeven search = new SearchSeven();
26   -
27   - search.addFilterEqual("material.id", material.getId());
28   -
29   - search.setMaxResults(1);
30   -
31   - return this.searchUnique(search, MaterialEstoqueSaldoMedio.class);
32   - }
33   -
34   - /**
35   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
36   - *
37   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
38   - *
39   - * Método responsável por buscar o valor unitario do material na quando o sistema esta configurado para trabalhar com a media movel
40   - *
41   - * @author juliana.barbosa
42   - *
43   - * @param materialId
44   - * @return
45   - */
46   - public BigDecimal buscaValorUnitario(Long materialId){
47   - Query queryQnt = em().createQuery("SELECT valorunitariomedio FROM MaterialEstoqueSaldoMedio where material.id = :materialId");
48   - queryQnt.setMaxResults(1);
49   -
50   - queryQnt.setParameter("materialId", materialId);
51   -
52   - BigDecimal valor = BigDecimal.ZERO;
53   -
54   - try {
55   - valor = (BigDecimal) queryQnt.getSingleResult();
56   - if (valor == null) {
57   - valor = BigDecimal.ZERO;
58   - }
59   - } catch (NoResultException e) {
60   - valor = BigDecimal.ZERO;
61   - }
62   -
63   - return valor;
64   - }
65   -
66   - /**
67   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
68   - *
69   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
70   - *
71   - * Método responsável por buscar o resto do material na quando o sistema esta configurado para trabalhar com a media movel
72   - *
73   - * @author juliana.barbosa
74   - *
75   - * @param materialId
76   - * @return
77   - */
78   - public BigDecimal buscaValorResto(Long materialId){
79   - Query queryQnt = em().createQuery("SELECT restomedio FROM MaterialEstoqueSaldoMedio where material.id = :materialId");
80   - queryQnt.setMaxResults(1);
81   -
82   - queryQnt.setParameter("materialId", materialId);
83   -
84   - BigDecimal resto = BigDecimal.ZERO;
85   -
86   - try {
87   - resto = (BigDecimal) queryQnt.getSingleResult();
88   - if (resto == null) {
89   - resto = BigDecimal.ZERO;
90   - }
91   - } catch (NoResultException e) {
92   - resto = BigDecimal.ZERO;
93   - }
94   -
95   - return resto;
96   - }
97   -}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java
... ... @@ -13,6 +13,7 @@ import javax.persistence.GenerationType;
13 13 import javax.persistence.Id;
14 14 import javax.persistence.ManyToOne;
15 15 import javax.persistence.OneToMany;
  16 +import javax.persistence.Table;
16 17 import javax.persistence.Temporal;
17 18 import javax.persistence.TemporalType;
18 19 import javax.persistence.Transient;
... ... @@ -61,6 +62,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
61 62 *
62 63 */
63 64 @Entity
  65 +@Table(name="alm_rc_atendimento")
64 66 @JsonIgnoreProperties({"$selecionarRequisicoes", "$dataFinalizacao"})
65 67 public class AtendimentoRequisicaoConsumo extends PersistentObjectAuditOrganizacao {
66 68  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
... ... @@ -51,7 +51,7 @@ import com.fasterxml.jackson.annotation.JsonView;
51 51 *
52 52 */
53 53 @Entity
54   -@Table(name="AtendimentoReqConsumoItem")
  54 +@Table(name="alm_rc_atendimentoitem")
55 55 @JsonIgnoreProperties({"$info", "$verInfo", "$quantidade"})
56 56 public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrganizacao {
57 57  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/BaixaAlmoxarifado.java
... ... @@ -9,6 +9,7 @@ import javax.persistence.Entity;
9 9 import javax.persistence.FetchType;
10 10 import javax.persistence.ManyToOne;
11 11 import javax.persistence.OneToMany;
  12 +import javax.persistence.Table;
12 13 import javax.persistence.Temporal;
13 14 import javax.persistence.TemporalType;
14 15  
... ... @@ -58,6 +59,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
58 59 */
59 60 @Audited
60 61 @Entity
  62 +@Table(name="alm_baixa")
61 63 public class BaixaAlmoxarifado extends Baixa {
62 64  
63 65 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/BaixaAlmoxarifadoItem.java
... ... @@ -10,6 +10,7 @@ import javax.persistence.GeneratedValue;
10 10 import javax.persistence.GenerationType;
11 11 import javax.persistence.Id;
12 12 import javax.persistence.ManyToOne;
  13 +import javax.persistence.Table;
13 14 import javax.persistence.Temporal;
14 15 import javax.persistence.TemporalType;
15 16 import javax.persistence.Transient;
... ... @@ -59,6 +60,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
59 60 *
60 61 */
61 62 @Entity
  63 +@Table(name="alm_bx_item")
62 64 @JsonIgnoreProperties({ "descricao", "unidadeArmazenamento", "$selected", "$index", "$checked" })
63 65 public class BaixaAlmoxarifadoItem extends PersistentObjectAudit {
64 66  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/BemAlmoxarifadoCaracteristica.java
... ... @@ -6,16 +6,16 @@ import javax.persistence.GeneratedValue;
6 6 import javax.persistence.GenerationType;
7 7 import javax.persistence.Id;
8 8 import javax.persistence.ManyToOne;
  9 +import javax.persistence.Table;
9 10  
10   -import org.hibernate.envers.AuditTable;
11 11 import org.hibernate.envers.Audited;
12 12  
13   -import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
14   -import com.fasterxml.jackson.annotation.JsonView;
15   -
16 13 import br.com.centralit.api.framework.json.ViewsAdmMateriais;
17 14 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
18 15  
  16 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  17 +import com.fasterxml.jackson.annotation.JsonView;
  18 +
19 19 /**
20 20 * <p>
21 21 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -49,8 +49,8 @@ import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganiz
49 49 *
50 50 */
51 51 @Audited
52   -@AuditTable(value = "BemAlmoxCaract_aud")
53 52 @Entity
  53 +@Table(name="alm_bem_caracteristica")
54 54 @JsonIgnoreProperties({ "uploadAnexo", "listaDominios" })
55 55 public class BemAlmoxarifadoCaracteristica extends PersistentObjectAuditOrganizacao {
56 56  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/CatalogoMaterial.java
... ... @@ -11,6 +11,7 @@ import javax.persistence.GeneratedValue;
11 11 import javax.persistence.GenerationType;
12 12 import javax.persistence.Id;
13 13 import javax.persistence.OneToMany;
  14 +import javax.persistence.Table;
14 15 import javax.persistence.Temporal;
15 16 import javax.persistence.TemporalType;
16 17  
... ... @@ -57,6 +58,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
57 58 *
58 59 */
59 60 @Entity
  61 +@Table(name="alm_catalogomaterial")
60 62 public class CatalogoMaterial extends PersistentObjectAuditOrganizacao {
61 63  
62 64 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/CatalogoMaterialItem.java
... ... @@ -6,6 +6,7 @@ import javax.persistence.GeneratedValue;
6 6 import javax.persistence.GenerationType;
7 7 import javax.persistence.Id;
8 8 import javax.persistence.ManyToOne;
  9 +import javax.persistence.Table;
9 10  
10 11 import br.com.centralit.api.framework.json.ViewsAdmMateriais;
11 12 import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
... ... @@ -46,6 +47,7 @@ import com.fasterxml.jackson.annotation.JsonView;
46 47 *
47 48 */
48 49 @Entity
  50 +@Table(name="alm_cm_item")
49 51 @JsonIgnoreProperties({ "$index" })
50 52 public class CatalogoMaterialItem extends PersistentObjectAuditOrganizacao {
51 53  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/CatalogoMaterialUnidadeConsumidoraRequisitanteItem.java
... ... @@ -47,7 +47,7 @@ import com.fasterxml.jackson.annotation.JsonView;
47 47 *
48 48 */
49 49 @Entity
50   -@Table(name="CatMaterialUnidadeConsReqItem")
  50 +@Table(name="alm_cm_undreqitem")
51 51 @JsonIgnoreProperties({ "$index" })
52 52 public class CatalogoMaterialUnidadeConsumidoraRequisitanteItem extends PersistentObjectAuditOrganizacao {
53 53  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/ConfiguracaoNotificacaoRessuprimentoGrupo.java
... ... @@ -50,7 +50,7 @@ import com.fasterxml.jackson.annotation.JsonView;
50 50 *
51 51 */
52 52 @Entity
53   -@Table(name="ConfigNotificacaoRessupGrupo")
  53 +@Table(name="alm_not_res_grupo")
54 54 @JsonIgnoreProperties({ "$checked" })
55 55 public class ConfiguracaoNotificacaoRessuprimentoGrupo extends PersistentObjectAuditOrganizacao {
56 56  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/ConfiguracaoNotificacaoRessuprimentoUsuario.java
... ... @@ -50,7 +50,7 @@ import com.fasterxml.jackson.annotation.JsonView;
50 50 *
51 51 */
52 52 @Entity
53   -@Table(name="ConfigNotificacaoRessupUsuario")
  53 +@Table(name="alm_not_res_usuario")
54 54 @JsonIgnoreProperties({ "$checked" })
55 55 public class ConfiguracaoNotificacaoRessuprimentoUsuario extends PersistentObjectAuditOrganizacao {
56 56  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Devolucao.java
... ... @@ -12,6 +12,7 @@ import javax.persistence.GenerationType;
12 12 import javax.persistence.Id;
13 13 import javax.persistence.ManyToOne;
14 14 import javax.persistence.OneToMany;
  15 +import javax.persistence.Table;
15 16 import javax.persistence.Temporal;
16 17 import javax.persistence.TemporalType;
17 18  
... ... @@ -58,6 +59,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
58 59 *
59 60 */
60 61 @Entity
  62 +@Table(name="alm_devolucao")
61 63 public class Devolucao extends PersistentObjectAuditOrganizacao {
62 64  
63 65 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/DevolucaoDocumento.java
... ... @@ -3,10 +3,12 @@ package br.com.centralit.api.model;
3 3 import javax.persistence.Entity;
4 4 import javax.persistence.FetchType;
5 5 import javax.persistence.ManyToOne;
  6 +import javax.persistence.Table;
6 7  
7 8 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
8 9  
9 10 @Entity
  11 +@Table(name="alm_dev_documento")
10 12 @JsonIgnoreProperties({ "uploadsDocumento", "$uuid", "$checked", "$index" })
11 13 public class DevolucaoDocumento extends Documento {
12 14  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/DevolucaoItem.java
... ... @@ -8,6 +8,7 @@ import javax.persistence.GeneratedValue;
8 8 import javax.persistence.GenerationType;
9 9 import javax.persistence.Id;
10 10 import javax.persistence.ManyToOne;
  11 +import javax.persistence.Table;
11 12  
12 13 import com.fasterxml.jackson.annotation.JsonView;
13 14  
... ... @@ -48,6 +49,7 @@ import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganiz
48 49 *
49 50 */
50 51 @Entity
  52 +@Table(name="alm_dev_item")
51 53 public class DevolucaoItem extends PersistentObjectAuditOrganizacao {
52 54  
53 55 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/DevolucaoObservacao.java
... ... @@ -3,6 +3,7 @@ package br.com.centralit.api.model;
3 3 import javax.persistence.Entity;
4 4 import javax.persistence.FetchType;
5 5 import javax.persistence.ManyToOne;
  6 +import javax.persistence.Table;
6 7  
7 8 /**
8 9 * <p>
... ... @@ -37,6 +38,7 @@ import javax.persistence.ManyToOne;
37 38 *
38 39 */
39 40 @Entity
  41 +@Table(name="alm_dev_observacao")
40 42 public class DevolucaoObservacao extends Observacao {
41 43  
42 44 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EstruturaOrganizacionalAlmoxarifado.java
... ... @@ -49,7 +49,7 @@ import com.fasterxml.jackson.annotation.JsonView;
49 49 *
50 50 */
51 51 @Entity
52   -@Table(name = "EstruturaOrganizacionalAlmox")
  52 +@Table(name="alm_eo_almoxarifado")
53 53 public class EstruturaOrganizacionalAlmoxarifado extends PersistentObjectAudit implements Comparable<EstruturaOrganizacionalAlmoxarifado>, Cloneable {
54 54  
55 55 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueSaldoMedio.java
... ... @@ -1,203 +0,0 @@
1   -package br.com.centralit.api.model;
2   -
3   -import java.math.BigDecimal;
4   -
5   -import javax.persistence.Column;
6   -import javax.persistence.Entity;
7   -import javax.persistence.GeneratedValue;
8   -import javax.persistence.GenerationType;
9   -import javax.persistence.Id;
10   -import javax.persistence.OneToOne;
11   -
12   -import br.com.centralit.framework.json.Views;
13   -import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao;
14   -
15   -import com.fasterxml.jackson.annotation.JsonView;
16   -
17   -/**
18   - * <p>
19   - * <img src="http://centralit.com.br/images/logo_central.png">
20   - * </p>
21   - *
22   - * <p>
23   - * <b>Company: </b> Central IT - Governança Corporativa -
24   - * </p>
25   - *
26   - * <p>
27   - * <b>Title: Material Estoque Saldo Medio</b>
28   - * </p>
29   - *
30   - * <p>
31   - * <b>Description: Saldo médio de um material em estoque</b>
32   - * </p>
33   - *
34   - * <p>
35   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
36   - * </p>
37   - *
38   - * <p>
39   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
40   - * </p>
41   - *
42   - * @since 22/06/2015 - 16:12:33
43   - *
44   - * @version 1.0.0
45   - *
46   - * @author geovane.filho
47   - *
48   - */
49   -@Entity //TODO Deletar
50   -public class MaterialEstoqueSaldoMedio extends PersistentObjectAuditOrganizacao {
51   -
52   - private static final long serialVersionUID = -9108177938688790640L;
53   -
54   - /** Atributo id. */
55   - @Id
56   - @GeneratedValue(strategy = GenerationType.AUTO)
57   - private Long id;
58   -
59   - /** Atributo material. */
60   - @OneToOne(optional = false)
61   - private Material material;
62   -
63   - /** Atributo quantidade. */
64   - @Column(precision = 20, scale = 4)
65   - @JsonView({ Views.MaterialConsultaInfo.class })
66   - private BigDecimal quantidadeAtual;
67   -
68   - /** Atributo valorFechado. */
69   - @Column(precision = 20, scale = 4)
70   - @JsonView({ Views.MaterialConsultaInfo.class })
71   - private BigDecimal valorUnitarioMedio;
72   -
73   - /** Atributo restoMedio. */
74   - @Column(precision = 20, scale = 4)
75   - @JsonView({ Views.MaterialConsultaInfo.class })
76   - private BigDecimal restoMedio;
77   -
78   - /**
79   - *
80   - * Responsável pela criação de novas instâncias desta classe.
81   - */
82   - protected MaterialEstoqueSaldoMedio() {
83   - super();
84   - }
85   -
86   - /**
87   - *
88   - * Responsável pela criação de novas instâncias desta classe com seus atributos obrigatorios.
89   - */
90   - public MaterialEstoqueSaldoMedio(Material material, BigDecimal quantidadeAtual, BigDecimal valorUnitarioMedio, BigDecimal restoMedio) {
91   - super();
92   - this.material = material;
93   - this.quantidadeAtual = quantidadeAtual;
94   - this.valorUnitarioMedio = valorUnitarioMedio;
95   - this.restoMedio = restoMedio;
96   - }
97   -
98   - /**
99   - *
100   - * Responsável pela criação de novas instâncias desta classe definindo o material e zerando os atributos de controle de estoque
101   - */
102   - public MaterialEstoqueSaldoMedio(Material material) {
103   - super();
104   - this.material = material;
105   - this.quantidadeAtual = BigDecimal.ZERO;
106   - this.valorUnitarioMedio = BigDecimal.ZERO;
107   - this.restoMedio = BigDecimal.ZERO;
108   - }
109   -
110   - /**
111   - * Retorna o valor do atributo <code>material</code>
112   - *
113   - * @return <code>Material</code>
114   - */
115   - public Material getMaterial() {
116   - return material;
117   - }
118   -
119   - /**
120   - * Define o valor do atributo <code>material</code>.
121   - *
122   - * @param material
123   - */
124   - public void setMaterial(Material material) {
125   - this.material = material;
126   - }
127   -
128   - /**
129   - * Retorna o valor do atributo <code>quantidadeAtual</code>
130   - *
131   - * @return <code>BigDecimal</code>
132   - */
133   - public BigDecimal getQuantidadeAtual() {
134   - return quantidadeAtual;
135   - }
136   -
137   - /**
138   - * Define o valor do atributo <code>quantidadeAtual</code>.
139   - *
140   - * @param quantidadeAtual
141   - */
142   - public void setQuantidadeAtual(BigDecimal quantidadeAtual) {
143   - this.quantidadeAtual = quantidadeAtual;
144   - }
145   -
146   - /**
147   - * Retorna o valor do atributo <code>valorUnitarioMedio</code>
148   - *
149   - * @return <code>BigDecimal</code>
150   - */
151   - public BigDecimal getValorUnitarioMedio() {
152   - return valorUnitarioMedio;
153   - }
154   -
155   - /**
156   - * Define o valor do atributo <code>valorUnitarioMedio</code>.
157   - *
158   - * @param valorUnitarioMedio
159   - */
160   - public void setValorUnitarioMedio(BigDecimal valorUnitarioMedio) {
161   - this.valorUnitarioMedio = valorUnitarioMedio;
162   - }
163   -
164   - /**
165   - * Retorna o valor do atributo <code>id</code>
166   - *
167   - * @return <code>Long</code>
168   - */
169   - @Override
170   - public Long getId() {
171   -
172   - return id;
173   - }
174   -
175   - /**
176   - * Define o valor do atributo <code>id</code>.
177   - *
178   - * @param id
179   - */
180   - public void setId(Long id) {
181   -
182   - this.id = id;
183   - }
184   -
185   - /**
186   - * Retorna o valor do atributo <code>restoMedio</code>
187   - *
188   - * @return <code>BigDecimal</code>
189   - */
190   - public BigDecimal getRestoMedio() {
191   - return restoMedio;
192   - }
193   -
194   - /**
195   - * Define o valor do atributo <code>restoMedio</code>.
196   - *
197   - * @param restoMedio
198   - */
199   - public void setRestoMedio(BigDecimal restoMedio) {
200   - this.restoMedio = restoMedio;
201   - }
202   -
203   -}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java
... ... @@ -12,6 +12,7 @@ import javax.persistence.GenerationType;
12 12 import javax.persistence.Id;
13 13 import javax.persistence.ManyToOne;
14 14 import javax.persistence.OneToMany;
  15 +import javax.persistence.Table;
15 16 import javax.persistence.Temporal;
16 17 import javax.persistence.TemporalType;
17 18  
... ... @@ -61,6 +62,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
61 62 *
62 63 */
63 64 @Entity
  65 +@Table(name="alm_requisicaoconsumo")
64 66 @JsonIgnoreProperties({"$checked"})
65 67 public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao {
66 68  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumoItem.java
... ... @@ -8,6 +8,7 @@ import javax.persistence.GeneratedValue;
8 8 import javax.persistence.GenerationType;
9 9 import javax.persistence.Id;
10 10 import javax.persistence.ManyToOne;
  11 +import javax.persistence.Table;
11 12  
12 13 import br.com.centralit.api.framework.json.ViewsAdmMateriais;
13 14 import br.com.centralit.api.framework.json.ViewsAlmoxarifado;
... ... @@ -52,6 +53,7 @@ import com.fasterxml.jackson.annotation.JsonView;
52 53 */
53 54 @JsonIgnoreProperties({ "$quantidadeAtendida", "$quantidadeADevolver", "$TIPO_DECIMAL", "$index" })
54 55 @Entity
  56 +@Table(name="alm_rc_item")
55 57 public class RequisicaoConsumoItem extends PersistentObjectAuditOrganizacao {
56 58  
57 59 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoObservacao.java
... ... @@ -3,6 +3,7 @@ package br.com.centralit.api.model;
3 3 import javax.persistence.Entity;
4 4 import javax.persistence.FetchType;
5 5 import javax.persistence.ManyToOne;
  6 +import javax.persistence.Table;
6 7  
7 8 /**
8 9 * <p>
... ... @@ -37,6 +38,7 @@ import javax.persistence.ManyToOne;
37 38 *
38 39 */
39 40 @Entity
  41 +@Table(name="alm_rc_observacao")
40 42 public class RequisicaoObservacao extends Observacao {
41 43  
42 44 /** Atributo serialVersionUID. */
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MaterialEstoqueSaldoMedioService.java
... ... @@ -1,144 +0,0 @@
1   -/**
2   - *
3   - */
4   -package br.com.centralit.api.service;
5   -
6   -import java.math.BigDecimal;
7   -
8   -import br.com.centralit.api.model.Material;
9   -import br.com.centralit.api.model.MaterialConsumo;
10   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
11   -import br.com.centralit.framework.service.arquitetura.GenericService;
12   -
13   -/**
14   - * <p>
15   - * <img src="http://centralit.com.br/images/logo_central.png">
16   - * </p>
17   - *
18   - * <p>
19   - * <b>Company: </b> Central IT - Governança Corporativa -
20   - * </p>
21   - *
22   - * <p>
23   - * <b>Title: </b>
24   - * </p>
25   - *
26   - * <p>
27   - * <b>Description: </b>
28   - * </p>
29   - *
30   - * @since 23/06/2015 - 17:51:55
31   - *
32   - * @version 1.0.0
33   - *
34   - * @author geovane.filho
35   - *
36   - */
37   -public interface MaterialEstoqueSaldoMedioService extends GenericService<MaterialEstoqueSaldoMedio, Long> {
38   -
39   - /**
40   - * <p>
41   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
42   - * </p>
43   - *
44   - * <p>
45   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
46   - * </p>
47   - *
48   - * Método responsável por atualizar o saldo do estoque de um material
49   - *
50   - * @author geovane.filho
51   - *
52   - * @param material Material a se atualizar o saldo médio do estoque
53   - * @param quantidade Quantidade de material a se adicionar
54   - * @param valorTotal Valor total dos materiais que estão sendo adicionados
55   - */
56   - public void atualizaMaterialEstoque(Material material, BigDecimal quantidade, BigDecimal valorTotal);
57   -
58   - /**
59   - * <p>
60   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
61   - * </p>
62   - *
63   - * <p>
64   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
65   - * </p>
66   - *
67   - * Método responsável por trazer o estoque atual de material baseado na análise de estoque por Média Móvel.
68   - *
69   - * @author geovane.filho
70   - *
71   - * @param material Material a se buscar o estoque atual.
72   - * @return
73   - */
74   - public MaterialEstoqueSaldoMedio findByMaterial(Material material);
75   -
76   - /**
77   - * <p>
78   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
79   - * </p>
80   - *
81   - * <p>
82   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
83   - * </p>
84   - *
85   - * Método responsável por realizar um movimento de saida no saldo de estoque baseado na análise de estoque por média móvel.
86   - *
87   - * @author geovane.filho
88   - *
89   - * @param materialConsumo Material a se buscar o valor a ser movimentado pela analise de estoque baseado na Média Móvel.
90   - * @param quantidadeMovimentada Quantidade de material sendo movimentado.
91   - *
92   - * @return Valor monetário da quantidade movimentada na saida.
93   - */
94   - public BigDecimal realizaMovimentoSaida(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada);
95   -
96   - /**
97   - * <p>
98   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
99   - * </p>
100   - *
101   - * <p>
102   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
103   - * </p>
104   - *
105   - * Método responsável por realizar um movimento de devolução no saldo de estoque baseado na análise de estoque por média móvel.
106   - *
107   - * @author geovane.filho
108   - *
109   - * @param materialConsumo Material a se buscar o valor a ser movimentado pela analise de estoque baseado na Média Móvel.
110   - * @param quantidadeMovimentada Quantidade de material sendo movimentado.
111   - *
112   - * @return Valor monetário da quantidade movimentada na devolução.
113   - */
114   - public BigDecimal realizaMovimentoDevolucao(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada);
115   -
116   - /**
117   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
118   - *
119   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
120   - *
121   - * Método responsável por buscar o valor unitario do material na quando o sistema esta configurado para trabalhar com a media movel
122   - *
123   - * @author juliana.barbosa
124   - *
125   - * @param materialId
126   - * @return
127   - */
128   - public BigDecimal buscaValorUnitario(Long materialId);
129   -
130   - /**
131   - * <p><b>Iniciativa(s):</b> <a href="LINK_PORTAL">2485</a></p>
132   - *
133   - * <p><b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a></p>
134   - *
135   - * Método responsável por buscar o resto do material na quando o sistema esta configurado para trabalhar com a media movel
136   - *
137   - * @author juliana.barbosa
138   - *
139   - * @param materialId
140   - * @return
141   - */
142   - public BigDecimal buscaValorResto(Long materialId);
143   -
144   -}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/BaixaAlmoxarifadoServiceImpl.java
1   -package br.com.centralit.api.service.impl;
2   -
3   -import java.math.BigDecimal;
4   -import java.util.List;
5   -
6   -import org.springframework.beans.factory.annotation.Autowired;
7   -import org.springframework.beans.factory.annotation.Qualifier;
8   -import org.springframework.stereotype.Service;
9   -import org.springframework.validation.Validator;
10   -
11   -import br.com.centralit.api.dao.BaixaAlmoxarifadoDao;
12   -import br.com.centralit.api.model.BaixaAlmoxarifado;
13   -import br.com.centralit.api.model.BaixaAlmoxarifadoItem;
14   -import br.com.centralit.api.model.BaixaDocumento;
15   -import br.com.centralit.api.model.BaixaObservacao;
16   -import br.com.centralit.api.model.DominioAlmoxarifado;
17   -import br.com.centralit.api.service.BaixaAlmoxarifadoItemService;
18   -import br.com.centralit.api.service.BaixaAlmoxarifadoService;
19   -import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
20   -import br.com.centralit.api.service.DominioService;
21   -import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
22   -import br.com.centralit.api.service.EstruturaOrganizacionalService;
23   -import br.com.centralit.api.service.InternacionalizacaoService;
24   -import br.com.centralit.api.service.MaterialConsumoService;
25   -import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
26   -import br.com.centralit.api.service.MovimentoEstoqueService;
27   -import br.com.centralit.api.service.ParceiroService;
28   -import br.com.centralit.api.service.RequisicaoConsumoService;
29   -import br.com.centralit.api.service.UsuarioService;
30   -import br.com.centralit.framework.exception.BusinessException;
31   -import br.com.centralit.framework.exception.CodigoErro;
32   -import br.com.centralit.framework.model.Dominio;
33   -import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
34   -import br.com.centralit.framework.util.UtilColecao;
35   -import br.com.centralit.framework.util.UtilObjeto;
36   -
37   -/**
38   - * <p>
39   - * <img src="http://centralit.com.br/images/logo_central.png">
40   - * </p>
41   - *
42   - * <p>
43   - * <b>Company: </b> Central IT - Governança Corporativa -
44   - * </p>
45   - *
46   - * <p>
47   - * <b>Title: </b>
48   - * </p>
49   - *
50   - * <p>
51   - * <b>Description: </b>
52   - * </p>
53   - *
54   - * <p>
55   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
56   - * </p>
57   - *
58   - * <p>
59   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
60   - * </p>
61   - *
62   - * @since 18/06/2015 - 17:40:42
63   - *
64   - * @version 1.0.0
65   - *
66   - * @author rogerio.costa
67   - *
68   - */
69   -@Service("baixaAlmoxarifadoService")
70   -public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl<BaixaAlmoxarifado, Long> implements BaixaAlmoxarifadoService {
71   -
72   - private static final String VALIDACAO_QUANTIDADE_SUPERIOR_SALDO = "VALIDACAO.QUANTIDADE_SUPERIOR_SALDO";
73   -
74   - private static final String VALIDACAO_REMOCAO_BAIXA_ALMOXARIFADO = "VALIDACAO.REMOCAO_EDICAO_BAIXA_ALMOXARIFADO";
75   -
76   - /** Atributo baixaAlmoxarifadoDao. */
77   - private final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao;
78   -
79   - /** Atributo parceiroService. */
80   - @Autowired
81   - private ParceiroService parceiroService;
82   -
83   - /** Atributo dominioService. */
84   - @Autowired
85   - private DominioService dominioService;
86   -
87   - /** Atributo usuarioService. */
88   - @Autowired
89   - private UsuarioService usuarioService;
90   -
91   - /** Atributo usuarioService. */
92   - @Autowired
93   - private MaterialConsumoService materialConsumoService;
94   -
95   - /** Atributo movimentoEstoqueService. */
96   - @Autowired
97   - private MovimentoEstoqueService movimentoEstoqueService;
98   -
99   - /** Atributo estruturaOrganizacionalService. */
100   - @Autowired
101   - private EstruturaOrganizacionalService estruturaOrganizacionalService;
102   -
103   - /** Atributo requisicaoConsumoService. */
104   - @Autowired
105   - private RequisicaoConsumoService requisicaoConsumoService;
106   -
107   - /** Atributo baixaAlmoxarifadoItemService. */
108   - @Autowired
109   - private BaixaAlmoxarifadoItemService baixaAlmoxarifadoItemService;
110   -
111   - @Autowired
112   - private EntradaAlmoxarifadoItemService entradaAlmoxarifadoItemService;
113   -
114   - @Autowired
115   - private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService;
116   -
117   - @Autowired
118   - private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService;
119   -
120   - @Autowired
121   - private InternacionalizacaoService internacionalizacaoService;
122   -
123   - private Dominio idioma;
124   -
125   - @Autowired
126   - public BaixaAlmoxarifadoServiceImpl( final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao, @Qualifier("baixaAlmoxarifadoValidator") final Validator validator ) {
127   -
128   - this.dao = baixaAlmoxarifadoDao;
129   - this.baixaAlmoxarifadoDao = baixaAlmoxarifadoDao;
130   - this.validator = validator;
131   - }
132   -
133   - @Override
134   - public BaixaAlmoxarifado save(BaixaAlmoxarifado entity) {
135   -
136   - this.validarEntidade(entity, this.validator);
137   -
138   - this.montarObjetoBaixa(entity);
139   -
140   - entity = super.save(entity);
141   -
142   - configurarNumeroBaixa(entity);
143   -
144   - salvaTotaisBaixaItem(entity);
145   -
146   - entity = super.save(entity);
147   -
148   - //Esse metodo gera os movimentos no estoque no contabil
149   - this.movimentoEstoqueService.gerarMovimentoBaixa(entity);
150   -
151   - return entity;
152   - }
153   -
154   - @Override
155   - public BaixaAlmoxarifado merge(BaixaAlmoxarifado entity) {
156   -
157   - this.validarEntidade(entity, this.validator);
158   -
159   - this.montarObjetoBaixa(entity);
160   -
161   - salvaTotaisBaixaItem(entity);
162   -
163   - entity = super.merge(entity);
164   -
165   - this.movimentoEstoqueService.atualizarMovimentoBaixa(entity);
166   -
167   - return entity;
168   - }
169   -
170   - /**
171   - * <p>
172   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
173   - * </p>
174   - *
175   - * <p>
176   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
177   - * </p>
178   - *
179   - * Método responsável por estornar a baixa
180   - *
181   - * @author rogerio.costa
182   - *
183   - * @return
184   - */
185   - @Override
186   - public void estornar(final BaixaAlmoxarifado baixaAlmoxarifado) {
187   -
188   - this.baixaAlmoxarifadoItemService.estornarItens(baixaAlmoxarifado.getBaixaItens());
189   -
190   - }
191   -
192   - /**
193   - * <p>
194   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
195   - * </p>
196   - *
197   - * <p>
198   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
199   - * </p>
200   - *
201   - * Método responsável por
202   - *
203   - * @author rogerio.costa
204   - *
205   - * @param baixa
206   - */
207   - private void montarObjetoBaixa(final BaixaAlmoxarifado baixa) {
208   -
209   - baixa.setDominioSituacaoEstorno(this.dominioService.findByChaveAndCodigo(Dominio.TIPO_STATUS_BAIXA_ESTORNO, Dominio.TIPO_STATUS_SEM_ESTORNO));
210   -
211   - // pode existir ou nao o destino, caso exista retira o erro de transient
212   - if (UtilObjeto.isReferencia(baixa.getDestino())) {
213   -
214   - baixa.setDestino(this.parceiroService.find(baixa.getDestino().getId()));
215   - }
216   -
217   - // pode existir ou nao o portador, caso exista retira o erro de transient
218   - if (UtilObjeto.isReferencia(baixa.getAlmoxarifado())) {
219   -
220   - baixa.setAlmoxarifado(this.estruturaOrganizacionalService.find(baixa.getAlmoxarifado().getId()));
221   - }
222   -
223   - Dominio dominioTipoBaixa = this.dominioService.findByChaveAndNome(Dominio.TIPO_BAIXA_ALMOXARIFADO, baixa.getDominioTipoBaixa().getNome());
224   -
225   - baixa.setDominioTipoBaixa(UtilObjeto.isReferencia(dominioTipoBaixa) ? dominioTipoBaixa : baixa.getDominioTipoBaixa());
226   -
227   - // cria vinculo da baixa com as observações
228   -
229   - if (UtilObjeto.isReferencia(baixa.getObservacoes())) {
230   -
231   - for (final BaixaObservacao obs : baixa.getObservacoes()) {
232   -
233   - obs.setAutor(this.usuarioService.find(obs.getAutor().getId()));
234   -
235   - obs.setBaixa(baixa);
236   - }
237   - }
238   -
239   - // cria vinculo da baixa com aos documentos
240   - if (UtilObjeto.isReferencia(baixa.getDocumentos())) {
241   -
242   - for (final BaixaDocumento doc : baixa.getDocumentos()) {
243   -
244   - doc.setDominioTipoDocumento(this.dominioService.find(doc.getDominioTipoDocumento().getId()));
245   -
246   - if (UtilObjeto.isReferencia(doc.getEmitente())) {
247   -
248   - doc.setEmitente(this.parceiroService.find(doc.getEmitente().getId()));
249   - }
250   -
251   - doc.setBaixa(baixa);
252   -
253   - }
254   - }
255   -
256   - if (!UtilColecao.isVazio(baixa.getBaixaItens())) {
257   -
258   - // cria vinculo da baixa com as baixaItens
259   - for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {
260   -
261   - this.validarQtdItemAlmoxarifado(baixaItem);
262   -
263   - baixaItem.setBaixaAlmoxarifado(baixa);
264   -
265   - baixaItem.setMaterialConsumo(this.materialConsumoService.getReference(baixaItem.getMaterialConsumo().getId()));
266   - }
267   - }
268   -
269   - if(UtilObjeto.isReferencia(baixa.getId()) && baixa.getOrganizacao() == null){
270   - baixa.setOrganizacao(this.find(baixa.getId()).getOrganizacao());
271   - }
272   -
273   - }
274   -
275   - /**
276   - * <p>
277   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
278   - * </p>
279   - *
280   - * <p>
281   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
282   - * </p>
283   - *
284   - * Método responsável por validara qtd do itemAlmoxarifado
285   - *
286   - * @author rogerio.costa
287   - *
288   - * @param baixaItem
289   - */
290   - private void validarQtdItemAlmoxarifado(final BaixaAlmoxarifadoItem baixaItem) {
291   -
292   - if (UtilObjeto.isReferencia(baixaItem.getId())) {
293   -
294   - final BaixaAlmoxarifadoItem itemAtual = this.baixaAlmoxarifadoItemService.getReference(baixaItem.getId());
295   -
296   - if (itemAtual.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade()) > 0) {
297   -
298   - if (itemAtual.getQuantidade().add(baixaItem.getQtdEstoque()).compareTo(baixaItem.getQuantidade()) > 0) {
299   -
300   - throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
301   -
302   - } else {
303   - if (baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
304   -
305   - throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
306   - }
307   - }
308   - } else if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
309   -
310   - throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
311   - }
312   - } else {
313   -
314   - if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0) {
315   -
316   - throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
317   - }
318   - }
319   - }
320   -
321   - @Override
322   - public boolean removeById(final Long id) {
323   -
324   - this.verificarVinculoRequisicaoPosteriorRemocao(id);
325   -
326   - final BaixaAlmoxarifado baixaAlmoxarifado = this.getReference(id);
327   -
328   - this.baixaAlmoxarifadoItemService.removeList((List<BaixaAlmoxarifadoItem>) baixaAlmoxarifado.getBaixaItens());
329   -
330   - return super.removeById(id);
331   - }
332   -
333   - /**
334   - * <p>
335   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
336   - * </p>
337   - *
338   - * <p>
339   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
340   - * </p>
341   - *
342   - * Método responsável por
343   - *
344   - * @author rogerio.costa
345   - *
346   - * @param entity
347   - */
348   - @Override
349   - public void obterQtdEstoque(final BaixaAlmoxarifado entity) {
350   -
351   - this.baixaAlmoxarifadoItemService.obterQtdEstoque(entity.getBaixaItens());
352   -
353   - }
354   -
355   - /**
356   - * <p>
357   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
358   - * </p>
359   - *
360   - * <p>
361   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
362   - * </p>
363   - *
364   - * Método responsável por
365   - *
366   - * @author rogerio.costa
367   - *
368   - */
369   - @Override
370   - public void verificarVinculoRequisicaoPosteriorRemocao(final Long idBaixa) {
371   -
372   - final BaixaAlmoxarifado baixaAlmoxarifado = this.getReference(idBaixa);
373   -
374   - if (!UtilColecao.isVazio(baixaAlmoxarifado.getBaixaItens())) {
375   -
376   - for (final BaixaAlmoxarifadoItem item : baixaAlmoxarifado.getBaixaItens()) {
377   -
378   - final boolean contemVinculoRequisicao = this.requisicaoConsumoService.contemVinculoMaterialPorDataEAlmoxarifado(item.getMaterialConsumo().getId(), baixaAlmoxarifado.getAlmoxarifado().getId(), baixaAlmoxarifado.getDataBaixa());
379   -
380   - if (contemVinculoRequisicao) {
381   -
382   - throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_REMOCAO_BAIXA_ALMOXARIFADO, CodigoErro.REGRA_NEGOCIO.getValue());
383   - }
384   - }
385   -
386   - }
387   -
388   - }
389   -
390   - /**
391   - * <p>
392   - * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
393   - * </p>
394   - *
395   - * <p>
396   - * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
397   - * </p>
398   - *
399   - * Método responsável por settar o atributo numeroBaixa.
400   - *
401   - * @author luis.camargo
402   - *
403   - * @param entity
404   - */
405   - private void configurarNumeroBaixa(BaixaAlmoxarifado entity) {
406   -
407   - BaixaAlmoxarifado ultimoRegistro =
408   - (BaixaAlmoxarifado) baixaAlmoxarifadoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroBaixa", entity.getOrganizacao().getId());
409   -
410   - Long sequencial = null;
411   - if (UtilObjeto.isReferencia(ultimoRegistro)) {
412   - sequencial = ultimoRegistro.getNumeroBaixa() == null ? null : Long.parseLong(ultimoRegistro.getNumeroBaixa());
413   - }
414   - String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao());
415   -
416   - entity.setNumeroBaixa(codigo);
417   - }
418   -
419   - private void salvaTotaisBaixaItem(BaixaAlmoxarifado baixa){
420   - if (!UtilColecao.isVazio(baixa.getBaixaItens())) {
421   -
422   - // salva os totais na baixa conforme metodo de avalicao monetaria
423   - for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {
424   -
425   - String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", baixa.getOrganizacao().getId()).getValor();
426   -
427   - if (tipoAvaliacao.equals(DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME)){
428   - BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade());
429   - baixaItem.setTotal(valorMovimentoFIFO);
430   - }else{
431   - BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade());
432   - baixaItem.setTotal(valorMovimentoMediaMovel);
433   - }
434   - }
435   - }
436   - }
437   -
438   - public Dominio getIdioma() {
439   - if(!UtilObjeto.isReferencia(idioma)){
440   - idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO);
441   - }
442   - return idioma;
443   - }
444   -
445   -}
  1 +package br.com.centralit.api.service.impl;
  2 +
  3 +import java.math.BigDecimal;
  4 +import java.util.List;
  5 +
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.beans.factory.annotation.Qualifier;
  8 +import org.springframework.stereotype.Service;
  9 +import org.springframework.validation.Validator;
  10 +
  11 +import br.com.centralit.api.dao.BaixaAlmoxarifadoDao;
  12 +import br.com.centralit.api.model.BaixaAlmoxarifado;
  13 +import br.com.centralit.api.model.BaixaAlmoxarifadoItem;
  14 +import br.com.centralit.api.model.BaixaDocumento;
  15 +import br.com.centralit.api.model.BaixaObservacao;
  16 +import br.com.centralit.api.model.DominioAlmoxarifado;
  17 +import br.com.centralit.api.service.BaixaAlmoxarifadoItemService;
  18 +import br.com.centralit.api.service.BaixaAlmoxarifadoService;
  19 +import br.com.centralit.api.service.ConfiguracaoParametroSistemaService;
  20 +import br.com.centralit.api.service.DominioService;
  21 +import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
  22 +import br.com.centralit.api.service.EstruturaOrganizacionalService;
  23 +import br.com.centralit.api.service.InternacionalizacaoService;
  24 +import br.com.centralit.api.service.MaterialConsumoService;
  25 +import br.com.centralit.api.service.MovimentoEstoqueService;
  26 +import br.com.centralit.api.service.ParceiroService;
  27 +import br.com.centralit.api.service.RequisicaoConsumoService;
  28 +import br.com.centralit.api.service.UsuarioService;
  29 +import br.com.centralit.framework.exception.BusinessException;
  30 +import br.com.centralit.framework.exception.CodigoErro;
  31 +import br.com.centralit.framework.model.Dominio;
  32 +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
  33 +import br.com.centralit.framework.util.UtilColecao;
  34 +import br.com.centralit.framework.util.UtilObjeto;
  35 +
  36 +/**
  37 + * <p>
  38 + * <img src="http://centralit.com.br/images/logo_central.png">
  39 + * </p>
  40 + *
  41 + * <p>
  42 + * <b>Company: </b> Central IT - Governança Corporativa -
  43 + * </p>
  44 + *
  45 + * <p>
  46 + * <b>Title: </b>
  47 + * </p>
  48 + *
  49 + * <p>
  50 + * <b>Description: </b>
  51 + * </p>
  52 + *
  53 + * <p>
  54 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  55 + * </p>
  56 + *
  57 + * <p>
  58 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  59 + * </p>
  60 + *
  61 + * @since 18/06/2015 - 17:40:42
  62 + *
  63 + * @version 1.0.0
  64 + *
  65 + * @author rogerio.costa
  66 + *
  67 + */
  68 +@Service("baixaAlmoxarifadoService")
  69 +public class BaixaAlmoxarifadoServiceImpl extends GenericServiceImpl<BaixaAlmoxarifado, Long> implements BaixaAlmoxarifadoService {
  70 +
  71 + private static final String VALIDACAO_QUANTIDADE_SUPERIOR_SALDO = "VALIDACAO.QUANTIDADE_SUPERIOR_SALDO";
  72 +
  73 + private static final String VALIDACAO_REMOCAO_BAIXA_ALMOXARIFADO = "VALIDACAO.REMOCAO_EDICAO_BAIXA_ALMOXARIFADO";
  74 +
  75 + /** Atributo baixaAlmoxarifadoDao. */
  76 + private final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao;
  77 +
  78 + /** Atributo parceiroService. */
  79 + @Autowired
  80 + private ParceiroService parceiroService;
  81 +
  82 + /** Atributo dominioService. */
  83 + @Autowired
  84 + private DominioService dominioService;
  85 +
  86 + /** Atributo usuarioService. */
  87 + @Autowired
  88 + private UsuarioService usuarioService;
  89 +
  90 + /** Atributo usuarioService. */
  91 + @Autowired
  92 + private MaterialConsumoService materialConsumoService;
  93 +
  94 + /** Atributo movimentoEstoqueService. */
  95 + @Autowired
  96 + private MovimentoEstoqueService movimentoEstoqueService;
  97 +
  98 + /** Atributo estruturaOrganizacionalService. */
  99 + @Autowired
  100 + private EstruturaOrganizacionalService estruturaOrganizacionalService;
  101 +
  102 + /** Atributo requisicaoConsumoService. */
  103 + @Autowired
  104 + private RequisicaoConsumoService requisicaoConsumoService;
  105 +
  106 + /** Atributo baixaAlmoxarifadoItemService. */
  107 + @Autowired
  108 + private BaixaAlmoxarifadoItemService baixaAlmoxarifadoItemService;
  109 +
  110 + @Autowired
  111 + private EntradaAlmoxarifadoItemService entradaAlmoxarifadoItemService;
  112 +
  113 + @Autowired
  114 + private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService;
  115 +
  116 + @Autowired
  117 + private InternacionalizacaoService internacionalizacaoService;
  118 +
  119 + private Dominio idioma;
  120 +
  121 + @Autowired
  122 + public BaixaAlmoxarifadoServiceImpl( final BaixaAlmoxarifadoDao baixaAlmoxarifadoDao, @Qualifier("baixaAlmoxarifadoValidator") final Validator validator ) {
  123 +
  124 + this.dao = baixaAlmoxarifadoDao;
  125 + this.baixaAlmoxarifadoDao = baixaAlmoxarifadoDao;
  126 + this.validator = validator;
  127 + }
  128 +
  129 + @Override
  130 + public BaixaAlmoxarifado save(BaixaAlmoxarifado entity) {
  131 +
  132 + this.validarEntidade(entity, this.validator);
  133 +
  134 + this.montarObjetoBaixa(entity);
  135 +
  136 + entity = super.save(entity);
  137 +
  138 + configurarNumeroBaixa(entity);
  139 +
  140 + salvaTotaisBaixaItem(entity);
  141 +
  142 + entity = super.save(entity);
  143 +
  144 + //Esse metodo gera os movimentos no estoque no contabil
  145 + this.movimentoEstoqueService.gerarMovimentoBaixa(entity);
  146 +
  147 + return entity;
  148 + }
  149 +
  150 + @Override
  151 + public BaixaAlmoxarifado merge(BaixaAlmoxarifado entity) {
  152 +
  153 + this.validarEntidade(entity, this.validator);
  154 +
  155 + this.montarObjetoBaixa(entity);
  156 +
  157 + salvaTotaisBaixaItem(entity);
  158 +
  159 + entity = super.merge(entity);
  160 +
  161 + this.movimentoEstoqueService.atualizarMovimentoBaixa(entity);
  162 +
  163 + return entity;
  164 + }
  165 +
  166 + /**
  167 + * <p>
  168 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  169 + * </p>
  170 + *
  171 + * <p>
  172 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  173 + * </p>
  174 + *
  175 + * Método responsável por estornar a baixa
  176 + *
  177 + * @author rogerio.costa
  178 + *
  179 + * @return
  180 + */
  181 + @Override
  182 + public void estornar(final BaixaAlmoxarifado baixaAlmoxarifado) {
  183 +
  184 + this.baixaAlmoxarifadoItemService.estornarItens(baixaAlmoxarifado.getBaixaItens());
  185 +
  186 + }
  187 +
  188 + /**
  189 + * <p>
  190 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  191 + * </p>
  192 + *
  193 + * <p>
  194 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  195 + * </p>
  196 + *
  197 + * Método responsável por
  198 + *
  199 + * @author rogerio.costa
  200 + *
  201 + * @param baixa
  202 + */
  203 + private void montarObjetoBaixa(final BaixaAlmoxarifado baixa) {
  204 +
  205 + baixa.setDominioSituacaoEstorno(this.dominioService.findByChaveAndCodigo(Dominio.TIPO_STATUS_BAIXA_ESTORNO, Dominio.TIPO_STATUS_SEM_ESTORNO));
  206 +
  207 + // pode existir ou nao o destino, caso exista retira o erro de transient
  208 + if (UtilObjeto.isReferencia(baixa.getDestino())) {
  209 +
  210 + baixa.setDestino(this.parceiroService.find(baixa.getDestino().getId()));
  211 + }
  212 +
  213 + // pode existir ou nao o portador, caso exista retira o erro de transient
  214 + if (UtilObjeto.isReferencia(baixa.getAlmoxarifado())) {
  215 +
  216 + baixa.setAlmoxarifado(this.estruturaOrganizacionalService.find(baixa.getAlmoxarifado().getId()));
  217 + }
  218 +
  219 + Dominio dominioTipoBaixa = this.dominioService.findByChaveAndNome(Dominio.TIPO_BAIXA_ALMOXARIFADO, baixa.getDominioTipoBaixa().getNome());
  220 +
  221 + baixa.setDominioTipoBaixa(UtilObjeto.isReferencia(dominioTipoBaixa) ? dominioTipoBaixa : baixa.getDominioTipoBaixa());
  222 +
  223 + // cria vinculo da baixa com as observações
  224 +
  225 + if (UtilObjeto.isReferencia(baixa.getObservacoes())) {
  226 +
  227 + for (final BaixaObservacao obs : baixa.getObservacoes()) {
  228 +
  229 + obs.setAutor(this.usuarioService.find(obs.getAutor().getId()));
  230 +
  231 + obs.setBaixa(baixa);
  232 + }
  233 + }
  234 +
  235 + // cria vinculo da baixa com aos documentos
  236 + if (UtilObjeto.isReferencia(baixa.getDocumentos())) {
  237 +
  238 + for (final BaixaDocumento doc : baixa.getDocumentos()) {
  239 +
  240 + doc.setDominioTipoDocumento(this.dominioService.find(doc.getDominioTipoDocumento().getId()));
  241 +
  242 + if (UtilObjeto.isReferencia(doc.getEmitente())) {
  243 +
  244 + doc.setEmitente(this.parceiroService.find(doc.getEmitente().getId()));
  245 + }
  246 +
  247 + doc.setBaixa(baixa);
  248 +
  249 + }
  250 + }
  251 +
  252 + if (!UtilColecao.isVazio(baixa.getBaixaItens())) {
  253 +
  254 + // cria vinculo da baixa com as baixaItens
  255 + for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {
  256 +
  257 + this.validarQtdItemAlmoxarifado(baixaItem);
  258 +
  259 + baixaItem.setBaixaAlmoxarifado(baixa);
  260 +
  261 + baixaItem.setMaterialConsumo(this.materialConsumoService.getReference(baixaItem.getMaterialConsumo().getId()));
  262 + }
  263 + }
  264 +
  265 + if(UtilObjeto.isReferencia(baixa.getId()) && baixa.getOrganizacao() == null){
  266 + baixa.setOrganizacao(this.find(baixa.getId()).getOrganizacao());
  267 + }
  268 +
  269 + }
  270 +
  271 + /**
  272 + * <p>
  273 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  274 + * </p>
  275 + *
  276 + * <p>
  277 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  278 + * </p>
  279 + *
  280 + * Método responsável por validara qtd do itemAlmoxarifado
  281 + *
  282 + * @author rogerio.costa
  283 + *
  284 + * @param baixaItem
  285 + */
  286 + private void validarQtdItemAlmoxarifado(final BaixaAlmoxarifadoItem baixaItem) {
  287 +
  288 + if (UtilObjeto.isReferencia(baixaItem.getId())) {
  289 +
  290 + final BaixaAlmoxarifadoItem itemAtual = this.baixaAlmoxarifadoItemService.getReference(baixaItem.getId());
  291 +
  292 + if (itemAtual.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade()) > 0) {
  293 +
  294 + if (itemAtual.getQuantidade().add(baixaItem.getQtdEstoque()).compareTo(baixaItem.getQuantidade()) > 0) {
  295 +
  296 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  297 +
  298 + } else {
  299 + if (baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
  300 +
  301 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  302 + }
  303 + }
  304 + } else if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0 && baixaItem.getQuantidade().compareTo(itemAtual.getQuantidade().add(baixaItem.getQtdEstoque())) > 0) {
  305 +
  306 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  307 + }
  308 + } else {
  309 +
  310 + if (baixaItem.getQuantidade().compareTo(baixaItem.getQtdEstoque()) > 0) {
  311 +
  312 + throw new BusinessException(this.internacionalizacaoService.getTranslate(BaixaAlmoxarifadoServiceImpl.VALIDACAO_QUANTIDADE_SUPERIOR_SALDO, this.getIdioma()), CodigoErro.REGRA_NEGOCIO.getValue());
  313 + }
  314 + }
  315 + }
  316 +
  317 + @Override
  318 + public boolean removeById(final Long id) {
  319 +
  320 + this.verificarVinculoRequisicaoPosteriorRemocao(id);
  321 +
  322 + final BaixaAlmoxarifado baixaAlmoxarifado = this.getReference(id);
  323 +
  324 + this.baixaAlmoxarifadoItemService.removeList((List<BaixaAlmoxarifadoItem>) baixaAlmoxarifado.getBaixaItens());
  325 +
  326 + return super.removeById(id);
  327 + }
  328 +
  329 + /**
  330 + * <p>
  331 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  332 + * </p>
  333 + *
  334 + * <p>
  335 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  336 + * </p>
  337 + *
  338 + * Método responsável por
  339 + *
  340 + * @author rogerio.costa
  341 + *
  342 + * @param entity
  343 + */
  344 + @Override
  345 + public void obterQtdEstoque(final BaixaAlmoxarifado entity) {
  346 +
  347 + this.baixaAlmoxarifadoItemService.obterQtdEstoque(entity.getBaixaItens());
  348 +
  349 + }
  350 +
  351 + /**
  352 + * <p>
  353 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  354 + * </p>
  355 + *
  356 + * <p>
  357 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  358 + * </p>
  359 + *
  360 + * Método responsável por
  361 + *
  362 + * @author rogerio.costa
  363 + *
  364 + */
  365 + @Override
  366 + public void verificarVinculoRequisicaoPosteriorRemocao(final Long idBaixa) {
  367 +
  368 + final BaixaAlmoxarifado baixaAlmoxarifado = this.getReference(idBaixa);
  369 +
  370 + if (!UtilColecao.isVazio(baixaAlmoxarifado.getBaixaItens())) {
  371 +
  372 + for (final BaixaAlmoxarifadoItem item : baixaAlmoxarifado.getBaixaItens()) {
  373 +
  374 + final boolean contemVinculoRequisicao = this.requisicaoConsumoService.contemVinculoMaterialPorDataEAlmoxarifado(item.getMaterialConsumo().getId(), baixaAlmoxarifado.getAlmoxarifado().getId(), baixaAlmoxarifado.getDataBaixa());
  375 +
  376 + if (contemVinculoRequisicao) {
  377 +
  378 + throw new BusinessException(BaixaAlmoxarifadoServiceImpl.VALIDACAO_REMOCAO_BAIXA_ALMOXARIFADO, CodigoErro.REGRA_NEGOCIO.getValue());
  379 + }
  380 + }
  381 +
  382 + }
  383 +
  384 + }
  385 +
  386 + /**
  387 + * <p>
  388 + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
  389 + * </p>
  390 + *
  391 + * <p>
  392 + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
  393 + * </p>
  394 + *
  395 + * Método responsável por settar o atributo numeroBaixa.
  396 + *
  397 + * @author luis.camargo
  398 + *
  399 + * @param entity
  400 + */
  401 + private void configurarNumeroBaixa(BaixaAlmoxarifado entity) {
  402 +
  403 + BaixaAlmoxarifado ultimoRegistro =
  404 + (BaixaAlmoxarifado) baixaAlmoxarifadoDao.buscarUltimoRegistroComOrdenadoParametrizada("numeroBaixa", entity.getOrganizacao().getId());
  405 +
  406 + Long sequencial = null;
  407 + if (UtilObjeto.isReferencia(ultimoRegistro)) {
  408 + sequencial = ultimoRegistro.getNumeroBaixa() == null ? null : Long.parseLong(ultimoRegistro.getNumeroBaixa());
  409 + }
  410 + String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacao(sequencial, entity.getOrganizacao());
  411 +
  412 + entity.setNumeroBaixa(codigo);
  413 + }
  414 +
  415 + private void salvaTotaisBaixaItem(BaixaAlmoxarifado baixa){
  416 + if (!UtilColecao.isVazio(baixa.getBaixaItens())) {
  417 +
  418 + // salva os totais na baixa conforme metodo de avalicao monetaria
  419 + for (final BaixaAlmoxarifadoItem baixaItem : baixa.getBaixaItens()) {
  420 +
  421 + String tipoAvaliacao = this.configuracaoParametroSistemaService.getParametro("TIPO_AVALIACAO_MONETARIA_ESTOQUE", baixa.getOrganizacao().getId()).getValor();
  422 +
  423 + if (tipoAvaliacao.equals(DominioAlmoxarifado.TIPO_AVALIACAO_MONETARIA_FIFO_NOME)){
  424 + BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade());
  425 + baixaItem.setTotal(valorMovimentoFIFO);
  426 + }else{
  427 + //BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(baixaItem.getMaterialConsumo(), baixaItem.getQuantidade());
  428 + //baixaItem.setTotal(valorMovimentoMediaMovel);
  429 + }
  430 + }
  431 + }
  432 + }
  433 +
  434 + public Dominio getIdioma() {
  435 + if(!UtilObjeto.isReferencia(idioma)){
  436 + idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO);
  437 + }
  438 + return idioma;
  439 + }
  440 +
  441 +}
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MaterialEstoqueSaldoMedioServiceImpl.java
... ... @@ -1,161 +0,0 @@
1   -package br.com.centralit.api.service.impl;
2   -
3   -import java.math.BigDecimal;
4   -
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.beans.factory.annotation.Qualifier;
7   -import org.springframework.stereotype.Service;
8   -import org.springframework.validation.Validator;
9   -
10   -import br.com.centralit.api.dao.MaterialEstoqueSaldoMedioDao;
11   -import br.com.centralit.api.model.Material;
12   -import br.com.centralit.api.model.MaterialConsumo;
13   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
14   -import br.com.centralit.api.service.MaterialConsumoService;
15   -import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
16   -import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
17   -import br.com.centralit.framework.util.UtilObjeto;
18   -
19   -/**
20   - * <p>
21   - * <img src="http://centralit.com.br/images/logo_central.png">
22   - * </p>
23   - *
24   - * <p>
25   - * <b>Company: </b> Central IT - Governança Corporativa -
26   - * </p>
27   - *
28   - * <p>
29   - * <b>Title: </b>
30   - * </p>
31   - *
32   - * <p>
33   - * <b>Description: </b>
34   - * </p>
35   - *
36   - * @since 23/06/2015 - 17:53:30
37   - *
38   - * @version 1.0.0
39   - *
40   - * @author geovane.filho
41   - *
42   - */
43   -@Service("materialEstoqueSaldoMedioService")
44   -public class MaterialEstoqueSaldoMedioServiceImpl extends GenericServiceImpl<MaterialEstoqueSaldoMedio, Long> implements MaterialEstoqueSaldoMedioService {
45   -
46   - @Autowired
47   - private MaterialEstoqueSaldoMedioDao materialEstoqueSaldoMedioDao;
48   -
49   - @Autowired
50   - private MaterialConsumoService materialConsumoService;
51   -
52   - /**
53   - * Responsável pela criação de novas instâncias desta classe.
54   - *
55   - * @param entradaAlmoxarifadoDao
56   - * @param validator
57   - */
58   - @Autowired
59   - public MaterialEstoqueSaldoMedioServiceImpl( MaterialEstoqueSaldoMedioDao materialEstoqueSaldoMedioDao, @Qualifier("materialEstoqueSaldoMedioValidator") Validator validator ) {
60   - this.dao = materialEstoqueSaldoMedioDao;
61   - this.materialEstoqueSaldoMedioDao = materialEstoqueSaldoMedioDao;
62   - this.validator = validator;
63   - }
64   -
65   - /**
66   - * {@inheritDoc}
67   - */
68   - @Override
69   - public void atualizaMaterialEstoque(Material material, BigDecimal quantidade, BigDecimal valorTotal) {
70   - MaterialEstoqueSaldoMedio saldoMedio = this.materialEstoqueSaldoMedioDao.findByMaterial(material);
71   - if (saldoMedio == null) {
72   - saldoMedio = new MaterialEstoqueSaldoMedio(material);
73   - }
74   -
75   - BigDecimal qntAtual = saldoMedio.getQuantidadeAtual();
76   - BigDecimal valorTotalAtual = BigDecimal.ZERO;
77   - if(UtilObjeto.isReferencia(saldoMedio.getValorUnitarioMedio()) && UtilObjeto.isReferencia(saldoMedio.getRestoMedio())) {
78   - valorTotalAtual = saldoMedio.getValorUnitarioMedio().multiply(saldoMedio.getQuantidadeAtual()).add(saldoMedio.getRestoMedio());
79   - }
80   -
81   - BigDecimal qntNova = qntAtual.add(quantidade);
82   - BigDecimal valorTotalNovo = valorTotalAtual.add(valorTotal);
83   -
84   - BigDecimal valorUnitarioNovo = valorTotalNovo.divide(qntNova, 4, BigDecimal.ROUND_HALF_UP);
85   -
86   - BigDecimal valorUnitXquantidade = qntNova.multiply(valorUnitarioNovo);
87   - BigDecimal valorRestoNovo = valorTotalNovo.subtract(valorUnitXquantidade);
88   -
89   -
90   - saldoMedio.setQuantidadeAtual(qntNova);
91   - saldoMedio.setValorUnitarioMedio(valorUnitarioNovo);
92   - saldoMedio.setRestoMedio(valorRestoNovo);
93   -
94   - this.materialEstoqueSaldoMedioDao.save(saldoMedio);
95   - }
96   -
97   - /**
98   - * {@inheritDoc}
99   - */
100   - @Override
101   - public MaterialEstoqueSaldoMedio findByMaterial(Material idMaterial) {
102   - return this.materialEstoqueSaldoMedioDao.findByMaterial(idMaterial);
103   - }
104   -
105   - /**
106   - * {@inheritDoc}
107   - */
108   - @Override
109   - public BigDecimal realizaMovimentoSaida(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada) {
110   - BigDecimal retorno = BigDecimal.ZERO;
111   -
112   - MaterialEstoqueSaldoMedio estoqueMedio = this.findByMaterial(materialConsumo); //Busco o saldo de estoque baseado na média móvel
113   -
114   - if (estoqueMedio.getQuantidadeAtual().compareTo(quantidadeMovimentada) > 0) {
115   - retorno = retorno.add(estoqueMedio.getValorUnitarioMedio().multiply(quantidadeMovimentada));
116   - estoqueMedio.setQuantidadeAtual(estoqueMedio.getQuantidadeAtual().subtract(quantidadeMovimentada));
117   - this.save(estoqueMedio);
118   - } else {
119   - if(estoqueMedio.getValorUnitarioMedio() != null && estoqueMedio.getRestoMedio() != null){
120   - retorno = retorno.add((estoqueMedio.getValorUnitarioMedio().multiply(quantidadeMovimentada)).add(estoqueMedio.getRestoMedio()));
121   - }
122   - estoqueMedio.setQuantidadeAtual(estoqueMedio.getQuantidadeAtual().subtract(quantidadeMovimentada));
123   - this.save(estoqueMedio);
124   - }
125   -
126   - return retorno;
127   - }
128   -
129   - /**
130   - * {@inheritDoc}
131   - */
132   - @Override
133   - public BigDecimal realizaMovimentoDevolucao(MaterialConsumo materialConsumo, BigDecimal quantidadeMovimentada) {
134   - BigDecimal retorno = BigDecimal.ZERO;
135   -
136   - MaterialEstoqueSaldoMedio estoqueMedio = this.findByMaterial(materialConsumo); //Busco o saldo de estoque baseado na média móvel
137   -
138   - retorno = retorno.add(estoqueMedio.getValorUnitarioMedio().multiply(quantidadeMovimentada)); //Gero o valor monetario da movimentação sendo realizada
139   -
140   - if (estoqueMedio.getQuantidadeAtual().equals(BigDecimal.ZERO)) { //Se o saldo atual da quantidade em estoque for zero eu adiciono o resto na movimentação
141   - retorno = retorno.add(estoqueMedio.getRestoMedio());
142   - }
143   -
144   - estoqueMedio.setQuantidadeAtual(estoqueMedio.getQuantidadeAtual().add(quantidadeMovimentada)); //Atualizo a quantidade atual do estoque
145   - this.save(estoqueMedio);
146   -
147   - return retorno;
148   - }
149   -
150   - public BigDecimal buscaValorUnitario(Long materialId){
151   - BigDecimal retorno = BigDecimal.ZERO;
152   - retorno = this.materialEstoqueSaldoMedioDao.buscaValorUnitario(materialId);
153   - return retorno;
154   - }
155   -
156   - public BigDecimal buscaValorResto(Long materialId){
157   - BigDecimal retorno = BigDecimal.ZERO;
158   - retorno = this.materialEstoqueSaldoMedioDao.buscaValorResto(materialId);
159   - return retorno;
160   - }
161   -}
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java
... ... @@ -36,7 +36,6 @@ import br.com.centralit.api.service.ContaContabilMovimentoService;
36 36 import br.com.centralit.api.service.DominioService;
37 37 import br.com.centralit.api.service.EntradaAlmoxarifadoItemService;
38 38 import br.com.centralit.api.service.MaterialConsumoService;
39   -import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
40 39 import br.com.centralit.api.service.MaterialEstoqueService;
41 40 import br.com.centralit.api.service.MaterialLocalEstoqueService;
42 41 import br.com.centralit.api.service.MovimentoEstoqueService;
... ... @@ -95,9 +94,6 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
95 94 @Autowired
96 95 private MaterialEstoqueService materialEstoqueService;
97 96  
98   - @Autowired
99   - private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService;
100   -
101 97 /** Atributo baixaAlmoxarifadoItemService. */
102 98 @Autowired
103 99 private BaixaAlmoxarifadoItemService baixaAlmoxarifadoItemService;
... ... @@ -157,7 +153,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
157 153 movimentos.add(movimentoEstoque);
158 154  
159 155 //TODO Corrigir com nova versão
160   - this.materialEstoqueSaldoMedioService.atualizaMaterialEstoque(movimentoEstoque.getMaterial(), movimentoEstoque.getQuantidade(), movimentoEstoque.getValorFIFO());
  156 + //this.materialEstoqueSaldoMedioService.atualizaMaterialEstoque(movimentoEstoque.getMaterial(), movimentoEstoque.getQuantidade(), movimentoEstoque.getValorFIFO());
161 157 Dominio tipoSaldoEntrada = new Dominio();
162 158 if (UtilObjeto.isReferencia(entradaAlmoxarifado.getDominioTipoEntrada())){
163 159 if (entradaAlmoxarifado.getDominioTipoEntrada().getCodigo() == Dominio.TIPO_ENTRADA_ALMOXARIFADO_EXTRA_ORCAMENTARIA_CODIGO){
... ... @@ -231,7 +227,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
231 227 for (DevolucaoItem devolucaoItem : devolucao.getDevolucaoItens()) {
232 228  
233 229 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoDevolucao(devolucaoItem.getMaterialConsumo(), devolucaoItem.getQuantidade());
234   - BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoDevolucao(devolucaoItem.getMaterialConsumo(), devolucaoItem.getQuantidade());
  230 + BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoDevolucao(devolucaoItem.getMaterialConsumo(), devolucaoItem.getQuantidade());
235 231  
236 232  
237 233  
... ... @@ -290,7 +286,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
290 286  
291 287 for (BaixaAlmoxarifadoItem baixaAlmoxarifadoItem : baixaAlmoxarifado.getBaixaItens()) {
292 288 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(baixaAlmoxarifadoItem.getMaterialConsumo(), baixaAlmoxarifadoItem.getQuantidade());
293   - BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(baixaAlmoxarifadoItem.getMaterialConsumo(), baixaAlmoxarifadoItem.getQuantidade());
  289 + BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(baixaAlmoxarifadoItem.getMaterialConsumo(), baixaAlmoxarifadoItem.getQuantidade());
294 290  
295 291 MovimentoEstoque movimentoEstoque = new MovimentoEstoque(baixaAlmoxarifadoItem.getBaixaAlmoxarifado().getDataBaixa(), baixaAlmoxarifadoItem.getQuantidade().multiply(BigDecimal.valueOf(-1)),
296 292 valorMovimentoFIFO.multiply(BigDecimal.valueOf(-1)), valorMovimentoMediaMovel.multiply(BigDecimal.valueOf(-1)), tipoMovimentoBaixa);
... ... @@ -327,7 +323,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
327 323 BigDecimal quantidade = movimentoEstoque.getQuantidade().abs();
328 324  
329 325 this.entradaAlmoxarifadoItemService.realizaMovimentoDevolucao(material, quantidade);
330   - this.materialEstoqueSaldoMedioService.realizaMovimentoDevolucao(material, quantidade);
  326 + //this.materialEstoqueSaldoMedioService.realizaMovimentoDevolucao(material, quantidade);
331 327  
332 328 Dominio classeReferencia = null;
333 329 Long idClasseReferencia = null;
... ... @@ -390,7 +386,7 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl&lt;MovimentoEst
390 386 }
391 387  
392 388 BigDecimal valorMovimentoFIFO = this.entradaAlmoxarifadoItemService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
393   - BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
  389 + BigDecimal valorMovimentoMediaMovel = BigDecimal.ZERO;//BigDecimal valorMovimentoMediaMovel = this.materialEstoqueSaldoMedioService.realizaMovimentoSaida(atendimentoRequisicaoConsumoItem.getMaterial(), atendimentoRequisicaoConsumoItem.getQuantidade());
394 390  
395 391 MovimentoEstoque movimentoEstoque = new MovimentoEstoque(atendimento.getDataAtendimento(), atendimentoRequisicaoConsumoItem.getQuantidade().multiply(BigDecimal.valueOf(-1)),
396 392 valorMovimentoFIFO.multiply(BigDecimal.valueOf(-1)), valorMovimentoMediaMovel.multiply(BigDecimal.valueOf(-1)), tipoMovimento); //Movimentos negativos pois o valor esta saindo do estoque.
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialEstoqueSaldoMedioValidator.java
... ... @@ -1,33 +0,0 @@
1   -package br.com.centralit.api.service.validation;
2   -
3   -import org.springframework.stereotype.Component;
4   -import org.springframework.validation.Errors;
5   -import org.springframework.validation.ValidationUtils;
6   -import org.springframework.validation.Validator;
7   -
8   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
9   -import br.com.centralit.framework.exception.CodigoErro;
10   -
11   -@Component("materialEstoqueSaldoMedioValidator")
12   -public class MaterialEstoqueSaldoMedioValidator implements Validator {
13   -
14   - @Override
15   - public boolean supports(Class<?> clazz) {
16   -
17   - return MaterialEstoqueSaldoMedio.class.isAssignableFrom(clazz);
18   - }
19   -
20   - @Override
21   - public void validate(Object target, Errors errors) {
22   -
23   - ValidationUtils.rejectIfEmpty(errors, "material", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.MATERIAL");
24   -
25   - ValidationUtils.rejectIfEmpty(errors, "quantidadeAtual", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.QUANTIDADE_ATUAL");
26   -
27   - ValidationUtils.rejectIfEmpty(errors, "valorUnitarioMedio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.VALORUNITARIOMEDIO");
28   -
29   - ValidationUtils.rejectIfEmpty(errors, "restoMedio", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.RESTOMEDIO");
30   -
31   - }
32   -}
33   -
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/MaterialEstoqueSaldoController.java
... ... @@ -11,8 +11,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
11 11  
12 12 import br.com.centralit.api.model.Material;
13 13 import br.com.centralit.api.model.MaterialEstoqueSaldo;
14   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
15   -import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
16 14 import br.com.centralit.api.service.MaterialEstoqueSaldoService;
17 15 import br.com.centralit.api.service.MovimentoEstoqueService;
18 16 import br.com.centralit.api.service.OrganizacaoService;
... ... @@ -34,9 +32,6 @@ public class MaterialEstoqueSaldoController extends GenericController&lt;MaterialEs
34 32 private MovimentoEstoqueService movimentoEstoqueService;
35 33  
36 34 @Autowired
37   - private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService;
38   -
39   - @Autowired
40 35 public MaterialEstoqueSaldoController( MaterialEstoqueSaldoService materialEstoqueSaldoService ) {
41 36  
42 37 super(materialEstoqueSaldoService);
... ... @@ -90,11 +85,12 @@ public class MaterialEstoqueSaldoController extends GenericController&lt;MaterialEs
90 85  
91 86 Material material = new Material();
92 87 material.setId(materialId);
93   - MaterialEstoqueSaldoMedio materialEstoqueSaldo = this.materialEstoqueSaldoMedioService.findByMaterial(material);
  88 + //MaterialEstoqueSaldoMedio materialEstoqueSaldo = this.materialEstoqueSaldoMedioService.findByMaterial(material);
94 89  
95   - ResponseBodyWrapper responseBody = new ResponseBodyWrapper(materialEstoqueSaldo, Views.MaterialConsultaInfo.class);
  90 + //ResponseBodyWrapper responseBody = new ResponseBodyWrapper(materialEstoqueSaldo, Views.MaterialConsultaInfo.class);
96 91  
97   - return responseBody;
  92 + //return responseBody;
  93 + return null;
98 94 }
99 95  
100 96 }
... ...
cit-almoxarifado-web/src/main/java/br/com/centralit/controller/MaterialEstoqueSaldoMedioController.java
... ... @@ -1,58 +0,0 @@
1   -package br.com.centralit.controller;
2   -
3   -import java.math.BigDecimal;
4   -
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.stereotype.Controller;
7   -import org.springframework.web.bind.annotation.RequestMapping;
8   -import org.springframework.web.bind.annotation.RequestMethod;
9   -import org.springframework.web.bind.annotation.RequestParam;
10   -import org.springframework.web.bind.annotation.ResponseBody;
11   -
12   -import br.com.centralit.api.model.Material;
13   -import br.com.centralit.api.model.MaterialEstoqueSaldo;
14   -import br.com.centralit.api.model.MaterialEstoqueSaldoMedio;
15   -import br.com.centralit.api.service.MaterialEstoqueSaldoMedioService;
16   -import br.com.centralit.api.service.MaterialEstoqueSaldoService;
17   -import br.com.centralit.api.service.MovimentoEstoqueService;
18   -import br.com.centralit.api.service.OrganizacaoService;
19   -import br.com.centralit.framework.controller.GenericController;
20   -import br.com.centralit.framework.json.ResponseBodyWrapper;
21   -import br.com.centralit.framework.json.Views;
22   -import br.com.centralit.framework.model.Organizacao;
23   -
24   -@Controller
25   -@RequestMapping("/rest/materialEstoqueSaldoMedio")
26   -public class MaterialEstoqueSaldoMedioController extends GenericController<MaterialEstoqueSaldoMedio> {
27   -
28   - private MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService;
29   -
30   - @Autowired
31   - private OrganizacaoService organizacaoService;
32   -
33   - @Autowired
34   - private MovimentoEstoqueService movimentoEstoqueService;
35   -
36   - @Autowired
37   - public MaterialEstoqueSaldoMedioController( MaterialEstoqueSaldoMedioService materialEstoqueSaldoMedioService ) {
38   -
39   - super(materialEstoqueSaldoMedioService);
40   - this.materialEstoqueSaldoMedioService = materialEstoqueSaldoMedioService;
41   - }
42   -
43   - @RequestMapping(value = "/buscaValorUnitario", method = RequestMethod.GET, produces = "application/json")
44   - @ResponseBody
45   - public BigDecimal buscaValorUnitario(@RequestParam(value = "materialId") Long materialId) {
46   -
47   - return this.materialEstoqueSaldoMedioService.buscaValorUnitario(materialId);
48   - }
49   -
50   - @RequestMapping(value = "/buscaValorResto", method = RequestMethod.GET, produces = "application/json")
51   - @ResponseBody
52   - public BigDecimal buscaValorResto(@RequestParam(value = "materialId") Long materialId) {
53   -
54   - return this.materialEstoqueSaldoMedioService.buscaValorResto(materialId);
55   - }
56   -
57   -
58   -}