Commit e33075ed44796fa5183727edcb9652d98fc0fd51

Authored by Ronan Tavares Camargo
1 parent b810adb2
Exists in master

Redmine Atendimento #3822

cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItem.java
@@ -204,8 +204,7 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan @@ -204,8 +204,7 @@ public class AtendimentoRequisicaoConsumoItem extends PersistentObjectAuditOrgan
204 204
205 public void setAtendimentoRequisicaoConsumoItemFIFOs( 205 public void setAtendimentoRequisicaoConsumoItemFIFOs(
206 Collection<AtendimentoRequisicaoConsumoItemFIFO> atendimentoRequisicaoConsumoItemFIFOs) { 206 Collection<AtendimentoRequisicaoConsumoItemFIFO> atendimentoRequisicaoConsumoItemFIFOs) {
207 - this.atendimentoRequisicaoConsumoItemFIFOs.clear();  
208 - this.atendimentoRequisicaoConsumoItemFIFOs.addAll(atendimentoRequisicaoConsumoItemFIFOs); 207 + this.atendimentoRequisicaoConsumoItemFIFOs = atendimentoRequisicaoConsumoItemFIFOs;
209 } 208 }
210 209
211 } 210 }
cit-almoxarifado-api/src/main/java/br/com/centralit/api/model/AtendimentoRequisicaoConsumoItemEndereco.java
@@ -92,7 +92,11 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject { @@ -92,7 +92,11 @@ public class AtendimentoRequisicaoConsumoItemEndereco extends PersistentObject {
92 if(quantidade == null){ 92 if(quantidade == null){
93 quantidadeAnterior = BigDecimal.ZERO; 93 quantidadeAnterior = BigDecimal.ZERO;
94 }else{ 94 }else{
95 - quantidadeAnterior = quantidade; 95 + if(atendimentoRequisicaoConsumoItem == null || atendimentoRequisicaoConsumoItem.getAtendimentoRequisicaoConsumo() == null || atendimentoRequisicaoConsumoItem.getAtendimentoRequisicaoConsumo().getDataInativo() != null){
  96 + quantidadeAnterior = BigDecimal.ZERO;
  97 + }else{
  98 + quantidadeAnterior = quantidade;
  99 + }
96 } 100 }
97 } 101 }
98 102
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/AtendimentoRequisicaoConsumoServiceImpl.java
@@ -195,7 +195,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -195,7 +195,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
195 195
196 @Override 196 @Override
197 public ValidacaoAtendimentoRequisicaoConsumoVH validarQuantidadesAtendidas(AtendimentoRequisicaoConsumo entity) { 197 public ValidacaoAtendimentoRequisicaoConsumoVH validarQuantidadesAtendidas(AtendimentoRequisicaoConsumo entity) {
198 - Map<MaterialLocalEstoque, BigDecimal> somatorioQuantidadesAtentidasPorMaterial = new HashMap<MaterialLocalEstoque, BigDecimal>(); 198 + final int QUANTIDADE_ATENDIDA = 0;
  199 + final int QUANTIDADE_ATENDIDA_ANTERIOR = 1;
  200 +
  201 + Map<MaterialLocalEstoque, BigDecimal[]> somatorioQuantidadesAtentidasPorMaterial = new HashMap<MaterialLocalEstoque, BigDecimal[]>();
199 202
200 for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){ 203 for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){
201 for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){ 204 for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){
@@ -204,10 +207,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -204,10 +207,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
204 if(somatorioQuantidadesAtentidasPorMaterial.containsKey(itemEndereco.getMaterialLocalEstoque())){ 207 if(somatorioQuantidadesAtentidasPorMaterial.containsKey(itemEndereco.getMaterialLocalEstoque())){
205 208
206 somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(), 209 somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(),
207 - somatorioQuantidadesAtentidasPorMaterial.get(itemEndereco.getMaterialLocalEstoque()).add(itemEndereco.getQuantidade())); 210 + new BigDecimal[]{somatorioQuantidadesAtentidasPorMaterial.get(itemEndereco.getMaterialLocalEstoque())[QUANTIDADE_ATENDIDA].add(itemEndereco.getQuantidade()), itemEndereco.getQuantidadeAnterior()});
208 211
209 }else{ 212 }else{
210 - somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(), itemEndereco.getQuantidade()); 213 + somatorioQuantidadesAtentidasPorMaterial.put(itemEndereco.getMaterialLocalEstoque(), new BigDecimal[]{itemEndereco.getQuantidade(), itemEndereco.getQuantidadeAnterior()});
211 } 214 }
212 } 215 }
213 } 216 }
@@ -216,9 +219,9 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt; @@ -216,9 +219,9 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
216 219
217 List<MaterialLocalEstoque> materiaisRejeitados = new ArrayList<MaterialLocalEstoque>(); 220 List<MaterialLocalEstoque> materiaisRejeitados = new ArrayList<MaterialLocalEstoque>();
218 221
219 - for(Entry<MaterialLocalEstoque, BigDecimal> somaItem : somatorioQuantidadesAtentidasPorMaterial.entrySet()){ 222 + for(Entry<MaterialLocalEstoque, BigDecimal[]> somaItem : somatorioQuantidadesAtentidasPorMaterial.entrySet()){
220 223
221 - if(somaItem.getValue().compareTo(somaItem.getKey().getQuantidade()) > 0){ 224 + if(somaItem.getValue()[QUANTIDADE_ATENDIDA].compareTo(somaItem.getKey().getQuantidade().add(somaItem.getValue()[QUANTIDADE_ATENDIDA_ANTERIOR])) > 0){
222 materiaisRejeitados.add(materialLocalEstoqueService.find(somaItem.getKey().getId())); 225 materiaisRejeitados.add(materialLocalEstoqueService.find(somaItem.getKey().getId()));
223 } 226 }
224 } 227 }
cit-almoxarifado-web/src/main/webapp/assets/js/angular/custom/controller/AtendimentoRequisicaoConsumoController.js
@@ -448,6 +448,10 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -448,6 +448,10 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
448 $scope.atendimentoRequisicaoConsumoForm.$submitted = false; 448 $scope.atendimentoRequisicaoConsumoForm.$submitted = false;
449 angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult(); 449 angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult();
450 $scope.resetForm(); 450 $scope.resetForm();
  451 +
  452 + $scope.$showPageSearchWorkspace($scope.workspace);
  453 + $scope.atualizaPaginaPesquisa();
  454 +
