diff --git a/src/js/controllerDetalleVehiculo.js b/src/js/controllerDetalleVehiculo.js index b24801a..aa27322 100644 --- a/src/js/controllerDetalleVehiculo.js +++ b/src/js/controllerDetalleVehiculo.js @@ -7,27 +7,33 @@ angular.module('focaLogisticaPedidoRuta') 'focaModalService', '$filter', 'focaLogisticaPedidoRutaService', + 'fechaReparto', function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter, - focaLogisticaPedidoRutaService + focaLogisticaPedidoRutaService, fechaReparto ) { //seteo variables $scope.cargandoDatos = true; $scope.idRemito = idRemito; $scope.articulos = []; $scope.vehiculo = {}; + $scope.cisternas = []; + $scope.cisternasCarga = []; $scope.remito = {}; $scope.aCargar = []; var cisternaMovimientos = []; - var promesaVehiculo = focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo); var promesaRemito; + var promesaVehiculo = focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo); + var promesaCisternas = focaLogisticaPedidoRutaService + .obtenerCisternasPorFecha(idVehiculo, fechaReparto); if(idRemito !== -1) { promesaRemito = focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito); } - Promise.all([promesaVehiculo, promesaRemito]).then(function(res) { + Promise.all([promesaVehiculo, promesaCisternas, promesaRemito]).then(function(res) { $scope.cargandoDatos = false; $scope.vehiculo = res[0].data; - if(!res[1]) return; - $scope.remito = res[1].data; + $scope.cisternas = res[1].data; + if(!res[2]) return; + $scope.remito = res[2].data; if($scope.remito.idUsuarioProceso) { focaModalService.alert('Remito ya asignado'); $uibModalInstance.close(); @@ -37,14 +43,12 @@ angular.module('focaLogisticaPedidoRuta') }); $scope.aceptar = function() { $scope.cargando = true; - var cisternaCargas = []; - for (var i = 0; i < $scope.vehiculo.cisternas.length; i++) { - delete $scope.vehiculo.cisternas[i].cisternaCarga.articulo; - cisternaCargas.push($scope.vehiculo.cisternas[i].cisternaCarga); + for (var i = 0; i < $scope.cisternasCarga.length; i++) { + delete $scope.cisternasCarga[i].articulo; } var cisterna = { cisternaMovimientos: cisternaMovimientos, - cisternaCargas: cisternaCargas, + cisternaCargas: $scope.cisternasCarga, idVehiculo: $scope.vehiculo.id }; focaLogisticaPedidoRutaService.guardarCisternas(cisterna, $scope.remito.id) @@ -69,19 +73,14 @@ angular.module('focaLogisticaPedidoRuta') $scope.cancelar = function() { $uibModalInstance.close(); }; - $scope.cargarACisternas = function(vehiculo) { - for(var i = 0; i < vehiculo.cisternas.length; i++) { - var cisterna = vehiculo.cisternas[i]; + $scope.cargarACisternas = function() { + for(var i = 0; i < $scope.cisternas.length; i++) { + var cisterna = $scope.cisternas[i]; var aCargar = parseFloat($scope.aCargar[i]); //validaciones if(!aCargar) { continue; } - if(aCargar > cisterna.disponible) { - focaModalService.alert('La cantidad cargada supera la capacidad de la' + - 'cisterna ' + cisterna.codigo); - return; - } //cargar if(cisterna.cisternaCarga.cantidad) { cisterna.cisternaCarga.cantidad += aCargar; @@ -107,6 +106,9 @@ angular.module('focaLogisticaPedidoRuta') idCisternaCarga: cisterna.cisternaCarga.id, idRemito: $scope.remito.id }; + cisterna.cisternaCarga.fechaReparto = fechaReparto; + cisterna.cisternaCarga.idCisterna = cisterna.id; + $scope.cisternasCarga.push(cisterna.cisternaCarga); cisternaMovimientos.push(cisternaMovimiento); } var articuloSiguiente = $scope.articulos.filter( @@ -131,7 +133,7 @@ angular.module('focaLogisticaPedidoRuta') }; $scope.seleccionarArticulo = function(articulo) { $scope.articuloSeleccionado = articulo; - $scope.cisternaDisabled(); + $scope.cisternaDisponible(); $scope.autoCompletar(); $scope.actualizarArticulo(); }; @@ -144,21 +146,24 @@ angular.module('focaLogisticaPedidoRuta') }; $scope.autoCompletar = function() { $scope.aCargar = []; - var disponible = $filter('filter')($scope.vehiculo.cisternas, {disabled: false}); - var index = $scope.vehiculo.cisternas.indexOf(disponible[0]); + var disponible = $filter('filter')($scope.cisternas, {disabled: false}); + var index = $scope.cisternas.indexOf(disponible[0]); $scope.aCargar[index] = $scope.articuloSeleccionado.cantidad; }; - $scope.cisternaDisabled = function() { - for(var i = 0; i < $scope.vehiculo.cisternas.length; i++) { - var cisterna = $scope.vehiculo.cisternas[i]; - if(!$scope.articuloSeleccionado || ($scope.articuloSeleccionado.idArticulo !== - cisterna.cisternaCarga.idProducto && cisterna.cisternaCarga.idProducto) || - !$scope.tieneArticulosPendientes()|| $scope.articuloSeleccionado.cantidad > - cisterna.disponible) { - cisterna.disabled = true; - }else { - cisterna.disabled = false; - } + $scope.cisternaDisponible = function() { + for(var i = 0; i < $scope.cisternas.length; i++) { + if($scope.articuloSeleccionado.cantidad > $scope.cisternas[i].disponible) { + $scope.cisternas[i].disabled = true; + continue; + } + if($scope.cisternas[i].cisternaCarga.idProducto && + $scope.articuloSeleccionado.idArticulo !== + $scope.cisternas[i].cisternaCarga.idProducto) + { + $scope.cisternas[i].disabled = true; + continue; + } + $scope.cisternas[i].disabled = false; } }; $scope.rellenarInput = function(input) { @@ -192,6 +197,7 @@ angular.module('focaLogisticaPedidoRuta') return filter.cargado === true; }); if(articulosDescargados.length === $scope.articulos.length) { + $scope.aCargar = []; return false; } return true; diff --git a/src/js/service.js b/src/js/service.js index d670392..f91cc36 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -68,6 +68,10 @@ angular.module('focaLogisticaPedidoRuta') }, getVehiculosByIdUsuario: function() { return $http.get(API_ENDPOINT.URL + '/vehiculo/usuario/' + this.idUsuario); + }, + obtenerCisternasPorFecha: function(idVehiculo, fecha) { + return $http.post(API_ENDPOINT.URL + '/cisterna/listar/fecha', + {idVehiculo: idVehiculo, fechaReparto: fecha}); } }; }]); diff --git a/src/views/foca-detalle-vehiculo.html b/src/views/foca-detalle-vehiculo.html index 422c85c..1883336 100644 --- a/src/views/foca-detalle-vehiculo.html +++ b/src/views/foca-detalle-vehiculo.html @@ -57,7 +57,7 @@
-