diff --git a/src/js/controller.js b/src/js/controller.js index a17a0fb..80b0702 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -13,170 +13,64 @@ angular.module('focaModalPrecioCondicion') $timeout, $filter, $scope, $uibModal, $uibModalInstance, focaModalService, focaModalPrecioCondicionService, idListaPrecio ) { - - $scope.filters = ''; - $scope.ingreso = false; - $scope.plazosNuevos = []; - $scope.plazoACargar = - { - item: 1 - }; - // pagination - $scope.numPerPage = 10; - $scope.currentPage = 1; - $scope.filteredPrecioCondicion = []; - $scope.currentPagePrecioCondicion = []; - $scope.selectedPrecioCondicion = -1; - - var funcionGet = idListaPrecio ? 'getPreciosCondicionesByIdListaPrecio' : - 'getPreciosCondiciones'; - - focaModalPrecioCondicionService - [funcionGet](idListaPrecio) - .then(function (res) { - for (var i = 0; i < res.data.length; i++) { - var plazosTemp = ''; - res.data[i].plazoPago.sort(function (a, b) { - return a.dias - b.dias; - }); - for (var j = 0; j < res.data[i].plazoPago.length; j++) { - if (j + 1 === res.data[i].plazoPago.length) { - plazosTemp += res.data[i].plazoPago[j].dias; - } else { - plazosTemp += res.data[i].plazoPago[j].dias + ', '; - } - } - res.data[i].plazos = plazosTemp.trim(); - } - $scope.precioCondicion = res.data; - $scope.search(); - }); - - //METODOS - $scope.agregarPlazo = function (key) { - if (key === 13) { - if (!$scope.plazoACargar.dias) { - focaModalService.alert('Ingrese cantidad de días'); - return; - } - var tieneEseDia = $scope.plazosNuevos.filter(function (a) { - return a.dias === $scope.plazoACargar.dias; + $scope.plazos = [{ dias: 0 }]; + $scope.editingPlazo = false; + $scope.openModalListaDePrecios = false; + $scope.chosenClientList = true; + $scope.listaDePreciosAlternativa = null; + + onInit(); + + function onInit() { + //Metodo para traer la lista de precio asociada al cliente + focaModalPrecioCondicionService.getListaPrecio(idListaPrecio) + .then(function (res) { + console.log("Lista de precios", res); + $scope.listaDePreciosAsociada = res.data[0]; }); - if (tieneEseDia.length > 0) { - focaModalService.alert('Ya ha ingresado un plazo con esos días'); - return; - } - $scope.plazosNuevos.push($scope.plazoACargar); - $scope.plazoACargar = - { - item: $scope.plazosNuevos.length + 1 - }; - } - }; - - $scope.volver = function () { - $scope.ingreso = false; - $scope.plazosNuevos = []; - $scope.plazoACargar = - { - item: $scope.plazosNuevos.length + 1 - }; - }; - - $scope.quitarPlazo = function (key) { - $scope.plazosNuevos.splice(key, 1); - $scope.plazoACargar = - { - item: $scope.plazosNuevos.length + 1 - }; - }; - - $scope.search = function (pressed) { - $scope.filteredPrecioCondicion = $filter('filter')( - $scope.precioCondicion, - { $: $scope.filters } - ); + } - if (pressed) { - if ($scope.filteredPrecioCondicion.length === 0) { - $timeout(function () { - angular.element('#search')[0].focus(); - $scope.filters = ''; + //#region Metodos para la lista de precios + $scope.openListaDePrecios = function () { + var datos = null; + focaModalPrecioCondicionService.getAllListaPrecio() + .then(function (res) { + datos = res.data; + focaModalService.modal({ + titulo: 'Lista de precios', + data: datos, + size: 'md', + columnas: [ + { + propiedad: 'ID', + nombre: 'Codigo' + }, + { + propiedad: 'DES', + NOMBRE: 'Nombre' + } + ], + }).then(function (res) { + $scope.chosenClientList = false; + $scope.listaDePreciosAlternativa = res; + console.log(res); + }).catch(function (e) { + console.log(e); }); - } else { - primera(); - } - } - - $scope.lastPage = Math.ceil( - $scope.filteredPrecioCondicion.length / $scope.numPerPage - ); - - $scope.resetPage(); - }; - - $scope.resetPage = function () { - $scope.currentPage = 1; - $scope.selectPage(1); - }; - - $scope.selectPage = function (page) { - var start = (page - 1) * $scope.numPerPage; - var end = start + $scope.numPerPage; - $scope.paginas = []; - $scope.paginas = calcularPages(page); - $scope.currentPagePrecioCondicion = - $scope.filteredPrecioCondicion.slice(start, end); - $scope.currentPage = page; - }; - - $scope.select = function (precioCondicion) { - $uibModalInstance.close(precioCondicion); - }; - - $scope.cancel = function () { - $uibModalInstance.dismiss('cancel'); - }; - - $scope.busquedaDown = function (key) { - if (key === 40) { - primera(key); - } - }; - - $scope.busquedaPress = function (key) { - if (key === 13) { - $scope.search(true); - } + }); }; - - $scope.itemProducto = function (key) { - if (key === 38) { - anterior(key); - } - - if (key === 40) { - siguiente(key); - } - - if (key === 37) { - retrocederPagina(); - } - - if (key === 39) { - avanzarPagina(); - } + $scope.selectListaDePrecios = function (listaDePrecios) { + $scope.chosenClientList = true; }; - - $scope.verListaPrecio = function (id) { - $uibModal.open( + $scope.verListaProductos = function (id) { + var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Productos', templateUrl: 'modal-busqueda-productos.html', controller: 'modalBusquedaProductosCtrl', resolve: { parametroProducto: { - idLista: id, + idLista: parseInt(id), cotizacion: 1, simbolo: '$', soloMostrar: true @@ -185,72 +79,42 @@ angular.module('focaModalPrecioCondicion') size: 'md' } ); + modalInstance.result + .then(function (res) { + console.log("Producto => ", res); + }) + .catch(function (e) { console.log(e) }); }; + $scope.closeModalPrecioCondicion = function () { + $uibModalInstance.dismiss('cancel'); + }; + //#endregion - function calcularPages(paginaActual) { - var paginas = []; - paginas.push(paginaActual); - - if (paginaActual - 1 > 1) { - - paginas.unshift(paginaActual - 1); - if (paginaActual - 2 > 1) { - paginas.unshift(paginaActual - 2); - } - } - - if (paginaActual + 1 < $scope.lastPage) { - paginas.push(paginaActual + 1); - if (paginaActual + 2 < $scope.lastPage) { - paginas.push(paginaActual + 2); - } - } - - if (paginaActual !== 1) { - paginas.unshift(1); - } - - if (paginaActual !== $scope.lastPage) { - paginas.push($scope.lastPage); - } - - return paginas; - } - - function primera() { - $scope.selectedPrecioCondicion = 0; - } - - function anterior() { - if ($scope.selectedPrecioCondicion === 0 && $scope.currentPage > 1) { - retrocederPagina(); - } else { - $scope.selectedPrecioCondicion--; + //#region Metodos para los plazos + $scope.addMorePlazos = function () { + if ($scope.plazos.length < 4) { + $scope.plazos.unshift({ dias: 0 }); } - } - - function siguiente() { - if ($scope.selectedPrecioCondicion < - $scope.currentPagePrecioCondicion.length) { - $scope.selectedPrecioCondicion++; - } else { - avanzarPagina(); + }; + $scope.editPlazo = function () { + $scope.editingPlazo = true; + }; + $scope.validateMinMax = function (plazo, min, max) { + plazo.dias = parseInt(plazo.dias); + if (plazo.dias === null || plazo.dias === undefined || isNaN(plazo.dias)) { + plazo.dias = '0'; + return; } - } - - function retrocederPagina() { - if ($scope.currentPage > 1) { - $scope.selectPage($scope.currentPage - 1); - $scope.selectedPrecioCondicion = $scope.numPerPage - 1; + if (parseInt(plazo.dias) < min) { + plazo.dias = '0'; + return; } - } - - function avanzarPagina() { - if ($scope.currentPage < $scope.lastPage) { - $scope.selectPage($scope.currentPage + 1); - $scope.selectedPrecioCondicion = 0; + if (parseInt(plazo.dias) > max) { + plazo.dias = '365'; + return; } - } + }; + //#endregion } ] ); diff --git a/src/js/service.js b/src/js/service.js index 09bb67b..e6084a2 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -13,6 +13,13 @@ angular.module('focaModalPrecioCondicion') getPreciosCondicionesByIdListaPrecio: function (idListaPrecio) { return $http.get(API_ENDPOINT.URL + '/precio-condicion/plazo-pago/' + idListaPrecio); + }, + getListaPrecio: function (idListaPrecio) { + return $http.get(API_ENDPOINT.URL + '/lista-precio/' + + idListaPrecio); + }, + getAllListaPrecio: function () { + return $http.get(API_ENDPOINT.URL + '/lista-precio'); } }; } diff --git a/src/views/modal-precio-condicion.html b/src/views/modal-precio-condicion.html index 55abf77..edfefc2 100644 --- a/src/views/modal-precio-condicion.html +++ b/src/views/modal-precio-condicion.html @@ -1,202 +1,106 @@ - + + \ No newline at end of file