Commit e185ae60a6945c97a41f3808ba96c67702427e82

Authored by Marcelo Puebla
1 parent 6dbd999167
Exists in demo

Agregado modal de configuraciones.

src/js/controller.js
1 angular.module('focaLogin') 1 angular.module('focaLogin')
2 .controller('focaLoginController', [ 2 .controller('focaLoginController', [
3 '$scope', 'focaLoginService', '$location', '$cookies', 'focaModalService', 'md5', 'APP', 3 '$scope', 'focaLoginService', '$location', '$cookies', 'focaModalService', 'md5', 'APP', '$uibModal',
4 function ($scope, focaLoginService, $location, $cookies, focaModalService, md5, APP) { 4 function ($scope, focaLoginService, $location, $cookies, focaModalService, md5, APP, $uibModal) {
5
5 $scope.paso = 1; 6 $scope.paso = 1;
6 $scope.hidePassword = true; 7 $scope.hidePassword = true;
8 $scope.timer = 0;
9
7 $scope.enviar = function () { 10 $scope.enviar = function () {
11
8 angular.element('#password').blur(); 12 angular.element('#password').blur();
9 focaLoginService.login({ 13 focaLoginService.login({
10 idUsuario: $scope.usuario.idUsuario, 14 idUsuario: $scope.usuario.idUsuario,
11 clave: APP != 'facturador' ? md5.createHash($scope.usuario.clave) : 15 clave: APP != 'facturador' ? md5.createHash($scope.usuario.clave) :
12 $scope.usuario.clave 16 $scope.usuario.clave
13 }).then(function (datos) { 17 }).then(function (datos) {
18
14 if (datos.data.chofer && datos.data.chofer.id) { 19 if (datos.data.chofer && datos.data.chofer.id) {
15 $cookies.put('chofer', datos.data.chofer.id); 20 $cookies.put('chofer', datos.data.chofer.id);
16 $cookies.put('nombreUsuario', datos.data.chofer.nombre); 21 $cookies.put('nombreUsuario', datos.data.chofer.nombre);
17 } else if (datos.data.vendedorCobrador && datos.data.vendedorCobrador.id) { 22 } else if (datos.data.vendedorCobrador && datos.data.vendedorCobrador.id) {
18 $cookies.put('vendedorCobrador', datos.data.vendedorCobrador.id); 23 $cookies.put('vendedorCobrador', datos.data.vendedorCobrador.id);
19 $cookies.put('nombreUsuario', datos.data.vendedorCobrador.NOM); 24 $cookies.put('nombreUsuario', datos.data.vendedorCobrador.NOM);
20 } else if (datos.data.vendedorPlaya) { 25 } else if (datos.data.vendedorPlaya) {
21 $cookies.put('vendedorPlaya', datos.data.vendedorPlaya.CodVen); 26 $cookies.put('vendedorPlaya', datos.data.vendedorPlaya.CodVen);
22 $cookies.put('nombreUsuario', datos.data.vendedorPlaya.NomVen.trim()); 27 $cookies.put('nombreUsuario', datos.data.vendedorPlaya.NomVen.trim());
23 } else { 28 } else {
24 focaModalService.alert('Existe un error con el usuario ingresado'); 29 focaModalService.alert('Existe un error con el usuario ingresado');
25 return; 30 return;
26 } 31 }
27
28 console.info(datos.data);
29 $cookies.put('token', datos.data.token); 32 $cookies.put('token', datos.data.token);
30 $location.path('/'); 33 $location.path('/');
31 $scope.$emit('blur'); 34 $scope.$emit('blur');
32 }, function (error) { 35 }, function (error) {
36
33 if (error.status === 401) { 37 if (error.status === 401) {
34 focaModalService 38 focaModalService
35 .alert('El usuario o la contraseña han sido mal introducidos'); 39 .alert('El usuario o la contraseña han sido mal introducidos');
36 } 40 }
37 41
38 if (error.status === -1) { 42 if (error.status === -1) {
39 focaModalService.alert('Sin servicio'); 43 focaModalService.alert('Sin servicio');
40 return; 44 return;
41 } 45 }
42 }); 46 });
43 }; 47 };
48
44 $scope.irPaso = function (numeroPaso) { 49 $scope.irPaso = function (numeroPaso) {
50
45 $scope.paso = numeroPaso; 51 $scope.paso = numeroPaso;
46 }; 52 };
53
54 $scope.abrirModalConfiguracion = function () {
55
56 $scope.timer++;
57 if ($scope.timer < 5) { return; }
58 $scope.timer = 0;
59
60 $uibModal.open({
61 templateUrl: 'modal-configuracion.html',
62 controller: 'focaModalConfiguracionController',
63 size: 'md',
64 backdrop: false,
65 });
66 };
47 } 67 }
48 ]) 68 ])
49 .controller('focaLogoutController', [ 69 .controller('focaLogoutController', [
50 '$cookies', '$location', 70 '$cookies', '$location',
51 function ($cookies, $location) { 71 function ($cookies, $location) {
72
52 $cookies.remove('chofer'); 73 $cookies.remove('chofer');
53 $cookies.remove('vendedorCobrador'); 74 $cookies.remove('vendedorCobrador');
54 $cookies.remove('vendedorPlaya'); 75 $cookies.remove('vendedorPlaya');
55 $cookies.remove('nombreUsuario'); 76 $cookies.remove('nombreUsuario');
56 $cookies.remove('token'); 77 $cookies.remove('token');
57 //Cierra ventana 78 //Cierra ventana
58 window.open('', '_self', ''); //bug fix 79 window.open('', '_self', ''); //bug fix
59 window.close(); 80 window.close();
60 $location.path('/login'); 81 $location.path('/login');
61 } 82 }
src/js/controllerConfiguracion.js
File was created 1 angular.module('focaLogin')
2 .controller('focaModalConfiguracionController', [
3 '$scope', '$uibModalInstance', 'focaLoginService', '$timeout', '$localStorage',
4 function ($scope, $uibModalInstance, focaLoginService, $timeout, $localStorage) {
5
6 $scope.puntosVenta = [];
7 $scope.impresoras = [];
8 $scope.selectedPuntoVenta = localStorage.pve ? localStorage.pve : null;
9 $scope.selectedImpresora = $localStorage.impresoraPVE ? $localStorage.impresoraPVE : null;
10 $scope.usePlanillaPropia = false;
11
12 init();
13
14 function init() {
15
16 var promisePuntosVenta = focaLoginService.getAllPuntoVenta();
17 var promiseImpresoras = focaLoginService.getAllImpresoras();
18
19 Promise.all([promisePuntosVenta, promiseImpresoras])
20 .then(function (res) {
21
22 $timeout(function () {
23
24 $scope.puntosVenta = res[0].data;
25 $scope.impresoras = res[1].data;
26 });
27 })
28 .catch(function (err) {
29 console.error(err);
30 });
31 }
32
33 $scope.cancel = function () {
34
35 $uibModalInstance.dismiss('cancel');
36 };
37
38 $scope.acept = function () {
39
40 $localStorage.pve = $scope.selectedPuntoVenta ? parseInt($scope.selectedPuntoVenta) : null;
41 $localStorage.impresoraPVE = $scope.selectedImpresora ? parseInt($scope.selectedImpresora) : null;
42 $scope.cancel();
43 }
44 }
45 ]);
46
1 angular.module('focaLogin') 1 angular.module('focaLogin')
2 .factory('focaLoginService', [ 2 .factory('focaLoginService', [
3 '$http', 'API_ENDPOINT', 'APP', '$cookies', 3 '$http', 'API_ENDPOINT', 'APP', '$cookies',
4 function($http, API_ENDPOINT, APP, $cookies) { 4 function ($http, API_ENDPOINT, APP, $cookies) {
5 return { 5 return {
6 login: function(usuario) { 6 login: function (usuario) {
7 var param = '';
8 7
9 if (APP) { 8 var param = APP ? '/' + APP : '';
10 param = '/' + APP; 9 return $http.post(API_ENDPOINT.URL + '/usuario/login' + param, usuario);
11 }
12
13 return $http.post(API_ENDPOINT.URL + '/usuario/login' + param , usuario);
14 }, 10 },
15 getLoginData: function() { 11 getLoginData: function () {
12
16 if ($cookies.get('chofer')) { 13 if ($cookies.get('chofer')) {
17 return {chofer: $cookies.get('chofer')}; 14 return { chofer: $cookies.get('chofer') };
18 } 15 }
19 16
20 if ($cookies.get('vendedorCobrador')) { 17 if ($cookies.get('vendedorCobrador')) {
21 return {vendedorCobrador: $cookies.get('vendedorCobrador')}; 18 return { vendedorCobrador: $cookies.get('vendedorCobrador') };
22 } 19 }
23 20
24 if ($cookies.get('vendedorPlaya')) { 21 if ($cookies.get('vendedorPlaya')) {
25 return {vendedorPlaya: $cookies.get('vendedorPlaya')}; 22 return { vendedorPlaya: $cookies.get('vendedorPlaya') };
26 } 23 }
27 } 24 },
25 getAllPuntoVenta: function () {
26
27 return $http.get(API_ENDPOINT.URL_AUTOSERVICIO + '/get/puntos-venta');
28 },
29 getAllImpresoras: function () {
30
31 return $http.get(API_ENDPOINT.URL_AUTOSERVICIO + '/get/impresoras');
32 },
33 getByIdPuntoVenta: function (id) {
34
35 return $http.get(API_ENDPOINT.URL_AUTOSERVICIO + '/get/punto-venta/' + id);
36 },
src/views/foca-login.html
1 <div class="row m-0 justify-content-center align-items-center"> 1 <div class="row m-0 justify-content-center align-items-center">
2 <div class="col-12 p-0 my-2"> 2 <div class="col-12 p-0 my-2">
3 <img src="img/logo.png" class="img-login mx-auto d-block"> 3 <img
4 draggable="false"
5 ondragstart="return false;"
6 (contextmenu)="false"
7 on-mouse-hold="abrirModalConfiguracion"
8 ng-mouseup="timer = 0"
9 src="img/logo.png"
10 class="img-login mx-auto d-block disable-user-select">
4 </div> 11 </div>
5 <div class="col-8 col-sm-6 col-md-4 col-lg-3 p-0 my-2 align-self-stretch"> 12 <div class="col-8 col-sm-6 col-md-4 col-lg-3 p-0 my-2 align-self-stretch">
6 <div class="bg-gradient-login border-0 rounded-lg shadow text-center"> 13 <div class="bg-gradient-login border-0 rounded-lg shadow text-center">
7 <form class="p-3 m-0" name="login"> 14 <form class="p-3 m-0" name="login">
8 <!-- USUARIO --> 15 <!-- USUARIO -->
9 <div class="input-group mt-5 mb-4"> 16 <div class="input-group mt-5 mb-4">
10 <input 17 <input
11 class="form-control form-control-sm rounded-pill text-transform-none" 18 class="form-control form-control-sm rounded-pill text-transform-none"
12 type="text" 19 type="text"
13 placeholder="Ingrese su usuario" 20 placeholder="Ingrese su usuario"
14 id="user" 21 id="user"
15 ng-model="usuario.idUsuario" 22 ng-model="usuario.idUsuario"
16 ng-focus="paso = 1" 23 ng-focus="paso = 1"
17 foca-focus="paso === 1" 24 foca-focus="paso === 1"
18 ng-keyup="$event.keyCode == 13 && irPaso(2)" 25 ng-keyup="$event.keyCode == 13 && irPaso(2)"
19 ladda="loginLoading" 26 ladda="loginLoading"
20 teclado-virtual 27 teclado-virtual
21 /> 28 />
22 </div> 29 </div>
23 <!-- CONTRASEÑA --> 30 <!-- CONTRASEÑA -->
24 <div class="input-group mb-4"> 31 <div class="input-group mb-4">
25 <input 32 <input
26 class="form-control form-control-sm rounded-pill text-transform-none pr-5" 33 class="form-control form-control-sm rounded-pill text-transform-none pr-5"
27 id="password" 34 id="password"
28 type="{{hidePassword ? 'password' : 'text'}}" 35 type="{{hidePassword ? 'password' : 'text'}}"
29 placeholder="Ingrese su contraseña" 36 placeholder="Ingrese su contraseña"
30 ng-model="usuario.clave" 37 ng-model="usuario.clave"
31 foca-focus="paso == 2" 38 foca-focus="paso == 2"
32 ng-keyup="$event.keyCode == 13 && enviar()" 39 ng-keyup="$event.keyCode == 13 && enviar()"
33 ladda="loginLoading" 40 ladda="loginLoading"
34 teclado-virtual 41 teclado-virtual
35 /> 42 />
36 <div class="input-icon px-3"> 43 <div class="input-icon px-3">
37 <div ng-show="!hidePassword" ng-click="hidePassword = !hidePassword"> 44 <div ng-show="!hidePassword" ng-click="hidePassword = !hidePassword">
38 <i class="fade-in fa fa-eye"></i> 45 <i class="fade-in fa fa-eye"></i>
39 </div> 46 </div>
40 <div ng-show="hidePassword" ng-click="hidePassword = !hidePassword"> 47 <div ng-show="hidePassword" ng-click="hidePassword = !hidePassword">
41 <i class="fade-in fa fa-eye-slash"></i> 48 <i class="fade-in fa fa-eye-slash"></i>
42 </div> 49 </div>
43 </div> 50 </div>
44 </div> 51 </div>
45 <button 52 <button
46 type="button" 53 type="button"
47 ng-click="enviar()" 54 ng-click="enviar()"
48 class="btn btn-primary btn-sm btn-block mb-3" 55 class="btn btn-primary btn-sm btn-block mb-3"
49 ladda="loginLoading"> 56 ladda="loginLoading">
50 Ingresar 57 Ingresar
51 </button> 58 </button>
52 <a href="https://www.focasoftware.com.ar" target="_blank"> 59 <a href="https://www.focasoftware.com.ar" target="_blank">
53 <img 60 <img
54 src="img/logofoca.png" 61 src="img/logofoca.png"
55 class="w-50 rounded mx-auto py-2 d-block"> 62 class="w-50 rounded mx-auto py-2 d-block">
56 </a> 63 </a>
57 </form> 64 </form>
58 </div> 65 </div>
59 </div> 66 </div>
60 </div> 67 </div>
61 68
src/views/modal-configuracion.html
File was created 1 <div class="modal-header">
2 <div class="row w-100">
3 <div class="col-lg-6">
4 <h5 class="modal-title my-1"><b>Configuración</b></h5>
5 </div>
6 </div>
7 </div>
8
9 <form class="modal-body" id="modal-body">
10
11 <div class="row">
12 <div class="col-12">
13
14 <p>¿Este punto de venta trabaja con planilla propia?</p>
15
16 <!-- RADIO BUTTONS -->
17 <div class="text-center">
18 <div class="disabled form-check form-check-inline">
19 <input
20 class="form-check-input"
21 type="radio"
22 id="radio1"
23 ng-model="usePlanillaPropia"
24 ng-value="true">
25 <label class="form-check-label" for="radio1">Si</label>
26 </div>
27 <div class="form-check form-check-inline">
28 <input
29 class="form-check-input"
30 type="radio"
31 id="radio2"
32 ng-model="usePlanillaPropia"
33 ng-value="false">
34 <label class="form-check-label" for="radio2">No</label>
35 </div>
36 </div>
37 <div class="form-group">
38 <select
39 ng-model="selectedPuntoVenta"
40 class="form-control form-control-sm w-50 mx-auto mt-2">
41 <option ng-value="null" selected disabled>Seleccione una opción</option>
42 <option ng-repeat="ptoVenta in puntosVenta" value="{{ptoVenta.ID}}">
43 {{ptoVenta.ID}} {{ptoVenta.NOM}}
44 </option>
45 </select>
46 </div>
47 </div>
48 </div>
49
50 <div class="row">
51 <div class="col-12">
52 <p>Salida de impresión de comprobantes</p>
53 <select
54 ng-model="selectedImpresora"
55 class="form-control form-control-sm w-50 mx-auto mt-2">
56 <option ng-value="null" selected disabled>Seleccione una opción</option>
57 <option ng-repeat="imp in impresoras" value="{{imp.PVE}}">
58 {{imp.PVE}} {{imp.DES}}
59 </option>
60 </select>
61 </div>
62 </div>
63
64 </form>
65
66 <div class="modal-footer py-1">
67 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar
68 </button>
69 <button class="btn btn-sm btn-primary" type="button" ng-click="acept()">Aceptar
70 </button>
71 </div>
72