Commit c75b3564d778e874eabb76b457878ca536c7fa7a

Authored by Luis Suarez
1 parent dae6c344a1
Exists in develop

fix

Showing 1 changed file with 2 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 < 7 || chofer.dni > 12) {
74 focaModalService.alert('Ingrese un Documento válido'); 74 focaModalService.alert('El campo Documento debe tener de 7 a 12 digitos');
75 return
75 } 76 }
76 validaDni(chofer); 77 validaDni(chofer);
77 console.log('Todo ok, guardar chofer'); 78 console.log('Todo ok, guardar chofer');
78 }; 79 };
79 80
80 $scope.tipoDocumento = function (idTipoDocumento) { 81 $scope.tipoDocumento = function (idTipoDocumento) {
81 var value = ''; 82 var value = '';
82 switch (parseInt(idTipoDocumento)) { 83 switch (parseInt(idTipoDocumento)) {
83 case 96 : 84 case 96 :
84 value = 'DNI'; 85 value = 'DNI';
85 break; 86 break;
86 case 80 : 87 case 80 :
87 value = 'CUIT'; 88 value = 'CUIT';
88 break; 89 break;
89 case 86 : 90 case 86 :
90 value = 'CUIL'; 91 value = 'CUIL';
91 break; 92 break;
92 default: 93 default:
93 value = ''; 94 value = '';
94 break; 95 break;
95 } 96 }
96 return value; 97 return value;
97 }; 98 };
98 99
99 $scope.volver = function (chofer, key) { 100 $scope.volver = function (chofer, key) {
100 if (chofer.idTransportista === undefined) { 101 if (chofer.idTransportista === undefined) {
101 $scope.choferes.shift(); 102 $scope.choferes.shift();
102 $scope.crear = true; 103 $scope.crear = true;
103 chofer.editando = false; 104 chofer.editando = false;
104 return; 105 return;
105 } else if (chofer.id !== 0 || !$scope.crear) { 106 } else if (chofer.id !== 0 || !$scope.crear) {
106 $scope.choferes[key] = $scope.inicial; 107 $scope.choferes[key] = $scope.inicial;
107 $scope.choferes[key].editando = false; 108 $scope.choferes[key].editando = false;
108 } 109 }
109 $scope.crear = true; 110 $scope.crear = true;
110 }; 111 };
111 112
112 $scope.guardar = function() { 113 $scope.guardar = function() {
113 $scope.choferes.forEach( function (chofer) { 114 $scope.choferes.forEach( function (chofer) {
114 if (chofer.id === 0) { 115 if (chofer.id === 0) {
115 delete chofer.id; 116 delete chofer.id;
116 } 117 }
117 delete chofer.transportista; 118 delete chofer.transportista;
118 delete chofer.editando; 119 delete chofer.editando;
119 }); 120 });
120 focaAbmChoferService 121 focaAbmChoferService
121 .guardarChoferes($scope.choferes) 122 .guardarChoferes($scope.choferes)
122 .then(salir) 123 .then(salir)
123 .catch(e => { 124 .catch(e => {
124 console.error(e); 125 console.error(e);
125 focaModalService.alert('Hubo un error al guardar'); 126 focaModalService.alert('Hubo un error al guardar');
126 }); 127 });
127 }; 128 };
128 129
129 $scope.solicitarConfirmacion = function(chofer) { 130 $scope.solicitarConfirmacion = function(chofer) {
130 focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + 131 focaModalService.confirm('¿Está seguro que desea borrar el chofer ' +
131 chofer.nombre + ' ?').then(function(confirmed) { 132 chofer.nombre + ' ?').then(function(confirmed) {
132 if (confirmed) { 133 if (confirmed) {
133 chofer.desactivado = true; 134 chofer.desactivado = true;
134 } 135 }
135 }); 136 });
136 }; 137 };
137 138
138 $scope.seleccionarTransportista = function() { 139 $scope.seleccionarTransportista = function() {
139 var parametrosModal = { 140 var parametrosModal = {
140 titulo: 'Búsqueda de Transportista', 141 titulo: 'Búsqueda de Transportista',
141 query: '/transportista', 142 query: '/transportista',
142 columnas: [ 143 columnas: [
143 { 144 {
144 nombre: 'Código', 145 nombre: 'Código',
145 propiedad: 'COD' 146 propiedad: 'COD'
146 }, 147 },
147 { 148 {
148 nombre: 'Nombre', 149 nombre: 'Nombre',
149 propiedad: 'NOM' 150 propiedad: 'NOM'
150 }, 151 },
151 { 152 {
152 nombre: 'CUIT', 153 nombre: 'CUIT',
153 propiedad: 'CUIT' 154 propiedad: 'CUIT'
154 } 155 }
155 ] 156 ]
156 }; 157 };
157 focaModalService.modal(parametrosModal).then( 158 focaModalService.modal(parametrosModal).then(
158 function(transportista) { 159 function(transportista) {
159 $scope.crear = true; 160 $scope.crear = true;
160 elegirTransportista(transportista); 161 elegirTransportista(transportista);
161 focaAbmChoferService.transportistaSeleccionado = transportista; 162 focaAbmChoferService.transportistaSeleccionado = transportista;
162 }, function() {} 163 }, function() {}
163 ); 164 );
164 }; 165 };
165 166
166 function elegirTransportista(transportista) { 167 function elegirTransportista(transportista) {
167 buscar(transportista.COD); 168 buscar(transportista.COD);
168 var codigo = ('00000' + transportista.COD).slice(-5); 169 var codigo = ('00000' + transportista.COD).slice(-5);
169 $scope.idTransportista = transportista.COD; 170 $scope.idTransportista = transportista.COD;
170 $timeout(function() { 171 $timeout(function() {
171 $scope.$broadcast('addCabecera', { 172 $scope.$broadcast('addCabecera', {
172 label: 'Transportista:', 173 label: 'Transportista:',
173 valor: codigo + ' - ' + transportista.NOM 174 valor: codigo + ' - ' + transportista.NOM
174 }); 175 });
175 }); 176 });
176 } 177 }
177 178
178 function buscar(id) { 179 function buscar(id) {
179 focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { 180 focaAbmChoferService.getChoferPorTransportista(id).then(function(res) {
180 $scope.choferes = res.data; 181 $scope.choferes = res.data;
181 }); 182 });
182 } 183 }
183 184
184 function salir() { 185 function salir() {
185 focaAbmChoferService.transportistaSeleccionado = {}; 186 focaAbmChoferService.transportistaSeleccionado = {};
186 $location.path('/'); 187 $location.path('/');
187 } 188 }
188 189
189 function validaDni(chofer) { 190 function validaDni(chofer) {
190 if (!chofer.dni) { 191 if (!chofer.dni) {
191 focaModalService.alert('Ingrese DNI'); 192 focaModalService.alert('Ingrese DNI');
192 return; 193 return;
193 } else if (!chofer.telefono) { 194 } else if (!chofer.telefono) {
194 focaModalService.alert('Ingrese teléfono'); 195 focaModalService.alert('Ingrese teléfono');
195 return; 196 return;
196 } 197 }
197 198
198 return new Promise(function(resolve, reject) { 199 return new Promise(function(resolve, reject) {
199 focaAbmChoferService 200 focaAbmChoferService
200 .getChoferPorDni(chofer.dni) 201 .getChoferPorDni(chofer.dni)
201 .then(function(res) { 202 .then(function(res) {
202 if (res.data.id && 203 if (res.data.id &&
203 chofer.id !== res.data.id) { 204 chofer.id !== res.data.id) {
204 reject(res.data); 205 reject(res.data);
205 } else { 206 } else {
206 resolve(); 207 resolve();
207 } 208 }
208 }) 209 })
209 .then(function() { 210 .then(function() {
210 chofer.idTransportista = focaAbmChoferService 211 chofer.idTransportista = focaAbmChoferService
211 .transportistaSeleccionado.COD; 212 .transportistaSeleccionado.COD;
212 delete chofer.transportista; 213 delete chofer.transportista;
213 }, function() { 214 }, function() {
214 focaModalService.alert('Dni existente'); 215 focaModalService.alert('Dni existente');
215 $scope.editando = true; 216 $scope.editando = true;
216 }); 217 });
217 $scope.crear = true; 218 $scope.crear = true;
218 chofer.editando = false; 219 chofer.editando = false;
219 }); 220 });
220 } 221 }
221 222
222 if ($localStorage.chofer) { 223 if ($localStorage.chofer) {
223 var chofer = JSON.parse($localStorage.chofer); 224 var chofer = JSON.parse($localStorage.chofer);
224 if (!chofer.id) { chofer.id = 0; } 225 if (!chofer.id) { chofer.id = 0; }
225 $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista); 226 $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista);
226 } 227 }
227 228
228 $scope.validarChoferNombre = function(chofer) { 229 $scope.validarChoferNombre = function(chofer) {
229 // No permito numero ni caracteres especiles en nombre de chofer 230 // No permito numero ni caracteres especiles en nombre de chofer
230 if (!/^([a-zA-ZÀ-ÿ ])*$/.test(chofer.nombre)) { 231 if (!/^([a-zA-ZÀ-ÿ ])*$/.test(chofer.nombre)) {
231 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');
232 chofer.nombre = ''; 233 chofer.nombre = '';
233 return 234 return
234 } 235 }
235 } 236 }
236 $scope.validarChoferDni = function(chofer) { 237 $scope.validarChoferDni = function(chofer) {
237 // Solo numeros en el campo documento 238 // Solo numeros en el campo documento
238 if (!/^([0-9])*$/.test(chofer.dni)) { 239 if (!/^([0-9])*$/.test(chofer.dni)) {
239 focaModalService.alert('el campo DNI solo puede incluir números'); 240 focaModalService.alert('el campo DNI solo puede incluir números');
240 chofer.dni = ''; 241 chofer.dni = '';
241 return 242 return
242 } 243 }
243 } 244 }
244 } 245 }
245 ]); 246 ]);
246 247