From af72ab5019d3132eabe96b25d8df65256ebacc42 Mon Sep 17 00:00:00 2001 From: erick.sato Date: Tue, 10 May 2016 11:41:44 -0300 Subject: [PATCH] [Redmine Atendimento #4863]Rascunho --- cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java | 62 +++++++++++++++++++++++++++++++++++++++----------------------- cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java | 29 ++++++++++++++++++++++++----- cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js | 23 +++++++++++++++++------ cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoList.html | 4 ++++ 4 files changed, 84 insertions(+), 34 deletions(-) diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java index aa16740..feaf9bb 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/EntradaAlmoxarifado.java @@ -17,11 +17,17 @@ import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import javax.persistence.Transient; import org.hibernate.envers.AuditJoinTable; import org.hibernate.envers.Audited; import org.hibernate.envers.NotAudited; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +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; @@ -31,11 +37,6 @@ import br.com.centralit.framework.model.Dominio; import br.com.centralit.framework.model.arquitetura.PersistentObjectAuditOrganizacao; import br.com.centralit.framework.util.UtilObjeto; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonView; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - /** *

* @@ -76,11 +77,13 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem /** Atributo serialVersionUID. */ private static final long serialVersionUID = 6267732497145774401L; - + /** Atributo id. */ @Id -// @SequenceGenerator(name = "entrada_id_seq", sequenceName = "entrada_id_seq") -// @GeneratedValue(strategy = GenerationType.AUTO, generator = "entrada_id_seq") + // @SequenceGenerator(name = "entrada_id_seq", sequenceName = + // "entrada_id_seq") + // @GeneratedValue(strategy = GenerationType.AUTO, generator = + // "entrada_id_seq") @GeneratedValue(strategy = GenerationType.AUTO) @JsonView({ Views.GenericView.class }) private Long id; @@ -98,7 +101,8 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem @Temporal(TemporalType.TIMESTAMP) @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) - @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class, Views.BemPatrimonialListView.class, Views.BemPatrimonialAutoCompleteView.class, Views.GenericView.class }) + @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class, Views.BemPatrimonialListView.class, + Views.BemPatrimonialAutoCompleteView.class, Views.GenericView.class }) private Calendar dataContabil; /** Atributo dataRecebimento. */ @@ -106,7 +110,7 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem @Temporal(TemporalType.TIMESTAMP) @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class) @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class) - @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class }) + @JsonView({ Views.EntradaListView.class, Views.BemPatrimonialEditView.class }) private Calendar dataRecebimento; /** Atributo codigo. */ @@ -150,12 +154,12 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem /** Atributo codigo. */ @Column(length = 30) private String codigoAsi; - + /** Atributo entrada concluida. */ @Column(name = "isentradaconcluida") @JsonView({ Views.EntradaListView.class }) private Boolean isEntradaConcluida; - + /** Atributo entrada contabilizada. */ @Column(name = "iscontabilizada") @JsonView({ Views.EntradaListView.class }) @@ -175,15 +179,19 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem @OneToMany(fetch = FetchType.LAZY, mappedBy = "entrada", cascade = CascadeType.ALL, orphanRemoval = true) @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class }) private Collection entradasItem; - + @ManyToOne(fetch = FetchType.LAZY, optional = false) @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class }) private Dominio dominioFinalidade; - + @ManyToOne(fetch = FetchType.LAZY, optional = true) @JsonView(ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class) private EstruturaOrganizacional unidadeRequisitante; + @Transient + @JsonView({ ViewsAdmMateriais.EntradaAlmoxarifadoEditView.class }) + private Long rascunho; + /** * Retorna o valor do atributo id * @@ -433,17 +441,17 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem this.dataReferencia = dataReferencia; } - + /** * Define o valor do atributo isEntradaConcluida. * * @param isEntradaConcluida */ public void setIsEntradaConcluida(Boolean isEntradaConcluida) { - + this.isEntradaConcluida = isEntradaConcluida; } - + /** * Retorna o valor do atributo isEntradaConcluida * @@ -453,24 +461,24 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem return isEntradaConcluida; } - + /** * Define o valor do atributo isContabilizada. * * @param isContabilizada */ public void setIsContabilizada(Boolean isContabilizada) { - + this.isContabilizada = isContabilizada; } - + /** * Retorna o valor do atributo isContabilizada * * @return IsContabilizada */ public Boolean getIsContabilizada() { - + return isContabilizada; } @@ -489,7 +497,7 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem return this; } } - + /** * Retorna o valor do atributo almoxarifado * @@ -565,5 +573,13 @@ public class EntradaAlmoxarifado extends PersistentObjectAuditOrganizacao implem public void setUnidadeRequisitante(EstruturaOrganizacional unidadeRequisitante) { this.unidadeRequisitante = unidadeRequisitante; } - + + public Long getRascunho() { + return rascunho; + } + + public void setRascunho(Long rascunho) { + this.rascunho = rascunho; + } + } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java index 9b8ac42..5a595ea 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/EntradaAlmoxarifadoServiceImpl.java @@ -1,14 +1,19 @@ package br.com.centralit.api.service.impl; +import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; +import java.util.List; import java.util.Map; +import org.apache.commons.lang3.StringUtils; 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 com.drew.lang.StringUtil; + import br.com.centralit.api.dao.EntradaAlmoxarifadoDao; import br.com.centralit.api.model.BemAlmoxarifadoCaracteristica; import br.com.centralit.api.model.EntradaAlmoxarifado; @@ -26,6 +31,7 @@ import br.com.centralit.api.service.MaterialCaracteristicaService; import br.com.centralit.api.service.MaterialConsumoService; import br.com.centralit.api.service.MovimentoEstoqueService; import br.com.centralit.api.service.ParceiroService; +import br.com.centralit.api.service.RascunhoService; import br.com.centralit.api.service.UnidadeMedidaService; import br.com.centralit.api.service.UsuarioService; import br.com.centralit.api.service.validation.EntradaAlmoxarifadoAllValidator; @@ -106,6 +112,9 @@ public class EntradaAlmoxarifadoServiceImpl extends GenericServiceImpl caracteristicas = new ArrayList(); //TODO Arrumar caracteristicas for (BemAlmoxarifadoCaracteristica bemAlmoxarifadoCaracteristica : entradaAlmoxarifadoItem.getCaracteristicas()) { + + if(StringUtils.isNotBlank(bemAlmoxarifadoCaracteristica.getValorCaracteristica())){ + bemAlmoxarifadoCaracteristica.setMaterialCaracteristica(this.materialCaracteristicaService.find(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getId())); + + bemAlmoxarifadoCaracteristica.setCaracteristica(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getCaracteristica()); + + bemAlmoxarifadoCaracteristica.setEntradaItem(entradaAlmoxarifadoItem); + caracteristicas.add(bemAlmoxarifadoCaracteristica); + } - bemAlmoxarifadoCaracteristica.setMaterialCaracteristica(this.materialCaracteristicaService.find(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getId())); - - bemAlmoxarifadoCaracteristica.setCaracteristica(bemAlmoxarifadoCaracteristica.getMaterialCaracteristica().getCaracteristica()); - - bemAlmoxarifadoCaracteristica.setEntradaItem(entradaAlmoxarifadoItem); } + + entradaAlmoxarifadoItem.setCaracteristicas(caracteristicas); } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js index d9cd3d7..8e67541 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/EntradaAlmoxarifadoController.js @@ -40,6 +40,9 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp $scope.atualizarListaSizeSelectEntradaItem(); $scope.edit = true; + + $scope.startTimerIntervalSaveDraft($scope.workspace , $scope.entradaAlmoxarifado, true); + $timeout(function(){ $scope.entradaAlmoxarifadoForm.$submitted = false; $scope.entradaAlmoxarifadoForm.$setPristine(); @@ -135,6 +138,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp $scope.calcularValorTotalMateriais(); $scope.atualizarListaSizeSelectEntradaItem(); $scope.edit = edit; + $scope.stopTimerIntervalDraft($scope.workspace); $scope.setLoading(false); }); @@ -146,6 +150,17 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp } }); }; + + $scope.setRascunho = function(rascunho){ + + if (rascunho) { + $scope.entradaAlmoxarifado = rascunho; + } + $scope.workspace.objetoScope = $scope.entradaAlmoxarifado; + $scope.startTimerIntervalSaveDraft($scope.workspace); + $scope.edit = true; + $scope.setLoading(false); + }; $scope.findAutoCompleteAlmoxarifado = function(value){ return EstruturaOrganizacionalAlmoxarifadoRepository.listarEstruturasOrganizacionaisAlmoxarifadoPorOrganizacao(value, $scope.usuarioLogado.organizacao.id).then(function(result) { @@ -410,6 +425,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp $scope.entradaAlmoxarifado.isEntradaConcluida = true; $scope.entradaAlmoxarifadoOriginal.isEntradaConcluida = true; + $scope.entradaAlmoxarifado.rascunho = $scope.workspace.rascunho ? $scope.workspace.rascunho.id : null; if (contabilizar) { $scope.dataContabilFinal = $scope.entradaAlmoxarifado.dataContabil; @@ -1078,12 +1094,7 @@ citApp.controller('EntradaAlmoxarifadoController', ['$scope', '$filter', 'FileUp if (formDialogCaracteristicas.$valid) { angular.forEach($scope.entradaAlmoxarifado.entradasItem, function(entradaItem){ if (entradaItem.$checked) { - entradaItem.caracteristicas = []; - angular.forEach($scope.caracteristicasGenericas, function(caracteristicaGenerica){ - if(caracteristicaGenerica.valorCaracteristica){ - entradaItem.caracteristicas.push(caracteristicaGenerica); - } - }); + entradaItem.caracteristicas = $scope.caracteristicasGenericas; } }); $scope.caracteristicasGenericas = []; diff --git a/cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoList.html b/cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoList.html index c5e7b95..cc34d4b 100644 --- a/cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoList.html +++ b/cit-almoxarifado-web/src/main/webapp/html/entradaAlmoxarifado/entradaAlmoxarifadoList.html @@ -29,6 +29,10 @@ LABEL.RELATORIO + + -- libgit2 0.21.2