Commit 8e5c5b014e29660195eb211b35402468ae2c1bfb

Authored by Marcelo Puebla
Exists in master

Merge branch 'master' of git.focasoftware.com:mpuebla/foca-abm-vendedor-cobrador

1 { 1 {
2 "name": "foca-abm-vendedor-cobrador", 2 "name": "foca-abm-vendedor-cobrador",
3 "version": "0.0.1", 3 "version": "0.0.1",
4 "description": "Abm de Vendedores/Compradores", 4 "description": "Abm de Vendedores/Compradores",
5 "main": "index.html", 5 "main": "index.html",
6 "scripts": { 6 "scripts": {
7 "test": "test.html", 7 "test": "test.html",
8 "compile": "gulp uglify", 8 "compile": "gulp uglify",
9 "gulp-pre-commit": "gulp pre-commit", 9 "gulp-pre-commit": "gulp pre-commit",
10 "postinstall": "npm run compile && gulp clean-post-install", 10 "postinstall": "npm run compile && gulp clean-post-install",
11 "install-dev": "npm i --ignore-scripts" 11 "install-dev": "npm i --ignore-scripts"
12 }, 12 },
13 "pre-commit": [ 13 "pre-commit": [
14 "gulp-pre-commit" 14 "gulp-pre-commit"
15 ], 15 ],
16 "repository": { 16 "repository": {
17 "type": "git", 17 "type": "git",
18 "url": "http://git.focasoftware.com/npm/foca-abm-vendedor-cobrador.git" 18 "url": "http://git.focasoftware.com/npm/foca-abm-vendedor-cobrador.git"
19 }, 19 },
20 "author": "Foca Software", 20 "author": "Foca Software",
21 "license": "ISC", 21 "license": "ISC",
22 "peerDependencies": { 22 "peerDependencies": {
23 "angular": "^1.7.x", 23 "angular": "^1.7.x",
24 "angular-route": "^1.7.x", 24 "angular-route": "^1.7.x",
25 "bootstrap": "^4.1.x", 25 "bootstrap": "^4.1.x",
26 "jquery": "^3.3.x", 26 "jquery": "^3.3.x",
27 "font-awesome": "^4.7.x", 27 "font-awesome": "^4.7.x",
28 "gulp": "^3.9.x", 28 "gulp": "^3.9.x",
29 "gulp-concat": "2.6.x", 29 "gulp-concat": "2.6.x",
30 "gulp-jshint": "^2.1.x", 30 "gulp-jshint": "^2.1.x",
31 "gulp-rename": "^1.4.x", 31 "gulp-rename": "^1.4.x",
32 "gulp-replace": "^1.0.x", 32 "gulp-replace": "^1.0.x",
33 "gulp-uglify-es": "^1.0.x", 33 "gulp-uglify-es": "^1.0.x",
34 "jshint": "^2.9.x", 34 "jshint": "^2.9.x",
35 "pump": "^3.0.x" 35 "pump": "^3.0.x"
36 }, 36 },
37 "devDependencies": { 37 "devDependencies": {
38 "angular": "^1.7.5", 38 "angular": "^1.7.8",
39 "angular-mocks": "^1.7.7", 39 "angular-mocks": "^1.7.8",
40 "angular-route": "^1.7.5", 40 "angular-route": "^1.7.8",
41 "bootstrap": "^4.1.3", 41 "bootstrap": "^4.1.3",
42 "foca-modal": "git+http://git.focasoftware.com/npm/foca-modal.git", 42 "foca-modal": "git+http://git.focasoftware.com/npm/foca-modal.git",
43 "font-awesome": "^4.7.0", 43 "font-awesome": "^4.7.0",
44 "gulp": "^3.9.1", 44 "gulp": "^3.9.1",
45 "gulp-angular-templatecache": "^2.2.5", 45 "gulp-angular-templatecache": "^2.2.7",
46 "gulp-clean": "^0.4.0", 46 "gulp-clean": "^0.4.0",
47 "gulp-connect": "^5.6.1", 47 "gulp-connect": "^5.6.1",
48 "gulp-htmlmin": "^5.0.1", 48 "gulp-htmlmin": "^5.0.1",
49 "gulp-jshint": "^2.1.0", 49 "gulp-jshint": "^2.1.0",
50 "gulp-rename": "^1.4.0", 50 "gulp-rename": "^1.4.0",
51 "gulp-replace": "^1.0.0", 51 "gulp-replace": "^1.0.0",
52 "gulp-uglify": "^3.0.1", 52 "gulp-uglify": "^3.0.1",
53 "gulp-uglify-es": "^1.0.4", 53 "gulp-uglify-es": "^1.0.4",
54 "jasmine-core": "^3.3.0", 54 "jasmine-core": "^3.4.0",
55 "jquery": "^3.3.1", 55 "jquery": "^3.4.1",
56 "jshint": "^2.9.6", 56 "jshint": "^2.10.2",
57 "pre-commit": "^1.2.2", 57 "pre-commit": "^1.2.2",
58 "pump": "^3.0.0", 58 "pump": "^3.0.0",
59 "ui-bootstrap4": "^3.0.5" 59 "ui-bootstrap4": "^3.0.5"
60 } 60 }
61 } 61 }
62 62
src/js/controller.js
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .controller('focaAbmVendedoresCobradoresController', [ 2 .controller('focaAbmVendedoresCobradoresController', [
3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter', 3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter',
4 'focaBotoneraLateralService', 'focaModalService', '$localStorage', 4 'focaBotoneraLateralService', 'focaModalService', '$localStorage',
5 function($scope, focaAbmVendedorCobradorService, $location, $filter, 5 function($scope, focaAbmVendedorCobradorService, $location, $filter,
6 focaBotoneraLateralService, focaModalService, $localStorage) { 6 focaBotoneraLateralService, focaModalService, $localStorage) {
7 $scope.now = new Date(); 7 $scope.now = new Date();
8 $scope.vendedoresCobradores = []; 8 $scope.vendedoresCobradores = [];
9 $scope.filters = ''; 9 $scope.filters = '';
10 $scope.numPerPage = 10; 10 $scope.numPerPage = 10;
11 $scope.currentPageVendedoresCobradores = []; 11 $scope.currentPageVendedoresCobradores = [];
12 $scope.vendedoresCobradores = []; 12 $scope.vendedoresCobradores = [];
13 13
14 //SETEO BOTONERA LATERAL 14 //SETEO BOTONERA LATERAL
15 focaBotoneraLateralService.showSalir(true); 15 focaBotoneraLateralService.showSalir(true);
16 focaBotoneraLateralService.showPausar(false); 16 focaBotoneraLateralService.showPausar(false);
17 focaBotoneraLateralService.showCancelar(false); 17 focaBotoneraLateralService.showCancelar(false);
18 focaBotoneraLateralService.showGuardar(false); 18 focaBotoneraLateralService.showGuardar(false);
19 19
20
21
22 $scope.editar = function(id) { 20 $scope.editar = function(id) {
23 $location.path('/vendedor-cobrador/' + id); 21 $location.path('/vendedor-cobrador/' + id);
24 }; 22 };
25 23
26 $scope.eliminar = function(vendedorCobrador) { 24 $scope.eliminar = function(vendedorCobrador) {
27 var tipo = !!(vendedorCobrador.rol | 2) ? 'cobrador' : 'vendedor'; 25 var tipo = !!(vendedorCobrador.rol | 2) ? 'cobrador' : 'vendedor';
28 focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo + 26 focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo +
29 ' ' + vendedorCobrador.NOM + '?') 27 ' ' + vendedorCobrador.NOM + '?')
30 .then(function(data) { 28 .then(function(data) {
31 if (data) { 29 if (data) {
32 focaAbmVendedorCobradorService 30 focaAbmVendedorCobradorService
33 .eliminarVendedorCobrador(vendedorCobrador.id) 31 .eliminarVendedorCobrador(vendedorCobrador.id)
34 .then(function() { 32 .then(function() {
35 $scope.search(13); 33 $scope.search(13);
36 }); 34 });
37 } 35 }
38 }); 36 });
39 }; 37 };
40 38
41 $scope.selectPage = function(page) { 39 $scope.selectPage = function(page) {
42 var start = (page - 1) * $scope.numPerPage; 40 var start = (page - 1) * $scope.numPerPage;
43 var end = start + $scope.numPerPage; 41 var end = start + $scope.numPerPage;
44 $scope.paginas = []; 42 $scope.paginas = [];
45 $scope.paginas = calcularPages(page); 43 $scope.paginas = calcularPages(page);
46 $scope.currentPageVendedoresCobradores = 44 $scope.currentPageVendedoresCobradores =
47 $scope.vendedoresCobradores.slice(start, end); 45 $scope.vendedoresCobradores.slice(start, end);
48 $scope.currentPage = page; 46 $scope.currentPage = page;
49 }; 47 };
50 48
51 $scope.resetPage = function() { 49 $scope.resetPage = function() {
52 $scope.currentPage = 1; 50 $scope.currentPage = 1;
53 $scope.selectPage(1); 51 $scope.selectPage(1);
54 }; 52 };
55 53
56 $scope.search = function(key) { 54 $scope.search = function(key) {
57 if (key !== 13) return; 55 if (key !== 13) return;
58 56
59 focaAbmVendedorCobradorService 57 focaAbmVendedorCobradorService
60 .getVendedoresCobradores($scope.filters) 58 .getVendedoresCobradores($scope.filters)
61 .then(function(res) { 59 .then(function(res) {
62 $scope.vendedoresCobradores = res.data; 60 $scope.vendedoresCobradores = res.data;
63 61
64 $scope.lastPage = Math.ceil( 62 $scope.lastPage = Math.ceil(
65 $scope.vendedoresCobradores.length / $scope.numPerPage 63 $scope.vendedoresCobradores.length / $scope.numPerPage
66 ); 64 );
67 65
68 $scope.resetPage(); 66 $scope.resetPage();
69 }); 67 });
70 }; 68 };
71 69
72 if ($localStorage.vendedorCobrador) { 70 if ($localStorage.vendedorCobrador) {
73 var vendedorCobrador = JSON.parse($localStorage.vendedorCobrador); 71 var vendedorCobrador = JSON.parse($localStorage.vendedorCobrador);
74 $location.path('/vendedor-cobrador/' + vendedorCobrador.NUM); 72 $location.path('/vendedor-cobrador/' + vendedorCobrador.NUM);
75 } 73 }
76 74
77 function calcularPages(paginaActual) { 75 function calcularPages(paginaActual) {
78 var paginas = []; 76 var paginas = [];
79 paginas.push(paginaActual); 77 paginas.push(paginaActual);
80 78
81 if (paginaActual - 1 > 1) { 79 if (paginaActual - 1 > 1) {
82 80
83 paginas.unshift(paginaActual - 1); 81 paginas.unshift(paginaActual - 1);
84 if (paginaActual - 2 > 1) { 82 if (paginaActual - 2 > 1) {
85 paginas.unshift(paginaActual - 2); 83 paginas.unshift(paginaActual - 2);
86 } 84 }
87 } 85 }
88 86
89 if (paginaActual + 1 < $scope.lastPage) { 87 if (paginaActual + 1 < $scope.lastPage) {
90 paginas.push(paginaActual + 1); 88 paginas.push(paginaActual + 1);
91 if (paginaActual + 2 < $scope.lastPage) { 89 if (paginaActual + 2 < $scope.lastPage) {
92 paginas.push(paginaActual + 2); 90 paginas.push(paginaActual + 2);
93 } 91 }
94 } 92 }
95 93
96 if (paginaActual !== 1) { 94 if (paginaActual !== 1) {
97 paginas.unshift(1); 95 paginas.unshift(1);
98 } 96 }
99 97
100 if (paginaActual !== $scope.lastPage) { 98 if (paginaActual !== $scope.lastPage) {
101 paginas.push($scope.lastPage); 99 paginas.push($scope.lastPage);
102 } 100 }
103 return paginas; 101 return paginas;
104 } 102 }
105 103
106 // TODO: descomentar cuando se use 104 // TODO: descomentar cuando se use
107 // function primera() { 105 // function primera() {
108 // $scope.selectedClientes = 0; 106 // $scope.selectedClientes = 0;
109 // } 107 // }
110 108
111 // function anterior() { 109 // function anterior() {
112 // if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 110 // if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
113 // retrocederPagina(); 111 // retrocederPagina();
114 // } else { 112 // } else {
115 // $scope.selectedClientes--; 113 // $scope.selectedClientes--;
116 // } 114 // }
117 // } 115 // }
118 116
119 // function siguiente() { 117 // function siguiente() {
120 // if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) 118 // if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 )
121 //{ 119 //{
122 // $scope.selectedClientes++; 120 // $scope.selectedClientes++;
123 // } else { 121 // } else {
124 // avanzarPagina(); 122 // avanzarPagina();
125 // } 123 // }
126 // } 124 // }
127 125
128 // function retrocederPagina() { 126 // function retrocederPagina() {
129 // if ($scope.currentPage > 1) { 127 // if ($scope.currentPage > 1) {
130 // $scope.selectPage($scope.currentPage - 1); 128 // $scope.selectPage($scope.currentPage - 1);
131 // $scope.selectedClientes = $scope.numPerPage - 1; 129 // $scope.selectedClientes = $scope.numPerPage - 1;
132 // } 130 // }
133 // } 131 // }
134 132
135 // function avanzarPagina() { 133 // function avanzarPagina() {
136 // if ($scope.currentPage < $scope.lastPage) { 134 // if ($scope.currentPage < $scope.lastPage) {
137 // $scope.selectPage($scope.currentPage + 1); 135 // $scope.selectPage($scope.currentPage + 1);
138 // $scope.selectedClientes = 0; 136 // $scope.selectedClientes = 0;
139 // } 137 // }
140 // } 138 // }
141 } 139 }
142 ]); 140 ]);
143 141
src/js/controllerItem.js
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .controller('focaAbmVendedorCobradorController', [ 2 .controller('focaAbmVendedorCobradorController', [
3 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', 3 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService',
4 '$timeout', '$uibModal', '$location', 'focaModalService', '$localStorage', '$filter', 4 '$timeout', '$uibModal', '$location', 'focaModalService', '$localStorage', '$filter',
5 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, 5 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService,
6 $timeout, $uibModal, $location, focaModalService, $localStorage, $filter) { 6 $timeout, $uibModal, $location, focaModalService, $localStorage, $filter) {
7 7
8 $scope.guardado = false; 8 $scope.guardado = false;
9 $scope.now = new Date(); 9 $scope.now = new Date();
10 $scope.focused = 0; 10 $scope.focused = 0;
11 $scope.vendedorCobrador = { 11 $scope.vendedorCobrador = {
12 dni: '', 12 dni: '',
13 CNET: '0', 13 CNET: '0',
14 CFIN: '0', 14 CFIN: '0',
15 CCOB: '0', 15 CCOB: '0',
16 comisionVendedor: '0.00', 16 comisionVendedor: '0.00',
17 comisionCobrador: '0.00', 17 comisionCobrador: '0.00',
18 provincia: { 18 provincia: {
19 NOMBRE: '' 19 NOMBRE: ''
20 }, 20 },
21 localidad: { 21 localidad: {
22 NOMBRE: '' 22 NOMBRE: ''
23 }, 23 },
24 rol: '' 24 rol: ''
25 }; 25 };
26 $scope.options = [ 26 $scope.options = [
27 { 27 {
28 label: 'Vendedor', 28 label: 'Vendedor',
29 value: 1 29 value: 1
30 }, 30 },
31 { 31 {
32 label: 'Cobrador', 32 label: 'Cobrador',
33 value: 2 33 value: 2
34 }, 34 },
35 { 35 {
36 label: 'Vendedor y cobrador', 36 label: 'Vendedor y cobrador',
37 value: 3 37 value: 3
38 } 38 }
39 ]; 39 ];
40 //SETEO BOTONERA LATERAL 40 //SETEO BOTONERA LATERAL
41 $timeout(function() { 41 $timeout(function() {
42 focaBotoneraLateralService.showSalir(false); 42 focaBotoneraLateralService.showSalir(false);
43 focaBotoneraLateralService.showPausar(true); 43 focaBotoneraLateralService.showPausar(true);
44 focaBotoneraLateralService.showCancelar(false); 44 focaBotoneraLateralService.showCancelar(false);
45 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 45 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
46 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); 46 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar);
47 }); 47 });
48 48
49 $timeout(function() {getLSVendedor();}); 49 $timeout(function() {getLSVendedor();});
50 50
51 focaAbmVendedorCobradorService 51 focaAbmVendedorCobradorService
52 .getCodigoSiguiente() 52 .getCodigoVendedores()
53 .then(function(res) { 53 .then(function (res) {
54 $scope.vendedorCobrador.NUM = res.data.mayor; 54 $scope.vendedorCobrador.NUM = res.data.proximoCodigo;
55 }); 55 });
56 56
57 focaAbmVendedorCobradorService 57 focaAbmVendedorCobradorService
58 .getVendedorCobradorById($routeParams.id) 58 .getVendedorCobradorById($routeParams.id)
59 .then(function(res) { 59 .then(function(res) {
60 if (res.data) { 60 if (res.data) {
61 $scope.edicion = true; 61 $scope.edicion = true;
62 $scope.vendedorCobrador = res.data; 62 $scope.vendedorCobrador = res.data;
63 } 63 }
64 }); 64 });
65 65
66 $scope.guardar = function() { 66 $scope.guardar = function() {
67 var cobradorComision = parseFloat($scope.vendedorCobrador.comisionCobrador);
68 var vendedorComision = parseFloat($scope.vendedorCobrador.comisionVendedor);
67 69
68 if (!$scope.vendedorCobrador.NOM) { 70 if (!$scope.vendedorCobrador.NOM) {
69 focaModalService.alert('Ingrese nombre'); 71 focaModalService.alert('Ingrese nombre');
70 return; 72 return;
71 } else if (!$scope.vendedorCobrador.domicilio) { 73 } else if (!$scope.vendedorCobrador.domicilio) {
72 focaModalService.alert('Ingrese domicilio'); 74 focaModalService.alert('Ingrese domicilio');
73 return; 75 return;
74 } else if (!$scope.vendedorCobrador.codigoPostal) { 76 } else if (!$scope.vendedorCobrador.codigoPostal) {
75 focaModalService.alert('Ingrese código postal'); 77 focaModalService.alert('Ingrese código postal');
76 return; 78 return;
77 } else if (!$scope.vendedorCobrador.dni) { 79 } else if (!$scope.vendedorCobrador.dni) {
78 focaModalService.alert('Ingrese dni'); 80 focaModalService.alert('Ingrese dni');
79 return; 81 return;
80 } else if (!$scope.vendedorCobrador.rol) { 82 } else if (!$scope.vendedorCobrador.rol) {
81 focaModalService.alert('Seleccione tipo'); 83 focaModalService.alert('Seleccione tipo');
82 return; 84 return;
83 } else if (!$scope.vendedorCobrador.provincia.NOMBRE) { 85 } else if (!$scope.vendedorCobrador.provincia.NOMBRE) {
84 focaModalService.alert('Seleccione una provincia'); 86 focaModalService.alert('Seleccione una provincia');
85 return; 87 return;
86 } else if (!$scope.vendedorCobrador.localidad.NOMBRE) { 88 } else if (!$scope.vendedorCobrador.localidad.NOMBRE) {
87 focaModalService.alert('Seleccione una localidad'); 89 focaModalService.alert('Seleccione una localidad');
88 return; 90 return;
89 } else if (!isNaN($scope.vendedorCobrador.comisionCobrador) || 91 } else if (($scope.vendedorCobrador.rol === 2 && isNaN(cobradorComision)) ||
90 !isNaN($scope.vendedorCobrador.comisionVendedor)) { 92 (($scope.vendedorCobrador.rol === 3) && isNaN(cobradorComision))) {
91 focaModalService.alert('Ingrese una comision válida'); 93 focaModalService.alert('Ingrese una comision cobrador válida');
94 return;
95 } else if (($scope.vendedorCobrador.rol === 1 && isNaN(vendedorComision)) ||
96 ($scope.vendedorCobrador.rol === 3 && isNaN(vendedorComision))) {
97 focaModalService.alert('Ingrese una comision vendedor válida');
92 return; 98 return;
93 } 99 }
94 100
95 if ($scope.guardado) { 101 if ($scope.guardado) {
96 $scope.cambiarPassword(); 102 $scope.cambiarPassword();
97 } else { 103 } else {
98 104
99 var vendedorCobrador = angular.copy($scope.vendedorCobrador); 105 var vendedorCobrador = angular.copy($scope.vendedorCobrador);
100 106
101 vendedorCobrador.idProvincia = vendedorCobrador.provincia.ID; 107 vendedorCobrador.idProvincia = vendedorCobrador.provincia.ID;
102 vendedorCobrador.idLocalidad = vendedorCobrador.localidad.ID; 108 vendedorCobrador.idLocalidad = vendedorCobrador.localidad.ID;
103 109
104 delete vendedorCobrador.provincia; 110 delete vendedorCobrador.provincia;
105 delete vendedorCobrador.localidad; 111 delete vendedorCobrador.localidad;
106 if (vendedorCobrador.rol == 1) { 112 if (vendedorCobrador.rol === 1) {
107 delete vendedorCobrador.comisionCobrador; 113 delete vendedorCobrador.comisionCobrador;
108 } else if (vendedorCobrador.rol == 2) { 114 } else if (vendedorCobrador.rol === 2) {
109 delete vendedorCobrador.comisionVendedor; 115 delete vendedorCobrador.comisionVendedor;
110 } 116 }
111 vendedorCobrador.metodo = ($routeParams.id === '0') ? 'crear' : 'actualizar'; 117 vendedorCobrador.metodo = ($routeParams.id === '0') ? 'crear' : 'actualizar';
112 118
113 focaAbmVendedorCobradorService 119 focaAbmVendedorCobradorService
114 .guardarVendedorCobrador(vendedorCobrador) 120 .guardarVendedorCobrador(vendedorCobrador)
115 .then(function(res) { 121 .then(function(res) {
116 if ($scope.edicion) { 122 if ($scope.edicion) {
117 $location.path('/vendedor-cobrador'); 123 $location.path('/vendedor-cobrador');
118 } else { 124 } else {
119 $scope.vendedorCobrador = res.data; 125 $scope.vendedorCobrador = res.data;
120 $scope.cambiarPassword(); 126 $scope.cambiarPassword();
121 $scope.guardado = true; 127 $scope.guardado = true;
122 } 128 }
123 }) 129 })
124 .catch(function(err) { 130 .catch(function(err) {
125 if (err.status === 409) { 131 if (err.status === 409) {
126 focaModalService.alert(err.data); 132 focaModalService.alert(err.data);
127 } 133 }
128 }); 134 });
129 } 135 }
130 }; 136 };
131 137
132 $scope.seleccionarProvincia = function(key) { 138 $scope.seleccionarProvincia = function(key) {
133 if (key === 13) { 139 if (key === 13) {
134 var parametrosModal = { 140 var parametrosModal = {
135 searchText: $scope.vendedorCobrador.provincia.NOMBRE, 141 searchText: $scope.vendedorCobrador.provincia.NOMBRE,
136 query: '/provincia', 142 query: '/provincia',
137 columnas: [ 143 columnas: [
138 { 144 {
139 propiedad: 'ID', 145 propiedad: 'ID',
140 nombre: 'Codigo', 146 nombre: 'Codigo',
141 filtro: { 147 filtro: {
142 nombre: 'rellenarDigitos', 148 nombre: 'rellenarDigitos',
143 parametro: 3 149 parametro: 3
144 } 150 }
145 }, 151 },
146 { 152 {
147 propiedad: 'NOMBRE', 153 propiedad: 'NOMBRE',
148 nombre: 'Nombre' 154 nombre: 'Nombre'
149 } 155 }
150 ], 156 ],
151 titulo: 'Búsqueda de provincias', 157 titulo: 'Búsqueda de provincias',
152 size: 'md' 158 size: 'md'
153 }; 159 };
154 focaModalService.modal(parametrosModal).then(function(provincia) { 160 focaModalService.modal(parametrosModal).then(function(provincia) {
155 $scope.vendedorCobrador.provincia = provincia; 161 $scope.vendedorCobrador.provincia = provincia;
156 $timeout(function() { 162 $timeout(function() {
157 $scope.focused = 5; 163 $scope.focused = 5;
158 }); 164 });
159 }, function() { 165 }, function() {
160 //TODO: función llamada cuando cancela el modal 166 //TODO: función llamada cuando cancela el modal
161 }); 167 });
162 } 168 }
163 }; 169 };
164 170
165 $scope.seleccionarLocalidad = function(key) { 171 $scope.seleccionarLocalidad = function(key) {
166 if (!$scope.vendedorCobrador.provincia.ID) { 172 if (!$scope.vendedorCobrador.provincia.ID) {
167 focaModalService.alert('Seleccione una provincia'); 173 focaModalService.alert('Seleccione una provincia');
168 return; 174 return;
169 } 175 }
170 if (key === 13) { 176 if (key === 13) {
171 var parametrosModal = { 177 var parametrosModal = {
172 searchText: $scope.vendedorCobrador.localidad.NOMBRE, 178 searchText: $scope.vendedorCobrador.localidad.NOMBRE,
173 query: '/localidad/' + $scope.vendedorCobrador.provincia.ID, 179 query: '/localidad/' + $scope.vendedorCobrador.provincia.ID,
174 columnas: [ 180 columnas: [
175 { 181 {
176 propiedad: 'ID', 182 propiedad: 'ID',
177 nombre: 'Código', 183 nombre: 'Código',
178 filtro: { 184 filtro: {
179 nombre: 'rellenarDigitos', 185 nombre: 'rellenarDigitos',
180 parametro: 3 186 parametro: 3
181 } 187 }
182 }, 188 },
183 { 189 {
184 propiedad: 'NOMBRE', 190 propiedad: 'NOMBRE',
185 nombre: 'Nombre' 191 nombre: 'Nombre'
186 } 192 }
187 ], 193 ],
188 titulo: 'Búsqueda de localidades', 194 titulo: 'Búsqueda de localidades',
189 size: 'md' 195 size: 'md'
190 }; 196 };
191 focaModalService.modal(parametrosModal).then(function(localidad) { 197 focaModalService.modal(parametrosModal).then(function(localidad) {
192 $scope.vendedorCobrador.localidad = localidad; 198 $scope.vendedorCobrador.localidad = localidad;
193 $timeout(function() { 199 $timeout(function() {
194 $scope.focused = 6; 200 $scope.focused = 6;
195 }); 201 });
196 }, function() { 202 }, function() {
197 //TODO: función llamada cuando cancela el modal 203 //TODO: función llamada cuando cancela el modal
198 }); 204 });
199 } 205 }
200 }; 206 };
201 207
202 $scope.$watch('vendedorCobrador', function(newValue) { 208 $scope.$watch('vendedorCobrador', function(newValue) {
203 focaBotoneraLateralService.setPausarData({ 209 focaBotoneraLateralService.setPausarData({
204 label:'vendedorCobrador', 210 label:'vendedorCobrador',
205 val: newValue 211 val: newValue
206 }); 212 });
207 }, true); 213 }, true);
208 214
209 function getLSVendedor() { 215 function getLSVendedor() {
210 var vendedorCobrador = JSON.parse($localStorage.vendedorCobrador || null); 216 var vendedorCobrador = JSON.parse($localStorage.vendedorCobrador || null);
211 if (vendedorCobrador) { 217 if (vendedorCobrador) {
212 setearVendedor(vendedorCobrador); 218 setearVendedor(vendedorCobrador);
213 delete $localStorage.vendedorCobrador; 219 delete $localStorage.vendedorCobrador;
214 } 220 }
215 } 221 }
216 222
217 function setearVendedor(vendedorCobrador) { 223 function setearVendedor(vendedorCobrador) {
218 $scope.vendedorCobrador = vendedorCobrador; 224 $scope.vendedorCobrador = vendedorCobrador;
219 $scope.$broadcast('addCabecera', { 225 $scope.$broadcast('addCabecera', {
220 label: 'Vendedor / Cobrador:', 226 label: 'Vendedor / Cobrador:',
221 valor: $filter('rellenarDigitos')(vendedorCobrador.NUM, 2) + ' - ' + vendedorCobrador.NOM 227 valor: $filter('rellenarDigitos')(vendedorCobrador.NUM, 2) +
228 ' - ' + vendedorCobrador.NOM
222 }); 229 });
223 } 230 }
224 231
225 $scope.cancelar = function() { 232 $scope.cancelar = function() {
226 if (!$scope.formVendedorCobrador.$pristine) { 233 if (!$scope.formVendedorCobrador.$pristine) {
227 234
228 focaModalService.confirm('¿Está seguro de que desea salir?' + 235 focaModalService.confirm('¿Está seguro de que desea salir? ' +
229 'Se perderán todos los datos cargados.') 236 'Se perderán todos los datos cargados.')
230 .then(function(confirmed) { 237 .then(function(confirmed) {
231 if (confirmed && $scope.guardado && !$scope.edicion) { 238 if (confirmed && $scope.guardado && !$scope.edicion) {
232 239
233 focaAbmVendedorCobradorService 240 focaAbmVendedorCobradorService
234 .destroyVendedorCobrador($scope.vendedorCobrador.id) 241 .destroyVendedorCobrador($scope.vendedorCobrador.id)
235 .then(function() { 242 .then(function() {
236 $location.path('/vendedor-cobrador'); 243 $location.path('/vendedor-cobrador');
237 }); 244 });
238 245
239 } else if (confirmed) { 246 } else if (confirmed) {
240 $location.path('/vendedor-cobrador'); 247 $location.path('/vendedor-cobrador');
241 } 248 }
242 }); 249 });
243 250
244 } else { 251 } else {
245 $location.path('/vendedor-cobrador'); 252 $location.path('/vendedor-cobrador');
246 } 253 }
247 }; 254 };
248 255
249 $scope.next = function(key) { 256 $scope.next = function(key) {
250 if (key === 13) $scope.focused++; 257 if (key === 13) $scope.focused++;
251 }; 258 };
252 259
253 $scope.cambiarPassword = function() { 260 $scope.cambiarPassword = function() {
254 var vendedorCobrador = angular.copy($scope.vendedorCobrador); 261 var vendedorCobrador = angular.copy($scope.vendedorCobrador);
255 vendedorCobrador.nombre = vendedorCobrador.NOM; 262 vendedorCobrador.nombre = vendedorCobrador.NOM;
256 vendedorCobrador.codigo = vendedorCobrador.NUM; 263 vendedorCobrador.codigo = vendedorCobrador.NUM;
257 264
258 var parametros = { 265 var parametros = {
259 cuenta: vendedorCobrador, 266 cuenta: vendedorCobrador,
260 tipo: ($scope.vendedorCobrador.rol === 2) ? 'Cobradores' : 'Vendedores', 267 tipo: ($scope.vendedorCobrador.rol === 2) ? 'Cobradores' : 'Vendedores',
261 btnAceptar: true 268 btnAceptar: true
262 }; 269 };
263 270
264 var modalInstance = $uibModal.open( 271 var modalInstance = $uibModal.open(
265 { 272 {
266 ariaLabelledBy: 'Configuracion de Logueo', 273 ariaLabelledBy: 'Configuracion de Logueo',
267 templateUrl: 'modal-login.html', 274 templateUrl: 'modal-login.html',
268 controller: 'focaModalLoginController', 275 controller: 'focaModalLoginController',
269 size: 'md', 276 size: 'md',
270 resolve: { 277 resolve: {
271 parametros: function() { 278 parametros: function() {
272 return parametros; 279 return parametros;
273 } 280 }
274 } 281 }
275 } 282 }
276 ); 283 );
277 284
278 modalInstance.result.then(function() { 285 modalInstance.result.then(function() {
279 if (!$scope.edicion) $location.path('/vendedor-cobrador'); 286 if (!$scope.edicion) $location.path('/vendedor-cobrador');
280 }); 287 });
281 288
282 }; 289 };
283 } 290 }
284 ]); 291 ]);
285 292
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', 2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT',
3 function($http, API_ENDPOINT) { 3 function($http, API_ENDPOINT) {
4 return { 4 return {
5 getVendedoresCobradores: function(nombre) { 5 getVendedoresCobradores: function(nombre) {
6 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador/list', {nombre: nombre}); 6 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador/list', {nombre: nombre});
7 }, 7 },
8 getVendedorCobradorById: function(id) { 8 getVendedorCobradorById: function(id) {
9 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); 9 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
10 }, 10 },
11 guardarVendedorCobrador: function(vendedorCobrador) { 11 guardarVendedorCobrador: function(vendedorCobrador) {
12 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador', 12 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador',
13 {vendedorCobrador: vendedorCobrador}); 13 {vendedorCobrador: vendedorCobrador});
14 }, 14 },
15 eliminarVendedorCobrador: function(id) { 15 eliminarVendedorCobrador: function(id) {
16 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); 16 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
17 }, 17 },
18 destroyVendedorCobrador: function(id) { 18 destroyVendedorCobrador: function(id) {
19 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/destroy/' + id); 19 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/destroy/' + id);
20 }, 20 },
21 getCodigoSiguiente: function() { 21 getCodigoSiguiente: function() {
22 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/obtener/siguiente-codigo'); 22 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/obtener/siguiente-codigo');
23 },
24 getCodigoVendedores: function() {
25 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador-proximoCodigo');
23 } 26 }
24 }; 27 };
25 }]); 28 }]);
26 29
src/views/foca-abm-vendedor-cobrador-item.html
1 <div class="row"> 1 <div class="row">
2 <foca-cabecera-facturador 2 <foca-cabecera-facturador
3 titulo="'Vendedores / Cobradores'" 3 titulo="'Vendedores / Cobradores'"
4 fecha="now" 4 fecha="now"
5 class="mb-0 col-lg-12" 5 class="mb-0 col-lg-12"
6 ></foca-cabecera-facturador> 6 ></foca-cabecera-facturador>
7 </div> 7 </div>
8 <div class="row"> 8 <div class="row">
9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded"> 9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded">
10 <form name="formVendedorCobrador" class="px-3" autocomplete="off"> 10 <form name="formVendedorCobrador" class="px-3" autocomplete="off">
11 <div class="row mt-3"> 11 <div class="row mt-3">
12 <div class="form-group d-flex mb-2 col-md-6"> 12 <div class="form-group d-flex mb-2 col-md-6">
13 <label class="col-form-label col-md-4">Código</label> 13 <label class="col-form-label col-md-4">Código</label>
14 <div class="col-md-8 pl-0"> 14 <div class="col-md-8 pl-0">
15 <input 15 <input
16 class="form-control form-control-sm" 16 class="form-control form-control-sm"
17 ng-model="vendedorCobrador.NUM" 17 ng-model="vendedorCobrador.NUM"
18 solo-positivos
18 ng-disabled="edicion"/> 19 ng-disabled="edicion"/>
19 </div> 20 </div>
20 </div> 21 </div>
21 <div class="form-group d-flex mb-2 col-md-6"> 22 <div class="form-group d-flex mb-2 col-md-6">
22 <label class="col-form-label col-md-4">Tipo</label> 23 <label class="col-form-label col-md-4">Tipo</label>
23 <div class="col-md-8 pl-0"> 24 <div class="col-md-8 pl-0">
24 <select 25 <select
25 class="form-control form-control-sm" 26 class="form-control form-control-sm"
26 ng-model="vendedorCobrador.rol" 27 ng-model="vendedorCobrador.rol"
27 ng-options="option.value as option.label for option in options" 28 ng-options="option.value as option.label for option in options"
28 foca-focus="focused == 0" 29 foca-focus="focused == 0"
29 ng-focus="focused = 0"> 30 ng-focus="focused = 0">
30 </select> 31 </select>
31 </div> 32 </div>
32 </div> 33 </div>
33 <div class="form-group d-flex mb-2 col-md-6"> 34 <div class="form-group d-flex mb-2 col-md-6">
34 <label class="col-form-label col-md-4">Nombre</label> 35 <label class="col-form-label col-md-4">Nombre</label>
35 <div class="input-group col-md-8 pl-0"> 36 <div class="input-group col-md-8 pl-0">
36 <input 37 <input
37 class="form-control form-control-sm" 38 class="form-control form-control-sm"
38 type="text" 39 type="text"
39 teclado-virtual 40 teclado-virtual
40 ng-model="vendedorCobrador.NOM" 41 ng-model="vendedorCobrador.NOM"
41 foca-focus="focused == 1" 42 foca-focus="focused == 1"
42 ng-focus="focused = 1" 43 ng-focus="focused = 1"
43 ng-keypress="next($event.keyCode)" 44 ng-keypress="next($event.keyCode)"
44 autocomplete="off" 45 autocomplete="off"
45 uppercase-only 46 uppercase-only
46 47
47 /> 48 />
48 </div> 49 </div>
49 </div> 50 </div>
50 <div class="form-group d-flex mb-2 col-md-6"> 51 <div class="form-group d-flex mb-2 col-md-6">
51 <label class="col-form-label col-md-4">Domicilio</label> 52 <label class="col-form-label col-md-4">Domicilio</label>
52 <div class="input-group col-md-8 pl-0"> 53 <div class="input-group col-md-8 pl-0">
53 <input 54 <input
54 class="form-control form-control-sm" 55 class="form-control form-control-sm"
55 type="text" 56 type="text"
56 teclado-virtual 57 teclado-virtual
57 ng-model="vendedorCobrador.domicilio" 58 ng-model="vendedorCobrador.domicilio"
58 ng-required="true" 59 ng-required="true"
59 foca-focus="focused == 2" 60 foca-focus="focused == 2"
60 ng-focus="focused = 2" 61 ng-focus="focused = 2"
61 ng-keypress="next($event.keyCode)" 62 ng-keypress="next($event.keyCode)"
62 autocomplete="off" 63 autocomplete="off"
63 uppercase-only 64 uppercase-only
64 /> 65 />
65 </div> 66 </div>
66 </div> 67 </div>
67 <div class="form-group d-flex mb-2 col-md-6"> 68 <div class="form-group d-flex mb-2 col-md-6">
68 <label class="col-form-label col-md-4">Código postal</label> 69 <label class="col-form-label col-md-4">Código postal</label>
69 <div class="input-group col-md-8 pl-0"> 70 <div class="input-group col-md-8 pl-0">
70 <input 71 <input
71 class="form-control form-control-sm" 72 class="form-control form-control-sm"
72 foca-tipo-input 73 foca-tipo-input
73 teclado-virtual 74 teclado-virtual
75 solo-positivos
74 ng-model="vendedorCobrador.codigoPostal" 76 ng-model="vendedorCobrador.codigoPostal"
75 ng-required="true" 77 ng-required="true"
76 foca-focus="focused == 3" 78 foca-focus="focused == 3"
77 ng-focus="focused = 3" 79 ng-focus="focused = 3"
78 ng-keypress="next($event.keyCode)" 80 ng-keypress="next($event.keyCode)"
79 autocomplete="off" 81 autocomplete="off"
80 string-to-number 82 string-to-number
81 /> 83 />
82 </div> 84 </div>
83 </div> 85 </div>
84 <div class="form-group d-flex mb-2 col-md-6"> 86 <div class="form-group d-flex mb-2 col-md-6">
85 <label class="col-form-label col-md-4">Provincia</label> 87 <label class="col-form-label col-md-4">Provincia</label>
86 <div class="input-group col-md-8 pl-0"> 88 <div class="input-group col-md-8 pl-0">
87 <input 89 <input
88 type="text" 90 type="text"
89 class="form-control form-control-sm" 91 class="form-control form-control-sm"
90 ng-model="vendedorCobrador.provincia.NOMBRE" 92 ng-model="vendedorCobrador.provincia.NOMBRE"
91 ng-keypress="seleccionarProvincia($event.keyCode)" 93 ng-keypress="seleccionarProvincia($event.keyCode)"
92 ng-required="true" 94 ng-required="true"
93 foca-focus="focused == 4" 95 foca-focus="focused == 4"
94 ng-focus="focused = 4" 96 ng-focus="focused = 4"
95 teclado-virtual 97 teclado-virtual
96 /> 98 />
97 <div class="input-group-append"> 99 <div class="input-group-append">
98 <button 100 <button
99 ladda="searchLoading" 101 ladda="searchLoading"
100 class="btn btn-outline-secondary form-control-sm" 102 class="btn btn-outline-secondary form-control-sm"
101 type="button" 103 type="button"
102 ng-click="seleccionarProvincia(13)" 104 ng-click="seleccionarProvincia(13)"
103 > 105 >
104 <i class="fa fa-search" aria-hidden="true"></i> 106 <i class="fa fa-search" aria-hidden="true"></i>
105 </button> 107 </button>
106 </div> 108 </div>
107 </div> 109 </div>
108 </div> 110 </div>
109 <div class="form-group d-flex mb-2 col-md-6"> 111 <div class="form-group d-flex mb-2 col-md-6">
110 <label class="col-form-label col-md-4">Localidad</label> 112 <label class="col-form-label col-md-4">Localidad</label>
111 <div class="input-group col-md-8 pl-0"> 113 <div class="input-group col-md-8 pl-0">
112 <input 114 <input
113 type="text" 115 type="text"
114 class="form-control form-control-sm" 116 class="form-control form-control-sm"
115 ng-model="vendedorCobrador.localidad.NOMBRE" 117 ng-model="vendedorCobrador.localidad.NOMBRE"
116 ng-keypress="seleccionarLocalidad($event.keyCode)" 118 ng-keypress="seleccionarLocalidad($event.keyCode)"
117 ng-required="true" 119 ng-required="true"
118 foca-focus="focused == 5" 120 foca-focus="focused == 5"
119 ng-focus="focused = 5" 121 ng-focus="focused = 5"
120 teclado-virtual 122 teclado-virtual
121 autocomplete="off" 123 autocomplete="off"
122 /> 124 />
123 <div class="input-group-append"> 125 <div class="input-group-append">
124 <button 126 <button
125 ladda="searchLoading" 127 ladda="searchLoading"
126 class="btn btn-outline-secondary form-control-sm" 128 class="btn btn-outline-secondary form-control-sm"
127 type="button" 129 type="button"
128 ng-click="seleccionarLocalidad(13)" 130 ng-click="seleccionarLocalidad(13)"
129 > 131 >
130 <i class="fa fa-search" aria-hidden="true"></i> 132 <i class="fa fa-search" aria-hidden="true"></i>
131 </button> 133 </button>
132 </div> 134 </div>
133 </div> 135 </div>
134 </div> 136 </div>
135 <div class="form-group d-flex mb-2 col-md-6"> 137 <div class="form-group d-flex mb-2 col-md-6">
136 <label class="col-form-label col-md-4">Teléfono</label> 138 <label class="col-form-label col-md-4">Teléfono</label>
137 <div class="input-group col-md-8 pl-0"> 139 <div class="input-group col-md-8 pl-0">
138 <input 140 <input
139 class="form-control form-control-sm" 141 class="form-control form-control-sm"
140 foca-tipo-input 142 foca-tipo-input
141 teclado-virtual 143 teclado-virtual
144 solo-positivos
145 limite-numeros-max="15"
142 ng-model="vendedorCobrador.telefono" 146 ng-model="vendedorCobrador.telefono"
143 ng-required="true" 147 ng-required="true"
144 foca-focus="focused == 6" 148 foca-focus="focused == 6"
145 ng-focus="focused = 6" 149 ng-focus="focused = 6"
146 ng-keypress="next($event.keyCode)" 150 ng-keypress="next($event.keyCode)"
147 autocomplete="off" 151 autocomplete="off"
148 string-to-number 152 string-to-number
149 /> 153 />
150 </div> 154 </div>
151 </div> 155 </div>
152 <div class="form-group d-flex mb-2 col-md-6"> 156 <div class="form-group d-flex mb-2 col-md-6">
153 <label class="col-form-label col-md-4">DNI</label> 157 <label class="col-form-label col-md-4">DNI</label>
154 <div class="input-group col-md-8 pl-0"> 158 <div class="input-group col-md-8 pl-0">
155 <input 159 <input
156 class="form-control form-control-sm" 160 class="form-control form-control-sm"
157 foca-tipo-input 161 foca-tipo-input
158 teclado-virtual 162 teclado-virtual
163 solo-positivos
164 limite-numeros-max="15"
159 ng-model="vendedorCobrador.dni" 165 ng-model="vendedorCobrador.dni"
160 ng-required="true" 166 ng-required="true"
161 foca-focus="focused == 7" 167 foca-focus="focused == 7"
162 ng-focus="focused = 7" 168 ng-focus="focused = 7"
163 ng-keypress="next($event.keyCode)" 169 ng-keypress="next($event.keyCode)"
164 autocomplete="off" 170 autocomplete="off"
165 string-to-number
166 /> 171 />
167 </div> 172 </div>
168 </div> 173 </div>
169 <div class="form-group d-flex mb-2 col-md-6" 174 <div class="form-group d-flex mb-2 col-md-6"
170 ng-show="vendedorCobrador.rol == 1 || vendedorCobrador.rol == 3"> 175 ng-show="vendedorCobrador.rol == 1 || vendedorCobrador.rol == 3">
171 <label class="col-form-label col-md-4">Porcentaje de comisión <span ng-show="vendedorCobrador.rol == 3">vendedor</span></label> 176 <label class="col-form-label col-md-4">Porcentaje de comisión <span ng-show="vendedorCobrador.rol == 3">vendedor</span></label>
172 <div class="input-group col-md-8 pl-0"> 177 <div class="input-group col-md-8 pl-0">
173 <input 178 <input
174 class="form-control form-control-sm" 179 class="form-control form-control-sm"
175 foca-tipo-input 180 foca-tipo-input
176 teclado-virtual 181 teclado-virtual
177 ng-model="vendedorCobrador.comisionVendedor" 182 ng-model="vendedorCobrador.comisionVendedor"
178 ng-required="true" 183 ng-required="true"
179 foca-focus="focused == 10" 184 foca-focus="focused == 10"
180 ng-focus="focused = 10" 185 ng-focus="focused = 10"
181 ng-keypress="next($event.keyCode)" 186 ng-keypress="next($event.keyCode)"
182 autocomplete="off" 187 autocomplete="off"
183 string-to-number 188 string-to-number
184 solo-positivo 189 solo-positivos
185 /> 190 />
186 </div> 191 </div>
187 </div> 192 </div>
188 <div class="form-group d-flex mb-2 col-md-6" 193 <div class="form-group d-flex mb-2 col-md-6"
189 ng-show="vendedorCobrador.rol == 2 || vendedorCobrador.rol == 3"> 194 ng-show="vendedorCobrador.rol == 2 || vendedorCobrador.rol == 3">
190 <label class="col-form-label col-md-4">Porcentaje de comisión <span ng-show="vendedorCobrador.rol == 3">cobrador</span></label> 195 <label class="col-form-label col-md-4">Porcentaje de comisión <span ng-show="vendedorCobrador.rol == 3">cobrador</span></label>
191 <div class="input-group col-md-8 pl-0"> 196 <div class="input-group col-md-8 pl-0">
192 <input 197 <input
193 class="form-control form-control-sm" 198 class="form-control form-control-sm"
194 foca-tipo-input 199 foca-tipo-input
195 teclado-virtual 200 teclado-virtual
196 ng-model="vendedorCobrador.comisionCobrador" 201 ng-model="vendedorCobrador.comisionCobrador"
197 ng-required="true" 202 ng-required="true"
198 foca-focus="focused == 10" 203 foca-focus="focused == 10"
199 ng-focus="focused = 10" 204 ng-focus="focused = 10"
200 ng-keypress="next($event.keyCode)" 205 ng-keypress="next($event.keyCode)"
201 autocomplete="off" 206 autocomplete="off"
202 string-to-number 207 string-to-number
203 solo-positivo 208 solo-positivos
204 /> 209 />
205 </div> 210 </div>
206 </div> 211 </div>
207 <div class="ml-auto w-50"> 212 <div class="ml-auto w-50">
208 <button 213 <button
209 class="btn btn-primary float-right mr-3" 214 class="btn btn-primary float-right mr-3"
210 type="button" 215 type="button"
211 ng-click="cambiarPassword()" 216 ng-click="cambiarPassword()"
212 ng-show="edicion" 217 ng-show="edicion"
213 >Cambiar contraseña</button> 218 >Cambiar contraseña</button>
214 </div> 219 </div>
215 </div> 220 </div>
216 </form> 221 </form>
217 </div> 222 </div>
218 </div> 223 </div>