From acb9dc7e2c45dcbdfac36e9f30c700c722f06343 Mon Sep 17 00:00:00 2001 From: efernandez Date: Mon, 7 Jan 2019 17:40:15 -0300 Subject: [PATCH] vehiculo y remito en promesa, cisternas no disponibles en funcion, auto completar cantidad en cisternas --- src/js/controllerDetalleVehiculo.js | 80 +++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/src/js/controllerDetalleVehiculo.js b/src/js/controllerDetalleVehiculo.js index 9d0feaa..163d888 100644 --- a/src/js/controllerDetalleVehiculo.js +++ b/src/js/controllerDetalleVehiculo.js @@ -11,30 +11,30 @@ angular.module('focaLogisticaPedidoRuta') focaLogisticaPedidoRutaService ) { //seteo variables + $scope.cargandoDatos = true; $scope.idRemito = idRemito; $scope.articulos = []; $scope.vehiculo = {}; $scope.remito = {}; $scope.aCargar = []; var cisternaMovimientos = []; - focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then( - function(res) { - $scope.vehiculo = res.data; - } - ); + var promesaVehiculo = focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo); + var promesaRemito; if(idRemito !== -1) { - focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito).then( - function(res) { - $scope.remito = res.data; - if($scope.remito.idUsuarioProceso) { - focaModalService.alert('Remito ya asignado'); - $uibModalInstance.close(); - } - $scope.articulos = res.data.articulosRemito; - $scope.cambioArticulo($scope.articulos[0]); - } - ); + promesaRemito = focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito); } + Promise.all([promesaVehiculo, promesaRemito]).then(function(res) { + $scope.cargandoDatos = false; + $scope.vehiculo = res[0].data; + if(!res[1]) return; + $scope.remito = res[1].data; + if($scope.remito.idUsuarioProceso) { + focaModalService.alert('Remito ya asignado'); + $uibModalInstance.close(); + } + $scope.articulos = $scope.remito.articulosRemito; + $scope.cambioArticulo($scope.articulos[0]); + }); $scope.aceptar = function() { $scope.cargando = true; var cisternaCargas = []; @@ -133,8 +133,17 @@ angular.module('focaLogisticaPedidoRuta') } }; $scope.cambioArticulo = function(articulo) { - articulo.checked = true; + $scope.aCargar = []; + $filter('filter')($scope.articulos, {id: articulo.id})[0].checked = true; $scope.articuloSeleccionado = articulo; + for (var i = 0; i < $scope.vehiculo.cisternas.length; i++) { + $scope.vehiculo.cisternas[i] = + $scope.cisternaDisabled($scope.vehiculo.cisternas[i]); + } + var disponible = $filter('filter')($scope.vehiculo.cisternas, {disabled: false}); + var index = $scope.vehiculo.cisternas.indexOf(disponible[0]); + $scope.aCargar[index] = $scope.articuloSeleccionado.cantidad; + $scope.actualizarArticulo(); }; $scope.actualizarArticulo = function () { $scope.articuloSeleccionado.cantidadCargada = 0; @@ -143,7 +152,44 @@ angular.module('focaLogisticaPedidoRuta') parseFloat($scope.aCargar[i]) || 0; } }; + $scope.cisternaDisabled = function(cisterna) { + 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; + } + return cisterna; + }; + $scope.rellenarInput = function(input = 0) { + if(!$scope.articuloSeleccionado) return; + input = parseFloat(input); + if(input === $scope.articuloSeleccionado.cantidad || + $scope.articuloSeleccionado.cantidad - + $scope.articuloSeleccionado.cantidadCargada === 0) { + return input; + } + input += parseFloat($scope.articuloSeleccionado.cantidad - + $scope.articuloSeleccionado.cantidadCargada); + return input; + }; + $scope.distribucionDisponible = function() { + if(!$scope.articuloSeleccionado || $scope.articuloSeleccionado.cantidad - + $scope.articuloSeleccionado.cantidadCargada !== 0 || + !$scope.tieneArticulosPendientes()) { + return false; + } + return true; + }; $scope.tieneArticulosPendientes = function() { + var algunValorNegativo = $scope.aCargar.filter(function(p) { + return p < 0; + }); + if(algunValorNegativo.length) { + return false; + } var articulosDescargados = $scope.articulos.filter(function(filter) { return filter.cargado === true; }); -- 1.9.1