From 7888b4110a7204287717eca6d9acd27fd9bcc20d Mon Sep 17 00:00:00 2001 From: efernandez Date: Mon, 21 Jan 2019 16:51:07 -0300 Subject: [PATCH] validaciones, rechazo remito --- src/js/controller.js | 73 ++++++++++++++++++++++++++-------- src/js/service.js | 3 ++ src/views/modal-detalle-hoja-ruta.html | 11 +++-- 3 files changed, 67 insertions(+), 20 deletions(-) diff --git a/src/js/controller.js b/src/js/controller.js index d1e9ed5..8705eef 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -17,7 +17,7 @@ angular.module('focaModalDetalleHojaRuta') $scope.articuloSeleccionado = {}; $scope.aDescargar = []; $scope.cargando = true; - + //Datos var promesaRemito = focaModalDetalleHojaRutaService .getRemitoById(idRemito); @@ -28,35 +28,54 @@ angular.module('focaModalDetalleHojaRuta') $scope.cargando = false; $scope.remito = res[0].data; $scope.cisternas = res[1].data; - $scope.cambio($scope.remito.articulosRemito[0]); + var articuloAChequear = $scope.remito.articulosRemito.filter( + function(articulo) { + return !articulo.descargado; + }); + if(!articuloAChequear.length || $scope.remito.rechazado) { + $scope.readonly = true; + $scope.cambio($scope.remito.articulosRemito[0]); + }else { + $scope.cambio(articuloAChequear[0]); + } $scope.$digest(); }, function() { focaModalService.alert('El servicio no responde intente más tarde'); $uibModalInstance.dismiss(); }); $scope.cambio = function(articulo) { + if(!$scope.articuloSeleccionado.descargado) { + $scope.articuloSeleccionado.cantidadDescargada = 0; + } $scope.aDescargar = []; $scope.articuloSeleccionado = articulo; }; $scope.descargar = function(key) { - var hojaRutaMovimientos = []; - var cisternaMovimientos = []; - var cisternaCargas = []; - var totalADescargar = 0; - for (var i = 0; i < $scope.aDescargar.length; i++) { - totalADescargar += $scope.aDescargar[i] || 0; - } if(key === 13) { + $scope.cargando = true; + var hojaRutaMovimientos = []; + var cisternaMovimientos = []; + var cisternaCargas = []; + var totalADescargar = 0; + for(var i = 0; i < $scope.aDescargar.length; i++) { + totalADescargar += $scope.aDescargar[i] || 0; + } focaModalService .confirm('¿Desea descargar ' + totalADescargar + ' litros de ' + $scope.articuloSeleccionado.descripcion + '?') .then(descargar); } function descargar() { - for (var i = 0; i < $scope.cisternas.length; i++) { + for(var i = 0; i < $scope.cisternas.length; i++) { var descarga = $scope.aDescargar[i]; - if(!descarga) continue; var cisternaCarga = $scope.cisternas[i].cisternaCarga; + if(!descarga) continue; + if(descarga > cisternaCarga.cantidad) { + focaModalService.alert('La cantidad a descargar no debe ser ' + + 'mayor a la cantidad de la cisterna'); + $scope.cargando = false; + return; + } cisternaCarga.cantidad -= descarga; //Guardar @@ -80,7 +99,8 @@ angular.module('focaModalDetalleHojaRuta') var save = { cisternaCargas: cisternaCargas, cisternaMovimientos: cisternaMovimientos, - hojaRutaMovimientos: hojaRutaMovimientos + hojaRutaMovimientos: hojaRutaMovimientos, + articulo: $scope.articuloSeleccionado }; focaModalDetalleHojaRutaService .postMovimientoHojaRuta(save) @@ -94,6 +114,15 @@ angular.module('focaModalDetalleHojaRuta') $scope.remito.observaciones); $scope.aDescargar = []; $scope.remito.observaciones = ''; + $scope.articuloSeleccionado.descargado = true; + var siguienteArticulo = $scope.remito.articulosRemito.filter( + function(articulo) { + return articulo.id != $scope.articuloSeleccionado.id; + } + ); + if(siguienteArticulo.length) { + $scope.cambio(siguienteArticulo[0]); + } success(); } } @@ -119,18 +148,30 @@ angular.module('focaModalDetalleHojaRuta') $scope.rechazar = function() { focaModalService .prompt('Aclare el motivo de rechazo') - .then(function() { - focaModalService.alert('desarrollo'); - $uibModalInstance.dismiss(); + .then(function(motivo) { + $scope.cargando = true; + var remitoRechazado = $.extend(true, {}, $scope.remito); + delete remitoRechazado.articulosRemito; + delete remitoRechazado.notaPedido; + remitoRechazado.rechazado = true; + remitoRechazado.motivoRechazo = motivo; + remitoRechazado.fechaRemito = + remitoRechazado.fechaRemito.slice(0, 19).replace('T', ' '); + focaModalDetalleHojaRutaService + .rechazarRemito(remitoRechazado) + .then(success) + .catch(error) + $scope.readonly = true; }); }; - + //funciones function error(error) { focaModalService.alert('Hubo un error ' + error); } function success() { focaModalService.alert('Operación realizada con éxito'); + $scope.cargando = false; } } ] diff --git a/src/js/service.js b/src/js/service.js index e588a11..66abac8 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -15,6 +15,9 @@ angular.module('focaModalDetalleHojaRuta') }, postMovimientoHojaRuta: function(datos) { return $http.post(API_ENDPOINT.URL + '/hoja-ruta/movimiento', datos); + }, + rechazarRemito: function(remito) { + return $http.post(API_ENDPOINT.URL + '/remito/update', {remito: remito}); } }; } diff --git a/src/views/modal-detalle-hoja-ruta.html b/src/views/modal-detalle-hoja-ruta.html index a77b123..6ee8384 100644 --- a/src/views/modal-detalle-hoja-ruta.html +++ b/src/views/modal-detalle-hoja-ruta.html @@ -76,12 +76,12 @@ name="articuloRadio" id="{{'articulo' + articulo.id}}" ng-click="cambio(articulo)" - ng-disabled="articulo.cargado" + ng-disabled="articulo.descargado || readonly" ng-checked="articuloSeleccionado.id === articulo.id" > - + Cisterna @@ -105,7 +105,8 @@ ng-model="aDescargar[key]" ng-change="actualizarArticulo()" foca-focus="articuloSeleccionado.idArticulo == cisterna.cisternaCarga.idProducto" - ng-disabled="articuloSeleccionado.idArticulo != cisterna.cisternaCarga.idProducto"/> + ng-disabled="articuloSeleccionado.idArticulo != cisterna.cisternaCarga.idProducto + || readonly"/> @@ -117,6 +118,7 @@
@@ -126,6 +128,7 @@ @@ -146,7 +149,7 @@ class="btn btn-danger btn-sm" type="button" ng-click="rechazar()" - ng-disabled="" + ng-disabled="readonly" >Rechazar