diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EnderecoEstoqueDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EnderecoEstoqueDao.java new file mode 100644 index 0000000..4ebfd1e --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EnderecoEstoqueDao.java @@ -0,0 +1,7 @@ +package br.com.centralit.api.dao; + +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; + +public interface EnderecoEstoqueDao extends CitGenericDAO { + + boolean enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque);} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EstoqueDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EstoqueDao.java new file mode 100644 index 0000000..2ae0eb9 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/EstoqueDao.java @@ -0,0 +1,8 @@ +package br.com.centralit.api.dao; + +import br.com.centralit.api.model.Estoque; +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; + +public interface EstoqueDao extends CitGenericDAO { + + Estoque findEstoquePorAlmoxarifadoId(Long idAlmoxarifado);} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java new file mode 100644 index 0000000..a419638 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EnderecoEstoqueDaoHibernate.java @@ -0,0 +1,43 @@ +package br.com.centralit.api.dao.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import br.com.centralit.api.dao.EnderecoEstoqueDao; +import br.com.centralit.api.model.EnderecoEstoque; +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; +import br.com.centralit.framework.dao.arquitetura.SearchSeven; +import br.com.centralit.framework.model.arquitetura.PersistentObject; + +@Repository("enderecoEstoqueDao") +public class EnderecoEstoqueDaoHibernate extends CitGenericDAOImpl implements EnderecoEstoqueDao { + + public EnderecoEstoqueDaoHibernate() { + super(EnderecoEstoque.class); + } + + @Override + public List findAutoComplete(String chave, String valor) { + + SearchSeven searchSeven = new SearchSeven(this.persistentClass); + + searchSeven.addFilterILike(chave, "%" + valor + "%"); + + searchSeven.addFilterEqual("acomodaMaterial", Boolean.FALSE); + + searchSeven.setMaxResults(10); + + return this.search(searchSeven); + } + + @Override + public boolean enderecoEstoqueSuperiorVinculado(Long idEnderecoEstoque) { + + SearchSeven searchSeven = new SearchSeven(this.persistentClass); + + searchSeven.addFilterEqual("endeEstoqSuperior.id", idEnderecoEstoque); + + return this.count(searchSeven) > 0 ? Boolean.TRUE : Boolean.FALSE; + } +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EstoqueDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EstoqueDaoHibernate.java new file mode 100644 index 0000000..f3a9aa7 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/EstoqueDaoHibernate.java @@ -0,0 +1,26 @@ +package br.com.centralit.api.dao.impl; + +import org.springframework.stereotype.Repository; + +import br.com.centralit.api.dao.EstoqueDao; +import br.com.centralit.api.model.Estoque; +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; +import br.com.centralit.framework.dao.arquitetura.SearchSeven; + +@Repository("estoqueDao") +public class EstoqueDaoHibernate extends CitGenericDAOImpl implements EstoqueDao { + + public EstoqueDaoHibernate() { + super(Estoque.class); + } + + @Override + public Estoque findEstoquePorAlmoxarifadoId(Long idAlmoxarifado) { + + SearchSeven searchSeven = new SearchSeven(); + + searchSeven.addFilterEqual("almoxarifado.id", idAlmoxarifado); + + return searchUnique(searchSeven); + } +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java new file mode 100644 index 0000000..c1dccf8 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java @@ -0,0 +1,231 @@ +package br.com.centralit.api.model; + +import java.util.Collection; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import com.fasterxml.jackson.annotation.JsonView; + +import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; + +/** + * + *

+ * + *

+ * + *

+ * Company: Central IT - Governança Corporativa - + *

+ * + *

+ * Title: + *

+ * + *

+ * Description: + *

+ * + *

+ * Iniciativa(s): NUMERO_INICIATIVA + *

+ * + *

+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *

+ * + * @since 29/04/2016 - 09:14:17 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +@Table(name = "alm_es_enderecoestoque") +public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = -7073316896345286446L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + /** Atributo entrada. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + @JsonView({ Views.EnderecoEstoqueView.class }) + private Estoque estoque; + + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private Estoque estoqueInativo; + + @Column(length = 30, nullable = false, updatable = false, unique = true) + @JsonView({ Views.EnderecoEstoqueView.class }) + private String codigo; + + @Column(name = "sigla", length = 30, nullable = false, updatable = true) + @JsonView({ Views.EnderecoEstoqueView.class }) + private String sigla; + + @Column(name = "descricao", length = 400) + @JsonView({ Views.EnderecoEstoqueView.class }) + private String descricao; + + @ManyToOne(fetch = FetchType.LAZY, optional = true) + @JsonView({ Views.EnderecoEstoqueView.class }) + private EnderecoEstoque endeEstoqSuperior; + + @Column(name = "acomodaMaterial") + @JsonView({ Views.EnderecoEstoqueView.class }) + private Boolean acomodaMaterial; + + @Column(name = "enderTodoMaterial") + @JsonView({ Views.EnderecoEstoqueView.class }) + private Boolean enderTodoMaterial; + + /** Atributo materiais. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "endereco", cascade = CascadeType.ALL) + private Collection materiais; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + /** + * Retorna o valor do atributo estoque + * + * @return Estoque + */ + public Estoque getEstoque() { + + return estoque; + } + + /** + * Define o valor do atributo estoque. + * + * @param estoque + */ + public void setEstoque(Estoque estoque) { + + this.estoque = estoque; + } + + /** + * Retorna o valor do atributo estoqueInativo + * + * @return Estoque + */ + public Estoque getEstoqueInativo() { + + return estoqueInativo; + } + + /** + * Define o valor do atributo estoqueInativo. + * + * @param estoqueInativo + */ + public void setEstoqueInativo(Estoque estoqueInativo) { + + this.estoqueInativo = estoqueInativo; + } + + /** + * Retorna o valor do atributo materiais + * + * @return Collection + */ + public Collection getMateriais() { + + return materiais; + } + + /** + * Define o valor do atributo materiais. + * + * @param materiais + */ + public void setMateriais(Collection materiais) { + + this.materiais = materiais; + } + + public String getCodigo() { + return codigo; + } + + public void setCodigo(String codigo) { + this.codigo = codigo; + } + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public EnderecoEstoque getEndeEstoqSuperior() { + return endeEstoqSuperior; + } + + public void setEndeEstoqSuperior(EnderecoEstoque endeEstoqSuperior) { + this.endeEstoqSuperior = endeEstoqSuperior; + } + + public Boolean getEnderTodoMaterial() { + return enderTodoMaterial; + } + + public void setEnderTodoMaterial(Boolean enderTodoMaterial) { + this.enderTodoMaterial = enderTodoMaterial; + } + + public Boolean getAcomodaMaterial() { + return acomodaMaterial; + } + + public void setAcomodaMaterial(Boolean acomodaMaterial) { + this.acomodaMaterial = acomodaMaterial; + } + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java new file mode 100644 index 0000000..652d7ee --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java @@ -0,0 +1,126 @@ +package br.com.centralit.api.model; + +import java.util.Collection; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import br.com.centralit.api.framework.json.ViewsAdmMateriais; +import br.com.centralit.api.framework.json.ViewsAlmoxarifado; +import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; + +import com.fasterxml.jackson.annotation.JsonView; + +/** + * + *

+ * + *

+ * + *

+ * Company: Central IT - Governança Corporativa - + *

+ * + *

+ * Title: + *

+ * + *

+ * Description: + *

+ * + *

+ * Iniciativa(s): NUMERO_INICIATIVA + *

+ * + *

+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *

+ * + * @since 29/04/2016 - 09:06:28 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +@Table(name = "alm_estoque") +public class Estoque extends PersistentObjectAuditOrganizacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 583158275027529648L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + /** Atributo almoxarifado. */ + @OneToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ ViewsAdmMateriais.LocalEstoqueAutoCompleteView.class, + ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, Views.EnderecoEstoqueView.class }) + private EstruturaOrganizacional almoxarifado; + + /** Atributo locais. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "estoque", cascade = CascadeType.ALL) + private Collection locais; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + /** + * Retorna o valor do atributo almoxarifado + * + * @return EstruturaOrganizacional + */ + public EstruturaOrganizacional getAlmoxarifado() { + + return almoxarifado; + } + + /** + * Define o valor do atributo almoxarifado. + * + * @param almoxarifado + */ + public void setAlmoxarifado(EstruturaOrganizacional almoxarifado) { + + this.almoxarifado = almoxarifado; + } + + public Collection getLocais() { + return locais; + } + + public void setLocais(Collection locais) { + this.locais = locais; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoque.java new file mode 100644 index 0000000..256e2ff --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoque.java @@ -0,0 +1,96 @@ +package br.com.centralit.api.model; + +import java.math.BigDecimal; +import java.util.Collection; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; + +/** + * + *

+ * + *

Company: Central IT - Governança Corporativa -

+ * + *

Title:

+ * + *

Description:

+ * + *

Iniciativa(s): NUMERO_INICIATIVA

+ * + *

Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO

+ * + * @since 29/04/2016 - 09:41:49 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +@Table(name = "alm_materialestoque") +public class MaterialEstoque extends PersistentObjectAuditOrganizacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 1170228299223134768L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + /** Atributo material. */ + @OneToOne(fetch = FetchType.LAZY, optional = false) + private MaterialConsumo material; + + /** Atributo locaisEstoque. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "materialEstoque", cascade = CascadeType.ALL) + private Collection locaisEstoque; + + /** Atributo valorUnitarioMedio. */ + @Column(precision = 20, scale = 4) + private BigDecimal valorUnitarioMedio; + + /** Atributo restoMedio. */ + @Column(precision = 20, scale = 4) + private BigDecimal restoMedio; + + /** Atributo itensFifo. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "materialEstoque", cascade = CascadeType.ALL) + private Collection itensFifo; + + /** Atributo movimentos. */ + @OneToMany(fetch = FetchType.LAZY, mappedBy = "materialEstoque", cascade = CascadeType.ALL) + private Collection movimentos; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java new file mode 100644 index 0000000..325a097 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialEstoqueFIFOItem.java @@ -0,0 +1,278 @@ +package br.com.centralit.api.model; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; + +/** + * + *

+ * + *

Company: Central IT - Governança Corporativa -

+ * + *

Title:

+ * + *

Description:

+ * + *

Iniciativa(s): NUMERO_INICIATIVA

+ * + *

Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO

+ * + * @since 29/04/2016 - 15:55:15 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +@Table(name = "alm_me_fifoitem") +public class MaterialEstoqueFIFOItem extends PersistentObjectAuditOrganizacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 1170228299223134768L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; + + /** Atributo material. */ + @OneToOne(fetch = FetchType.LAZY, optional = false) + private MaterialConsumo material; + + /** Atributo materialEstoque. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private MaterialEstoque materialEstoque; + + /** Atributo materialEstoqueInativo. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private MaterialEstoque materialEstoqueInativo; + + /** Atributo quantidadeInicial. */ + @Column(precision = 20, scale = 4, nullable = false) + private BigDecimal quantidadeInicial; + + /** Atributo quantidadeRestante. */ + @Column(precision = 20, scale = 4, nullable = false) + private BigDecimal quantidadeRestante; + + /** Atributo valorUnitario. */ + @Column(precision = 20, scale = 4, nullable = false) + private BigDecimal valorUnitario; + + /** Atributo valorSobra. */ + @Column(precision = 20, scale = 4, nullable = false) + private BigDecimal valorSobra; + + /** Atributo valorTotal. */ + @Column(precision = 20, scale = 4, nullable = false) + private BigDecimal valorTotal; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + + /** + * Retorna o valor do atributo material + * + * @return MaterialConsumo + */ + public MaterialConsumo getMaterial() { + + return material; + } + + + /** + * Define o valor do atributo material. + * + * @param material + */ + public void setMaterial(MaterialConsumo material) { + + this.material = material; + } + + + + /** + * Retorna o valor do atributo materialEstoque + * + * @return MaterialEstoque + */ + public MaterialEstoque getMaterialEstoque() { + + return materialEstoque; + } + + + /** + * Define o valor do atributo materialEstoque. + * + * @param materialEstoque + */ + public void setMaterialEstoque(MaterialEstoque materialEstoque) { + + this.materialEstoque = materialEstoque; + } + + + /** + * Retorna o valor do atributo materialEstoqueInativo + * + * @return MaterialEstoque + */ + public MaterialEstoque getMaterialEstoqueInativo() { + + return materialEstoqueInativo; + } + + + /** + * Define o valor do atributo materialEstoqueInativo. + * + * @param materialEstoqueInativo + */ + public void setMaterialEstoqueInativo(MaterialEstoque materialEstoqueInativo) { + + this.materialEstoqueInativo = materialEstoqueInativo; + } + + /** + * Retorna o valor do atributo quantidadeInicial + * + * @return BigDecimal + */ + public BigDecimal getQuantidadeInicial() { + + return quantidadeInicial; + } + + + /** + * Define o valor do atributo quantidadeInicial. + * + * @param quantidadeInicial + */ + public void setQuantidadeInicial(BigDecimal quantidadeInicial) { + + this.quantidadeInicial = quantidadeInicial; + } + + + /** + * Retorna o valor do atributo quantidadeRestante + * + * @return BigDecimal + */ + public BigDecimal getQuantidadeRestante() { + + return quantidadeRestante; + } + + + /** + * Define o valor do atributo quantidadeRestante. + * + * @param quantidadeRestante + */ + public void setQuantidadeRestante(BigDecimal quantidadeRestante) { + + this.quantidadeRestante = quantidadeRestante; + } + + + /** + * Retorna o valor do atributo valorUnitario + * + * @return BigDecimal + */ + public BigDecimal getValorUnitario() { + + return valorUnitario; + } + + + /** + * Define o valor do atributo valorUnitario. + * + * @param valorUnitario + */ + public void setValorUnitario(BigDecimal valorUnitario) { + + this.valorUnitario = valorUnitario; + } + + + /** + * Retorna o valor do atributo valorSobra + * + * @return BigDecimal + */ + public BigDecimal getValorSobra() { + + return valorSobra; + } + + + /** + * Define o valor do atributo valorSobra. + * + * @param valorSobra + */ + public void setValorSobra(BigDecimal valorSobra) { + + this.valorSobra = valorSobra; + } + + + /** + * Retorna o valor do atributo valorTotal + * + * @return BigDecimal + */ + public BigDecimal getValorTotal() { + + return valorTotal; + } + + + /** + * Define o valor do atributo valorTotal. + * + * @param valorTotal + */ + public void setValorTotal(BigDecimal valorTotal) { + + this.valorTotal = valorTotal; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java new file mode 100644 index 0000000..c5530d4 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java @@ -0,0 +1,230 @@ +package br.com.centralit.api.model; + +import java.math.BigDecimal; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import com.fasterxml.jackson.annotation.JsonView; + +import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; + +/** + * + *

+ * + *

+ * + *

+ * Company: Central IT - Governança Corporativa - + *

+ * + *

+ * Title: + *

+ * + *

+ * Description: + *

+ * + *

+ * Iniciativa(s): NUMERO_INICIATIVA + *

+ * + *

+ * Regra(s) de negócio: NUMERO_REGRA_DE_NEGOCIO + *

+ * + * @since 29/04/2016 - 09:06:28 + * + * @version 1.0.0 + * + * @author geovane.filho + * + */ +@Entity +@Table(name = "alm_me_localestoque") +public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { + + /** Atributo serialVersionUID. */ + private static final long serialVersionUID = 583158275027529648L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + /** Atributo materialEstoque. */ + @OneToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ Views.EnderecoEstoqueView.class }) + private MaterialEstoque materialEstoque; + + /** Atributo materialEstoqueInativo. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private MaterialEstoque materialEstoqueInativo; + + /** Atributo endereco. */ + @OneToOne(fetch = FetchType.LAZY, optional = false) + private EnderecoEstoque endereco; + + /** Atributo enderecoInativo. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private EnderecoEstoque enderecoInativo; + + /** Atributo quantidade. */ + @JsonView({ Views.EnderecoEstoqueView.class }) + private BigDecimal quantidade; + + /** Atributo unidadeMedidaEntrada. */ + @ManyToOne(fetch = FetchType.LAZY, optional = false) + private UnidadeMedida unidadeMedidaEntrada; + + /** + * Retorna o valor do atributo id + * + * @return Long + */ + public Long getId() { + + return id; + } + + /** + * Define o valor do atributo id. + * + * @param id + */ + public void setId(Long id) { + + this.id = id; + } + + /** + * Retorna o valor do atributo endereco + * + * @return EnderecoEstoque + */ + public EnderecoEstoque getEndereco() { + + return endereco; + } + + /** + * Define o valor do atributo endereco. + * + * @param endereco + */ + public void setEndereco(EnderecoEstoque endereco) { + + this.endereco = endereco; + } + + /** + * Retorna o valor do atributo enderecoInativo + * + * @return EnderecoEstoque + */ + public EnderecoEstoque getEnderecoInativo() { + + return enderecoInativo; + } + + /** + * Define o valor do atributo enderecoInativo. + * + * @param enderecoInativo + */ + public void setEnderecoInativo(EnderecoEstoque enderecoInativo) { + + this.enderecoInativo = enderecoInativo; + } + + /** + * Retorna o valor do atributo quantidade + * + * @return BigDecimal + */ + public BigDecimal getQuantidade() { + + return quantidade; + } + + /** + * Define o valor do atributo quantidade. + * + * @param quantidade + */ + public void setQuantidade(BigDecimal quantidade) { + + this.quantidade = quantidade; + } + + /** + * Retorna o valor do atributo unidadeMedidaEntrada + * + * @return UnidadeMedida + */ + public UnidadeMedida getUnidadeMedidaEntrada() { + + return unidadeMedidaEntrada; + } + + /** + * Define o valor do atributo unidadeMedidaEntrada. + * + * @param unidadeMedidaEntrada + */ + public void setUnidadeMedidaEntrada(UnidadeMedida unidadeMedidaEntrada) { + + this.unidadeMedidaEntrada = unidadeMedidaEntrada; + } + + /** + * Retorna o valor do atributo materialEstoque + * + * @return MaterialEstoque + */ + public MaterialEstoque getMaterialEstoque() { + + return materialEstoque; + } + + /** + * Define o valor do atributo materialEstoque. + * + * @param materialEstoque + */ + public void setMaterialEstoque(MaterialEstoque materialEstoque) { + + this.materialEstoque = materialEstoque; + } + + /** + * Retorna o valor do atributo materialEstoqueInativo + * + * @return MaterialEstoque + */ + public MaterialEstoque getMaterialEstoqueInativo() { + + return materialEstoqueInativo; + } + + /** + * Define o valor do atributo materialEstoqueInativo. + * + * @param materialEstoqueInativo + */ + public void setMaterialEstoqueInativo(MaterialEstoque materialEstoqueInativo) { + + this.materialEstoqueInativo = materialEstoqueInativo; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MovimentoEstoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MovimentoEstoque.java index 1667c44..a127004 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MovimentoEstoque.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MovimentoEstoque.java @@ -125,10 +125,14 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao { /** Atributo requisicao. */ @ManyToOne(fetch = FetchType.LAZY, optional = true) - @JoinColumn(name="atendimentoreqconsumoitem_id") + @JoinColumn(name = "atendimentoreqconsumoitem_id") @JsonView({ Views.MaterialConsultaInfo.class }) private AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem; + /** Atributo materialEstoque. */ + @ManyToOne(fetch = FetchType.LAZY, optional = true) + private MaterialEstoque materialEstoque; + /** * Responsável pela criação de novas instâncias desta classe. */ @@ -146,7 +150,8 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao { * @param valorMedia * @param tipoMovimento */ - public MovimentoEstoque( Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, Dominio tipoMovimento ) { + public MovimentoEstoque(Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, + Dominio tipoMovimento) { super(); this.dataMovimento = dataMovimento; @@ -167,7 +172,8 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao { * @param localEstoque * @param material */ - public MovimentoEstoque( Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, Dominio tipoMovimento, LocalEstoque localEstoque, Material material ) { + public MovimentoEstoque(Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, + Dominio tipoMovimento, LocalEstoque localEstoque, Material material) { this(dataMovimento, quantidade, valorFIFO, valorMedia, tipoMovimento); this.localEstoque = localEstoque; @@ -184,7 +190,9 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao { * @param tipoMovimento * @param baixaAlmoxarifadoItem */ - public MovimentoEstoque( Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, Dominio tipoMovimento, BaixaAlmoxarifadoItem baixaAlmoxarifadoItem, LocalEstoque localEstoque, Material material, EntradaAlmoxarifadoItem entradaAlmoxarifadoItem ) { + public MovimentoEstoque(Calendar dataMovimento, BigDecimal quantidade, BigDecimal valorFIFO, BigDecimal valorMedia, + Dominio tipoMovimento, BaixaAlmoxarifadoItem baixaAlmoxarifadoItem, LocalEstoque localEstoque, + Material material, EntradaAlmoxarifadoItem entradaAlmoxarifadoItem) { this.dataMovimento = dataMovimento; this.quantidade = quantidade; @@ -458,5 +466,12 @@ public class MovimentoEstoque extends PersistentObjectAuditOrganizacao { this.valorMedia = valorMedia; } + public MaterialEstoque getMaterialEstoque() { + return materialEstoque; + } + + public void setMaterialEstoque(MaterialEstoque materialEstoque) { + this.materialEstoque = materialEstoque; + } } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EnderecoEstoqueService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EnderecoEstoqueService.java new file mode 100644 index 0000000..e1e0285 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EnderecoEstoqueService.java @@ -0,0 +1,10 @@ +package br.com.centralit.api.service; + +import br.com.centralit.api.model.EnderecoEstoque; +import br.com.centralit.framework.service.arquitetura.GenericService; + +public interface EnderecoEstoqueService extends GenericService { + + boolean enderecoEstoqueSuperiorVinculado(Long id); + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EstoqueService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EstoqueService.java new file mode 100644 index 0000000..b4a4322 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/EstoqueService.java @@ -0,0 +1,10 @@ +package br.com.centralit.api.service; + +import br.com.centralit.api.model.Estoque; +import br.com.centralit.framework.service.arquitetura.GenericService; + +public interface EstoqueService extends GenericService { + + Estoque findEstoquePorAlmoxarifadoId(Long idAlmoxarifado); + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java new file mode 100644 index 0000000..dca06c3 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java @@ -0,0 +1,135 @@ +package br.com.centralit.api.service.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import org.springframework.validation.Validator; + +import br.com.centralit.api.dao.EnderecoEstoqueDao; +import br.com.centralit.api.model.EnderecoEstoque; +import br.com.centralit.api.model.Estoque; +import br.com.centralit.api.model.MaterialLocalEstoque; +import br.com.centralit.api.service.ConfiguracaoParametroSistemaService; +import br.com.centralit.api.service.EnderecoEstoqueService; +import br.com.centralit.api.service.EstoqueService; +import br.com.centralit.framework.exception.BusinessException; +import br.com.centralit.framework.exception.CodigoErro; +import br.com.centralit.framework.model.arquitetura.PersistentObject; +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; +import br.com.centralit.framework.util.UtilColecao; +import br.com.centralit.framework.util.UtilObjeto; + +@Service("enderecoEstoqueService") +public class EnderecoEstoqueServiceImpl extends GenericServiceImpl implements EnderecoEstoqueService { + + private EnderecoEstoqueDao enderecoEstoqueDao; + + @Autowired + private ConfiguracaoParametroSistemaService configuracaoParametroSistemaService; + + @Autowired + private EstoqueService estoqueService; + + @Autowired + public EnderecoEstoqueServiceImpl(EnderecoEstoqueDao enderecoEstoqueDao, @Qualifier("enderecoEstoqueValidator") Validator validator) { + this.dao = enderecoEstoqueDao; + this.enderecoEstoqueDao = enderecoEstoqueDao; + this.validator = validator; + } + + public EnderecoEstoque save(EnderecoEstoque enderecoEstoque){ + + this.validarEntidade(enderecoEstoque, this.validator); + montaEnderecoEstoqueObject(enderecoEstoque); + this.enderecoEstoqueDao.save(enderecoEstoque); + + return enderecoEstoque; + } + + private void montaEnderecoEstoqueObject(EnderecoEstoque enderecoEstoque) { + + configurarCodigo(enderecoEstoque); + + Estoque estoque = this.estoqueService.findEstoquePorAlmoxarifadoId(enderecoEstoque.getEstoque().getAlmoxarifado().getId()); + + if(enderecoEstoque.getAcomodaMaterial() == null){ + enderecoEstoque.setAcomodaMaterial(Boolean.FALSE); + } + + if(enderecoEstoque.getEnderTodoMaterial() == null){ + enderecoEstoque.setEnderTodoMaterial(Boolean.FALSE); + } + + if(!UtilObjeto.isReferencia(estoque)){ + estoque = new Estoque(); + estoque.setAlmoxarifado(enderecoEstoque.getEstoque().getAlmoxarifado()); + List listEndereco = new ArrayList(); + listEndereco.add(enderecoEstoque); + estoque.setLocais(listEndereco); + estoque = this.estoqueService.save(estoque); + + enderecoEstoque.setEstoque(estoque); + }else{ + enderecoEstoque.setEstoque(estoque); + } + + } + + public EnderecoEstoque merge(EnderecoEstoque enderecoEstoque) { + + if(enderecoEstoque.getAcomodaMaterial()){ + if(this.enderecoEstoqueSuperiorVinculado(enderecoEstoque.getId())){ + throw new BusinessException("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", CodigoErro.REGRA_NEGOCIO.getValue()); + } + } + + this.validarEntidade(enderecoEstoque, this.validator); + super.save(enderecoEstoque); + return enderecoEstoque; + } + + @Override + public boolean remove(EnderecoEstoque entity) { + + if (!UtilColecao.isVazio(entity.getMateriais())) { + for (MaterialLocalEstoque materialLocalEstoque : entity.getMateriais()) { + if(materialLocalEstoque.getQuantidade() != null && !materialLocalEstoque.getQuantidade().equals(new BigDecimal("0"))){ + throw new BusinessException("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA", CodigoErro.REGRA_NEGOCIO.getValue()); + } + } + + } + + return super.remove(entity); + } + + @Override + public List findAutoComplete(String chave, String valor) { + + return this.enderecoEstoqueDao.findAutoComplete(chave, valor); + } + + private void configurarCodigo(EnderecoEstoque entity) { + + if (!UtilObjeto.isReferencia(entity.getOrganizacao())) { + entity.setOrganizacao(this.getUsuario().getOrganizacao()); + } + EnderecoEstoque ultimoRegistro = (EnderecoEstoque) enderecoEstoqueDao.buscarUltimoRegistroComOrdenadoParametrizada("codigo", entity.getOrganizacao().getId()); + Long sequencial = null; + if (UtilObjeto.isReferencia(ultimoRegistro)) { + sequencial = ultimoRegistro.getCodigo() == null ? null : Long.parseLong(ultimoRegistro.getCodigo()); + } + String codigo = configuracaoParametroSistemaService.gerarNumeroIdentificacaoSeguencial(sequencial); + entity.setCodigo(codigo); + } + + @Override + public boolean enderecoEstoqueSuperiorVinculado(Long id) { + return this.enderecoEstoqueDao.enderecoEstoqueSuperiorVinculado(id); + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EstoqueServiceImpl.java new file mode 100644 index 0000000..d752563 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EstoqueServiceImpl.java @@ -0,0 +1,27 @@ +package br.com.centralit.api.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import br.com.centralit.api.dao.EstoqueDao; +import br.com.centralit.api.model.Estoque; +import br.com.centralit.api.service.EstoqueService; +import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; + +@Service("estoqueService") +public class EstoqueServiceImpl extends GenericServiceImpl implements EstoqueService { + + private EstoqueDao estoqueDao; + + @Autowired + public EstoqueServiceImpl(EstoqueDao estoqueDao) { + this.dao = estoqueDao; + this.estoqueDao = estoqueDao; + } + + @Override + public Estoque findEstoquePorAlmoxarifadoId(Long idAlmoxarifado) { + return this.estoqueDao.findEstoquePorAlmoxarifadoId(idAlmoxarifado); + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlmoxarifadoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlmoxarifadoServiceImpl.java index 5a6f829..14ecce6 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlmoxarifadoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlmoxarifadoServiceImpl.java @@ -17,10 +17,10 @@ import br.com.centralit.api.service.MenuFileService; import br.com.centralit.api.service.MenuService; import br.com.centralit.api.service.ModuloService; import br.com.centralit.api.service.PaginaService; -import br.com.centralit.framework.model.UtilStartup; import br.com.centralit.framework.model.Menu; import br.com.centralit.framework.model.MenuFile; import br.com.centralit.framework.model.Pagina; +import br.com.centralit.framework.model.UtilStartup; import br.com.centralit.framework.util.UtilObjeto; @Service("InicializarAlmoxarifadoService") @@ -192,6 +192,15 @@ public class InicializarAlmoxarifadoServiceImpl extends UtilStartup{ List filesMenuFileInfoMenu = this.gerarArquivosMenu(menuInfoMaterial, CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM, "InfoMaterial", true, false, true); menuInfoMaterial.setIncludes(filesMenuFileInfoMenu); this.menuService.mergeIfNotExist(menuInfoMaterial); + + // Menu Endereco Estoque + Pagina pgEnderecoEstoque = new Pagina("Endereço de Estoque", "/cit-almoxarifado-web/html/enderecoEstoque/enderecoEstoque.html"); + pgEnderecoEstoque = this.paginaService.saveIfNotExist(pgEnderecoEstoque); + Menu menuEnderecoEstoque = new Menu("Endereço de Estoque", pgEnderecoEstoque, menuAlmoxarifado, null, 8, null, null, null, null, moduloSelecionado); + List filesMenuFileEnderecoEstoque = this.gerarArquivosMenu(menuEnderecoEstoque, CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM, "EnderecoEstoque", true, true, true); + menuEnderecoEstoque.setIncludes(filesMenuFileEnderecoEstoque); + this.menuService.mergeIfNotExist(menuEnderecoEstoque); + /* * Paginas e menus relatorios Submenu Relatórios almoxarifado diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/EnderecoEstoqueValidator.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/EnderecoEstoqueValidator.java new file mode 100644 index 0000000..23e8aa2 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/EnderecoEstoqueValidator.java @@ -0,0 +1,29 @@ +package br.com.centralit.api.service.validation; + +import org.springframework.stereotype.Component; +import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; +import org.springframework.validation.Validator; + +import br.com.centralit.api.model.EnderecoEstoque; +import br.com.centralit.framework.exception.CodigoErro; + +@Component("enderecoEstoqueValidator") +public class EnderecoEstoqueValidator implements Validator { + + @Override + public boolean supports(Class clazz) { + + return EnderecoEstoque.class.isAssignableFrom(clazz); + } + + @Override + public void validate(Object target, Errors errors) { + + ValidationUtils.rejectIfEmpty(errors, "estoque.almoxarifado", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.ALMOXARIFADO"); + + ValidationUtils.rejectIfEmpty(errors, "descricao", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.DESCRICAO"); + + } +} + diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java new file mode 100644 index 0000000..4c97f43 --- /dev/null +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/EnderecoEstoqueController.java @@ -0,0 +1,44 @@ +package br.com.centralit.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import br.com.centralit.api.model.EnderecoEstoque; +import br.com.centralit.api.service.EnderecoEstoqueService; +import br.com.centralit.framework.controller.GenericController; +import br.com.centralit.framework.json.ResponseBodyWrapper; +import br.com.centralit.framework.json.Views; +import br.com.centralit.framework.json.Views.EnderecoEstoqueView; + +@Controller +@RequestMapping("/rest/enderecoEstoque") +public class EnderecoEstoqueController extends GenericController{ + + private EnderecoEstoqueService enderecoEstoqueService; + + @Autowired + public EnderecoEstoqueController(EnderecoEstoqueService enderecoEstoqueService) { + super(enderecoEstoqueService); + this.enderecoEstoqueService = enderecoEstoqueService; + } + + @RequestMapping(value = "/findAutoComplete", method = RequestMethod.GET, produces = "application/json") + @ResponseBody + public ResponseBodyWrapper findAutoComplete(@RequestParam(value = "chave") String chave, @RequestParam(value = "valor") String valor) { + + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.enderecoEstoqueService.findAutoComplete(chave, valor), getAutoCompleteView()); + + return responseBody; + } + + @Override + public Class getEditView() { + + return Views.EnderecoEstoqueView.class; + } + +} diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java index 5a2daa6..3fe6642 100644 --- a/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java @@ -291,6 +291,13 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.VALORUNITARIOMEDIO", "Valor unitário médio", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.RESTOMEDIO", "Resto médio", dominio, modulo)); + + //Endereco Estoque + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE", "Endereço de Estoque", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR", "Endereço Superior", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO", "Desc. Endereço Superior", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ACOMODA_MATERIAL", "Acomoda Materiais", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_TODOS_MATERIAL", "Adicionar endereço para todos os materiais", dominio, modulo)); } @@ -312,7 +319,8 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.ERRO_EDICAO_EXISTE_MOVIMENTACAO", "Não foi possível realizar a edição pois existe movimentações após o atendimento", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.QUANTIDADE_ZERADA_NEGATIVA", "A quantidade a atender está zerada ou vazia do seguinte material: ", dominio, modulo)); - + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.REMOVER_ENDERECO_ESTOQUE_NEGADA", "O endereço não pode ser removido, pois está vinculado a um material de consumo", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.VALIDACAO.NAO_PERMITIDO_ENDERECO_ESTOQUE_ACOMODA_MATERIAL", "Não foi permitido atualizar o registro, o endereço em questão é um endereço superior de outros endereços, logo não é possivel indicar o endereço como uma acomodação de materiais.", dominio, modulo)); } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js new file mode 100644 index 0000000..f204775 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueController.js @@ -0,0 +1,119 @@ +'use strict'; + +citApp.controller('EnderecoEstoqueController', ['$scope', 'EnderecoEstoqueRepository', '$translate', '$timeout', 'EstruturaOrganizacionalAlmoxarifadoRepository', + function EnderecoEstoqueController($scope, EnderecoEstoqueRepository, $translate, $timeout, EstruturaOrganizacionalAlmoxarifadoRepository) { + + $scope.resetForm = function() { + $scope.bloquearAcomodacaoMaterial = false; + $scope.bloquearAcomodacaoMaterial = false; + $scope.enderecoEstoque = {}; + EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){ + $scope.estruturaAlmoxarifadoPadrao = {}; + if(result.originalElement.estruturaOrganizacional){ + $scope.enderecoEstoque = { estoque : {almoxarifado : result.originalElement.estruturaOrganizacional}}; + } + $scope.edit = true; + $timeout(function(){ + $scope.enderecoEstoqueForm.$submitted = false; + $scope.enderecoEstoqueForm.$setPristine(); + }); + }); + }; + + // Atualiza pagina de pesquisa + $scope.atualizaPaginaPesquisa = function () { + angular.element('#searchEnderecoEstoque').scope().fetchResult(); + }; + + // MODAL QUE CONFIRMA REMOVER DA CIDADE + $scope.remove = function(enderecoEstoque){ + $scope.enderecoEstoque = enderecoEstoque; + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function () { + EnderecoEstoqueRepository.remove($scope.enderecoEstoque).then(function() { + + $scope.$modalConfirmInstance.dismiss('cancel'); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + angular.element('#searchEnderecoEstoque').scope().fetchResult(); + + $scope.resetForm(); + }); + } + }); + }; + + // SALVA O EnderecoEstoque + $scope.saveOrUpdate = function(){ + $scope.enderecoEstoqueForm.$submitted = true; + + //verifica se o formulario está valido para salvar + if($scope.enderecoEstoqueForm.$valid){ + + $scope.setLoadingSalva(true); + + EnderecoEstoqueRepository.save($scope.enderecoEstoque).then(function(result) { + $scope.enderecoEstoque = result.originalElement; + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); + $scope.enderecoEstoqueForm.$submitted = false; + + $scope.$showPageSearchWorkspace($scope.workspace); + angular.element('#searchEnderecoEstoque').scope().fetchResult(); + + }); + $scope.setLoading(false); + }else{ + //Mensagem de erro de campos obrigatorios não preenchidos + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + } + }; + + $scope.getEnderecoEstoque = function(enderecoEstoque, edit){ + $scope.setLoadingGet(true); + + EnderecoEstoqueRepository.get(enderecoEstoque.id).then(function(result) { + $scope.enderecoEstoque = result.originalElement; + $scope.edit = edit; + $scope.verificaBloquearAcomodacaoMaterial(); + $scope.verificaBloquearEnderecoTotalMaterial(); + $scope.setLoading(false); + }); + }; + + $scope.findAutoCompleteAlmoxarifado = function(value){ + return EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { + return result; + }); + }; + + $scope.findAutoCompleteEnderecoSuperior = function(value){ + return EnderecoEstoqueRepository.findAutoComplete('codigo', value).then(function(result) { + return result; + }); + }; + + $scope.validaEnderecoTodosMaterial = function(){ + $timeout(function(){ + if($scope.enderecoEstoque.enderTodoMaterial){ + $scope.showAlert('warning', $translate.instant('ALMOXARIFADO.VALIDACAO.ENDERECO_ESTOQUE_TODOS_MATERIAIS'), " ", false); + } + }); + } + + $scope.verificaBloquearAcomodacaoMaterial = function(){ + if(!$scope.edit){ + $scope.bloquearAcomodacaoMaterial = true; + }else if($scope.enderecoEstoque.materiais && $scope.enderecoEstoque.materiais.length > 0 && $scope.enderecoEstoque.id){ + $scope.bloquearAcomodacaoMaterial = true; + } + }; + + $scope.verificaBloquearEnderecoTotalMaterial = function(){ + if(!$scope.edit){ + $scope.bloquearEnderecoTotalMaterial = true; + }else if($scope.enderecoEstoque.enderTodoMaterial && $scope.enderecoEstoque.id){ + $scope.bloquearEnderecoTotalMaterial = true; + } + }; + +}]); \ No newline at end of file diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueListController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueListController.js new file mode 100644 index 0000000..dc7294b --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueListController.js @@ -0,0 +1,43 @@ +'use strict'; + +citApp.controller('EnderecoEstoqueListController', ['$scope', 'EnderecoEstoqueRepository', '$translate', '$timeout', 'DominioRepository', + function EnderecoEstoqueListController($scope, EnderecoEstoqueRepository, $translate, $timeout, DominioRepository) { + $scope.$showAdvancedFilters = false; + + $scope.resetForm = function() { + angular.element("#editEnderecoEstoque").scope().resetForm(); + }; + + $scope.headers = [ + {title : $translate.instant('LABEL.CODIGO'), value : 'codigo', tamanho : 15} , + {title : $translate.instant('LABEL.DESCRICAO'), value : 'descricao' }, + {title : $translate.instant('ALMOXARIFADO.LABEL.ENDERECO_SUPERIOR_DESCRICAO'), value : 'endeEstoqSuperior.descricao' }, + {title : $translate.instant('ALMOXARIFADO.LABEL.ACOMODA_MATERIAL'), value : 'acomodaMaterial'} + ]; + + $scope.filterCriteria = { + start : 1, + dir : 'asc', + sort : 'id', + limit : 10, + fields: ['id', 'codigo', 'descricao', 'endeEstoqSuperior.descricao', 'acomodaMaterial'], + filters : [ {type: 'numeric', field: 'id', comparison: 'in', notFilter : true}, + {type : 'numeric-range', field : 'codigo' } , + {type : 'string', field : 'descricao' } , + {type : 'string', field : 'endeEstoqSuperior.descricao' } , + {type : 'boolean', field : 'acomodaMaterial' } + ] + }; + + // ABRI EnderecoEstoque SELECIONADA + $scope.abrirVisualizar = function(edit){ + var enderecoEstoque = $scope.enderecoEstoqueChecked; + + if(!enderecoEstoque) { + $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } + angular.element('#editEnderecoEstoque').scope().getEnderecoEstoque(enderecoEstoque, edit); + $scope.$showPageEditWorkspace($scope.workspace); + }; +}]); \ No newline at end of file diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/EnderecoEstoqueRepository.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/EnderecoEstoqueRepository.js new file mode 100644 index 0000000..fc81d28 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/EnderecoEstoqueRepository.js @@ -0,0 +1,12 @@ +'use strict'; + +citApp.factory('EnderecoEstoqueRepository', ['RestangularAlmoxarifado', 'AbstractRepository', function (restangularAlmoxarifado, AbstractRepository) { + + function EnderecoEstoqueRepository() { + AbstractRepository.call(this, restangularAlmoxarifado, 'rest/enderecoEstoque'); + } + + AbstractRepository.extend(EnderecoEstoqueRepository); + + return new EnderecoEstoqueRepository(); +}]); diff --git a/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoque.html b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoque.html new file mode 100644 index 0000000..467d456 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoque.html @@ -0,0 +1,2 @@ +
+
diff --git a/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html new file mode 100644 index 0000000..99d3597 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueEdit.html @@ -0,0 +1,94 @@ +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ + + + + +
+
+
+ + + +
+

+ ( * ) LABEL.CAMPOS_OBRIGATORIOS +

+ +
+ + ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ + + + + + + diff --git a/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueList.html b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueList.html new file mode 100644 index 0000000..54e2282 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/enderecoEstoque/enderecoEstoqueList.html @@ -0,0 +1,46 @@ +
+
+
+
+ + + + + + + + + + + + + +
+ +
+ + + + + +
+
+
+ + + + + +
-- libgit2 0.21.2