'use strict'; var app = angular.module('App2', ['ngStorage', 'ngRoute', 'ngPagination', 'ngFileUpload', 'ngDialog', 'angucomplete-alt']); // 'ui.grid', // 'ui.grid.edit', // 'ui.grid.selection', // 'ui.select', // 'ui.grid.exporter', // 'ui.utils']); var app3 = angular.module('App3', ['ngStorage']); app.directive('uiSelectWrap', uiSelectWrap); uiSelectWrap.$inject = ['$document', 'uiGridEditConstants']; function uiSelectWrap($document, uiGridEditConstants) { return function link($scope, $elm, $attr) { $document.on('click', docClick); function docClick(evt) { if ($(evt.target).closest('.ui-select-container').length === 0) { $scope.$emit(uiGridEditConstants.events.END_CELL_EDIT); $document.off('click', docClick); } } }; } app.config(function ($routeProvider) { /*home*/ $routeProvider.when('/', { controller: 'MainCtrl', templateUrl: '/templates/home.html' }); /*NUEVO USUARIO*/ $routeProvider.when('/nuevousuario', { controller: 'UsuariosCtrl', templateUrl: '/templates/nuevousuario.html', resolve: { 'guestService1': 'userService', 'guestService2': 'horarios_service', 'guestService3': 'supervisoresservice', 'guestService4': 'gerentesservice' } }); $routeProvider.when('/update_usuario/:id_usuario', { controller : 'UpdateUsuario', templateUrl: '/templates/updateusuario.html', resolve : { 'guestService': 'userService' , 'guestService2': 'horarios_service', 'guestService3': 'supervisoresservice', 'guestService4': 'gerentesservice' } }); $routeProvider.when('/captura', { controller: 'Captura', templateUrl: '/templates/capturamovimientos.html', resolve: { 'guestService1': 'userService', 'guestService2': 'cat_estatus_service', 'guestService3': 'perfilService', 'guestService4': 'horarios_service', 'guestService5': 'incisosotService', //'guestService6': 'listaotService', } }); $routeProvider.when('/consultaot', { controller: 'Consulta', templateUrl: '/templates/consultaot.html', resolve: { 'guestService1': 'userService', 'guestService2': 'cat_estatus_service', 'guestService3': 'perfilService', 'guestService4': 'horarios_service' } }); $routeProvider.when('/carga', { controller: 'Carga', templateUrl: '/templates/carga.html', resolve: { 'guestService1': 'userService' } }); /*usuarios*/ $routeProvider.when('/admin_usuarios', { controller: 'UsuariosCtrl', templateUrl: '/templates/usuarios.html', resolve: { 'guestService0': 'userService', 'guestService1': 'perfilService' , 'guestService2': 'horarios_service' } }); /*perfiles*/ $routeProvider.when('/admin_perfiles', { controller: 'adminPerfilCtrl', templateUrl: '/templates/perfiles.html', resolve: { 'guestService': 'perfilService' } }); $routeProvider.otherwise({ redirectTo: '/' }); }); /*daƱos*/ /*usuarios*/ app.factory('userService', function ($sessionStorage,$rootScope, $http, $q, $log) { var deferred = $q.defer(); $http.post('rest/admin_users', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.cat_users = data; deferred.resolve(); //console.log(data); }); return deferred.promise; }); app.factory('cat_estatus_service', function ($sessionStorage,$rootScope, $http, $q, $log) { var deferred = $q.defer(); $http.post('rest/cat_estatus', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.cat_estatus = data; deferred.resolve(); }); return deferred.promise; }); app.factory('horarios_service', function ($sessionStorage,$rootScope, $http, $q, $log) { var deferred = $q.defer(); $http.post('rest/traehorarios', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.cat_horarios = data; deferred.resolve(); }); return deferred.promise; }); /*perfiles*/ app.factory('perfilService', function ($rootScope, $http, $q, $log, $sessionStorage) { var deferred = $q.defer(); $http.post('rest/perfiles', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.perfil = data; deferred.resolve(); }); return deferred.promise; }); /*incisos por OT*/ app.factory('incisosotService', function ($rootScope, $http, $q, $log, $sessionStorage) { var deferred = $q.defer(); $http.post('rest/incisosot', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.incisosot = data; deferred.resolve(); }); return deferred.promise; }); /*incisos por OT*/ app.factory('listaotService', function ($rootScope, $http, $q, $log, $sessionStorage) { var deferred = $q.defer(); $http.post('rest/listaot', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.ListaOT = data; deferred.resolve(); }); return deferred.promise; }); app.factory('supervisoresservice', function ($rootScope, $http, $q, $log, $sessionStorage) { var deferred = $q.defer(); $http.post('rest/supervisores', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.supervisores = data; deferred.resolve(); //console.log(data); }); return deferred.promise; }); app.factory('gerentesservice', function ($rootScope, $http, $q, $log, $sessionStorage) { var deferred = $q.defer(); $http.post('rest/gerentes', $sessionStorage.userLocal) .success(function (data, status, headers, config) { $rootScope.gerentes = data; deferred.resolve(); //console.log(data); }); return deferred.promise; }); app3.controller('gac', function ($scope, $window, $q, $http, $rootScope, $location, $sessionStorage, $timeout) { $scope.solicAccesAlert = false; var auth2; $scope.user = {}; $window.onload = function () { gapi.load('auth2', initSigninV2); }; var initSigninV2 = function () { auth2 = gapi.auth2.getAuthInstance(); auth2.isSignedIn.listen(signinChanged); auth2.currentUser.listen(userChanged); if (auth2.isSignedIn.get() == true) { auth2.signIn(); } }; //variables de Google var signinChanged = function (isSignedIn) { if (isSignedIn) { var googleUser = auth2.currentUser.get(); var authResponse = googleUser.getAuthResponse(); var profile = googleUser.getBasicProfile(); $scope.user.id = profile.getId(); $scope.user.fullName = profile.getName(); $scope.user.firstName = profile.getGivenName(); $scope.user.lastName = profile.getFamilyName(); $scope.user.photo = profile.getImageUrl(); $scope.user.email = profile.getEmail(); $scope.user.domain = googleUser.getHostedDomain(); $scope.user.timestamp = moment().format('x'); $scope.user.idToken = authResponse.id_token; $scope.user.expiresAt = authResponse.expires_at; $scope.$digest(); } else { $scope.user = {}; $scope.$digest(); } //console.log($scope.user) $rootScope.user = $scope.user; }; var userChanged = function (user) {}; //botton continuar// $scope.submitLogin = function () { var deferred = $q.defer(); $http.post('rest/login', $scope.user) .success(function (data, status, headers, config) { var salida = []; angular.forEach(data, function (value, key) { if (value.email == $scope.user.email && value.activo == 'S') salida.push(value); }) //console.log(salida) deferred.resolve(); if (salida.length > 0) { $scope.userData = { 'id_user': salida[0].id_usuario, 'name': $scope.user.fullName, 'email': $scope.user.email, 'perfil': salida[0].id_perfil, 'img': $scope.user.photo, 'nivel': salida[0].nivel, 'autoridad': salida[0].autoridad, 'horario': salida[0].horario, 'idsesion': salida[0].idsesion, 'tk':salida[0].tk }; $sessionStorage.userLocal = $scope.userData; loginSuccess(); $timeout(function () { $window.location.href = ('index.html') }, 1400); } else { loginError(); $scope.solicAccesAlert = true; } }); return deferred.promise; } }); app.controller('MasterController', function ($scope, $location, $rootScope, $window, $sessionStorage, ngDialog) { $scope.userActivo = $sessionStorage.userLocal; //MODAL COMUNICADOS// $scope.imgActive = 1; $scope.prev = function(){ $scope.imgActive = $scope.imgActive - 1 } $scope.next = function(){ $scope.imgActive = $scope.imgActive + 1 } //console.log($scope.userActivo); if ($scope.userActivo == undefined) { $window.location.href = ('/') } //MARCAR LOS MENUS COMO ACTIVOS// $scope.isActive = function (destination) { return destination === $location.path(); } //MARCAR LOS MENUS COMO ACTIVOS// //MODAL AYUDA// $scope.clickToOpen2 = function (report) { //console.log(report) ngDialog.open({ template: 'templates/ayuda.html', plain: false, closeByDocument: false, className: 'ngdialog-theme-default', width: '50%', height: '1000' }); } }); app.controller('MainCtrl', function ($scope, $rootScope, $interval, ngDialog, $log, $http, $routeParams, $location, $route, $q, $window, $timeout,$sessionStorage) { $scope.Listusuarios = $rootScope.cat_users; $scope.usuarioactual = $sessionStorage.userLocal; $http.post('/rest/perfiles', $scope.usuarioactual) .success(function (data, status, headers, config) { $rootScope.perfil = data; }); var tres tres = $interval(function() { //Intervalos($rootScope.tiempo); $http.post('/rest/actualiza_sesion', $scope.usuarioactual) .success(function(data, status, headers, config) { }); }, 180000); var ocho ocho = $interval(function() { //Intervalos($rootScope.tiempo); if ($rootScope.tiempo >= 450) { $http.post('/rest/actualiza_sesion', $scope.usuarioactual) .success(function(data, status, headers, config) { $rootScope.tiempo = 0; $window.location.href = ('login.html') }) }; }, 480000); var cuenta cuenta = $interval(function() { $rootScope.tiempo = $rootScope.tiempo + 1 ; }, 1000); }); app.controller('UsuariosCtrl', function ($scope, $http, $rootScope,$location, $q, $parse, Upload, $timeout, ngDialog, $window) { $scope.Listperfiles = $rootScope.cat_perfil; $scope.users = $rootScope.cat_users; $scope.horarios = $rootScope.cat_horarios; $scope.usuario = {}; $rootScope.perfilesusuario = []; $scope.nuevousuario = function() { $location.path('/nuevousuario'); } //abrir modal nuevos $scope.AdminPerfiles = function(perfilactual){ ngDialog.openConfirm({ template: 'templates/adminperfiles.html', plain: false, closeByDocument: false, className: 'ngdialog-theme-default', controllerAs: 'AdmonPerfiles', width: '70%', scope:$scope, }).then(function (value) { }, function (perfilactual) { }); } $scope.AgregarUsuario = function(usuario){ // xxxxxxxxxxxxxx VALIDACIONES xxxxxxxxxxxxxxxx if (!usuario.nombre) { obligatorios(': Nombre del Asesor'); $window.document.getElementById('nombreasesor').focus(); return; } if (!usuario.email) { obligatorios(': Correo Electronico'); $window.document.getElementById('email').focus(); return; } if (!usuario.horario) { obligatorios(': Horario Laboral'); $window.document.getElementById('horario').focus(); return; } if (!usuario.autoridad) { obligatorios(': Tipo Usuario'); $window.document.getElementById('autoridad').focus(); return; } if ($rootScope.perfilesusuario.length < 1 && usuario.autoridad == 3) { obligatorios(': Indique por lo menos un perfil'); $window.document.getElementById('botonperfiles').focus(); return; } if (usuario.autoridad == 2) { usuario.supervisor = ''; } if (usuario.autoridad == 1) { usuario.supervisor = ''; usuario.gerente = ''; } $http.post('/rest/create_Usuarios', usuario) .success(function (data, status, headers, config) { if(status >= 200){ for (var i=0; i<$rootScope.perfilesusuario.length; i++) { var deferred = $q.defer(); $rootScope.perfilesusuario[i].id_usuario = data.idnew $http.post('/rest/grabaperfiles', $rootScope.perfilesusuario[i]) .success(function (data, status, headers, config) { deferred.resolve(); return deferred.promise; }) } saveSuccess(); ngDialog.close(); $timeout(function () { //$rootScope.$apply(); $window.location.reload();//recarga la pagina }, 3000); } }) } $scope.EditUsuario = function(usuario) { $location.path('/update_usuario/' + usuario.id_usuario); }; }); app.controller('UpdateUsuario', function ($scope, $http,$routeParams, $rootScope,$sessionStorage,$location, $parse, Upload, $timeout, ngDialog, $window,) { $rootScope.perfilesusuario = []; $scope.horarios = $rootScope.cat_horarios; $scope.supervisores = $rootScope.supervisores; $scope.gerentes = $rootScope.gerentes; for (var i=0; i<$rootScope.cat_users.length; i++) { if ($rootScope.cat_users[i].id_usuario == $routeParams.id_usuario) { $scope.usuario = angular.copy($rootScope.cat_users[i]); } } // TRAEMOS LOS PERFILES DEL USUARIO $scope.usuario.tk = $sessionStorage.userLocal.tk; $http.post('/rest/traeperfiles', $scope.usuario) .success(function(data, status, headers, config) { $rootScope.perfilesusuario = data; }); $scope.update = function() { // xxxxxxxxxxxxxx VALIDACIONES xxxxxxxxxxxxxxxx if (!$scope.usuario.nombre) { obligatorios(': Nombre del Asesor'); $window.document.getElementById('nombreasesor').focus(); return; } if (!$scope.usuario.email) { obligatorios(': Correo Electronico'); $window.document.getElementById('email').focus(); return; } if (!$scope.usuario.horario) { obligatorios(': Horario Laboral'); $window.document.getElementById('horario').focus(); return; } if (!$scope.usuario.autoridad) { obligatorios(': Tipo Usuario'); $window.document.getElementById('autoridad').focus(); return; } if ($rootScope.perfilesusuario.length < 1 && usuario.autoridad == 3) { obligatorios(': Indique por lo menos un perfil'); $window.document.getElementById('botonperfiles').focus(); return; } $rootScope.status = 'Actualizando...'; $scope.usuario.tk = $sessionStorage.userLocal.tk; $http.post('/rest/update_Usuarios', $scope.usuario) .success(function(data, status, headers, config) { for (var i=0; i<$rootScope.cat_users.length; i++) { if ($rootScope.cat_users[i].id_usuario == $scope.usuario.id_usuario) { $rootScope.cat_users.splice(i,1); break; } } $rootScope.cat_users.push(data); }); for (var i=0; i<$rootScope.perfilesusuario.length; i++) { $rootScope.perfilesusuario[i].id_usuario = $scope.usuario.id_usuario; $rootScope.perfilesusuario[i].tk = $sessionStorage.userLocal.tk; $http.post('/rest/grabaperfiles', $rootScope.perfilesusuario[i]) .success(function (data, status, headers, config) { }) } $rootScope.IsVisible = 1; $location.path('/admin_usuarios'); }; $scope.AdminPerfiles = function(perfilactual){ ngDialog.openConfirm({ template: 'templates/adminperfiles.html', plain: false, closeByDocument: false, className: 'ngdialog-theme-default', controllerAs: 'AdmonPerfiles', width: '77%', scope:$scope, }).then(function (value) { }, function (perfilactual) { }); } }); app.controller('Captura', function ($scope, $http,$routeParams,$q, $rootScope,$sessionStorage,$location, $parse, Upload, $timeout, ngDialog, $window) { $scope.ListPerfiles = $rootScope.perfil; $scope.captura = { nombre: $sessionStorage.userLocal.name, horario: $sessionStorage.userLocal.horario, id_usuario: $sessionStorage.userLocal.id_user, tk: $sessionStorage.userLocal.tk } $scope.Listestatus = $rootScope.cat_estatus //$scope.ListaOT = $rootScope.ListaOT $scope.estadoboton = 'Registrar'; $scope.onBlur = function(evento) { // if($event.currentTarget.id == "ot"){ // var keepGoing = true; // angular.forEach($scope.ListaOT, function (value, key) { // if(keepGoing) { // if (value.ot == $scope.captura.ot){ // otexistente($scope.captura.ot); // keepGoing = false; // } // } // })} for (var cont=0; cont<$rootScope.incisosot.length; cont++) { if($rootScope.incisosot[cont].ot == $scope.captura.ot) { if(evento == "ot"){ otexistente($scope.captura.ot); } $scope.captura.noincisos = $rootScope.incisosot[cont].noincisos; $window.document.getElementById('noincisos').disabled = true; break; } else { $scope.captura.noincisos = null; $window.document.getElementById('noincisos').disabled = false; } }; var cadena = $window.document.getElementById('perfil').options[$window.document.getElementById('perfil').selectedIndex].text; var arreglo = cadena.split(" -> "); $scope.filtro = []; for (var cont=0; cont<$scope.Listestatus.length; cont++) { if($scope.Listestatus[cont].skill == arreglo[0] && $scope.Listestatus[cont].canal == arreglo[1]) { $scope.Listestatus[cont].visible = 'S'; } else{ $scope.Listestatus[cont].visible = 'N'; } }; }; $scope.insertarcaptura = function() { // xxxxxxxxxxxxxx VALIDACIONES xxxxxxxxxxxxxxxx if (!$scope.captura.ot) { obligatorios(': No. de OT'); $window.document.getElementById('ot').focus(); return; } if (!$scope.captura.id_perfil) { obligatorios(': Perfil del movimiento'); $window.document.getElementById('perfil').focus(); return; } if (!$scope.captura.id_estatus) { obligatorios(': Actividad'); $window.document.getElementById('estatus').focus(); return; } if (!$scope.captura.noincisos) { obligatorios(': No. de Incisos de OT'); $window.document.getElementById('noincisos').focus(); return; } if (!$scope.captura.noincisosactividad) { obligatorios(': No. de Incisos de Actividad'); $window.document.getElementById('noincisosactividad').focus(); return; } if ($scope.captura.noincisos > 10000001) { longitudincisos(); $window.document.getElementById('noincisos').focus(); return; } //DESHABILITAMOS EL BOTON DE ACEPTAR $window.document.getElementById('botonguardar').disabled = true; $scope.estadoboton = 'Registrando'; var deferred = $q.defer(); $http.post('/rest/insertar_captura', $scope.captura) .success(function(data, status, headers, config) { altaAlert(); deferred.resolve(); $timeout(function () { //$rootScope.$apply(); $window.location.reload();//recarga la pagina }, 1700); return deferred.promise; }); }; }); app.controller('AdmonPerfiles', function ($scope, $http,$routeParams,$q, $filter,$rootScope,$sessionStorage,$location, $parse, Upload, $timeout, ngDialog, $window) { $scope.perfiles = [] $scope.today = $filter('date')(new Date(), 'yyyy-MM-dd'); if ($rootScope.perfilesusuario.length > 0){ $scope.perfiles = angular.copy($rootScope.perfilesusuario); } $scope.revisar = function(canal) { var x = $window.document.getElementById('canal'); if(canal == 'COTIZADOR'){ x.list.children[5].remove(); x.value = null; } else{ if (x.list.children.length == 5){ var option = $window.document.createElement('option'); option.value = 'INDIVIDUAL'; x.list.appendChild(option); } } } $scope.agregarperfil = function(nuevo) { if (!nuevo) { obligatorios(': Skill'); $window.document.getElementById('skill').focus(); return; } if (!nuevo.skill) { obligatorios(': Skill'); $window.document.getElementById('skill').focus(); return; } if (!nuevo.canal) { obligatorios(': Canal'); $window.document.getElementById('canal').focus(); return; } if (!nuevo.fecha_alta) { obligatorios(': Fecha del Perfil'); $window.document.getElementById('fecha_alta').focus(); return; } $scope.perfiles.push({id_usuario: 0,skill: nuevo.skill, canal: nuevo.canal , fecha_alta: $filter('date')(nuevo.fecha_alta, 'yyyy-MM-dd', '+12') }); $rootScope.perfilesusuario.push({id_usuario: 0,skill: nuevo.skill, canal: nuevo.canal , fecha_alta: $filter('date')(nuevo.fecha_alta, 'yyyy-MM-dd', '+05') }) nuevo.skill = ''; nuevo.canal = ''; nuevo.fecha_alta = '' }; }); app.controller('Consulta', function ($scope, $http,$routeParams,$q, $rootScope,$sessionStorage,$location, $parse, Upload, $timeout, ngDialog, $window) { $scope.ots = []; $scope.consultar = function() { if (!$scope.consulta) { obligatorios(': Por favor introduzca el No. de OT a consultar'); $window.document.getElementById('ot').focus(); return; } var deferred = $q.defer(); $scope.consulta.tk = $sessionStorage.userLocal.tk; $http.post('/rest/consultaot', $scope.consulta) .success(function(data, status, headers, config) { if (data.length > 0) { $scope.ots = data; deferred.resolve(); } else { SinResultados(); $scope.ots = []; } }); return deferred.promise; }; }); app.controller('Carga', function ($scope, $http,$routeParams,$q, $rootScope,$sessionStorage,$location, $parse, Upload, $timeout, ngDialog, $window) { $scope.Procesar = function () { $window.document.getElementById('Procesar').html = " Loading..."; $window.document.getElementById('Procesar').disabled = true; var deferred = $q.defer(); $http.post('/rest/cargaexcel', $scope.movtos) .success(function(data, status, headers, config) { deferred.resolve(); CargaCompleta(); $window.document.getElementById('Procesar').textContent = "Procesar Archivo"; $window.document.getElementById('Procesar').disabled = false; }); return deferred.promise; }; $scope.SelectFile = function (File) { $scope.SelectedFile = File; $scope.CargaExcel(); console.log($scope.movtos) }; $scope.CargaExcel = function () { // $window.document.getElementById('Procesar').disabled = false; var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.xls|.xlsx)$/; if (regex.test($scope.SelectedFile.name.toLowerCase())) { if (typeof (FileReader) != "undefined") { var reader = new FileReader(); //For Browsers other than IE. if (reader.readAsBinaryString) { reader.onload = function (e) { $scope.ProcessExcel(e.target.result); }; reader.readAsBinaryString($scope.SelectedFile); } else { //For IE Browser. reader.onload = function (e) { var data = ""; var bytes = new Uint8Array(e.target.result); for (var i = 0; i < bytes.byteLength; i++) { data += String.fromCharCode(bytes[i]); } $scope.ProcessExcel(data); }; reader.readAsArrayBuffer($scope.SelectedFile); } } else { $window.alert("This browser does not support HTML5."); } } else { $window.alert("Please upload a valid Excel file."); } //$window.document.getElementById('Procesar').disabled = true; }; $scope.ProcessExcel = function (data) { //Read the Excel File data. var workbook = XLSX.read(data, { type: 'binary' }); //Fetch the name of First Sheet. var firstSheet = workbook.SheetNames[0]; //Read all rows from First Sheet into an JSON array. var excelRows = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[firstSheet]); //Display the data from Excel file in Table. $scope.$apply(function () { $scope.movtos = excelRows; }); }; });