controllerDetalleVehiculo.js
4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
angular.module('focaLogisticaPedidoRuta')
.controller('focaDetalleVehiculo',
['$scope',
'$uibModalInstance',
'idVehiculo',
'idRemito',
'focaModalService',
'$filter',
'focaLogisticaPedidoRutaService',
function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter,
focaLogisticaPedidoRutaService
) {
$scope.articulos = [];
$scope.vehiculo = {};
$scope.remito = {};
focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(
function(res) {
$scope.vehiculo = res.data;
}
);
focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito).then(
function(res) {
$scope.remito = res.data;
$scope.articulos = res.data.articulosRemito;
}
);
$scope.aCargar = [];
$scope.aceptar = function() {
$uibModalInstance.close();
};
$scope.cancelar = function() {
$uibModalInstance.close();
};
$scope.cargarACisternas = function(vehiculo) {
for(var i = 0; i < vehiculo.cisternas.length; i++) {
var cisterna = vehiculo.cisternas[i];
var aCargar = parseFloat($scope.aCargar[i]);
if(!aCargar) {
continue;
}
if(aCargar > cisterna.disponible) {
focaModalService.alert('La cantidad cargada supera la capacidad de la' +
'cisterna ' + cisterna.codigo);
return;
}
if(cisterna.cisternaCarga.cantidad) {
cisterna.cisternaCarga.cantidad += aCargar;
}else {
cisterna.cisternaCarga.cantidad = aCargar;
cisterna.cisternaCarga.idProducto = $scope.articuloSeleccionado.idArticulo;
}
cisterna.disponible = cisterna.capacidad - cisterna.cisternaCarga.cantidad;
cisterna.cisternaCarga.articulo = {
DetArt: $scope.articuloSeleccionado.descripcion
};
$filter('filter')($scope.articulos, {id: $scope.articuloSeleccionado.id})[0]
.cargado = true;
$scope.calcularPorcentaje(cisterna);
}
var articuloSiguiente = $scope.articulos.filter(
function(filter) {
return filter.cargado !== true;
}
);
if(articuloSiguiente.length > 0) {
$scope.cambioArticulo(articuloSiguiente[0]);
}
$scope.aCargar = [];
};
$scope.calcularPorcentaje = function(cisterna) {
if(!cisterna.cisternaCarga.cantidad) {
cisterna.cisternaCarga.cantidad = 0;
}
var porcentaje = (cisterna.cisternaCarga.cantidad * 100 /
cisterna.capacidad) + '%';
var elementHtml = document.getElementById(cisterna.id);
if(elementHtml) {
elementHtml.style.width = porcentaje;
}
};
$scope.cambioArticulo = function(articulo) {
articulo.checked = true;
$scope.articuloSeleccionado = articulo;
};
$scope.actualizarArticulo = function () {
$scope.articuloSeleccionado.cantidadCargada = 0;
for (var i = 0; i < $scope.aCargar.length; i++) {
$scope.articuloSeleccionado.cantidadCargada +=
parseFloat($scope.aCargar[i]) || 0;
}
};
$scope.tieneArticulosPendientes = function() {
var articulosDescargados = $scope.articulos.filter(function(filter) {
return filter.cargado === true;
});
if(articulosDescargados.length === $scope.articulos.length) {
return false;
}
return true;
};
}]);