diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java index d137da2..3ed73db 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumo.java @@ -11,8 +11,8 @@ 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.OneToOne; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -21,6 +21,7 @@ import javax.persistence.Transient; import org.hibernate.envers.AuditTable; import org.hibernate.envers.Audited; +import br.com.centralit.api.framework.json.ViewsAdmMateriais; import br.com.centralit.api.framework.json.ViewsAlmoxarifado; import br.com.centralit.framework.json.JsonCalendarSimpleDateDeserializer; import br.com.centralit.framework.json.JsonCalendarSimpleDateSerializer; @@ -93,13 +94,13 @@ public class AtendimentoRequisicaoConsumo extends PersistentObjectAuditOrganizac private String numeroAtendimento; /** Atributo requisicaoConsumo. */ - @ManyToOne(fetch = FetchType.LAZY, optional = false) + @OneToOne(fetch = FetchType.LAZY, optional = false) @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoListView.class }) private RequisicaoConsumo requisicaoConsumo; /** Atributo atendimentoRequisicaoConsumoItems. */ @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumo", cascade = CascadeType.ALL, orphanRemoval = true) - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private Collection atendimentoRequisicaoConsumoItems; @Transient diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java index 6f2e8e2..867569c 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java @@ -17,6 +17,7 @@ import javax.persistence.Table; import org.hibernate.envers.AuditTable; import org.hibernate.envers.Audited; +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; @@ -79,16 +80,16 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo; @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class }) + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private RequisicaoConsumoItem requisicaoConsumoItem; /** Atributo material. */ @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private MaterialConsumo material; @OneToMany(fetch = FetchType.LAZY, mappedBy = "atendimentoRequisicaoConsumoItem", cascade = CascadeType.ALL, orphanRemoval = true) - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) + @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private Collection atendimentoRequisicaoConsumoItemEnderecos; /** diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java index 52f0bc5..5d74745 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java @@ -10,10 +10,12 @@ import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; +import javax.persistence.Transient; import org.hibernate.envers.AuditTable; import org.hibernate.envers.Audited; +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.PersistentObject; @@ -35,17 +37,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { @JsonView({ Views.GenericView.class }) private Long id; - @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoItem.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, Views.MaterialConsultaInfo.class }) + @JsonView({Views.GenericView.class }) private BigDecimal quantidade; @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class}) + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class}) private MaterialLocalEstoque materialLocalEstoque; @ManyToOne(fetch = FetchType.LAZY, optional = false) @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class}) @JoinColumn(name = "at_req_consumoitem_id") private AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem; + + @Transient + @JsonView({ViewsAdmMateriais.RequisicaoConsumoEditView.class, ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) + private BigDecimal quantidadeAnterior; @Override public Long getId() { @@ -80,5 +86,21 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { AtendimentoRequisicaoConsumoItem atendimentoRequisicaoConsumoItem) { this.atendimentoRequisicaoConsumoItem = atendimentoRequisicaoConsumoItem; } + + public BigDecimal getQuantidadeAnterior() { + if(quantidadeAnterior == null){ + if(quantidade == null){ + quantidadeAnterior = BigDecimal.ZERO; + }else{ + quantidadeAnterior = quantidade; + } + } + + return quantidadeAnterior; + } + + public void setQuantidadeAnterior(BigDecimal quantidadeAnterior) { + this.quantidadeAnterior = quantidadeAnterior; + } } 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 c970b41..9b03ab1 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 @@ -85,7 +85,7 @@ public class EnderecoEstoque extends PersistentObjectAuditOrganizacao { private String sigla; @Column(name = "descricao", length = 400, nullable = false) - @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + @JsonView({ ViewsAdmMateriais.EnderecoEstoqueView.class, Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private String descricao; @ManyToOne(fetch = FetchType.LAZY, optional = true) 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 index 98211cf..d292d36 100644 --- 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 @@ -18,6 +18,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; import br.com.centralit.framework.util.UtilObjeto; @@ -71,7 +72,7 @@ public class MaterialEstoque extends PersistentObjectAuditOrganizacao { /** Atributo material. */ @OneToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ Views.MaterialLocalEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private MaterialConsumo material; /** Atributo locaisEstoque. */ 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 e7176b8..947c58a 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 @@ -68,7 +68,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { /** Atributo materialEstoque. */ @ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.PERSIST) - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + @JsonView({Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private MaterialEstoque materialEstoque; /** Atributo materialEstoqueInativo. */ @@ -77,7 +77,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { /** Atributo endereco. */ @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private EnderecoEstoque endereco; /** Atributo enderecoInativo. */ @@ -88,7 +88,7 @@ public class MaterialLocalEstoque extends PersistentObjectAuditOrganizacao { private BigDecimal capacidade; /** Atributo quantidade. */ - @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class }) + @JsonView({ Views.MaterialLocalEstoqueView.class, ViewsAdmMateriais.TransferenciaEnderecoEstoqueView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class }) private BigDecimal quantidade = BigDecimal.ZERO; /** Atributo unidadeMedidaEntrada. */ diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java index 630113a..fe0f7e0 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/RequisicaoConsumo.java @@ -13,6 +13,7 @@ import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; +import javax.persistence.OneToOne; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -171,6 +172,10 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao { @JoinColumn(name = "atendente_id") @JsonView({ ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class }) private Usuario atendente; + + @OneToOne(mappedBy = "requisicaoConsumo", fetch = FetchType.LAZY) + @JsonView({ViewsAlmoxarifado.AtendimentoRequisicaoConsumoEditView.class, ViewsAdmMateriais.RequisicaoConsumoEditView.class}) + private AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo; /** * Retorna o valor do atributo id @@ -391,4 +396,12 @@ public class RequisicaoConsumo extends PersistentObjectAuditOrganizacao { this.atendente = atendente; } + public AtendimentoRequisicaoConsumo getAtendimentoRequisicaoConsumo() { + return atendimentoRequisicaoConsumo; + } + + public void setAtendimentoRequisicaoConsumo( + AtendimentoRequisicaoConsumo atendimentoRequisicaoConsumo) { + this.atendimentoRequisicaoConsumo = atendimentoRequisicaoConsumo; + } } diff --git a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js index 2e95921..e9e80d0 100644 --- a/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js +++ b/cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js @@ -317,41 +317,90 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', } $scope.addRequisicaoConsumoAoAtendimento = function(req){ - var atendimento = {requisicaoConsumo : req}; - - if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){ + if(req.atendimentoRequisicaoConsumo){ + var atendimento = req.atendimentoRequisicaoConsumo; + delete req.atendimentoRequisicaoConsumo; + + atendimento.requisicaoConsumo = req; + - atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function (requisicaoConsumoItem) { - if(!atendimento.atendimentoRequisicaoConsumoItems){ - atendimento.atendimentoRequisicaoConsumoItems = []; + if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){ + var contem = false; + for(var index = atendimento.atendimentoRequisicaoConsumoItems.length - 1; index >= 0; index--){ + atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function(item){ + if(item.id === atendimento.atendimentoRequisicaoConsumoItems[index].requisicaoConsumoItem.id){ + contem = true; + } + }); + + if(!contem){ + atendimento.atendimentoRequisicaoConsumoItems.splice(index, 1); + }else{ + contem = false; + } } - var atendimentoItem = { - material : requisicaoConsumoItem.materialConsumo, - requisicaoConsumoItem : requisicaoConsumoItem, - $locaisEstoque: [], - atendimentoRequisicaoConsumoItemEnderecos: [] - }; - - MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) { - result.forEach(function(localEstoque){ - var atendimentoRequisicaoConsumoItemEndereco = { - materialLocalEstoque: localEstoque.originalElement - }; - - atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco); - - if(localEstoque.localPrincipal){ - atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.push(atendimentoRequisicaoConsumoItemEndereco); - } + atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){ + atendimentoItem.$locaisEstoque = []; + MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(atendimentoItem.material.id, req.almoxarifado.id).then(function(result) { + result.forEach(function(localEstoque){ + var atendimentoRequisicaoConsumoItemEndereco = { + materialLocalEstoque: localEstoque.originalElement + }; + + atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco); + }); }); + + atendimentoItem.$somaQtdAtendida = 0; + if(atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.length > 1){ + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.forEach(function(atendimentoItemEndereco){ + atendimentoItem.$somaQtdAtendida += parseFloat(atendimentoItemEndereco.quantidade); + }); + } + + buscarInformacoesParaAtendimento(atendimentoItem); }); + $scope.atendimentos.push(atendimento); + } + + }else{ + var atendimento = {requisicaoConsumo : req}; + if(atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_PRONTA_PARA_ATENDIMENTO || atendimento.requisicaoConsumo.tipoStatusRequisicao.codigo == $scope.TIPO_STATUS_ATENDIDA_PARCIALMENTE){ - buscarInformacoesParaAtendimento(atendimentoItem); - - atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem); - }); - $scope.atendimentos.push(atendimento); + atendimento.requisicaoConsumo.requisicaoConsumoItens.forEach(function (requisicaoConsumoItem) { + if(!atendimento.atendimentoRequisicaoConsumoItems){ + atendimento.atendimentoRequisicaoConsumoItems = []; + } + + var atendimentoItem = { + material : requisicaoConsumoItem.materialConsumo, + requisicaoConsumoItem : requisicaoConsumoItem, + $locaisEstoque: [], + atendimentoRequisicaoConsumoItemEnderecos: [] + }; + + MaterialLocalEstoqueRepository.buscarLocaisEstoquePorIdMaterialIdAlmoxarifado(requisicaoConsumoItem.materialConsumo.id, req.almoxarifado.id).then(function(result) { + result.forEach(function(localEstoque){ + var atendimentoRequisicaoConsumoItemEndereco = { + materialLocalEstoque: localEstoque.originalElement + }; + + atendimentoItem.$locaisEstoque.push(atendimentoRequisicaoConsumoItemEndereco); + + if(localEstoque.localPrincipal){ + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.push(atendimentoRequisicaoConsumoItemEndereco); + } + }); + }); + + buscarInformacoesParaAtendimento(atendimentoItem); + + atendimento.atendimentoRequisicaoConsumoItems.push(atendimentoItem); + }); + $scope.atendimentos.push(atendimento); + } + } if($scope.atendimentoRequisicaoConsumo && $scope.atendimentoRequisicaoConsumo.dataAtendimento){ @@ -586,18 +635,25 @@ citApp.controller( 'AtendimentoRequisicaoConsumoController', if(enderecosAdicionados[0] && enderecosAdicionados[0].materialLocalEstoque){ if(enderecosAdicionados.length > 0){ enderecosItem.forEach(function(enderecoItem){ + var contem = false; enderecosAdicionados.forEach(function(enderecoAdicionado){ - if(enderecoItem.materialLocalEstoque.id != enderecoAdicionado.materialLocalEstoque.id){ - $scope.listaEnderecosSelect.push(enderecoItem); + if(enderecoItem.materialLocalEstoque.id === enderecoAdicionado.materialLocalEstoque.id){ + contem = true; } }); + + if(!contem){ + $scope.listaEnderecosSelect.push(enderecoItem); + }else{ + contem = false; + } }); }else{ - $scope.listaEnderecosSelect = enderecosItem; + $scope.listaEnderecosSelect = angular.copy(enderecosItem); } }else{ enderecosAdicionados = []; - $scope.listaEnderecosSelect = enderecosItem; + $scope.listaEnderecosSelect = angular.copy(enderecosItem); } $scope.listaEnderecosAdicionados = enderecosAdicionados; diff --git a/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html b/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html index edf421f..f7d6d81 100644 --- a/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html +++ b/cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html @@ -157,15 +157,12 @@ - + - - - - + -- libgit2 0.21.2