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 204  
205 205 public void setAtendimentoRequisicaoConsumoItemFIFOs(
206 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 92 if(quantidade == null){
93 93 quantidadeAnterior = BigDecimal.ZERO;
94 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 195  
196 196 @Override
197 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 203 for(AtendimentoRequisicaoConsumo atendimento : entity.getAtendimentos()){
201 204 for(AtendimentoRequisicaoConsumoItem atendimentoItem : atendimento.getAtendimentoRequisicaoConsumoItems()){
... ... @@ -204,10 +207,10 @@ public class AtendimentoRequisicaoConsumoServiceImpl extends GenericServiceImpl&lt;
204 207 if(somatorioQuantidadesAtentidasPorMaterial.containsKey(itemEndereco.getMaterialLocalEstoque())){
205 208  
206 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 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 219  
217 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 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 448 $scope.atendimentoRequisicaoConsumoForm.$submitted = false;
449 449 angular.element('#searchAtendimentoRequisicaoConsumo').scope().fetchResult();
450 450 $scope.resetForm();
  451 +
  452 + $scope.$showPageSearchWorkspace($scope.workspace);
  453 + $scope.atualizaPaginaPesquisa();
  454 +
451 455 $scope.setLoading(false);
452 456 });
453 457 }
... ... @@ -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 514 function limparLinhasComErro(){
495 515 $scope.atendimentos.forEach(function(atendimento){
496 516 atendimento.atendimentoRequisicaoConsumoItems.forEach(function(atendimentoItem){
... ... @@ -687,7 +707,7 @@ citApp.controller( &#39;AtendimentoRequisicaoConsumoController&#39;,
687 707 var mensagemErro = $translate.instant('ALMOXARIFADO.VALIDACAO.QUANTIDADE_ATENDER_SUPERIOR_SALDO_ESTOQUE');
688 708 $scope.atendimentoItemEmEdicao.$somaQtdAtendida = 0;
689 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 711 hasError = true;
692 712 mensagemErro += "<br />" + item.materialLocalEstoque.endereco.descricao;
693 713 }
... ...
cit-almoxarifado-web/src/main/webapp/html/atendimentoRequisicaoConsumo/atendimentoRequisicaoConsumoEdit.html
... ... @@ -158,7 +158,7 @@
158 158 </td>
159 159  
160 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 162 ng-model="atendimentoRequisicaoConsumoItem.atendimentoRequisicaoConsumoItemEnderecos[0].quantidade" form="atendimentoRequisicaoConsumoForm" ng-disabled="!edit" ng-custom-maxlength="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 4 : 11}}"
163 163 ng-precisao="{{atendimentoRequisicaoConsumoItem.material.unidadeArmazenamento.tipoNumerico.codigo === 1 ? 0 : 'decimal'}}" />
164 164 </td>
... ...