angular.module('focaModalPrecioCondicion') .controller('focaModalPrecioCondicionController', [ '$timeout', '$filter', '$scope', '$uibModal', '$uibModalInstance', 'focaModalService', 'focaModalPrecioCondicionService', 'idListaPrecio', 'idCliente', function ( $timeout, $filter, $scope, $uibModal, $uibModalInstance, focaModalService, focaModalPrecioCondicionService, idListaPrecio, idCliente ) { $scope.plazos = [{ dias: 0 }]; $scope.editingPlazo = false; $scope.openModalListaDePrecios = false; $scope.associatedList = 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]; }) .catch(function (e) { console.log(e) }); focaModalPrecioCondicionService.getPlazosByIdCliente(idCliente) .then(function (res) { console.log(res); $scope.plazos = res.data; }) .catch(function (e) { console.log(e) }); } //#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.associatedList = false; $scope.listaDePreciosAlternativa = res; console.log(res); }).catch(function (e) { console.log(e); }); }); }; $scope.selectListaDePrecios = function (listaDePrecios) { $scope.associatedList = true; }; $scope.verListaProductos = function (id) { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Productos', templateUrl: 'modal-busqueda-productos.html', controller: 'modalBusquedaProductosCtrl', resolve: { parametroProducto: { idLista: parseInt(id), cotizacion: 1, simbolo: '$', soloMostrar: true } }, size: 'md' } ); modalInstance.result .then(function (res) { console.log("Producto => ", res); }) .catch(function (e) { console.log(e) }); }; $scope.closeModalPrecioCondicion = function () { $uibModalInstance.dismiss('cancel'); }; $scope.guardarPrecioCondicion = function () { $uibModalInstance.close(!$scope.associatedList ? $scope.listaDePreciosAsociada : $scope.listaDePreciosAlternativa); } //#endregion //#region Metodos para los plazos $scope.addMorePlazos = function () { if ($scope.plazos.length < 4) { $scope.plazos.unshift({ dias: 0 }); } }; $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; } if (parseInt(plazo.dias) < min) { plazo.dias = '0'; return; } if (parseInt(plazo.dias) > max) { plazo.dias = '365'; return; } }; //#endregion } ] );