Commit 822f030d93439f9f160fc4b6d4d75435eca66347

Authored by Jose Pinto
1 parent 3bbfc92f71
Exists in master and in 1 other branch develop

reemplazo alert por modal

Showing 1 changed file with 1 additions and 1 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaBusquedaCliente') 1 angular.module('focaBusquedaCliente')
2 .controller('focaBusquedaClienteModalController', [ 2 .controller('focaBusquedaClienteModalController', [
3 '$uibModalInstance', 'focaBusquedaClienteService', '$scope', '$filter', 3 '$uibModalInstance', 'focaBusquedaClienteService', '$scope', '$filter',
4 '$uibModal', 'focaModalService', '$timeout', 4 '$uibModal', 'focaModalService', '$timeout',
5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter, 5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter,
6 $uibModal, focaModalService, $timeout) { 6 $uibModal, focaModalService, $timeout) {
7 7
8 $scope.filters = ''; 8 $scope.filters = '';
9 $scope.primerBusqueda = false; 9 $scope.primerBusqueda = false;
10 // pagination 10 // pagination
11 $scope.numPerPage = 10; 11 $scope.numPerPage = 10;
12 $scope.currentPage = 1; 12 $scope.currentPage = 1;
13 $scope.filteredClientes = []; 13 $scope.filteredClientes = [];
14 $scope.currentPageClientes = []; 14 $scope.currentPageClientes = [];
15 $scope.selectedClientes = -1; 15 $scope.selectedClientes = -1;
16 $scope.ingreso = false; 16 $scope.ingreso = false;
17 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g); 17 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g);
18 $scope.focused = 1; 18 $scope.focused = 1;
19 19
20 $scope.cliente = { 20 $scope.cliente = {
21 COD: 0, 21 COD: 0,
22 ES_MAY: true, 22 ES_MAY: true,
23 provincia: { 23 provincia: {
24 NOMBRE: '' 24 NOMBRE: ''
25 }, 25 },
26 localidad: { 26 localidad: {
27 NOMBRE: '' 27 NOMBRE: ''
28 }, 28 },
29 iva: { 29 iva: {
30 NOMBRE: '' 30 NOMBRE: ''
31 }, 31 },
32 actividad: { 32 actividad: {
33 NOM: '' 33 NOM: ''
34 }, 34 },
35 zona: { 35 zona: {
36 NOM: '' 36 NOM: ''
37 }, 37 },
38 tipoFactura: { 38 tipoFactura: {
39 NOMBRE: '' 39 NOMBRE: ''
40 }, 40 },
41 tipoComprobante: { 41 tipoComprobante: {
42 NOMBRE: '' 42 NOMBRE: ''
43 }, 43 },
44 formaPago: { 44 formaPago: {
45 NOMBRE: '' 45 NOMBRE: ''
46 } 46 }
47 }; 47 };
48 48
49 $scope.busquedaPress = function(key) { 49 $scope.busquedaPress = function(key) {
50 if (key === 13) { 50 if (key === 13) {
51 $scope.searchLoading = true; 51 $scope.searchLoading = true;
52 focaBusquedaClienteService.obtenerClientesPorNombreOCuit($scope.filters).then( 52 focaBusquedaClienteService.obtenerClientesPorNombreOCuit($scope.filters).then(
53 function(res) { 53 function(res) {
54 $scope.primerBusqueda = true; 54 $scope.primerBusqueda = true;
55 $scope.clientes = res.data; 55 $scope.clientes = res.data;
56 $scope.search(true); 56 $scope.search(true);
57 primera(); 57 primera();
58 $scope.searchLoading = false; 58 $scope.searchLoading = false;
59 }); 59 });
60 } 60 }
61 }; 61 };
62 62
63 $scope.search = function (pressed) { 63 $scope.search = function (pressed) {
64 if($scope.primerBusqueda) { 64 if($scope.primerBusqueda) {
65 $scope.filteredClientes = $filter('filter')( 65 $scope.filteredClientes = $filter('filter')(
66 $scope.clientes, {$: $scope.filters} 66 $scope.clientes, {$: $scope.filters}
67 ); 67 );
68 68
69 if(pressed && $scope.filteredClientes.length === 0){ 69 if(pressed && $scope.filteredClientes.length === 0){
70 $timeout(function() { 70 $timeout(function() {
71 angular.element('#search')[0].focus(); 71 angular.element('#search')[0].focus();
72 $scope.filters = ''; 72 $scope.filters = '';
73 }); 73 });
74 } 74 }
75 75
76 $scope.lastPage = Math.ceil( 76 $scope.lastPage = Math.ceil(
77 $scope.filteredClientes.length / $scope.numPerPage 77 $scope.filteredClientes.length / $scope.numPerPage
78 ); 78 );
79 79
80 $scope.resetPage(); 80 $scope.resetPage();
81 } 81 }
82 }; 82 };
83 83
84 $scope.resetPage = function () { 84 $scope.resetPage = function () {
85 $scope.currentPage = 1; 85 $scope.currentPage = 1;
86 $scope.selectPage(1); 86 $scope.selectPage(1);
87 }; 87 };
88 88
89 $scope.selectPage = function (page) { 89 $scope.selectPage = function (page) {
90 var start = (page - 1) * $scope.numPerPage; 90 var start = (page - 1) * $scope.numPerPage;
91 var end = start + $scope.numPerPage; 91 var end = start + $scope.numPerPage;
92 $scope.paginas = []; 92 $scope.paginas = [];
93 $scope.paginas = calcularPages(page); 93 $scope.paginas = calcularPages(page);
94 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end); 94 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end);
95 $scope.currentPage = page; 95 $scope.currentPage = page;
96 }; 96 };
97 97
98 $scope.select = function(cliente, esNuevo = false) { 98 $scope.select = function(cliente, esNuevo = false) {
99 cliente.esNuevo = esNuevo; 99 cliente.esNuevo = esNuevo;
100 $uibModalInstance.close(cliente); 100 $uibModalInstance.close(cliente);
101 }; 101 };
102 102
103 $scope.cancel = function() { 103 $scope.cancel = function() {
104 if($scope.ingreso) { 104 if($scope.ingreso) {
105 $scope.ingreso = false; 105 $scope.ingreso = false;
106 }else { 106 }else {
107 $uibModalInstance.dismiss('cancel'); 107 $uibModalInstance.dismiss('cancel');
108 } 108 }
109 }; 109 };
110 110
111 $scope.busquedaDown = function(key) { 111 $scope.busquedaDown = function(key) {
112 if (key === 40) { 112 if (key === 40) {
113 primera(key); 113 primera(key);
114 } 114 }
115 }; 115 };
116 116
117 $scope.itemCliente = function(key) { 117 $scope.itemCliente = function(key) {
118 if (key === 38) { 118 if (key === 38) {
119 anterior(key); 119 anterior(key);
120 } 120 }
121 121
122 if (key === 40) { 122 if (key === 40) {
123 siguiente(key); 123 siguiente(key);
124 } 124 }
125 125
126 if (key === 37) { 126 if (key === 37) {
127 retrocederPagina(); 127 retrocederPagina();
128 } 128 }
129 129
130 if (key === 39) { 130 if (key === 39) {
131 avanzarPagina(); 131 avanzarPagina();
132 } 132 }
133 }; 133 };
134 134
135 $scope.focus = function(val) { 135 $scope.focus = function(val) {
136 $scope.focused = val; 136 $scope.focused = val;
137 }; 137 };
138 138
139 $scope.next = function(key) { 139 $scope.next = function(key) {
140 if (key === 13) $scope.focused++; 140 if (key === 13) $scope.focused++;
141 }; 141 };
142 142
143 $scope.seleccionarProvincia = function(key) { 143 $scope.seleccionarProvincia = function(key) {
144 if(key === 13) { 144 if(key === 13) {
145 var modalInstance = $uibModal.open( 145 var modalInstance = $uibModal.open(
146 { 146 {
147 ariaLabelledBy: 'Búsqueda de provincias', 147 ariaLabelledBy: 'Búsqueda de provincias',
148 templateUrl: 'modal-provincias.html', 148 templateUrl: 'modal-provincias.html',
149 controller: 'focaModalProvinciaController', 149 controller: 'focaModalProvinciaController',
150 size: 'md', 150 size: 'md',
151 resolve: { 151 resolve: {
152 filters: function() { 152 filters: function() {
153 return $scope.cliente.provincia.NOMBRE; 153 return $scope.cliente.provincia.NOMBRE;
154 } 154 }
155 } 155 }
156 } 156 }
157 ); 157 );
158 modalInstance.result.then(function(provincia) { 158 modalInstance.result.then(function(provincia) {
159 $scope.cliente.provincia = provincia; 159 $scope.cliente.provincia = provincia;
160 $timeout(function() { 160 $timeout(function() {
161 $scope.focused = 5; 161 $scope.focused = 5;
162 }); 162 });
163 }, function() { 163 }, function() {
164 //TODO: función llamada cuando cancela el modal 164 //TODO: función llamada cuando cancela el modal
165 }); 165 });
166 } 166 }
167 }; 167 };
168 $scope.seleccionarLocalidad = function(key) { 168 $scope.seleccionarLocalidad = function(key) {
169 if($scope.cliente.provincia.ID === undefined) { 169 if($scope.cliente.provincia.ID === undefined) {
170 //TODO: Poner modal alert de foca 170 //TODO: Poner modal alert de foca
171 alert('Seleccione una provincia'); 171 focaModalService.alert('Seleccione una provincia');
172 return; 172 return;
173 } 173 }
174 if(key === 13) { 174 if(key === 13) {
175 var modalInstance = $uibModal.open( 175 var modalInstance = $uibModal.open(
176 { 176 {
177 ariaLabelledBy: 'Búsqueda de localidades', 177 ariaLabelledBy: 'Búsqueda de localidades',
178 templateUrl: 'modal-localidades.html', 178 templateUrl: 'modal-localidades.html',
179 controller: 'focaModalLocalidadController', 179 controller: 'focaModalLocalidadController',
180 size: 'md', 180 size: 'md',
181 resolve: { 181 resolve: {
182 filters: { 182 filters: {
183 idProvincia: $scope.cliente.provincia.ID, 183 idProvincia: $scope.cliente.provincia.ID,
184 busqueda: $scope.cliente.localidad.nombre 184 busqueda: $scope.cliente.localidad.nombre
185 } 185 }
186 } 186 }
187 } 187 }
188 ); 188 );
189 modalInstance.result.then(function(localidad) { 189 modalInstance.result.then(function(localidad) {
190 $scope.cliente.localidad = localidad; 190 $scope.cliente.localidad = localidad;
191 $timeout(function() { 191 $timeout(function() {
192 $scope.focused = 6; 192 $scope.focused = 6;
193 }); 193 });
194 }, function() { 194 }, function() {
195 //TODO: función llamada cuando cancela el modal 195 //TODO: función llamada cuando cancela el modal
196 }); 196 });
197 } 197 }
198 }; 198 };
199 $scope.seleccionarIva = function(key) { 199 $scope.seleccionarIva = function(key) {
200 if(key === 13) { 200 if(key === 13) {
201 var query = '/iva'; 201 var query = '/iva';
202 var columnas = { 202 var columnas = {
203 nombre: ['Código', 'Nombre'], 203 nombre: ['Código', 'Nombre'],
204 propiedad: ['ID', 'NOM',] 204 propiedad: ['ID', 'NOM',]
205 }; 205 };
206 var titulo = 'Búsqueda de responsabilidad ante el IVA'; 206 var titulo = 'Búsqueda de responsabilidad ante el IVA';
207 focaModalService.modal(columnas, query, titulo, 'md').then( 207 focaModalService.modal(columnas, query, titulo, 'md').then(
208 function(iva) { 208 function(iva) {
209 $scope.cliente.iva = iva; 209 $scope.cliente.iva = iva;
210 $timeout(function() { 210 $timeout(function() {
211 $scope.focused = 9; 211 $scope.focused = 9;
212 }); 212 });
213 }, function() { 213 }, function() {
214 // funcion ejecutada cuando se cancela el modal 214 // funcion ejecutada cuando se cancela el modal
215 }); 215 });
216 } 216 }
217 }; 217 };
218 $scope.seleccionarActividad = function(key) { 218 $scope.seleccionarActividad = function(key) {
219 if(key === 13) { 219 if(key === 13) {
220 var query = '/actividad'; 220 var query = '/actividad';
221 var columnas = { 221 var columnas = {
222 nombre: ['Código', 'Nombre'], 222 nombre: ['Código', 'Nombre'],
223 propiedad: ['ID', 'NOM',] 223 propiedad: ['ID', 'NOM',]
224 }; 224 };
225 var titulo = 'Búsqueda de actividades'; 225 var titulo = 'Búsqueda de actividades';
226 focaModalService.modal(columnas, query, titulo, 'md').then( 226 focaModalService.modal(columnas, query, titulo, 'md').then(
227 function(actividad) { 227 function(actividad) {
228 $scope.cliente.actividad = actividad; 228 $scope.cliente.actividad = actividad;
229 }, function() { 229 }, function() {
230 // funcion ejecutada cuando se cancela el modal 230 // funcion ejecutada cuando se cancela el modal
231 }); 231 });
232 } 232 }
233 }; 233 };
234 $scope.seleccionarZona = function(key) { 234 $scope.seleccionarZona = function(key) {
235 if(key === 13) { 235 if(key === 13) {
236 var query = '/zona'; 236 var query = '/zona';
237 var columnas = { 237 var columnas = {
238 nombre: ['Código', 'Nombre'], 238 nombre: ['Código', 'Nombre'],
239 propiedad: ['ID', 'NOM',] 239 propiedad: ['ID', 'NOM',]
240 }; 240 };
241 var titulo = 'Búsqueda de zonas'; 241 var titulo = 'Búsqueda de zonas';
242 focaModalService.modal(columnas, query, titulo, 'md').then( 242 focaModalService.modal(columnas, query, titulo, 'md').then(
243 function(zona) { 243 function(zona) {
244 $scope.cliente.zona = zona; 244 $scope.cliente.zona = zona;
245 $timeout(function() { 245 $timeout(function() {
246 $scope.focused = 7; 246 $scope.focused = 7;
247 }); 247 });
248 }, function() { 248 }, function() {
249 // funcion ejecutada cuando se cancela el modal 249 // funcion ejecutada cuando se cancela el modal
250 }); 250 });
251 } 251 }
252 }; 252 };
253 $scope.seleccionarTipoFactura = function(key) { 253 $scope.seleccionarTipoFactura = function(key) {
254 if(key === 13) { 254 if(key === 13) {
255 var query = '/tipo-factura'; 255 var query = '/tipo-factura';
256 var columnas = { 256 var columnas = {
257 nombre: ['Código', 'Nombre'], 257 nombre: ['Código', 'Nombre'],
258 propiedad: ['ID', 'NOMBRE',] 258 propiedad: ['ID', 'NOMBRE',]
259 }; 259 };
260 var titulo = 'Búsqueda de tipos de factura'; 260 var titulo = 'Búsqueda de tipos de factura';
261 focaModalService.modal(columnas, query, titulo, 'md').then( 261 focaModalService.modal(columnas, query, titulo, 'md').then(
262 function(tipoFactura) { 262 function(tipoFactura) {
263 $scope.cliente.tipoFactura = tipoFactura; 263 $scope.cliente.tipoFactura = tipoFactura;
264 $timeout(function() { 264 $timeout(function() {
265 $scope.focused = 10; 265 $scope.focused = 10;
266 }); 266 });
267 }, function() { 267 }, function() {
268 // funcion ejecutada cuando se cancela el modal 268 // funcion ejecutada cuando se cancela el modal
269 }); 269 });
270 } 270 }
271 }; 271 };
272 $scope.seleccionarTipoComprobante = function(key) { 272 $scope.seleccionarTipoComprobante = function(key) {
273 if(key === 13) { 273 if(key === 13) {
274 var query = '/tipo-comprobante'; 274 var query = '/tipo-comprobante';
275 var columnas = { 275 var columnas = {
276 nombre: ['Código', 'Nombre'], 276 nombre: ['Código', 'Nombre'],
277 propiedad: ['ID', 'NOMBRE',] 277 propiedad: ['ID', 'NOMBRE',]
278 }; 278 };
279 var titulo = 'Búsqueda de tipos de comprobante'; 279 var titulo = 'Búsqueda de tipos de comprobante';
280 focaModalService.modal(columnas, query, titulo, 'md').then( 280 focaModalService.modal(columnas, query, titulo, 'md').then(
281 function(tipoComprobante) { 281 function(tipoComprobante) {
282 $scope.cliente.tipoComprobante = tipoComprobante; 282 $scope.cliente.tipoComprobante = tipoComprobante;
283 $timeout(function() { 283 $timeout(function() {
284 $scope.focused = 12; 284 $scope.focused = 12;
285 }); 285 });
286 }, function() { 286 }, function() {
287 // funcion ejecutada cuando se cancela el modal 287 // funcion ejecutada cuando se cancela el modal
288 }); 288 });
289 } 289 }
290 }; 290 };
291 $scope.seleccionarFormaPago = function(key) { 291 $scope.seleccionarFormaPago = function(key) {
292 if(key === 13) { 292 if(key === 13) {
293 var query = '/forma-pago'; 293 var query = '/forma-pago';
294 var columnas = { 294 var columnas = {
295 nombre: ['Código', 'Nombre'], 295 nombre: ['Código', 'Nombre'],
296 propiedad: ['ID', 'NOMBRE',] 296 propiedad: ['ID', 'NOMBRE',]
297 }; 297 };
298 var titulo = 'Búsqueda de formas de pago'; 298 var titulo = 'Búsqueda de formas de pago';
299 focaModalService.modal(columnas, query, titulo, 'md').then( 299 focaModalService.modal(columnas, query, titulo, 'md').then(
300 function(formaPago) { 300 function(formaPago) {
301 $scope.cliente.formaPago = formaPago; 301 $scope.cliente.formaPago = formaPago;
302 }, function() { 302 }, function() {
303 // funcion ejecutada cuando se cancela el modal 303 // funcion ejecutada cuando se cancela el modal
304 }); 304 });
305 } 305 }
306 }; 306 };
307 307
308 $scope.guardar = function() { 308 $scope.guardar = function() {
309 309
310 $scope.cliente.PCX = $scope.cliente.provincia.ID; 310 $scope.cliente.PCX = $scope.cliente.provincia.ID;
311 $scope.cliente.LOX = $scope.cliente.localidad.ID; 311 $scope.cliente.LOX = $scope.cliente.localidad.ID;
312 $scope.cliente.IVA = $scope.cliente.iva.ID; 312 $scope.cliente.IVA = $scope.cliente.iva.ID;
313 $scope.cliente.ACT = $scope.cliente.actividad.ID; 313 $scope.cliente.ACT = $scope.cliente.actividad.ID;
314 $scope.cliente.ZON = $scope.cliente.zona.ID; 314 $scope.cliente.ZON = $scope.cliente.zona.ID;
315 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID; 315 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID;
316 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID; 316 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID;
317 $scope.cliente.FPA = $scope.cliente.formaPago.ID; 317 $scope.cliente.FPA = $scope.cliente.formaPago.ID;
318 318
319 delete $scope.cliente.provincia; 319 delete $scope.cliente.provincia;
320 delete $scope.cliente.localidad; 320 delete $scope.cliente.localidad;
321 delete $scope.cliente.iva; 321 delete $scope.cliente.iva;
322 delete $scope.cliente.actividad; 322 delete $scope.cliente.actividad;
323 delete $scope.cliente.zona; 323 delete $scope.cliente.zona;
324 delete $scope.cliente.tipoFactura; 324 delete $scope.cliente.tipoFactura;
325 delete $scope.cliente.tipoComprobante; 325 delete $scope.cliente.tipoComprobante;
326 delete $scope.cliente.formaPago; 326 delete $scope.cliente.formaPago;
327 327
328 focaBusquedaClienteService.guardarCliente($scope.cliente).then(function(res) { 328 focaBusquedaClienteService.guardarCliente($scope.cliente).then(function(res) {
329 var cliente = { 329 var cliente = {
330 cod: res.data.COD, 330 cod: res.data.COD,
331 cuit: res.data.CUIT, 331 cuit: res.data.CUIT,
332 esNuevo: res.data.esNuevo, 332 esNuevo: res.data.esNuevo,
333 nom: res.data.NOM 333 nom: res.data.NOM
334 }; 334 };
335 $scope.select(cliente, true); 335 $scope.select(cliente, true);
336 }); 336 });
337 }; 337 };
338 338
339 function calcularPages(paginaActual) { 339 function calcularPages(paginaActual) {
340 var paginas = []; 340 var paginas = [];
341 paginas.push(paginaActual); 341 paginas.push(paginaActual);
342 342
343 if (paginaActual - 1 > 1) { 343 if (paginaActual - 1 > 1) {
344 344
345 paginas.unshift(paginaActual - 1); 345 paginas.unshift(paginaActual - 1);
346 if (paginaActual - 2 > 1) { 346 if (paginaActual - 2 > 1) {
347 paginas.unshift(paginaActual - 2); 347 paginas.unshift(paginaActual - 2);
348 } 348 }
349 } 349 }
350 350
351 if (paginaActual + 1 < $scope.lastPage) { 351 if (paginaActual + 1 < $scope.lastPage) {
352 paginas.push(paginaActual + 1); 352 paginas.push(paginaActual + 1);
353 if (paginaActual + 2 < $scope.lastPage) { 353 if (paginaActual + 2 < $scope.lastPage) {
354 paginas.push(paginaActual + 2); 354 paginas.push(paginaActual + 2);
355 } 355 }
356 } 356 }
357 357
358 if (paginaActual !== 1) { 358 if (paginaActual !== 1) {
359 paginas.unshift(1); 359 paginas.unshift(1);
360 } 360 }
361 361
362 if (paginaActual !== $scope.lastPage) { 362 if (paginaActual !== $scope.lastPage) {
363 paginas.push($scope.lastPage); 363 paginas.push($scope.lastPage);
364 } 364 }
365 365
366 return paginas; 366 return paginas;
367 } 367 }
368 368
369 function primera() { 369 function primera() {
370 $scope.selectedClientes = 0; 370 $scope.selectedClientes = 0;
371 } 371 }
372 372
373 function anterior() { 373 function anterior() {
374 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 374 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
375 retrocederPagina(); 375 retrocederPagina();
376 } else { 376 } else {
377 $scope.selectedClientes--; 377 $scope.selectedClientes--;
378 } 378 }
379 } 379 }
380 380
381 function siguiente() { 381 function siguiente() {
382 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) { 382 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) {
383 $scope.selectedClientes++; 383 $scope.selectedClientes++;
384 } else { 384 } else {
385 avanzarPagina(); 385 avanzarPagina();
386 } 386 }
387 } 387 }
388 388
389 function retrocederPagina() { 389 function retrocederPagina() {
390 if ($scope.currentPage > 1) { 390 if ($scope.currentPage > 1) {
391 $scope.selectPage($scope.currentPage - 1); 391 $scope.selectPage($scope.currentPage - 1);
392 $scope.selectedClientes = $scope.numPerPage - 1; 392 $scope.selectedClientes = $scope.numPerPage - 1;
393 } 393 }
394 } 394 }
395 395
396 function avanzarPagina() { 396 function avanzarPagina() {
397 if ($scope.currentPage < $scope.lastPage) { 397 if ($scope.currentPage < $scope.lastPage) {
398 $scope.selectPage($scope.currentPage + 1); 398 $scope.selectPage($scope.currentPage + 1);
399 $scope.selectedClientes = 0; 399 $scope.selectedClientes = 0;
400 } 400 }
401 } 401 }
402 } 402 }
403 ]); 403 ]);
404 404