Commit 0fe898fc64bb709031908db204e8b20a8f73440a

Authored by Luis Suarez
1 parent 401217953c
Exists in develop

fix

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