diff --git a/src/js/controller.js b/src/js/controller.js
index ce308f2..7d9d88f 100644
--- a/src/js/controller.js
+++ b/src/js/controller.js
@@ -19,10 +19,14 @@ angular.module('focaModalPuntoDescarga')
id_da_config_0: filters.idDomicilio
};
$scope.articulos = angular.copy(filters.articulos);
+ $scope.articulos.map(function(articulo) {
+ articulo.restante = articulo.cantidad;
+ });
actualizarTabla();
+ cargarPuntos(filters.puntosDescarga);
$scope.cancel = function() {
- if($scope.ingreso){
+ if($scope.ingreso) {
$scope.ingreso = false;
}else {
$uibModalInstance.dismiss('cancel');
@@ -60,33 +64,56 @@ angular.module('focaModalPuntoDescarga')
};
$scope.seleccionarPunto = function(idx) {
- $scope.puntosSeleccionados.push(idx);
+ var indexPunto = $scope.puntosSeleccionados.indexOf(idx);
+ if(indexPunto !== -1) {
+ $scope.puntosSeleccionados.splice(indexPunto, 1);
+ }else {
+ $scope.puntosSeleccionados.push(idx);
+ }
};
$scope.agregarArticulo = function(punto) {
var articulo = $scope.articulos[$scope.articuloSeleccionado],
- cantidadRestante = articulo.cantidad - $scope.cantidadArticulo;
+ cantidadRestante = articulo.restante - punto.cantidadACargar;
if(cantidadRestante < 0) {
alert('La cantidad a cargar debe ser menor o igual al restante');
- }else if($scope.cantidadArticulo <= 0) {
+ }else if(punto.cantidadACargar <= 0) {
alert('La cantidad a cargar debe ser mayor que cero');
}else {
- articulo.cantidad = cantidadRestante;
- punto.articulosAgregados.push({
- id: articulo.id,
- descripcion: articulo.descripcion,
- cantidad: $scope.cantidadArticulo,
- index: $scope.articuloSeleccionado
- });
- $scope.cantidadArticulo = 0;
+ punto.cargado += parseInt(punto.cantidadACargar);
+ articulo.restante = cantidadRestante;
+ var existeArticulo = punto.articulosAgregados.filter(
+ function (articuloAAgregar) {
+ return articuloAAgregar.id === articulo.id;
+ });
+ //Si el articulo ya fue agregado
+ if(existeArticulo.length) {
+ //Solo sumo cantidad
+ var total = parseInt(existeArticulo[0].cantidad) + parseInt(punto.cantidadACargar);
+ existeArticulo[0].cantidad = total;
+ }else {
+ //Agrego el articulo con la cantidad
+ punto.articulosAgregados.push({
+ id: articulo.id,
+ descripcion: articulo.descripcion,
+ cantidad: punto.cantidadACargar,
+ index: $scope.articuloSeleccionado
+ });
+ }
+ punto.cantidadACargar = 0;
}
};
$scope.quitarArticulo = function(articulo, idx, punto) {
- var restante = parseInt($scope.articulos[articulo.index].cantidad);
+ var articuloAEliminar = $scope.articulos.filter(function(art) {
+ return art.id == articulo.id;
+ });
+ var restante = parseInt(articuloAEliminar[0].restante);
restante += parseInt(articulo.cantidad);
- $scope.articulos[articulo.index].cantidad = restante;
+ articuloAEliminar[0].restante = restante;
+
+ punto.cargado -= parseInt(punto.articulosAgregados[idx].cantidad);
punto.articulosAgregados.splice(idx, 1);
};
@@ -106,10 +133,44 @@ angular.module('focaModalPuntoDescarga')
$scope.puntosACargar.map(function(punto) {
punto.articulosAgregados = [];
+ punto.cantidadACargar = 0;
+ punto.cargado = 0;
});
}
function cargarArticulos() {
$uibModalInstance.close($scope.puntosACargar);
}
+ function cargarPuntos(puntosDescarga) {
+ //Si existen puntos ya cargados
+ if(puntosDescarga) {
+ if(!puntosDescarga[0].cargado) {
+ agregarTotalCargado(puntosDescarga);
+ }
+ $scope.puntosACargar = puntosDescarga;
+ $scope.cargaArticulos = true;
+ //Recorro los puntos
+ puntosDescarga.forEach(function(punto) {
+ //Recorro los articulos cargados en cada punto
+ punto.articulosAgregados.forEach(function(articulo) {
+ var articuloARestar = $scope.articulos.filter(function(art) {
+ return art.id == articulo.id;
+ });
+ articuloARestar[0].restante -= articulo.cantidad;
+ });
+ });
+ }
+ }
+ function agregarTotalCargado(puntosDescarga){
+ puntosDescarga.map(function(punto) {
+ punto.cantidadACargar = 0;
+ punto.cargado = 0;
+ });
+ //Agrego cantidad de combustible cargada en los puntos de descarga
+ puntosDescarga.forEach(function(punto) {
+ punto.articulosAgregados.forEach(function(articulo) {
+ punto.cargado += articulo.cantidad;
+ });
+ });
+ }
}]
);
diff --git a/src/views/modal-punto-descarga.html b/src/views/modal-punto-descarga.html
index f81bfaf..8b17333 100644
--- a/src/views/modal-punto-descarga.html
+++ b/src/views/modal-punto-descarga.html
@@ -50,13 +50,15 @@
@@ -88,10 +90,11 @@
+ ng-model="puntoDescarga.descripcion">
+
@@ -101,61 +104,90 @@
-
-
-
-
-
-
-
-
-
-
{{punto.descripcion}}
-
-
+
+
Puntos de descarga
+
+
+
+ Lugar |
+ Articulo |
+ Cantidad |
+ |
+
+
+
+ |
|
|
|