From 68fa9c715b31d071425c9c26a38e5e15f0f87864 Mon Sep 17 00:00:00 2001 From: erick.sato Date: Mon, 9 May 2016 17:58:59 -0300 Subject: [PATCH] [Redmine Atendimento #4827]Tela transferência endereço estoque --- cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java | 2 ++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/TransferenciaEnderecoEstoqueDao.java | 5 +++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java | 12 ++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaEnderecoEstoqueDaoHibernate.java | 16 ++++++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EnderecoEstoque.java | 8 ++++---- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/Estoque.java | 2 +- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/MaterialLocalEstoque.java | 21 +++++++++++++++++---- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/TransferenciaEnderecoEstoque.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java | 2 ++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/TransferenciaEnderecoEstoqueService.java | 9 +++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EnderecoEstoqueServiceImpl.java | 4 ++-- cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/InicializarAlmoxarifadoServiceImpl.java | 7 +++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java | 5 +++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaEnderecoEstoqueServiceImpl.java | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialLocalEstoqueValidator.java | 2 +- cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/TransferenciaEnderecoEstoqueValidator.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-web/src/main/java/br/com/centralit/controller/TransferenciaEnderecoEstoqueController.java | 31 +++++++++++++++++++++++++++++++ cit-almoxarifado-web/src/main/java/br/com/centralit/listener/StartupListenerAlmoxarifado.java | 13 +++++++++++++ cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EnderecoEstoqueListController.js | 2 +- cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueController.js | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueListController.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/EnderecoEstoqueRepository.js | 2 +- cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/TransferenciaEnderecoEstoqueRepository.js | 13 +++++++++++++ cit-almoxarifado-web/src/main/webapp/html/requisicaoConsumo/requisicaoConsumoEdit.html | 2 -- cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoque.html | 2 ++ cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueEdit.html | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueList.html | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 27 files changed, 788 insertions(+), 16 deletions(-) create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/TransferenciaEnderecoEstoqueDao.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaEnderecoEstoqueDaoHibernate.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/TransferenciaEnderecoEstoque.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/TransferenciaEnderecoEstoqueService.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/TransferenciaEnderecoEstoqueServiceImpl.java create mode 100644 cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/TransferenciaEnderecoEstoqueValidator.java create mode 100644 cit-almoxarifado-web/src/main/java/br/com/centralit/controller/TransferenciaEnderecoEstoqueController.java create mode 100644 cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueController.js create mode 100644 cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueListController.js create mode 100644 cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/TransferenciaEnderecoEstoqueRepository.js create mode 100644 cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoque.html create mode 100644 cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueEdit.html create mode 100644 cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueList.html diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java index a59d125..a20ff36 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/MovimentoEstoqueDao.java @@ -148,4 +148,6 @@ public interface MovimentoEstoqueDao extends CitGenericDAO { * @return */ public Collection findAllByClasseReferencia(Dominio classeReferencia, Long idReferencia); + + MovimentoEstoque findUltimoMovimentoPorIdMaterialIdLocalEstoque(Long idMaterial, Long idLocalEstoque); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/TransferenciaEnderecoEstoqueDao.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/TransferenciaEnderecoEstoqueDao.java new file mode 100644 index 0000000..12d5288 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/TransferenciaEnderecoEstoqueDao.java @@ -0,0 +1,5 @@ +package br.com.centralit.api.dao; + +import br.com.centralit.framework.dao.arquitetura.CitGenericDAO; + +public interface TransferenciaEnderecoEstoqueDao extends CitGenericDAO {} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java index 8c68c3f..d504e46 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/MovimentoEstoqueDaoHibernate.java @@ -258,4 +258,16 @@ public class MovimentoEstoqueDaoHibernate extends CitGenericDAOImpl implements M return search(search); } + + @Override + public MovimentoEstoque findUltimoMovimentoPorIdMaterialIdLocalEstoque(Long idMaterial, Long idLocalEstoque) { + SearchSeven search = new SearchSeven(); + + search.addFilterEqual("material.id", idMaterial); + search.addFilterEqual("materialLocalEstoque.id", idLocalEstoque); + search.addSortDesc("id"); + search.setMaxResults(1); + + return this.searchUnique(search); + } } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaEnderecoEstoqueDaoHibernate.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaEnderecoEstoqueDaoHibernate.java new file mode 100644 index 0000000..7f1ef59 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/dao/impl/TransferenciaEnderecoEstoqueDaoHibernate.java @@ -0,0 +1,16 @@ +package br.com.centralit.api.dao.impl; + +import org.springframework.stereotype.Repository; + +import br.com.centralit.api.dao.TransferenciaEnderecoEstoqueDao; +import br.com.centralit.api.model.TransferenciaEnderecoEstoque; +import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl; + +@Repository("transferenciaEnderecoEstoqueDao") +public class TransferenciaEnderecoEstoqueDaoHibernate extends CitGenericDAOImpl implements TransferenciaEnderecoEstoqueDao { + + public TransferenciaEnderecoEstoqueDaoHibernate() { + super(TransferenciaEnderecoEstoque.class); + } + +} 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 index 6ad6330..c970b41 100644 --- 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 @@ -70,14 +70,14 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { /** Atributo entrada. */ @ManyToOne(fetch = FetchType.LAZY, optional = true) - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class }) + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private Estoque estoque; @ManyToOne(fetch = FetchType.LAZY, optional = true) private Estoque estoqueInativo; @Column(length = 30, nullable = false, updatable = false, unique = true) - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class }) + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private String codigo; @Column(name = "sigla", length = 30, updatable = true) @@ -85,11 +85,11 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { private String sigla; @Column(name = "descricao", length = 400, nullable = false) - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class }) + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private String descricao; @ManyToOne(fetch = FetchType.LAZY, optional = true) - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class }) + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private EnderecoEstoque endeEstoqSuperior; @Column(name = "acomodaMaterial") 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 index e8863ea..0735acf 100644 --- 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 @@ -71,7 +71,7 @@ public class Estoque extends PersistentObjectAuditOrganizacao { /** Atributo almoxarifado. */ @OneToOne(fetch = FetchType.LAZY, optional = false) @JsonView({ ViewsAdmMateriais.LocalEstoqueAutoCompleteView.class, - ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class }) + ViewsAlmoxarifado.ConfiguracaoRessuprimentoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private EstruturaOrganizacional almoxarifado; /** Atributo locais. */ 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 index e83c3fc..c230d32 100644 --- 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 @@ -15,6 +15,7 @@ import org.hibernate.envers.Audited; import com.fasterxml.jackson.annotation.JsonView; +import br.com.centralit.api.framework.json.ViewsAdmMateriais; import br.com.centralit.framework.json.Views; import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; @@ -67,7 +68,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { /** Atributo materialEstoque. */ @ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.PERSIST) - @JsonView({ Views.MaterialLocalEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private MaterialEstoque materialEstoque; /** Atributo materialEstoqueInativo. */ @@ -76,22 +77,26 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { /** Atributo endereco. */ @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ Views.MaterialLocalEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private EnderecoEstoque endereco; /** Atributo enderecoInativo. */ @ManyToOne(fetch = FetchType.LAZY, optional = true) private EnderecoEstoque enderecoInativo; + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private BigDecimal capacidade; + /** Atributo quantidade. */ - @JsonView({ Views.MaterialLocalEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private BigDecimal quantidade; /** Atributo unidadeMedidaEntrada. */ + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) @ManyToOne(fetch = FetchType.LAZY, optional = true) private UnidadeMedida unidadeMedidaEntrada; - @JsonView({ Views.MaterialLocalEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) private Boolean localPrincipal; /** @@ -242,4 +247,12 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { this.localPrincipal = localPrincipal; } + public BigDecimal getCapacidade() { + return capacidade; + } + + public void setCapacidade(BigDecimal capacidade) { + this.capacidade = capacidade; + } + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/TransferenciaEnderecoEstoque.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/TransferenciaEnderecoEstoque.java new file mode 100644 index 0000000..d37acc2 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/TransferenciaEnderecoEstoque.java @@ -0,0 +1,161 @@ +package br.com.centralit.api.model; + +import java.math.BigDecimal; +import java.util.Calendar; + +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 javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import org.hibernate.envers.Audited; + +import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import br.com.centralit.api.framework.json.ViewsAdmMateriais; +import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; +import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; +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 09/05/2016 - 09:14:17 + * + * @version 1.0.0 + * + * @author erick.sato + * + */ +@Audited +@Entity +@Table(name = "alm_ee_transferencia") +public class TransferenciaEnderecoEstoque extends PersistentObjectAuditOrganizacao { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** Atributo id. */ + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @JsonView({ Views.GenericView.class }) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private EstruturaOrganizacional almoxarifado; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private MaterialLocalEstoque enderecoEstoqueOrigem; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private MaterialLocalEstoque enderecoEstoqueDestino; + + @OneToOne(fetch = FetchType.LAZY, optional = false) + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private MaterialConsumo material; + + @Column(name = "dataTransferencia", nullable = false) + @Temporal(TemporalType.TIMESTAMP) + @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) + @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private Calendar dataTransferencia; + + @JsonView({ ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + private BigDecimal quantidade; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public EstruturaOrganizacional getAlmoxarifado() { + return almoxarifado; + } + + public void setAlmoxarifado(EstruturaOrganizacional almoxarifado) { + this.almoxarifado = almoxarifado; + } + + public MaterialConsumo getMaterial() { + return material; + } + + public void setMaterial(MaterialConsumo material) { + this.material = material; + } + + public Calendar getDataTransferencia() { + return dataTransferencia; + } + + public void setDataTransferencia(Calendar dataTransferencia) { + this.dataTransferencia = dataTransferencia; + } + + public BigDecimal getQuantidade() { + return quantidade; + } + + public void setQuantidade(BigDecimal quantidade) { + this.quantidade = quantidade; + } + + public MaterialLocalEstoque getEnderecoEstoqueOrigem() { + return enderecoEstoqueOrigem; + } + + public void setEnderecoEstoqueOrigem(MaterialLocalEstoque enderecoEstoqueOrigem) { + this.enderecoEstoqueOrigem = enderecoEstoqueOrigem; + } + + public MaterialLocalEstoque getEnderecoEstoqueDestino() { + return enderecoEstoqueDestino; + } + + public void setEnderecoEstoqueDestino(MaterialLocalEstoque enderecoEstoqueDestino) { + this.enderecoEstoqueDestino = enderecoEstoqueDestino; + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java index 3b99b88..86b2c71 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/MovimentoEstoqueService.java @@ -208,5 +208,7 @@ public interface MovimentoEstoqueService extends GenericService findAllByClasseReferencia(Dominio classeReferencia, Long idReferencia); + + MovimentoEstoque findUltimoMovimentoPorIdMaterialIdLocalEstoque(Long idMaterial, Long idLocalEstoque); } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/TransferenciaEnderecoEstoqueService.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/TransferenciaEnderecoEstoqueService.java new file mode 100644 index 0000000..a2d3539 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/TransferenciaEnderecoEstoqueService.java @@ -0,0 +1,9 @@ +package br.com.centralit.api.service; + +import br.com.centralit.api.model.TransferenciaEnderecoEstoque; +import br.com.centralit.framework.service.arquitetura.GenericService; + +public interface TransferenciaEnderecoEstoqueService extends GenericService { + + +} 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 index bca1d6e..2b0c48a 100644 --- 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 @@ -133,8 +133,8 @@ public class EnderecoEstoqueServiceImpl extends GenericServiceImpl filesMenuFileTransferenciaEnderecoEstoque = this.gerarArquivosMenu(menuTransferenciaEnderecoEstoque, CIT_ALMOXARIFADO_WEB_ANGULAR_CUSTOM, "TransferenciaEnderecoEstoque", true, true, true); + menuTransferenciaEnderecoEstoque.setIncludes(filesMenuFileTransferenciaEnderecoEstoque); + this.menuService.mergeIfNotExist(menuTransferenciaEnderecoEstoque); /* * Paginas e menus relatorios Submenu Relatórios almoxarifado diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java index bb8df1e..c72c62c 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/MovimentoEstoqueServiceImpl.java @@ -577,4 +577,9 @@ public class MovimentoEstoqueServiceImpl extends GenericServiceImpl implements TransferenciaEnderecoEstoqueService { + + private TransferenciaEnderecoEstoqueDao transferenciaEnderecoEstoqueDao; + + @Autowired + private MovimentoEstoqueService movimentoEstoqueService; + + @Autowired + private InternacionalizacaoService internacionalizacaoService; + + @Autowired + private DominioService dominioService; + + private Dominio idioma; + + private Dominio getIdioma() { + if(!UtilObjeto.isReferencia(idioma)){ + idioma = this.dominioService.findByChaveAndCodigo("tipoIdioma", Dominio.TIPO_IDIOMA_PT_BR_CODIGO); + } + return idioma; + } + + @Autowired + public TransferenciaEnderecoEstoqueServiceImpl(TransferenciaEnderecoEstoqueDao transferenciaEnderecoEstoqueDao, @Qualifier("transferenciaEnderecoEstoqueValidator") Validator validator) { + this.dao = transferenciaEnderecoEstoqueDao; + this.transferenciaEnderecoEstoqueDao = transferenciaEnderecoEstoqueDao; + this.validator = validator; + } + + public TransferenciaEnderecoEstoque save(TransferenciaEnderecoEstoque transferenciaEnderecoEstoque){ + + this.validarEntidade(transferenciaEnderecoEstoque, this.validator); + + MovimentoEstoque ultimoMovimentoEstoque = this.movimentoEstoqueService.findUltimoMovimentoPorIdMaterialIdLocalEstoque(transferenciaEnderecoEstoque.getMaterial().getId(), transferenciaEnderecoEstoque.getEnderecoEstoqueDestino().getId()); + if(ultimoMovimentoEstoque != null && transferenciaEnderecoEstoque.getDataTransferencia().after(ultimoMovimentoEstoque.getDataMovimento())){ + String validacaoDataTransferencia = this.internacionalizacaoService.getTranslate("ALMOXARIFADO.MSG.TRANSFERENCIA_NEGADA_DATA_INFERIOR_ULTIMA_MOVIMENTACAO", this.getIdioma()); + validacaoDataTransferencia = String.format(validacaoDataTransferencia, new SimpleDateFormat("dd/MM/yyyy").format(ultimoMovimentoEstoque.getDataMovimento().getTime())); + throw new BusinessException(validacaoDataTransferencia, CodigoErro.REGRA_NEGOCIO.getValue()); + } + + //TODO ERICK Criar movimento baixa estoque origem + //this.movimentoEstoqueService.gerarMovimentoBaixa(baixaAlmoxarifado); + + this.transferenciaEnderecoEstoqueDao.save(transferenciaEnderecoEstoque); + + //TODO ERICK Criar movimento estoque destino ADD MATERIAL + //this.movimentoEstoqueService.gerarMovimento(EntradaAlmoxarifado); + + return transferenciaEnderecoEstoque; + } + + @Override + public boolean removeById(Long id) { + //TODO ERICK validar se houve movimentacao + //TODO ERICK remover movimento origem + //TODO ERICK remover movimento destino + return super.removeById(id); + } + +} diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialLocalEstoqueValidator.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialLocalEstoqueValidator.java index cd4ebef..8d1810f 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialLocalEstoqueValidator.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/MaterialLocalEstoqueValidator.java @@ -22,7 +22,7 @@ public class MaterialLocalEstoqueValidator implements Validator { ValidationUtils.rejectIfEmpty(errors, "endereco", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE"); - ValidationUtils.rejectIfEmpty(errors, "quantidade", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.CAPACIDADE"); + ValidationUtils.rejectIfEmpty(errors, "capacidade", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.CAPACIDADE"); } } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/TransferenciaEnderecoEstoqueValidator.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/TransferenciaEnderecoEstoqueValidator.java new file mode 100644 index 0000000..0550c63 --- /dev/null +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/validation/TransferenciaEnderecoEstoqueValidator.java @@ -0,0 +1,45 @@ +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.TransferenciaEnderecoEstoque; +import br.com.centralit.framework.exception.BusinessException; +import br.com.centralit.framework.exception.CodigoErro; + +@Component("transferenciaEnderecoEstoqueValidator") +public class TransferenciaEnderecoEstoqueValidator implements Validator { + + @Override + public boolean supports(Class clazz) { + + return TransferenciaEnderecoEstoque.class.isAssignableFrom(clazz); + } + + @Override + public void validate(Object target, Errors errors) { + + ValidationUtils.rejectIfEmpty(errors, "almoxarifado", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.ALMOXARIFADO"); + + ValidationUtils.rejectIfEmpty(errors, "material", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "LABEL.MATERIAL"); + + ValidationUtils.rejectIfEmpty(errors, "dataTransferencia", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.DATA_TRANSFERENCIA"); + + ValidationUtils.rejectIfEmpty(errors, "enderecoEstoqueOrigem", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_ORIGEM"); + + ValidationUtils.rejectIfEmpty(errors, "enderecoEstoqueDestino", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_DESTINO"); + + ValidationUtils.rejectIfEmpty(errors, "quantidade", CodigoErro.VALIDACAO_CAMPOS_OBRIGATORIOS.getValue().toString(), "ALMOXARIFADO.LABEL.QUANTIDADE_TRANSFERENCIA"); + + TransferenciaEnderecoEstoque transferenciaEnderecoEstoque = (TransferenciaEnderecoEstoque)target; + + if(transferenciaEnderecoEstoque.getEnderecoEstoqueDestino().getQuantidade().add(transferenciaEnderecoEstoque.getQuantidade()).doubleValue() > transferenciaEnderecoEstoque.getEnderecoEstoqueDestino().getCapacidade().doubleValue()){ + throw new BusinessException("ALMOXARIFADO.MSG.TRANSFERENCIA_ULTRAPASSA_CAPACIDADE_LIMITE_ENDERECO_ESTOQUE", CodigoErro.REGRA_NEGOCIO.getValue()); + } + + + } +} + diff --git a/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/TransferenciaEnderecoEstoqueController.java b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/TransferenciaEnderecoEstoqueController.java new file mode 100644 index 0000000..025c735 --- /dev/null +++ b/cit-almoxarifado-web/src/main/java/br/com/centralit/controller/TransferenciaEnderecoEstoqueController.java @@ -0,0 +1,31 @@ +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 br.com.centralit.api.framework.json.ViewsAdmMateriais; +import br.com.centralit.api.framework.json.ViewsAdmMateriais.TransferenciaEnderecoEstoqueView; +import br.com.centralit.api.model.TransferenciaEnderecoEstoque; +import br.com.centralit.api.service.TransferenciaEnderecoEstoqueService; +import br.com.centralit.framework.controller.GenericController; + +@Controller +@RequestMapping("/rest/transferenciaEnderecoEstoque") +public class TransferenciaEnderecoEstoqueController extends GenericController{ + + private TransferenciaEnderecoEstoqueService transferenciaEnderecoEstoqueService; + + @Autowired + public TransferenciaEnderecoEstoqueController(TransferenciaEnderecoEstoqueService transferenciaEnderecoEstoqueService) { + super(transferenciaEnderecoEstoqueService); + this.transferenciaEnderecoEstoqueService = transferenciaEnderecoEstoqueService; + } + + @Override + public Class getEditView() { + + return ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.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 ad3e8b5..8bf00c1 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 @@ -300,6 +300,13 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_TODOS_MATERIAL", "Adicionar endereço para todos os materiais", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.MATERAIS_VINCULADOS", "Existe materiais vinculados a este endereço", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_VINCULADO_SUPERIOR", "Endereço de Estoque: ", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.DATA_TRANSFERENCIA", "Data da transferência", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_ORIGEM", "Endereço estoque origem", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_DESTINO", "Endereço estoque destino", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.QUANTIDADE_TRANSFERENCIA", "Quantidade a transferir", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.QUANTIDADE_TRANSFERIDA", "Quantidade transferida", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.SALDO_ENDERECO", "Saldo no endereço", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.LABEL.TRANSFERENCIA_ENDERECO_ESTOQUE", "Transferência de endereço de estoque", dominio, modulo)); } @@ -344,6 +351,12 @@ public class StartupListenerAlmoxarifado extends UtilStartup implements Applicat internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.DATA_BAIXA_FORA_REFERENCIA_VIGENTE", "Data de conclusão tem que estar dentro da referência vigente", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.REQUISICAO_DIFERENTE_NAO_CONCLUIDA_PRONTA_ATENDIMENTO", "Somente requisições de consumo com status Não concluída e Pronta para atendimento pode ser editada!", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("MSG.EXISTE_REQUISICAO_DISPONIVEL_CENTROCUSTO_ALMOXARIFADO_UR", "Centro de custo, almoxarifado, unidade requisitante e materiais de consumo estão presentes na requisição: ", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.INFORME_ALMOXARIFADO", "Informe o almoxarifado.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_SEM_VINCULO_ALMOXARIFADO", "Material não tem vínculo com o almoxarifado informado.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.MATERIAL_VINCULADO_SOMENTE_UM_ENDERECO_TRANSFERENCIA_NEGADA", "Material possui somente um endereço cadastrado, portanto não é permitido realizar a transferência.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.TRANSFERENCIA_ULTRAPASSA_CAPACIDADE_LIMITE_ENDERECO_ESTOQUE", "Não foi possível realizar a transfência. A quantidade escolhida somada ao saldo do material no estoque ultrapassa a capacidade suportada pelo endereço de estoque destino.", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ALMOXARIFADO.MSG.TRANSFERENCIA_NEGADA_DATA_INFERIOR_ULTIMA_MOVIMENTACAO", "Não foi possível realizar a transfência. Existe uma movimentação do material nesse estoque posterior a data de transferência informada. Data de transferência deve ser superior a %s.", dominio, modulo)); + } } 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 index d2d3d06..ae8de7c 100644 --- 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 @@ -68,7 +68,7 @@ citApp.controller('EnderecoEstoqueListController', ['$scope', 'EnderecoEstoqueRe $scope.removeEnderecoEstoque = function(){ if(!$scope.enderecoEstoqueChecked) { - $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR') ); return; } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueController.js new file mode 100644 index 0000000..21feaf5 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueController.js @@ -0,0 +1,147 @@ +'use strict'; + +citApp.controller('TransferenciaEnderecoEstoqueController', ['$scope', 'TransferenciaEnderecoEstoqueRepository', '$translate', '$timeout', + 'EstruturaOrganizacionalAlmoxarifadoRepository','MaterialRepository', 'MaterialLocalEstoqueRepository', + function TransferenciaEnderecoEstoqueController($scope, TransferenciaEnderecoEstoqueRepository, $translate, $timeout, + EstruturaOrganizacionalAlmoxarifadoRepository, MaterialRepository, MaterialLocalEstoqueRepository) { + + $scope.resetForm = function() { + $scope.transferenciaEnderecoEstoque = {}; + EstruturaOrganizacionalAlmoxarifadoRepository.getAlmoxarifadoPadrao($scope.usuarioLogado.organizacao.id).then(function(result){ + $scope.estruturaAlmoxarifadoPadrao = {}; + if(result.originalElement.estruturaOrganizacional){ + $scope.transferenciaEnderecoEstoque = { almoxarifado : result.originalElement.estruturaOrganizacional}; + } + $scope.edit = true; + $timeout(function(){ + $scope.transferenciaEnderecoEstoqueForm.$submitted = false; + $scope.transferenciaEnderecoEstoqueForm.$setPristine(); + }); + }); + }; + + // Atualiza pagina de pesquisa + $scope.atualizaPaginaPesquisa = function () { + angular.element('#searchTransferenciaEnderecoEstoque').scope().fetchResult(); + }; + + function validarDataTransferencia() { + + var dataTransferencia; + try { + dataTransferencia = angular.copy(converterStringEmDate($scope.transferenciaEnderecoEstoque.dataTransferencia)); + } catch(err) { + dataTransferencia = angular.copy($scope.transferenciaEnderecoEstoque.dataTransferencia); + } + var dataVigencia = converterStringEmDate($scope.usuarioLogado.organizacao.dataReferenciaVigente); + dataTransferencia.setDate(1); + dataVigencia.setDate(1); + + return dataTransferencia.getTime() == dataVigencia.getTime(); + } + + $scope.saveOrUpdate = function(){ + $scope.transferenciaEnderecoEstoqueForm.$submitted = true; + if($scope.transferenciaEnderecoEstoqueForm.$valid){ + if(validarDataTransferencia()){ + $scope.setLoadingSalva(true); + + TransferenciaEnderecoEstoqueRepository.save($scope.transferenciaEnderecoEstoque).then(function(result) { + $scope.transferenciaEnderecoEstoque = result.originalElement; + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_SALVO')); + $scope.transferenciaEnderecoEstoqueForm.$submitted = false; + + $scope.$showPageSearchWorkspace($scope.workspace); + angular.element('#searchTransferenciaEnderecoEstoque').scope().fetchResult(); + + }); + $scope.setLoading(false); + } else { + $scope.setLoading(false); + $scope.showAlert("error", $translate.instant("MSG.MN006")); + } + }else{ + $scope.showAlert('error', $translate.instant('VALIDACAO.ALERTA_OBRIGATORIOS'), " ", false); + } + }; + + $scope.getTransferenciaEnderecoEstoque = function(transferenciaEnderecoEstoque, edit){ + $scope.setLoadingGet(true); + + TransferenciaEnderecoEstoqueRepository.get(transferenciaEnderecoEstoque.id).then(function(result) { + $scope.transferenciaEnderecoEstoque = result.originalElement; + $scope.buscarEnderecosMaterialAlmoxarifado($scope.transferenciaEnderecoEstoque.material); + $scope.edit = edit; + $scope.setLoading(false); + }); + }; + + $scope.findAutoCompleteAlmoxarifado = function(value){ + return EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { + return result; + }); + }; + + $scope.findAutoCompleteMaterialEstoque = function(value){ + return MaterialRepository.findMaterialConsumo(value).then(function(result) { + return result; + }); + }; + + $scope.buscarEnderecosMaterialAlmoxarifado = function(item){ + $scope.transferenciaEnderecoEstoque.material = item; + if(!$scope.transferenciaEnderecoEstoque.almoxarifado){ + $scope.showAlert("warning", $translate.instant("ALMOXARIFADO.MSG.INFORME_ALMOXARIFADO")); + return; + } + $scope.listEnderecoEstoqueOrigem = []; + $scope.setLoadingGet(true); + MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado($scope.transferenciaEnderecoEstoque.material.id, $scope.transferenciaEnderecoEstoque.almoxarifado.id).then(function(result) { + if(result){ + if(result.length > 1){ + angular.forEach(result, function(materialLocalEstoque) { + if(materialLocalEstoque.localPrincipal){ + $scope.transferenciaEnderecoEstoque.enderecoEstoqueOrigem = materialLocalEstoque.originalElement; + } + if(!materialLocalEstoque.quantidade){ + materialLocalEstoque.originalElement.quantidade = 0; + } + $scope.listEnderecoEstoqueOrigem.push(materialLocalEstoque.originalElement); + }); + $scope.carregarListaDestino(); + $scope.setLoading(false); + }else{ + $scope.transferenciaEnderecoEstoque.material = null; + $scope.showAlert("warning", $translate.instant("ALMOXARIFADO.MSG.MATERIAL_VINCULADO_SOMENTE_UM_ENDERECO_TRANSFERENCIA_NEGADA")); + $scope.setLoading(false); + return; + } + + }else{ + $scope.setLoading(false); + $scope.showAlert("warning", $translate.instant("ALMOXARIFADO.MSG.MATERIAL_SEM_VINCULO_ALMOXARIFADO")); + return; + } + }); + }; + + $scope.carregarListaDestino = function(){ + $scope.listEnderecoEstoqueDestino = []; + $timeout(function(){ + angular.forEach($scope.listEnderecoEstoqueOrigem, function(materialLocalEstoque) { + if($scope.transferenciaEnderecoEstoque.enderecoEstoqueOrigem && materialLocalEstoque.id != $scope.transferenciaEnderecoEstoque.enderecoEstoqueOrigem.id){ + $scope.listEnderecoEstoqueDestino.push(materialLocalEstoque); + } + }); + }); + }; + + $scope.limparForm = function(cleanAlmoxarifado){ + if(cleanAlmoxarifado){ + $scope.transferenciaEnderecoEstoque = {}; + }else{ + $scope.transferenciaEnderecoEstoque = { almoxarifado : $scope.transferenciaEnderecoEstoque.almoxarifado}; + } + }; + +}]); \ No newline at end of file diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueListController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueListController.js new file mode 100644 index 0000000..95947cd --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/TransferenciaEnderecoEstoqueListController.js @@ -0,0 +1,67 @@ +'use strict'; + +citApp.controller('TransferenciaEnderecoEstoqueListController', ['$scope', 'TransferenciaEnderecoEstoqueRepository', '$translate', '$timeout', 'DominioRepository', + function TransferenciaEnderecoEstoqueListController($scope, TransferenciaEnderecoEstoqueRepository, $translate, $timeout, DominioRepository) { + $scope.$showAdvancedFilters = false; + + $scope.resetForm = function() { + angular.element("#editTransferenciaEnderecoEstoque").scope().resetForm(); + }; + + $scope.headers = [ + {title : $translate.instant('ALMOXARIFADO.LABEL.ALMOXARIFADO'), value : 'almoxarifado.nome', tamanho : 15} , + {title : $translate.instant('LABEL.MATERIAL'), value : 'material.descricao' }, + {title : $translate.instant('ALMOXARIFADO.LABEL.DATA_TRANSFERENCIA'), value : 'dataTransferencia', filter : 'dateBR' }, + {title : $translate.instant('ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_ORIGEM'), value : 'enderecoEstoqueOrigem.endereco.descricao'}, + {title : $translate.instant('ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE_DESTINO'), value : 'enderecoEstoqueDestino.endereco.descricao'}, + {title : $translate.instant('ALMOXARIFADO.LABEL.QUANTIDADE_TRANSFERIDA'), value : 'quantidade'} + ]; + + $scope.filterCriteria = { + start : 1, + dir : 'asc', + sort : 'id', + limit : 10, + fields: ['id', 'almoxarifado.nome', 'material.descricao', 'dataTransferencia', 'enderecoEstoqueOrigem.endereco.descricao', 'enderecoEstoqueDestino.endereco.descricao', 'quantidade'], + filters : [ {type: 'numeric', field: 'id', comparison: 'in', notFilter : true}, + {type : 'string', field : 'almoxarifado.nome' } , + {type : 'string', field : 'material.descricao' } , + {type : 'data-range', field : 'dataTransferencia' } , + {type : 'string', field : 'enderecoEstoqueOrigem.endereco.descricao' }, + {type : 'string', field : 'enderecoEstoqueDestino.endereco.descricao' }, + {type : 'numeric-range', field : 'quantidade' } + ] + }; + + $scope.abrirVisualizar = function(edit){ + var transferenciaEnderecoEstoque = $scope.transferenciaEnderecoEstoqueChecked; + + if(!transferenciaEnderecoEstoque) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_ITEM_EXCLUIR') ); + return; + } + angular.element('#editTransferenciaEnderecoEstoque').scope().getTransferenciaEnderecoEstoque(transferenciaEnderecoEstoque, edit); + $scope.$showPageEditWorkspace($scope.workspace); + }; + + $scope.removeTransferenciaEnderecoEstoque = function(){ + if(!$scope.transferenciaEnderecoEstoqueChecked) { + $scope.showAlert('warning', !edit ? $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_VISUALIZACAO') : $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_EDICAO')); + return; + } + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function () { + TransferenciaEnderecoEstoqueRepository.remove($scope.transferenciaEnderecoEstoqueChecked).then(function() { + + $scope.$modalConfirmInstance.dismiss('cancel'); + $scope.showAlert("success", $translate.instant('MSG.REGISTRO_EXCLUIDO')); + angular.element('#searchTransferenciaEnderecoEstoque').scope().fetchResult(); + + }); + } + }); + }; + + +}]); \ 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 index 134be5d..628dd3c 100644 --- 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 @@ -16,7 +16,7 @@ citApp.factory('EnderecoEstoqueRepository', ['RestangularAlmoxarifado', 'Abstrac this.listarEnderecosEstoque = function(value, idAlmoxarifado) { return restangularAlmoxarifado.one(this.route + "/listarEnderecosEstoque").get({"value": value, "idAlmoxarifado" : idAlmoxarifado}).then(); }; - + } AbstractRepository.extend(EnderecoEstoqueRepository); diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/TransferenciaEnderecoEstoqueRepository.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/TransferenciaEnderecoEstoqueRepository.js new file mode 100644 index 0000000..4522a69 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/repository/TransferenciaEnderecoEstoqueRepository.js @@ -0,0 +1,13 @@ +'use strict'; + +citApp.factory('TransferenciaEnderecoEstoqueRepository', ['RestangularAlmoxarifado', 'AbstractRepository', function (restangularAlmoxarifado, AbstractRepository) { + + function TransferenciaEnderecoEstoqueRepository() { + AbstractRepository.call(this, restangularAlmoxarifado, 'rest/transferenciaEnderecoEstoque'); + + } + + AbstractRepository.extend(TransferenciaEnderecoEstoqueRepository); + + return new TransferenciaEnderecoEstoqueRepository(); +}]); diff --git a/cit-almoxarifado-web/src/main/webapp/html/requisicaoConsumo/requisicaoConsumoEdit.html b/cit-almoxarifado-web/src/main/webapp/html/requisicaoConsumo/requisicaoConsumoEdit.html index e2a1f9b..c70b104 100644 --- a/cit-almoxarifado-web/src/main/webapp/html/requisicaoConsumo/requisicaoConsumoEdit.html +++ b/cit-almoxarifado-web/src/main/webapp/html/requisicaoConsumo/requisicaoConsumoEdit.html @@ -221,7 +221,6 @@ {{filterCriteria.limit > totalItens ? totalItens : filterCriteria.limit}} LABEL.DE ({{totalItens}}) - PATRIMONIO.LABEL.BENS_PATRIMONIAIS.
@@ -300,7 +299,6 @@ {{filterCriteria2.limit > totalItens2 ? totalItens2 : filterCriteria2.limit}} LABEL.DE ({{totalItens2}}) - PATRIMONIO.LABEL.BENS_PATRIMONIAIS.
diff --git a/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoque.html b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoque.html new file mode 100644 index 0000000..727fc72 --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoque.html @@ -0,0 +1,2 @@ +
+
diff --git a/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueEdit.html b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueEdit.html new file mode 100644 index 0000000..af8988c --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueEdit.html @@ -0,0 +1,95 @@ +
+
+
+
+ + + + + + + + + + + + +
+ +
+ + + + + +
+
+
+ + + +
+

+ ( * ) LABEL.CAMPOS_OBRIGATORIOS +

+ +
+ + ALMOXARIFADO.LABEL.ENDERECO_ESTOQUE + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueList.html b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueList.html new file mode 100644 index 0000000..aeb391c --- /dev/null +++ b/cit-almoxarifado-web/src/main/webapp/html/transferenciaEnderecoEstoque/transferenciaEnderecoEstoqueList.html @@ -0,0 +1,46 @@ +
+
+
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + + + +
+
+
+ + + + + +
-- libgit2 0.21.2