diff --git a/src/js/controller.js b/src/js/controller.js
index 4df3866..ce308f2 100644
--- a/src/js/controller.js
+++ b/src/js/controller.js
@@ -9,18 +9,17 @@ angular.module('focaModalPuntoDescarga')
function($timeout, $filter, $scope, $uibModalInstance,
focaModalPuntoDescargaService, filters) {
+ $scope.cantidadArticulo = 0;
+ $scope.articuloSeleccionado = 0;
$scope.ivas = [];
+ $scope.puntosSeleccionados = [];
$scope.puntoDescarga = {
id: 0,
id_cliente: filters.idCliente,
id_da_config_0: filters.idDomicilio
};
-
- focaModalPuntoDescargaService
- .getPuntosDescargaByClienDom(filters.idDomicilio, filters.idCliente)
- .then(function(res) {
- $scope.puntosDescarga = res.data;
- });
+ $scope.articulos = angular.copy(filters.articulos);
+ actualizarTabla();
$scope.cancel = function() {
if($scope.ingreso){
@@ -30,14 +29,87 @@ angular.module('focaModalPuntoDescarga')
}
};
- $scope.select = function(iva) {
- $uibModalInstance.close(iva);
+ $scope.aceptar = function() {
+ if($scope.cargaArticulos) {
+ cargarArticulos();
+ }else {
+ verCargaArticulos();
+ }
};
$scope.guardar = function() {
focaModalPuntoDescargaService
.guardarPuntoDescarga($scope.puntoDescarga)
- .then(function(res) {});
+ .then(function() {
+ actualizarTabla();
+ $scope.ingreso = false;
+ });
+ };
+
+ $scope.editar = function(id) {
+ focaModalPuntoDescargaService.getPuntoDescargaById(id).then(function(res) {
+ $scope.puntoDescarga = res.data;
+ $scope.ingreso = true;
+ });
+ };
+
+ $scope.eliminar = function(idx, id) {
+ focaModalPuntoDescargaService.eliminarPuntoDescarga(id).then(function() {
+ $scope.puntosDescarga.splice(idx, 1);
+ });
+ };
+
+ $scope.seleccionarPunto = function(idx) {
+ $scope.puntosSeleccionados.push(idx);
};
+
+ $scope.agregarArticulo = function(punto) {
+ var articulo = $scope.articulos[$scope.articuloSeleccionado],
+ cantidadRestante = articulo.cantidad - $scope.cantidadArticulo;
+
+ if(cantidadRestante < 0) {
+ alert('La cantidad a cargar debe ser menor o igual al restante');
+ }else if($scope.cantidadArticulo <= 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;
+ }
+ };
+
+ $scope.quitarArticulo = function(articulo, idx, punto) {
+ var restante = parseInt($scope.articulos[articulo.index].cantidad);
+ restante += parseInt(articulo.cantidad);
+ $scope.articulos[articulo.index].cantidad = restante;
+ punto.articulosAgregados.splice(idx, 1);
+ };
+
+ function actualizarTabla() {
+ focaModalPuntoDescargaService
+ .getPuntosDescargaByClienDom(filters.idDomicilio, filters.idCliente)
+ .then(function(res) {
+ $scope.puntosDescarga = res.data;
+ });
+ }
+ function verCargaArticulos() {
+ $scope.puntosACargar = [];
+ $scope.cargaArticulos = true;
+ $scope.puntosSeleccionados.forEach(function(idx) {
+ $scope.puntosACargar.push($scope.puntosDescarga[idx]);
+ });
+
+ $scope.puntosACargar.map(function(punto) {
+ punto.articulosAgregados = [];
+ });
+ }
+ function cargarArticulos() {
+ $uibModalInstance.close($scope.puntosACargar);
+ }
}]
);
diff --git a/src/js/service.js b/src/js/service.js
index 86b4643..c5250a0 100644
--- a/src/js/service.js
+++ b/src/js/service.js
@@ -5,6 +5,9 @@ angular.module('focaModalPuntoDescarga')
getPuntosDescarga: function() {
return $http.get(API_ENDPOINT.URL + '/punto-descarga');
},
+ getPuntoDescargaById: function(id) {
+ return $http.get(API_ENDPOINT.URL + '/punto-descarga/' + id);
+ },
getPuntosDescargaByClienDom: function(idDomicilio, idCliente) {
return $http.get(API_ENDPOINT.URL + '/punto-descarga/' +
idDomicilio + '/' + idCliente);
@@ -12,6 +15,9 @@ angular.module('focaModalPuntoDescarga')
guardarPuntoDescarga: function(puntoDescarga) {
return $http.post(API_ENDPOINT.URL + '/punto-descarga',
{puntoDescarga: puntoDescarga});
+ },
+ eliminarPuntoDescarga: function(id) {
+ return $http.delete(API_ENDPOINT.URL + '/punto-descarga/' + id);
}
};
}]);
diff --git a/src/views/modal-punto-descarga.html b/src/views/modal-punto-descarga.html
index a5bef92..f81bfaf 100644
--- a/src/views/modal-punto-descarga.html
+++ b/src/views/modal-punto-descarga.html
@@ -1,20 +1,22 @@
+ ng-hide="ingreso || cargaArticulos">
Código |
+ Descripción |
Latitud |
Longitud |
|
@@ -28,25 +30,34 @@
|
+ |
|
|
|
+
+
+
|
@@ -84,9 +95,88 @@
+
+
+
No existen articulos para agregar
+
+
+
+
+
+
+
+
+
+
+
+
+
{{punto.descripcion}}
+
+
+
+
+
+ Articulo |
+ Cantidad |
+ |
+
+
+
+
+ |
+ |
+
+
+ |
+
+
+
+
+
+
+