Commit acb9dc7e2c45dcbdfac36e9f30c700c722f06343

Authored by Eric Fernandez
1 parent aaf537312e
Exists in master and in 2 other branches develop, lab

vehiculo y remito en promesa, cisternas no disponibles en funcion, auto completa…

…r cantidad en cisternas
Showing 1 changed file with 63 additions and 17 deletions   Show diff stats
src/js/controllerDetalleVehiculo.js
... ... @@ -11,30 +11,30 @@ angular.module('focaLogisticaPedidoRuta')
11 11 focaLogisticaPedidoRutaService
12 12 ) {
13 13 //seteo variables
  14 + $scope.cargandoDatos = true;
14 15 $scope.idRemito = idRemito;
15 16 $scope.articulos = [];
16 17 $scope.vehiculo = {};
17 18 $scope.remito = {};
18 19 $scope.aCargar = [];
19 20 var cisternaMovimientos = [];
20   - focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(
21   - function(res) {
22   - $scope.vehiculo = res.data;
23   - }
24   - );
  21 + var promesaVehiculo = focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo);
  22 + var promesaRemito;
25 23 if(idRemito !== -1) {
26   - focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito).then(
27   - function(res) {
28   - $scope.remito = res.data;
29   - if($scope.remito.idUsuarioProceso) {
30   - focaModalService.alert('Remito ya asignado');
31   - $uibModalInstance.close();
32   - }
33   - $scope.articulos = res.data.articulosRemito;
34   - $scope.cambioArticulo($scope.articulos[0]);
35   - }
36   - );
  24 + promesaRemito = focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito);
37 25 }
  26 + Promise.all([promesaVehiculo, promesaRemito]).then(function(res) {
  27 + $scope.cargandoDatos = false;
  28 + $scope.vehiculo = res[0].data;
  29 + if(!res[1]) return;
  30 + $scope.remito = res[1].data;
  31 + if($scope.remito.idUsuarioProceso) {
  32 + focaModalService.alert('Remito ya asignado');
  33 + $uibModalInstance.close();
  34 + }
  35 + $scope.articulos = $scope.remito.articulosRemito;
  36 + $scope.cambioArticulo($scope.articulos[0]);
  37 + });
38 38 $scope.aceptar = function() {
39 39 $scope.cargando = true;
40 40 var cisternaCargas = [];
... ... @@ -133,8 +133,17 @@ angular.module('focaLogisticaPedidoRuta')
133 133 }
134 134 };
135 135 $scope.cambioArticulo = function(articulo) {
136   - articulo.checked = true;
  136 + $scope.aCargar = [];
  137 + $filter('filter')($scope.articulos, {id: articulo.id})[0].checked = true;
137 138 $scope.articuloSeleccionado = articulo;
  139 + for (var i = 0; i < $scope.vehiculo.cisternas.length; i++) {
  140 + $scope.vehiculo.cisternas[i] =
  141 + $scope.cisternaDisabled($scope.vehiculo.cisternas[i]);
  142 + }
  143 + var disponible = $filter('filter')($scope.vehiculo.cisternas, {disabled: false});
  144 + var index = $scope.vehiculo.cisternas.indexOf(disponible[0]);
  145 + $scope.aCargar[index] = $scope.articuloSeleccionado.cantidad;
  146 + $scope.actualizarArticulo();
138 147 };
139 148 $scope.actualizarArticulo = function () {
140 149 $scope.articuloSeleccionado.cantidadCargada = 0;
... ... @@ -143,7 +152,44 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
143 152 parseFloat($scope.aCargar[i]) || 0;
144 153 }
145 154 };
  155 + $scope.cisternaDisabled = function(cisterna) {
  156 + if(!$scope.articuloSeleccionado || ($scope.articuloSeleccionado.idArticulo !==
  157 + cisterna.cisternaCarga.idProducto && cisterna.cisternaCarga.idProducto) ||
  158 + !$scope.tieneArticulosPendientes()|| $scope.articuloSeleccionado.cantidad >
  159 + cisterna.disponible) {
  160 + cisterna.disabled = true;
  161 + }else {
  162 + cisterna.disabled = false;
  163 + }
  164 + return cisterna;
  165 + };
  166 + $scope.rellenarInput = function(input = 0) {
  167 + if(!$scope.articuloSeleccionado) return;
  168 + input = parseFloat(input);
  169 + if(input === $scope.articuloSeleccionado.cantidad ||
  170 + $scope.articuloSeleccionado.cantidad -
  171 + $scope.articuloSeleccionado.cantidadCargada === 0) {
  172 + return input;
  173 + }
  174 + input += parseFloat($scope.articuloSeleccionado.cantidad -
  175 + $scope.articuloSeleccionado.cantidadCargada);
  176 + return input;
  177 + };
  178 + $scope.distribucionDisponible = function() {
  179 + if(!$scope.articuloSeleccionado || $scope.articuloSeleccionado.cantidad -
  180 + $scope.articuloSeleccionado.cantidadCargada !== 0 ||
  181 + !$scope.tieneArticulosPendientes()) {
  182 + return false;
  183 + }
  184 + return true;
  185 + };
146 186 $scope.tieneArticulosPendientes = function() {
  187 + var algunValorNegativo = $scope.aCargar.filter(function(p) {
  188 + return p < 0;
  189 + });
  190 + if(algunValorNegativo.length) {
  191 + return false;
  192 + }
147 193 var articulosDescargados = $scope.articulos.filter(function(filter) {
148 194 return filter.cargado === true;
149 195 });