Commit 74b2e0cd80af9099098bc371d756ef5c6db49e9b

Authored by Luis Suarez
1 parent c75b3564d7
Exists in develop

validar dni al guardar

Showing 1 changed file with 1 additions and 1 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaAbmChofer') 1 angular.module('focaAbmChofer')
2 .controller('focaAbmChoferesController', [ 2 .controller('focaAbmChoferesController', [
3 '$scope', 'focaAbmChoferService', '$location', '$uibModal', 3 '$scope', 'focaAbmChoferService', '$location', '$uibModal',
4 'focaModalService', 'focaBotoneraLateralService', '$timeout', '$localStorage', 4 'focaModalService', 'focaBotoneraLateralService', '$timeout', '$localStorage',
5 '$routeParams', 5 '$routeParams',
6 function($scope, focaAbmChoferService, $location, $uibModal, focaModalService, 6 function($scope, focaAbmChoferService, $location, $uibModal, focaModalService,
7 focaBotoneraLateralService, $timeout, $localStorage, $routeParams) { 7 focaBotoneraLateralService, $timeout, $localStorage, $routeParams) {
8 8
9 $scope.focused = 1; 9 $scope.focused = 1;
10 $scope.now = new Date(); 10 $scope.now = new Date();
11 $scope.nuevo = $routeParams.id === '0'; 11 $scope.nuevo = $routeParams.id === '0';
12 $scope.filters = ''; 12 $scope.filters = '';
13 $scope.choferes = []; 13 $scope.choferes = [];
14 $scope.creando = false; 14 $scope.creando = false;
15 $scope.crear = false; 15 $scope.crear = false;
16 $scope.transportistas = []; 16 $scope.transportistas = [];
17 $scope.botonera = [{ 17 $scope.botonera = [{
18 label: 'Transportista', 18 label: 'Transportista',
19 image: 'cliente.png' 19 image: 'cliente.png'
20 }]; 20 }];
21 $scope.next = function(key) { 21 $scope.next = function(key) {
22 if (key === 13) $scope.focused++; 22 if (key === 13) $scope.focused++;
23 }; 23 };
24 24
25 //SETEO BOTONERA LATERAL 25 //SETEO BOTONERA LATERAL
26 $timeout(function() { 26 $timeout(function() {
27 focaBotoneraLateralService.showSalir(false); 27 focaBotoneraLateralService.showSalir(false);
28 focaBotoneraLateralService.showPausar(false); 28 focaBotoneraLateralService.showPausar(false);
29 focaBotoneraLateralService.showCancelar(false); 29 focaBotoneraLateralService.showCancelar(false);
30 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 30 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
31 focaBotoneraLateralService.addCustomButton('Salir', salir); 31 focaBotoneraLateralService.addCustomButton('Salir', salir);
32 }); 32 });
33 33
34 if (focaAbmChoferService.transportistaSeleccionado.COD) { 34 if (focaAbmChoferService.transportistaSeleccionado.COD) {
35 elegirTransportista(focaAbmChoferService.transportistaSeleccionado); 35 elegirTransportista(focaAbmChoferService.transportistaSeleccionado);
36 } 36 }
37 37
38 focaAbmChoferService.getTiposDocumento().then(function(res) { 38 focaAbmChoferService.getTiposDocumento().then(function(res) {
39 $scope.tiposDocumento = res.data; 39 $scope.tiposDocumento = res.data;
40 }); 40 });
41 41
42 $scope.crearChofer = function () { 42 $scope.crearChofer = function () {
43 var chofer = { 43 var chofer = {
44 id: 0, 44 id: 0,
45 nombre: '', 45 nombre: '',
46 telefono: '', 46 telefono: '',
47 editando: true, 47 editando: true,
48 desactivado: false 48 desactivado: false
49 }; 49 };
50 $scope.choferes.unshift(chofer); 50 $scope.choferes.unshift(chofer);
51 $scope.crear = false; 51 $scope.crear = false;
52 }; 52 };
53 53
54 $scope.editar = function(chofer) { 54 $scope.editar = function(chofer) {
55 $scope.choferes.forEach(function(chofer) { 55 $scope.choferes.forEach(function(chofer) {
56 chofer.editando = false; 56 chofer.editando = false;
57 $scope.crear = false; 57 $scope.crear = false;
58 }); 58 });
59 chofer.editando = true; 59 chofer.editando = true;
60 $scope.inicial = angular.copy(chofer); 60 $scope.inicial = angular.copy(chofer);
61 }; 61 };
62 62
63 $scope.agregarChofer = function (chofer) { 63 $scope.agregarChofer = function (chofer) {
64 if (!chofer.nombre) { 64 if (!chofer.nombre) {
65 focaModalService.alert('Ingrese nombre'); 65 focaModalService.alert('Ingrese nombre');
66 return; 66 return;
67 } else if (!chofer.idTipoDocumento) { 67 } else if (!chofer.idTipoDocumento) {
68 focaModalService.alert('Ingrese tipo documento'); 68 focaModalService.alert('Ingrese tipo documento');
69 return; 69 return;
70 } else if (!/^([\d]{7,10})$/.test(chofer.telefono)) { 70 } else if (!/^([\d]{7,10})$/.test(chofer.telefono)) {
71 focaModalService.alert('El campo Teléfono debe tener de 7 a 10 digitos'); 71 focaModalService.alert('El campo Teléfono debe tener de 7 a 10 digitos');
72 return 72 return
73 } else if (chofer.dni < 7 || chofer.dni > 12) { 73 } else if (chofer.dni.length < 7 || chofer.dni.length > 12) {
74 focaModalService.alert('El campo Documento debe tener de 7 a 12 digitos'); 74 focaModalService.alert('El campo Documento debe tener de 7 a 12 digitos');
75 return 75 return
76 } 76 }
77 validaDni(chofer); 77 validaDni(chofer);
78 console.log('Todo ok, guardar chofer'); 78 console.log('Todo ok, guardar chofer');
79 }; 79 };
80 80
81 $scope.tipoDocumento = function (idTipoDocumento) { 81 $scope.tipoDocumento = function (idTipoDocumento) {
82 var value = ''; 82 var value = '';
83 switch (parseInt(idTipoDocumento)) { 83 switch (parseInt(idTipoDocumento)) {
84 case 96 : 84 case 96 :
85 value = 'DNI'; 85 value = 'DNI';
86 break; 86 break;
87 case 80 : 87 case 80 :
88 value = 'CUIT'; 88 value = 'CUIT';
89 break; 89 break;
90 case 86 : 90 case 86 :
91 value = 'CUIL'; 91 value = 'CUIL';
92 break; 92 break;
93 default: 93 default:
94 value = ''; 94 value = '';
95 break; 95 break;
96 } 96 }
97 return value; 97 return value;
98 }; 98 };
99 99
100 $scope.volver = function (chofer, key) { 100 $scope.volver = function (chofer, key) {
101 if (chofer.idTransportista === undefined) { 101 if (chofer.idTransportista === undefined) {
102 $scope.choferes.shift(); 102 $scope.choferes.shift();
103 $scope.crear = true; 103 $scope.crear = true;
104 chofer.editando = false; 104 chofer.editando = false;
105 return; 105 return;
106 } else if (chofer.id !== 0 || !$scope.crear) { 106 } else if (chofer.id !== 0 || !$scope.crear) {
107 $scope.choferes[key] = $scope.inicial; 107 $scope.choferes[key] = $scope.inicial;
108 $scope.choferes[key].editando = false; 108 $scope.choferes[key].editando = false;
109 } 109 }
110 $scope.crear = true; 110 $scope.crear = true;
111 }; 111 };
112 112
113 $scope.guardar = function() { 113 $scope.guardar = function() {
114 $scope.choferes.forEach( function (chofer) { 114 $scope.choferes.forEach( function (chofer) {
115 if (chofer.id === 0) { 115 if (chofer.id === 0) {
116 delete chofer.id; 116 delete chofer.id;
117 } 117 }
118 delete chofer.transportista; 118 delete chofer.transportista;
119 delete chofer.editando; 119 delete chofer.editando;
120 }); 120 });
121 focaAbmChoferService 121 focaAbmChoferService
122 .guardarChoferes($scope.choferes) 122 .guardarChoferes($scope.choferes)
123 .then(salir) 123 .then(salir)
124 .catch(e => { 124 .catch(e => {
125 console.error(e); 125 console.error(e);
126 focaModalService.alert('Hubo un error al guardar'); 126 focaModalService.alert('Hubo un error al guardar');
127 }); 127 });
128 }; 128 };
129 129
130 $scope.solicitarConfirmacion = function(chofer) { 130 $scope.solicitarConfirmacion = function(chofer) {
131 focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + 131 focaModalService.confirm('¿Está seguro que desea borrar el chofer ' +
132 chofer.nombre + ' ?').then(function(confirmed) { 132 chofer.nombre + ' ?').then(function(confirmed) {
133 if (confirmed) { 133 if (confirmed) {
134 chofer.desactivado = true; 134 chofer.desactivado = true;
135 } 135 }
136 }); 136 });
137 }; 137 };
138 138
139 $scope.seleccionarTransportista = function() { 139 $scope.seleccionarTransportista = function() {
140 var parametrosModal = { 140 var parametrosModal = {
141 titulo: 'Búsqueda de Transportista', 141 titulo: 'Búsqueda de Transportista',
142 query: '/transportista', 142 query: '/transportista',
143 columnas: [ 143 columnas: [
144 { 144 {
145 nombre: 'Código', 145 nombre: 'Código',
146 propiedad: 'COD' 146 propiedad: 'COD'
147 }, 147 },
148 { 148 {
149 nombre: 'Nombre', 149 nombre: 'Nombre',
150 propiedad: 'NOM' 150 propiedad: 'NOM'
151 }, 151 },
152 { 152 {
153 nombre: 'CUIT', 153 nombre: 'CUIT',
154 propiedad: 'CUIT' 154 propiedad: 'CUIT'
155 } 155 }
156 ] 156 ]
157 }; 157 };
158 focaModalService.modal(parametrosModal).then( 158 focaModalService.modal(parametrosModal).then(
159 function(transportista) { 159 function(transportista) {
160 $scope.crear = true; 160 $scope.crear = true;
161 elegirTransportista(transportista); 161 elegirTransportista(transportista);
162 focaAbmChoferService.transportistaSeleccionado = transportista; 162 focaAbmChoferService.transportistaSeleccionado = transportista;
163 }, function() {} 163 }, function() {}
164 ); 164 );
165 }; 165 };
166 166
167 function elegirTransportista(transportista) { 167 function elegirTransportista(transportista) {
168 buscar(transportista.COD); 168 buscar(transportista.COD);
169 var codigo = ('00000' + transportista.COD).slice(-5); 169 var codigo = ('00000' + transportista.COD).slice(-5);
170 $scope.idTransportista = transportista.COD; 170 $scope.idTransportista = transportista.COD;
171 $timeout(function() { 171 $timeout(function() {
172 $scope.$broadcast('addCabecera', { 172 $scope.$broadcast('addCabecera', {
173 label: 'Transportista:', 173 label: 'Transportista:',
174 valor: codigo + ' - ' + transportista.NOM 174 valor: codigo + ' - ' + transportista.NOM
175 }); 175 });
176 }); 176 });
177 } 177 }
178 178
179 function buscar(id) { 179 function buscar(id) {
180 focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { 180 focaAbmChoferService.getChoferPorTransportista(id).then(function(res) {
181 $scope.choferes = res.data; 181 $scope.choferes = res.data;
182 }); 182 });
183 } 183 }
184 184
185 function salir() { 185 function salir() {
186 focaAbmChoferService.transportistaSeleccionado = {}; 186 focaAbmChoferService.transportistaSeleccionado = {};
187 $location.path('/'); 187 $location.path('/');
188 } 188 }
189 189
190 function validaDni(chofer) { 190 function validaDni(chofer) {
191 if (!chofer.dni) { 191 if (!chofer.dni) {
192 focaModalService.alert('Ingrese DNI'); 192 focaModalService.alert('Ingrese DNI');
193 return; 193 return;
194 } else if (!chofer.telefono) { 194 } else if (!chofer.telefono) {
195 focaModalService.alert('Ingrese teléfono'); 195 focaModalService.alert('Ingrese teléfono');
196 return; 196 return;
197 } 197 }
198 198
199 return new Promise(function(resolve, reject) { 199 return new Promise(function(resolve, reject) {
200 focaAbmChoferService 200 focaAbmChoferService
201 .getChoferPorDni(chofer.dni) 201 .getChoferPorDni(chofer.dni)
202 .then(function(res) { 202 .then(function(res) {
203 if (res.data.id && 203 if (res.data.id &&
204 chofer.id !== res.data.id) { 204 chofer.id !== res.data.id) {
205 reject(res.data); 205 reject(res.data);
206 } else { 206 } else {
207 resolve(); 207 resolve();
208 } 208 }
209 }) 209 })
210 .then(function() { 210 .then(function() {
211 chofer.idTransportista = focaAbmChoferService 211 chofer.idTransportista = focaAbmChoferService
212 .transportistaSeleccionado.COD; 212 .transportistaSeleccionado.COD;
213 delete chofer.transportista; 213 delete chofer.transportista;
214 }, function() { 214 }, function() {
215 focaModalService.alert('Dni existente'); 215 focaModalService.alert('Dni existente');
216 $scope.editando = true; 216 $scope.editando = true;
217 }); 217 });
218 $scope.crear = true; 218 $scope.crear = true;
219 chofer.editando = false; 219 chofer.editando = false;
220 }); 220 });
221 } 221 }
222 222
223 if ($localStorage.chofer) { 223 if ($localStorage.chofer) {
224 var chofer = JSON.parse($localStorage.chofer); 224 var chofer = JSON.parse($localStorage.chofer);
225 if (!chofer.id) { chofer.id = 0; } 225 if (!chofer.id) { chofer.id = 0; }
226 $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista); 226 $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista);
227 } 227 }
228 228
229 $scope.validarChoferNombre = function(chofer) { 229 $scope.validarChoferNombre = function(chofer) {
230 // No permito numero ni caracteres especiles en nombre de chofer 230 // No permito numero ni caracteres especiles en nombre de chofer
231 if (!/^([a-zA-ZÀ-ÿ ])*$/.test(chofer.nombre)) { 231 if (!/^([a-zA-ZÀ-ÿ ])*$/.test(chofer.nombre)) {
232 focaModalService.alert('el campo Nombre no debe incluir números o símbolos'); 232 focaModalService.alert('el campo Nombre no debe incluir números o símbolos');
233 chofer.nombre = ''; 233 chofer.nombre = '';
234 return 234 return
235 } 235 }
236 } 236 }
237 $scope.validarChoferDni = function(chofer) { 237 $scope.validarChoferDni = function(chofer) {
238 // Solo numeros en el campo documento 238 // Solo numeros en el campo documento
239 if (!/^([0-9])*$/.test(chofer.dni)) { 239 if (!/^([0-9])*$/.test(chofer.dni)) {
240 focaModalService.alert('el campo DNI solo puede incluir números'); 240 focaModalService.alert('el campo DNI solo puede incluir números');
241 chofer.dni = ''; 241 chofer.dni = '';
242 return 242 return
243 } 243 }
244 } 244 }
245 } 245 }
246 ]); 246 ]);
247 247