451 $scope.setLoading(false); 455 $scope.setLoading(false);
452 }); 456 });
453 } 457 }
@@ -491,6 +495,22 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -491,6 +495,22 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
491 }); 495 });
492 } 496 }
493 497
  498 + $scope.validarQuantidadeAtendidaMaiorQuantidadeRequisitada = function(atendimentoItem){
  499 + atendimentoItem.$somaQtdAtendida = 0;
  500 + atendimentoItem.atendimentoRequisicaoConsumoItemEnderecos.forEach(function(atendimentoItemEndereco){
  501 + atendimentoItem.$somaQtdAtendida += parseFloat(atendimentoItemEndereco.quantidade);
  502 + });
  503 +
  504 + if(atendimentoItem.$somaQtdAtendida > atendimentoItem.requisicaoConsumoItem.quantidade){
  505 + $scope.showAlert("error", "Deu erro ai cara, arruma sáporra aew", " ", false);
  506 + }
  507 + }
  508 +
  509 + $scope.validarQuantidades = function(atendimentoItem){
  510 + $scope.validarQuantidadesAtendidas();
  511 + $scope.validarQuantidadeAtendidaMaiorQuantidadeRequisitada(atendimentoItem);
  512 + }
  513 +
494 function limparLinhasComErro(){ 514 function limparLinhasComErro(){
495 $scope.atendimentos.forEach(function(atendimento){ 515 $scope.atendimentos.forEach(function(atendimento){
496 atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){ 516 atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){
@@ -687,7 +707,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;, @@ -687,7 +707,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
687 var mensagemErro = $translate.instant('ALMOXARIFADO.VALIDACAO.QUANTIDADE_ATENDER_SUPERIOR_SALDO_ESTOQUE'); 707 var mensagemErro = $translate.instant('ALMOXARIFADO.VALIDACAO.QUANTIDADE_ATENDER_SUPERIOR_SALDO_ESTOQUE');
688 $scope.atendimentoItemEmEdicao.$somaQtdAtendida = 0; 708 $scope.atendimentoItemEmEdicao.$somaQtdAtendida = 0;
689 $scope.listaEnderecosAdicionados.forEach(function(item){ 709 $scope.listaEnderecosAdicionados.forEach(function(item){
690 - if(item.materialLocalEstoque.quantidade < parseFloat(item.quantidade)){ 710 + if(item.materialLocalEstoque.quantidade + parseFloat(item.quantidadeAnterior) < parseFloat(item.quantidade)){
691 hasError = true; 711 hasError = true;
692 mensagemErro += "<br />" + item.materialLocalEstoque.endereco.descricao; 712 mensagemErro += "<br />" + item.materialLocalEstoque.endereco.descricao;
693 } 713 }
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
@@ -158,7 +158,7 @@ @@ -158,7 +158,7 @@
158 </td> 158 </td>
159 159
160 <td ng-if="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length <= 1" class="text-center"> 160 <td ng-if="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos.length <= 1" class="text-center">
161 - <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-evento-blur="aplicarValidacaoDecimal" ng-evento-keyup="validarQuantidadesAtendidas()" 161 + <label-input-decimal ng-id="atendimentoRequisicaoConsumoItem.quantidade$index" ng-evento-blur="aplicarValidacaoDecimal" ng-evento-keyup="validarQuantidades(atendimentoRequisicaoConsumoItem)"
162 ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}" 162 ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}"
163 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" /> 163 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" />
164 </td> 164 </td>