angular.module('focaAbmVendedorCobrador') .controller('focaAbmVendedorCobradorController', [ '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', '$timeout', '$uibModal', '$location', 'focaModalService', function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, $timeout, $uibModal, $location, focaModalService) { $scope.now = new Date(); $scope.focused = 0; $scope.vendedorCobrador = { ES_COBRADOR: false, DNI: ' ', ClaVen: '', ComVen: '0.00', comisionCobrador: '0.00', provincia: { NOMBRE: '' }, localidad: { NOMBRE: ' ' } }; $scope.options = [ { label: 'Vendedor', value: 1 }, { label: 'Cobrador', value: 2 }, { label: 'Vendedor y cobrador', value: 3 } ]; //SETEO BOTONERA LATERAL $timeout(function() { focaBotoneraLateralService.showSalir(false); focaBotoneraLateralService.showPausar(true); focaBotoneraLateralService.showCancelar(false); focaBotoneraLateralService.showGuardar(true, $scope.guardar); focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); }); focaAbmVendedorCobradorService .getCodigoSiguiente() .then(function(res) { $scope.vendedorCobrador.CodVen = res.data.mayor; }); focaAbmVendedorCobradorService .getVendedorCobradorById($routeParams.id) .then(function(res) { if(res.data){ $scope.edicion = true; $scope.vendedorCobrador = res.data; delete $scope.vendedorCobrador.FCVEN; delete $scope.vendedorCobrador.FEC; } }); $scope.guardar = function() { validarCodigo() .then(function() { if ($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { focaModalService.alert('Las contraseñas deben coincidir'); return; } $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; delete $scope.vendedorCobrador.provincia; delete $scope.vendedorCobrador.localidad; delete $scope.vendedorCobrador.ClaVen2; if ($scope.vendedorCobrador.rol == 1) { delete $scope.vendedorCobrador.comisionCobrador; } else if ($scope.vendedorCobrador.rol == 2) { delete $scope.vendedorCobrador.ComVen; } return focaAbmVendedorCobradorService .guardarVendedorCobrador($scope.vendedorCobrador) .then(function() { $location.path('/vendedor-cobrador'); }); }) .catch(function() { focaModalService.alert('El codigo del vendedor/cobrador ya existe'); }); }; $scope.seleccionarProvincia = function(key) { if(key === 13) { var parametrosModal = { query: '/provincia', columnas: [ { propiedad: 'ID', nombre: 'Codigo', filtro: { nombre: 'rellenarDigitos', parametro: 3} }, { propiedad: 'NOMBRE', nombre: 'Nombre' } ], titulo:'Búsqueda de provincias', size: 'md' }; focaModalService.modal(parametrosModal).then(function(provincia) { $scope.vendedorCobrador.provincia = provincia; $timeout(function() { $scope.focused = 5; }); }, function() { //TODO: función llamada cuando cancela el modal }); } }; $scope.seleccionarLocalidad = function(key) { if(!$scope.vendedorCobrador.provincia.ID) { focaModalService.alert('Seleccione una provincia'); return; } if(key === 13) { var parametrosModal = { query: '/localidad/' + $scope.vendedorCobrador.provincia.ID, columnas: [ { propiedad: 'ID', nombre: 'Código', filtro: { nombre: 'rellenarDigitos', parametro: 3 } }, { propiedad: 'NOMBRE', nombre: 'Nombre' } ], titulo:'Búsqueda de localidades', size: 'md' }; focaModalService.modal(parametrosModal).then(function(localidad) { $scope.vendedorCobrador.localidad = localidad; $timeout(function() { $scope.focused = 6; }); }, function() { //TODO: función llamada cuando cancela el modal }); } }; $scope.cancelar = function() { $location.path('/vendedor-cobrador'); }; $scope.next = function(key) { if(key === 13) $scope.focused++; }; function validarCodigo() { return new Promise(function(resolve, reject) { if (parseInt($routeParams.id) === 0) { focaAbmVendedorCobradorService .getVendedorCobradorById($scope.vendedorCobrador.CodVen) .then(function(res) { if (res.data) { reject(res.data); } else { resolve(); } }); } else { resolve(); } }); }; } ]);