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 @@ + + +