Commit 47e1ae08628d87e754199fffb2589d8da905cdfa

Authored by Jose Pinto
1 parent 599e4038e5
Exists in master and in 1 other branch develop

ok espacios

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