var app = angular.module("NSCustomerApp", ["NSServices","ngCookies"]); app.controller("NSPrincipalController", function($scope, NSServices,$cookies) { //Inicializar Variables var date = new Date(); var currentDate = (date.getMonth()+1)+'/'+date.getFullYear(); $scope.TransactionView = {}; $scope.Filters = {type:'invoice',date:currentDate,rfc:''}; $scope.transactionId = ''; $scope.transactionCFDI = {}; $scope.catalogosFe = {}; $scope.rfc = ''; $scope.error = ''; $scope.customer = {email:'',razonSocial:'',Rfc:'',usoCfdi:'',customer:''}; $scope.showData = true; $scope.disabledCFDI = true; $scope.subsidiary = 'IMR Desarrollo'; $scope.activeTap = 'ViewTransactions'; $scope.objLogin = {username:'',userId:'',token:'',emailBox:'',passwordBox:''}; $scope.usuarioDet = {nombre:'',correo:'',pass:'',usuario_creado:false}; $scope.resPas = {correo_res:'', correo_enviado:false}; var userDataCookies = $cookies.getObject('NSDataUser'); $scope.crearUsuario = function(data){ NSServices.crearUsuario(data) .then(function(response){ if(response.status == 200){ $scope.usuarioDet = response.data; if($scope.usuarioDet.usuario_creado == true){ alert('Usuario creado satisfactoriamente'); }else{ alert('Este correo ya se encuentra ocupado'); } } }); } //----- $scope.cerrarSesion = function(value){ $scope.objLogin.userId =''; $cookies.remove("NSDataUser"); } $scope.restablecerPass = function(data){ NSServices.restablecerPass(data) .then(function(response){ if(response.status == 200){ $scope.resPas = response.data; if($scope.resPas.correo_enviado == true){ alert('Se envio un correo para restablecer, revise su bandeja de entrada.'); }else{ alert('Este correo no fue encontrado.'); } } }); } $scope.getLogin = function(data){ NSServices.getLogin(data) .then(function(response){ if(response.status == 200){ $scope.objLogin = response.data; if(data.token){ return; } if($scope.objLogin.userId != ''){ $scope.objLogin = response.data; $cookies.putObject('NSDataUser', $scope.objLogin); console.log( $scope.objLogin.token); alert('Bienvenido '+$scope.objLogin.username); }else{ alert('Correo o contraseña invalido') } } }); } //--- $scope.updateTap = function(tap){ $scope.activeTap = tap; } $scope.showTap = function(tap){ console.log(tap) return $scope.activeTap == tap; } $scope.showDataFE = function(){ $scope.showData = !$scope.showData; } $scope.isURL =function (value){ return value.startsWith('https'); } $scope.getCatalogosFe = function(){ NSServices.getCatalogosFe() .then(function (response) { if(response.status == 200){ $scope.catalogosFe = response.data; $scope.activeTap = response.data.tapsDefault; }else{ $scope.catalogosFe = {}; } },function (error) { $scope.catalogosFe = {}; $scope.error = 'Unable to load data: ' + error.message; }); } $scope.getTransactions = function (Filters,mensaje) { showLoader(mensaje||''); NSServices.getTransaction({type:$scope.activeTap,rfc:Filters.rfc,typeTransaction:Filters.type,date:Filters.date}) .then(function (response) { hiddenLoader(); if(response.status == 200){ $scope.TransactionView = response.data.data; }else{ $scope.TransactionView = {}; alert('Se a producido un error en el servidor'); } },function (error) { hiddenLoader(); $scope.TransactionView = tran; $scope.error = 'Unable to load data: ' + error.message; }); } $scope.getTransaction = function (transactionId,mensaje) { if(transactionId){ showLoader(mensaje||''); $scope.transactionCFDI = {}; NSServices.getTransaction({type:$scope.activeTap,id:transactionId}) .then(function (response) { if(response.status == 200 ){ var dataResponse = response.data||{}; if(Object.values(dataResponse.data).length>0 && dataResponse.data.recordId){ $scope.Transaccion = dataResponse.data.data; $scope.Transaccion.recordId = dataResponse.data.recordId; $scope.Transaccion.recordType = dataResponse.data.recordType; $scope.customer.email = dataResponse.data.email; $scope.customer.razonSocial = dataResponse.data.razonSocial; $scope.customer.Rfc = dataResponse.data.Rfc; $scope.customer.usoCfdi = dataResponse.data.usoCfdi; $scope.customer.customer = dataResponse.data.customer $scope.disabledCFDI = false; $scope.showData = true; hiddenLoader(); }else{ hiddenLoader(); $scope.Transaccion = {}; $scope.disabledCFDI = true; $scope.showData = true; } }else{ hiddenLoader(); alert('Se a producido un error en el servidor'); $scope.disabledCFDI = true; $scope.showData = true; } },function (error) { hiddenLoader(); $scope.TransactionView = tran; $scope.error = 'Unable to load data: ' + error.message; }); }else{ alert('Introdusca un ID'); } } $scope.emitirCfdi = function (data,mensaje) { if(data){ data.fieldsDir = $scope.catalogosFe.fieldsDir||[]; showLoader(mensaje||''); data.type = $scope.activeTap; NSServices.getTransaction(data) .then(function (response) { hiddenLoader(); var dataResponse = response.data||{}; if(response.status == 200 ){ if(Object.values(dataResponse.data).length>0){ $scope.transactionCFDI = dataResponse.data; $scope.disabledCFDI = true; $scope.showData = false; }else{ alert('Se a producido un error en el servidor'); } }else{ alert('Se a producido un error en el servidor'); } },function (error) { hiddenLoader(); $scope.TransactionView = tran; $scope.error = 'Unable to load data: ' + error.message; }); }else{ alert('Valores Invalidos para la petición'); } } $scope.getCatalogosFe(); if(userDataCookies){ $scope.getLogin({token:userDataCookies.token}); } }); function isNumberKey(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } function showLoader(mensaje){ if(mensaje){ $("#mensajeEspera").empty() $('#mensajeEspera').append(mensaje); $('#mensajeEspera').show(); } $('#loader').modal('show') } function hiddenLoader(){ $('#mensajeEspera').hide(); $('#loader').modal('hide') } function validarFEData(filters){ var rfc = filters.rfc var usoCfdi = filters.usoCfdi const re = /^([A-ZÑ&]{3,4}) ?(?:- ?)?(\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])) ?(?:- ?)?([A-Z\d]{2})([A\d])$/; var validado = rfc.match(re); var errors = []; if(!validado){ errors.push('ERROR RFC Invalido'); } if(!usoCfdi){ errors.push('ERROR Uso de CFDI Invalido'); } if(errors.length>0){ alert(errors.join('\n')); return false }else{ return true; } }