Commit c2b00fff1b1f27d9813454b9e8f98ad176d43f8d

Authored by Jose Pinto
1 parent 550a67ae11
Exists in master

busca clientes por vendedor

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', 'vendedor',
5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter, 5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter,
6 $uibModal, focaModalService, $timeout) { 6 $uibModal, focaModalService, $timeout, vendedor) {
7 7
8 $scope.vendedor = vendedor;
8 $scope.filters = ''; 9 $scope.filters = '';
9 $scope.primerBusqueda = false; 10 $scope.primerBusqueda = false;
10 // pagination 11 // pagination
11 $scope.numPerPage = 10; 12 $scope.numPerPage = 10;
12 $scope.currentPage = 1; 13 $scope.currentPage = 1;
13 $scope.filteredClientes = []; 14 $scope.filteredClientes = [];
14 $scope.currentPageClientes = []; 15 $scope.currentPageClientes = [];
15 $scope.selectedClientes = -1; 16 $scope.selectedClientes = -1;
16 $scope.ingreso = false; 17 $scope.ingreso = false;
17 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g); 18 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g);
18 $scope.focused = 1; 19 $scope.focused = 1;
19 20
20 $scope.cliente = { 21 $scope.cliente = {
21 COD: 0, 22 COD: 0,
22 ES_MAY: true, 23 ES_MAY: true,
23 provincia: { 24 provincia: {
24 NOMBRE: '' 25 NOMBRE: ''
25 }, 26 },
26 localidad: { 27 localidad: {
27 NOMBRE: '' 28 NOMBRE: ''
28 }, 29 },
29 iva: { 30 iva: {
30 NOMBRE: '' 31 NOMBRE: ''
31 }, 32 },
32 actividad: { 33 actividad: {
33 NOM: '' 34 NOM: ''
34 }, 35 },
35 zona: { 36 zona: {
36 NOM: '' 37 NOM: ''
37 }, 38 },
38 tipoFactura: { 39 tipoFactura: {
39 NOMBRE: '' 40 NOMBRE: ''
40 }, 41 },
41 tipoComprobante: { 42 tipoComprobante: {
42 NOMBRE: '' 43 NOMBRE: ''
43 }, 44 },
44 formaPago: { 45 formaPago: {
45 NOMBRE: '' 46 NOMBRE: ''
46 } 47 }
47 }; 48 };
48 49
49 $scope.busquedaPress = function(key) { 50 $scope.busquedaPress = function(key) {
50 if (key === 13) { 51 if (key === 13) {
51 $scope.searchLoading = true; 52 $scope.searchLoading = true;
52 focaBusquedaClienteService.obtenerClientesPorNombreOCuit($scope.filters).then( 53 focaBusquedaClienteService
53 function(res) { 54 .obtenerClientesPorNombreOCuit($scope.filters, vendedor.CodVen)
54 $scope.primerBusqueda = true; 55 .then(
55 $scope.clientes = res.data; 56 function(res) {
56 $scope.search(true); 57 $scope.primerBusqueda = true;
57 primera(); 58 $scope.clientes = res.data;
58 $scope.searchLoading = false; 59 $scope.search(true);
60 primera();
61 $scope.searchLoading = false;
59 }); 62 });
60 } 63 }
61 }; 64 };
62 65
63 $scope.search = function (pressed) { 66 $scope.search = function (pressed) {
64 if($scope.primerBusqueda) { 67 if($scope.primerBusqueda) {
65 $scope.filteredClientes = $filter('filter')( 68 $scope.filteredClientes = $filter('filter')(
66 $scope.clientes, {$: $scope.filters} 69 $scope.clientes, {$: $scope.filters}
67 ); 70 );
68 71
69 if(pressed && $scope.filteredClientes.length === 0){ 72 if(pressed && $scope.filteredClientes.length === 0){
70 $timeout(function() { 73 $timeout(function() {
71 angular.element('#search')[0].focus(); 74 angular.element('#search')[0].focus();
72 $scope.filters = ''; 75 $scope.filters = '';
73 }); 76 });
74 } 77 }
75 78
76 $scope.lastPage = Math.ceil( 79 $scope.lastPage = Math.ceil(
77 $scope.filteredClientes.length / $scope.numPerPage 80 $scope.filteredClientes.length / $scope.numPerPage
78 ); 81 );
79 82
80 $scope.resetPage(); 83 $scope.resetPage();
81 } 84 }
82 }; 85 };
83 86
84 $scope.resetPage = function () { 87 $scope.resetPage = function () {
85 $scope.currentPage = 1; 88 $scope.currentPage = 1;
86 $scope.selectPage(1); 89 $scope.selectPage(1);
87 }; 90 };
88 91
89 $scope.selectPage = function (page) { 92 $scope.selectPage = function (page) {
90 var start = (page - 1) * $scope.numPerPage; 93 var start = (page - 1) * $scope.numPerPage;
91 var end = start + $scope.numPerPage; 94 var end = start + $scope.numPerPage;
92 $scope.paginas = []; 95 $scope.paginas = [];
93 $scope.paginas = calcularPages(page); 96 $scope.paginas = calcularPages(page);
94 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end); 97 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end);
95 $scope.currentPage = page; 98 $scope.currentPage = page;
96 }; 99 };
97 100
98 $scope.select = function(cliente, esNuevo = false) { 101 $scope.select = function(cliente, esNuevo = false) {
99 cliente.esNuevo = esNuevo; 102 cliente.esNuevo = esNuevo;
100 $uibModalInstance.close(cliente); 103 $uibModalInstance.close(cliente);
101 }; 104 };
102 105
103 $scope.cancel = function() { 106 $scope.cancel = function() {
104 if($scope.ingreso) { 107 if($scope.ingreso) {
105 $scope.ingreso = false; 108 $scope.ingreso = false;
106 }else { 109 }else {
107 $uibModalInstance.dismiss('cancel'); 110 $uibModalInstance.dismiss('cancel');
108 } 111 }
109 }; 112 };
110 113
111 $scope.busquedaDown = function(key) { 114 $scope.busquedaDown = function(key) {
112 if (key === 40) { 115 if (key === 40) {
113 primera(key); 116 primera(key);
114 } 117 }
115 }; 118 };
116 119
117 $scope.itemCliente = function(key) { 120 $scope.itemCliente = function(key) {
118 if (key === 38) { 121 if (key === 38) {
119 anterior(key); 122 anterior(key);
120 } 123 }
121 124
122 if (key === 40) { 125 if (key === 40) {
123 siguiente(key); 126 siguiente(key);
124 } 127 }
125 128
126 if (key === 37) { 129 if (key === 37) {
127 retrocederPagina(); 130 retrocederPagina();
128 } 131 }
129 132
130 if (key === 39) { 133 if (key === 39) {
131 avanzarPagina(); 134 avanzarPagina();
132 } 135 }
133 }; 136 };
134 137
135 $scope.focus = function(val) { 138 $scope.focus = function(val) {
136 $scope.focused = val; 139 $scope.focused = val;
137 }; 140 };
138 141
139 $scope.next = function(key) { 142 $scope.next = function(key) {
140 if (key === 13) $scope.focused++; 143 if (key === 13) $scope.focused++;
141 }; 144 };
142 145
143 $scope.seleccionarProvincia = function(key) { 146 $scope.seleccionarProvincia = function(key) {
144 if(key === 13) { 147 if(key === 13) {
145 var modalInstance = $uibModal.open( 148 var modalInstance = $uibModal.open(
146 { 149 {
147 ariaLabelledBy: 'Búsqueda de provincias', 150 ariaLabelledBy: 'Búsqueda de provincias',
148 templateUrl: 'modal-provincias.html', 151 templateUrl: 'modal-provincias.html',
149 controller: 'focaModalProvinciaController', 152 controller: 'focaModalProvinciaController',
150 size: 'md', 153 size: 'md',
151 resolve: { 154 resolve: {
152 filters: function() { 155 filters: function() {
153 return $scope.cliente.provincia.NOMBRE; 156 return $scope.cliente.provincia.NOMBRE;
154 } 157 }
155 } 158 }
156 } 159 }
157 ); 160 );
158 modalInstance.result.then(function(provincia) { 161 modalInstance.result.then(function(provincia) {
159 $scope.cliente.provincia = provincia; 162 $scope.cliente.provincia = provincia;
160 $timeout(function() { 163 $timeout(function() {
161 $scope.focused = 5; 164 $scope.focused = 5;
162 }); 165 });
163 }, function() { 166 }, function() {
164 //TODO: función llamada cuando cancela el modal 167 //TODO: función llamada cuando cancela el modal
165 }); 168 });
166 } 169 }
167 }; 170 };
168 $scope.seleccionarLocalidad = function(key) { 171 $scope.seleccionarLocalidad = function(key) {
169 if($scope.cliente.provincia.ID === undefined) { 172 if($scope.cliente.provincia.ID === undefined) {
170 focaModalService.alert('Seleccione una provincia'); 173 focaModalService.alert('Seleccione una provincia');
171 return; 174 return;
172 } 175 }
173 if(key === 13) { 176 if(key === 13) {
174 var modalInstance = $uibModal.open( 177 var modalInstance = $uibModal.open(
175 { 178 {
176 ariaLabelledBy: 'Búsqueda de localidades', 179 ariaLabelledBy: 'Búsqueda de localidades',
177 templateUrl: 'modal-localidades.html', 180 templateUrl: 'modal-localidades.html',
178 controller: 'focaModalLocalidadController', 181 controller: 'focaModalLocalidadController',
179 size: 'md', 182 size: 'md',
180 resolve: { 183 resolve: {
181 filters: { 184 filters: {
182 idProvincia: $scope.cliente.provincia.ID, 185 idProvincia: $scope.cliente.provincia.ID,
183 busqueda: $scope.cliente.localidad.nombre 186 busqueda: $scope.cliente.localidad.nombre
184 } 187 }
185 } 188 }
186 } 189 }
187 ); 190 );
188 modalInstance.result.then(function(localidad) { 191 modalInstance.result.then(function(localidad) {
189 $scope.cliente.localidad = localidad; 192 $scope.cliente.localidad = localidad;
190 $timeout(function() { 193 $timeout(function() {
191 $scope.focused = 6; 194 $scope.focused = 6;
192 }); 195 });
193 }, function() { 196 }, function() {
194 //TODO: función llamada cuando cancela el modal 197 //TODO: función llamada cuando cancela el modal
195 }); 198 });
196 } 199 }
197 }; 200 };
198 $scope.seleccionarIva = function(key) { 201 $scope.seleccionarIva = function(key) {
199 if(key === 13) { 202 if(key === 13) {
200 var query = '/iva'; 203 var query = '/iva';
201 var columnas = { 204 var columnas = {
202 nombre: ['Código', 'Nombre'], 205 nombre: ['Código', 'Nombre'],
203 propiedad: ['ID', 'NOM',] 206 propiedad: ['ID', 'NOM',]
204 }; 207 };
205 var titulo = 'Búsqueda de responsabilidad ante el IVA'; 208 var titulo = 'Búsqueda de responsabilidad ante el IVA';
206 focaModalService.modal(columnas, query, titulo, 'md').then( 209 focaModalService.modal(columnas, query, titulo, 'md').then(
207 function(iva) { 210 function(iva) {
208 $scope.cliente.iva = iva; 211 $scope.cliente.iva = iva;
209 $timeout(function() { 212 $timeout(function() {
210 $scope.focused = 9; 213 $scope.focused = 9;
211 }); 214 });
212 }, function() { 215 }, function() {
213 // funcion ejecutada cuando se cancela el modal 216 // funcion ejecutada cuando se cancela el modal
214 }); 217 });
215 } 218 }
216 }; 219 };
217 $scope.seleccionarActividad = function(key) { 220 $scope.seleccionarActividad = function(key) {
218 if(key === 13) { 221 if(key === 13) {
219 var query = '/actividad'; 222 var query = '/actividad';
220 var columnas = { 223 var columnas = {
221 nombre: ['Código', 'Nombre'], 224 nombre: ['Código', 'Nombre'],
222 propiedad: ['ID', 'NOM',] 225 propiedad: ['ID', 'NOM',]
223 }; 226 };
224 var titulo = 'Búsqueda de actividades'; 227 var titulo = 'Búsqueda de actividades';
225 focaModalService.modal(columnas, query, titulo, 'md').then( 228 focaModalService.modal(columnas, query, titulo, 'md').then(
226 function(actividad) { 229 function(actividad) {
227 $scope.cliente.actividad = actividad; 230 $scope.cliente.actividad = actividad;
228 }, function() { 231 }, function() {
229 // funcion ejecutada cuando se cancela el modal 232 // funcion ejecutada cuando se cancela el modal
230 }); 233 });
231 } 234 }
232 }; 235 };
233 $scope.seleccionarZona = function(key) { 236 $scope.seleccionarZona = function(key) {
234 if(key === 13) { 237 if(key === 13) {
235 var query = '/zona'; 238 var query = '/zona';
236 var columnas = { 239 var columnas = {
237 nombre: ['Código', 'Nombre'], 240 nombre: ['Código', 'Nombre'],
238 propiedad: ['ID', 'NOM',] 241 propiedad: ['ID', 'NOM',]
239 }; 242 };
240 var titulo = 'Búsqueda de zonas'; 243 var titulo = 'Búsqueda de zonas';
241 focaModalService.modal(columnas, query, titulo, 'md').then( 244 focaModalService.modal(columnas, query, titulo, 'md').then(
242 function(zona) { 245 function(zona) {
243 $scope.cliente.zona = zona; 246 $scope.cliente.zona = zona;
244 $timeout(function() { 247 $timeout(function() {
245 $scope.focused = 7; 248 $scope.focused = 7;
246 }); 249 });
247 }, function() { 250 }, function() {
248 // funcion ejecutada cuando se cancela el modal 251 // funcion ejecutada cuando se cancela el modal
249 }); 252 });
250 } 253 }
251 }; 254 };
252 $scope.seleccionarTipoFactura = function(key) { 255 $scope.seleccionarTipoFactura = function(key) {
253 if(key === 13) { 256 if(key === 13) {
254 var query = '/tipo-factura'; 257 var query = '/tipo-factura';
255 var columnas = { 258 var columnas = {
256 nombre: ['Código', 'Nombre'], 259 nombre: ['Código', 'Nombre'],
257 propiedad: ['ID', 'NOMBRE',] 260 propiedad: ['ID', 'NOMBRE',]
258 }; 261 };
259 var titulo = 'Búsqueda de tipos de factura'; 262 var titulo = 'Búsqueda de tipos de factura';
260 focaModalService.modal(columnas, query, titulo, 'md').then( 263 focaModalService.modal(columnas, query, titulo, 'md').then(
261 function(tipoFactura) { 264 function(tipoFactura) {
262 $scope.cliente.tipoFactura = tipoFactura; 265 $scope.cliente.tipoFactura = tipoFactura;
263 $timeout(function() { 266 $timeout(function() {
264 $scope.focused = 10; 267 $scope.focused = 10;
265 }); 268 });
266 }, function() { 269 }, function() {
267 // funcion ejecutada cuando se cancela el modal 270 // funcion ejecutada cuando se cancela el modal
268 }); 271 });
269 } 272 }
270 }; 273 };
271 $scope.seleccionarTipoComprobante = function(key) { 274 $scope.seleccionarTipoComprobante = function(key) {
272 if(key === 13) { 275 if(key === 13) {
273 var query = '/tipo-comprobante'; 276 var query = '/tipo-comprobante';
274 var columnas = { 277 var columnas = {
275 nombre: ['Código', 'Nombre'], 278 nombre: ['Código', 'Nombre'],
276 propiedad: ['ID', 'NOMBRE',] 279 propiedad: ['ID', 'NOMBRE',]
277 }; 280 };
278 var titulo = 'Búsqueda de tipos de comprobante'; 281 var titulo = 'Búsqueda de tipos de comprobante';
279 focaModalService.modal(columnas, query, titulo, 'md').then( 282 focaModalService.modal(columnas, query, titulo, 'md').then(
280 function(tipoComprobante) { 283 function(tipoComprobante) {
281 $scope.cliente.tipoComprobante = tipoComprobante; 284 $scope.cliente.tipoComprobante = tipoComprobante;
282 $timeout(function() { 285 $timeout(function() {
283 $scope.focused = 12; 286 $scope.focused = 12;
284 }); 287 });
285 }, function() { 288 }, function() {
286 // funcion ejecutada cuando se cancela el modal 289 // funcion ejecutada cuando se cancela el modal
287 }); 290 });
288 } 291 }
289 }; 292 };
290 $scope.seleccionarFormaPago = function(key) { 293 $scope.seleccionarFormaPago = function(key) {
291 if(key === 13) { 294 if(key === 13) {
292 var query = '/forma-pago'; 295 var query = '/forma-pago';
293 var columnas = { 296 var columnas = {
294 nombre: ['Código', 'Nombre'], 297 nombre: ['Código', 'Nombre'],
295 propiedad: ['ID', 'NOMBRE',] 298 propiedad: ['ID', 'NOMBRE',]
296 }; 299 };
297 var titulo = 'Búsqueda de formas de pago'; 300 var titulo = 'Búsqueda de formas de pago';
298 focaModalService.modal(columnas, query, titulo, 'md').then( 301 focaModalService.modal(columnas, query, titulo, 'md').then(
299 function(formaPago) { 302 function(formaPago) {
300 $scope.cliente.formaPago = formaPago; 303 $scope.cliente.formaPago = formaPago;
301 }, function() { 304 }, function() {
302 // funcion ejecutada cuando se cancela el modal 305 // funcion ejecutada cuando se cancela el modal
303 }); 306 });
304 } 307 }
305 }; 308 };
306 309
307 $scope.guardar = function() { 310 $scope.guardar = function() {
308 311
309 $scope.cliente.PCX = $scope.cliente.provincia.ID; 312 $scope.cliente.PCX = $scope.cliente.provincia.ID;
310 $scope.cliente.LOX = $scope.cliente.localidad.ID; 313 $scope.cliente.LOX = $scope.cliente.localidad.ID;
311 $scope.cliente.IVA = $scope.cliente.iva.ID; 314 $scope.cliente.IVA = $scope.cliente.iva.ID;
312 $scope.cliente.ACT = $scope.cliente.actividad.ID; 315 $scope.cliente.ACT = $scope.cliente.actividad.ID;
313 $scope.cliente.ZON = $scope.cliente.zona.ID; 316 $scope.cliente.ZON = $scope.cliente.zona.ID;
314 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID; 317 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID;
315 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID; 318 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID;
316 $scope.cliente.FPA = $scope.cliente.formaPago.ID; 319 $scope.cliente.FPA = $scope.cliente.formaPago.ID;
320 $scope.cliente.VEN = $scope.vendedor.CodVen;
317 321
318 delete $scope.cliente.provincia; 322 delete $scope.cliente.provincia;
319 delete $scope.cliente.localidad; 323 delete $scope.cliente.localidad;
320 delete $scope.cliente.iva; 324 delete $scope.cliente.iva;
321 delete $scope.cliente.actividad; 325 delete $scope.cliente.actividad;
322 delete $scope.cliente.zona; 326 delete $scope.cliente.zona;
323 delete $scope.cliente.tipoFactura; 327 delete $scope.cliente.tipoFactura;
324 delete $scope.cliente.tipoComprobante; 328 delete $scope.cliente.tipoComprobante;
325 delete $scope.cliente.formaPago; 329 delete $scope.cliente.formaPago;
326 330
327 focaBusquedaClienteService.guardarCliente($scope.cliente).then(function(res) { 331 focaBusquedaClienteService
328 var cliente = { 332 .guardarCliente($scope.cliente)
329 cod: res.data.COD, 333 .then(function(res) {
330 cuit: res.data.CUIT, 334 var cliente = {
331 esNuevo: res.data.esNuevo, 335 cod: res.data.COD,
332 nom: res.data.NOM 336 cuit: res.data.CUIT,
333 }; 337 esNuevo: res.data.esNuevo,
334 $scope.select(cliente, true); 338 nom: res.data.NOM
335 }); 339 };
340 $scope.select(cliente, true);
341 });
336 }; 342 };
337 343
338 function calcularPages(paginaActual) { 344 function calcularPages(paginaActual) {
339 var paginas = []; 345 var paginas = [];
340 paginas.push(paginaActual); 346 paginas.push(paginaActual);
341 347
342 if (paginaActual - 1 > 1) { 348 if (paginaActual - 1 > 1) {
343 349
344 paginas.unshift(paginaActual - 1); 350 paginas.unshift(paginaActual - 1);
345 if (paginaActual - 2 > 1) { 351 if (paginaActual - 2 > 1) {
346 paginas.unshift(paginaActual - 2); 352 paginas.unshift(paginaActual - 2);
347 } 353 }
348 } 354 }
349 355
350 if (paginaActual + 1 < $scope.lastPage) { 356 if (paginaActual + 1 < $scope.lastPage) {
351 paginas.push(paginaActual + 1); 357 paginas.push(paginaActual + 1);
352 if (paginaActual + 2 < $scope.lastPage) { 358 if (paginaActual + 2 < $scope.lastPage) {
353 paginas.push(paginaActual + 2); 359 paginas.push(paginaActual + 2);
354 } 360 }
355 } 361 }
356 362
357 if (paginaActual !== 1) { 363 if (paginaActual !== 1) {
358 paginas.unshift(1); 364 paginas.unshift(1);
359 } 365 }
360 366
361 if (paginaActual !== $scope.lastPage) { 367 if (paginaActual !== $scope.lastPage) {
362 paginas.push($scope.lastPage); 368 paginas.push($scope.lastPage);
363 } 369 }
364 370
365 return paginas; 371 return paginas;
366 } 372 }
367 373
368 function primera() { 374 function primera() {
369 $scope.selectedClientes = 0; 375 $scope.selectedClientes = 0;
370 } 376 }
371 377
372 function anterior() { 378 function anterior() {
373 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 379 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
374 retrocederPagina(); 380 retrocederPagina();
375 } else { 381 } else {
376 $scope.selectedClientes--; 382 $scope.selectedClientes--;
377 } 383 }
378 } 384 }
379 385
380 function siguiente() { 386 function siguiente() {
381 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) { 387 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) {
382 $scope.selectedClientes++; 388 $scope.selectedClientes++;
383 } else { 389 } else {
384 avanzarPagina(); 390 avanzarPagina();
385 } 391 }
386 } 392 }
387 393
388 function retrocederPagina() { 394 function retrocederPagina() {
389 if ($scope.currentPage > 1) { 395 if ($scope.currentPage > 1) {
390 $scope.selectPage($scope.currentPage - 1); 396 $scope.selectPage($scope.currentPage - 1);
391 $scope.selectedClientes = $scope.numPerPage - 1; 397 $scope.selectedClientes = $scope.numPerPage - 1;
392 } 398 }
393 } 399 }
394 400
395 function avanzarPagina() { 401 function avanzarPagina() {
396 if ($scope.currentPage < $scope.lastPage) { 402 if ($scope.currentPage < $scope.lastPage) {
397 $scope.selectPage($scope.currentPage + 1); 403 $scope.selectPage($scope.currentPage + 1);
398 $scope.selectedClientes = 0; 404 $scope.selectedClientes = 0;
399 } 405 }
400 } 406 }
401 } 407 }
402 ]); 408 ]);
403 409
1 angular.module('focaBusquedaCliente') 1 angular.module('focaBusquedaCliente')
2 .service('focaBusquedaClienteService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { 2 .service('focaBusquedaClienteService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) {
3 return { 3 return {
4 obtenerClientes: function() { 4 obtenerClientesPorNombreOCuit: function(nombreOCuit, idVendedor) {
5 return $http.get(API_ENDPOINT.URL + '/cliente'); 5 return $http.post(API_ENDPOINT.URL + '/cliente',
6 }, 6 {nombreOCuit: nombreOCuit, idVendedor: idVendedor});
7 obtenerCliente: function(id) {
8 return $http.get(API_ENDPOINT.URL + '/cliente/' + id);
9 },
10 obtenerClientesPorNombreOCuit: function(nombreOCuit) {
11 return $http.post(API_ENDPOINT.URL + '/cliente', {nombreOCuit: nombreOCuit});
12 }, 7 },
13 guardarCliente: function(cliente) { 8 guardarCliente: function(cliente) {
14 return $http.post(API_ENDPOINT.URL + '/cliente', {cliente: cliente}); 9 return $http.post(API_ENDPOINT.URL + '/cliente', {cliente: cliente});
15 } 10 }
16 }; 11 };
17 }]); 12 }]);
18 13
src/views/foca-busqueda-cliente-modal.html
1 <div class="modal-header py-1"> 1 <div class="modal-header py-1">
2 <div class="row w-100"> 2 <div class="row w-100">
3 <div class="col-lg-4 col-7"> 3 <div class="col-lg-4 col-7">
4 <h5 class="modal-title my-1" ng-hide="ingreso">Búsqueda de Cliente</h5> 4 <h5 class="modal-title my-1" ng-hide="ingreso">Búsqueda de Cliente</h5>
5 <h5 class="modal-title my-1" ng-show="ingreso">Crear Cliente</h5> 5 <h5 class="modal-title my-1" ng-show="ingreso">Crear Cliente</h5>
6 </div> 6 </div>
7 <div ng-show="ingreso" class="col-lg-6 col-5 front-index"> 7 <div ng-show="ingreso" class="col-lg-6 col-5 front-index">
8 <div class="custom-control custom-checkbox mt-2"> 8 <div class="custom-control custom-checkbox mt-2">
9 <input 9 <input
10 type="checkbox" 10 type="checkbox"
11 class="custom-control-input" 11 class="custom-control-input"
12 id="checkProspecto" 12 id="checkProspecto"
13 ng-model="cliente.ES_PROS"> 13 ng-model="cliente.ES_PROS">
14 <label class="custom-control-label" for="checkProspecto">¿Es prospecto?</label> 14 <label class="custom-control-label" for="checkProspecto">¿Es prospecto?</label>
15 </div> 15 </div>
16 </div> 16 </div>
17 <div class="input-group col-lg-6 offset-lg-2 pr-0 my-2"> 17 <div class="input-group col-lg-6 offset-lg-2 pr-0 my-2">
18 <button 18 <button
19 class="btn btn-outline-primary mr-2" 19 class="btn btn-outline-primary mr-2"
20 ng-click="ingreso = true" 20 ng-click="ingreso = true"
21 ng-show="!ingreso" 21 ng-show="!ingreso"
22 title="Nuevo"> 22 title="Nuevo">
23 <i class="fa fa-plus" aria-hidden="true"></i> 23 <i class="fa fa-plus" aria-hidden="true"></i>
24 </button> 24 </button>
25 <input 25 <input
26 ladda="searchLoading" 26 ladda="searchLoading"
27 type="text" 27 type="text"
28 class="form-control form-control-sm" 28 class="form-control form-control-sm"
29 id="search" 29 id="search"
30 placeholder="Busqueda" 30 placeholder="Busqueda"
31 ng-model="filters" 31 ng-model="filters"
32 ng-change="search()" 32 ng-change="search()"
33 ng-keydown="busquedaDown($event.keyCode)" 33 ng-keydown="busquedaDown($event.keyCode)"
34 ng-keypress="busquedaPress($event.keyCode)" 34 ng-keypress="busquedaPress($event.keyCode)"
35 foca-focus="selectedClientes == -1" 35 foca-focus="selectedClientes == -1"
36 ng-focus="selectedClientes = -1" 36 ng-focus="selectedClientes = -1"
37 teclado-virtual 37 teclado-virtual
38 ng-hide="ingreso" 38 ng-hide="ingreso"
39 > 39 >
40 <div class="input-group-append" ng-hide="ingreso"> 40 <div class="input-group-append" ng-hide="ingreso">
41 <button 41 <button
42 ladda="searchLoading" 42 ladda="searchLoading"
43 data-spinner-color="#FF0000" 43 data-spinner-color="#FF0000"
44 class="btn btn-outline-secondary" 44 class="btn btn-outline-secondary"
45 type="button" 45 type="button"
46 ng-click="busquedaPress(13)"> 46 ng-click="busquedaPress(13)">
47 <i class="fa fa-search" aria-hidden="true"></i> 47 <i class="fa fa-search" aria-hidden="true"></i>
48 </button> 48 </button>
49 </div> 49 </div>
50 </div> 50 </div>
51 </div> 51 </div>
52 </div> 52 </div>
53 <div class="modal-body" id="modal-body"> 53 <div class="modal-body" id="modal-body">
54 54
55 <div ng-show="!primerBusqueda && !ingreso"> 55 <div ng-show="!primerBusqueda && !ingreso">
56 Debe realizar una primer búsqueda. 56 Debe realizar una primer búsqueda.
57 </div> 57 </div>
58 58
59 <table ng-show="primerBusqueda && !ingreso" class="table table-striped table-sm"> 59 <table ng-show="primerBusqueda && !ingreso" class="table table-striped table-sm">
60 <thead> 60 <thead>
61 <tr> 61 <tr>
62 <th>Código</th> 62 <th>Código</th>
63 <th>Nombre</th> 63 <th>Nombre</th>
64 <th>CUIT</th> 64 <th>CUIT</th>
65 <th></th> 65 <th></th>
66 </tr> 66 </tr>
67 </thead> 67 </thead>
68 <tbody> 68 <tbody>
69 <tr ng-show="currentPageClientes.length == 0 && primerBusqueda"> 69 <tr ng-show="currentPageClientes.length == 0 && primerBusqueda">
70 <td colspan="4"> 70 <td colspan="4">
71 No se encontraron resultados. 71 No se encontraron resultados.
72 </td> 72 </td>
73 </tr> 73 </tr>
74 <tr 74 <tr
75 class="selectable" 75 class="selectable"
76 ng-repeat="(key, cliente) in currentPageClientes" 76 ng-repeat="(key, cliente) in currentPageClientes"
77 ng-click="select(cliente)"> 77 ng-click="select(cliente)">
78 <td ng-bind="('00000'+cliente.cod).slice(-5)"></td> 78 <td ng-bind="('00000'+cliente.cod).slice(-5)"></td>
79 <td ng-bind="cliente.nom"></td> 79 <td ng-bind="cliente.nom"></td>
80 <td ng-bind="cliente.cuit"></td> 80 <td ng-bind="cliente.cuit"></td>
81 <td> 81 <td>
82 <button 82 <button
83 type="button" 83 type="button"
84 class="btn btn-xs p-1 float-right" 84 class="btn btn-xs p-1 float-right"
85 ng-class="{ 85 ng-class="{
86 'btn-secondary': selectedClientes != key, 86 'btn-secondary': selectedClientes != key,
87 'btn-primary': selectedClientes == key 87 'btn-primary': selectedClientes == key
88 }" 88 }"
89 ng-click="select(cliente)" 89 ng-click="select(cliente)"
90 foca-focus="selectedClientes == {{key}}" 90 foca-focus="selectedClientes == {{key}}"
91 ng-keydown="itemCliente($event.keyCode)" 91 ng-keydown="itemCliente($event.keyCode)"
92 > 92 >
93 <i class="fa fa-circle-thin" aria-hidden="true"></i> 93 <i class="fa fa-circle-thin" aria-hidden="true"></i>
94 </button> 94 </button>
95 </td> 95 </td>
96 </tr> 96 </tr>
97 </tbody> 97 </tbody>
98 </table> 98 </table>
99 99
100 <form name="formCliente"> 100 <form name="formCliente">
101 <uib-tabset class="tabs-right" ng-show="ingreso"> 101 <uib-tabset class="tabs-right" ng-show="ingreso">
102 <uib-tab heading="Datos clientes"> 102 <uib-tab heading="Datos clientes">
103 <div class="row"> 103 <div class="row">
104 <div class="col-3"> 104 <div class="col-3">
105 <label>Código</label> 105 <label>Código</label>
106 <input 106 <input
107 type="text" 107 type="text"
108 class="form-control form-control-sm" 108 class="form-control form-control-sm"
109 ng-model="cliente.codigo" 109 ng-model="cliente.codigo"
110 readonly 110 readonly
111 /> 111 />
112 </div> 112 </div>
113 <div class="col-9"> 113 <div class="col-9">
114 <label>Nombre</label> 114 <label>Nombre</label>
115 <input 115 <input
116 type="text" 116 type="text"
117 class="form-control form-control-sm" 117 class="form-control form-control-sm"
118 ng-model="cliente.NOM" 118 ng-model="cliente.NOM"
119 teclado-virtual 119 teclado-virtual
120 placeholder="Ingrese nombre" 120 placeholder="Ingrese nombre"
121 ng-required="true" 121 ng-required="true"
122 foca-focus="focused == 1 || ingreso" 122 foca-focus="focused == 1 || ingreso"
123 ng-focus="focus(1)" 123 ng-focus="focus(1)"
124 ng-keypress="next($event.keyCode)" 124 ng-keypress="next($event.keyCode)"
125 /> 125 />
126 </div> 126 </div>
127 </div> 127 </div>
128 <div class="row"> 128 <div class="row">
129 <div class="col-md-9 col-12"> 129 <div class="col-md-9 col-12">
130 <label>Domicilio</label> 130 <label>Domicilio</label>
131 <input 131 <input
132 type="text" 132 type="text"
133 class="form-control form-control-sm" 133 class="form-control form-control-sm"
134 ng-model="cliente.DOM" 134 ng-model="cliente.DOM"
135 teclado-virtual 135 teclado-virtual
136 placeholder="Ingrese domicilio" 136 placeholder="Ingrese domicilio"
137 ng-required="true" 137 ng-required="true"
138 ng-focus="focus(2)" 138 ng-focus="focus(2)"
139 foca-focus="focused == 2" 139 foca-focus="focused == 2"
140 ng-keypress="next($event.keyCode)" 140 ng-keypress="next($event.keyCode)"
141 /> 141 />
142 </div> 142 </div>
143 <div class="col-md-3 col-12"> 143 <div class="col-md-3 col-12">
144 <label>Código postal</label> 144 <label>Código postal</label>
145 <input 145 <input
146 type="text" 146 type="text"
147 class="form-control form-control-sm" 147 class="form-control form-control-sm"
148 ng-model="cliente.CPO" 148 ng-model="cliente.CPO"
149 placeholder="Ingrese CP" 149 placeholder="Ingrese CP"
150 ng-required="true" 150 ng-required="true"
151 ng-focus="focus(3)" 151 ng-focus="focus(3)"
152 foca-focus="focused == 3" 152 foca-focus="focused == 3"
153 ng-keypress="next($event.keyCode)" 153 ng-keypress="next($event.keyCode)"
154 teclado-virtual 154 teclado-virtual
155 /> 155 />
156 </div> 156 </div>
157 </div> 157 </div>
158 <div class="row"> 158 <div class="row">
159 <div class="col-md-6 col-12"> 159 <div class="col-md-6 col-12">
160 <label>Provincia</label> 160 <label>Provincia</label>
161 <div class="input-group"> 161 <div class="input-group">
162 <input 162 <input
163 type="text" 163 type="text"
164 class="form-control form-control-sm" 164 class="form-control form-control-sm"
165 ng-model="cliente.provincia.NOMBRE" 165 ng-model="cliente.provincia.NOMBRE"
166 ng-keypress="seleccionarProvincia($event.keyCode)" 166 ng-keypress="seleccionarProvincia($event.keyCode)"
167 placeholder="Ingrese provincia" 167 placeholder="Ingrese provincia"
168 ng-required="true" 168 ng-required="true"
169 ng-focus="focus(4)" 169 ng-focus="focus(4)"
170 foca-focus="focused == 4" 170 foca-focus="focused == 4"
171 teclado-virtual 171 teclado-virtual
172 /> 172 />
173 <div class="input-group-append"> 173 <div class="input-group-append">
174 <button 174 <button
175 ladda="searchLoading" 175 ladda="searchLoading"
176 class="btn btn-outline-secondary form-control-sm" 176 class="btn btn-outline-secondary form-control-sm"
177 type="button" 177 type="button"
178 ng-click="seleccionarProvincia(13)" 178 ng-click="seleccionarProvincia(13)"
179 > 179 >
180 <i class="fa fa-search" aria-hidden="true"></i> 180 <i class="fa fa-search" aria-hidden="true"></i>
181 </button> 181 </button>
182 </div> 182 </div>
183 </div> 183 </div>
184 </div> 184 </div>
185 <div class="col-md-6 col-12"> 185 <div class="col-md-6 col-12">
186 <label>Localidad</label> 186 <label>Localidad</label>
187 <div class="input-group"> 187 <div class="input-group">
188 <input 188 <input
189 type="text" 189 type="text"
190 class="form-control form-control-sm" 190 class="form-control form-control-sm"
191 ng-model="cliente.localidad.NOMBRE" 191 ng-model="cliente.localidad.NOMBRE"
192 ng-keypress="seleccionarLocalidad($event.keyCode)" 192 ng-keypress="seleccionarLocalidad($event.keyCode)"
193 placeholder="Ingrese localidad" 193 placeholder="Ingrese localidad"
194 ng-required="true" 194 ng-required="true"
195 foca-focus="focused == 5" 195 foca-focus="focused == 5"
196 ng-focus="focus(5)" 196 ng-focus="focus(5)"
197 teclado-virtual 197 teclado-virtual
198 /> 198 />
199 <div class="input-group-append"> 199 <div class="input-group-append">
200 <button 200 <button
201 ladda="searchLoading" 201 ladda="searchLoading"
202 class="btn btn-outline-secondary form-control-sm" 202 class="btn btn-outline-secondary form-control-sm"
203 type="button" 203 type="button"
204 ng-click="seleccionarLocalidad(13)" 204 ng-click="seleccionarLocalidad(13)"
205 > 205 >
206 <i class="fa fa-search" aria-hidden="true"></i> 206 <i class="fa fa-search" aria-hidden="true"></i>
207 </button> 207 </button>
208 </div> 208 </div>
209 </div> 209 </div>
210 </div> 210 </div>
211 </div> 211 </div>
212 <div class="row"> 212 <div class="row">
213 <div class="col-md-6 col-12"> 213 <div class="col-md-6 col-12">
214 <label>Zona</label> 214 <label>Zona</label>
215 <div class="input-group"> 215 <div class="input-group">
216 <input 216 <input
217 type="text" 217 type="text"
218 class="form-control form-control-sm" 218 class="form-control form-control-sm"
219 ng-model="cliente.zona.NOM" 219 ng-model="cliente.zona.NOM"
220 ng-keypress="seleccionarZona($event.keyCode)" 220 ng-keypress="seleccionarZona($event.keyCode)"
221 placeholder="Ingrese zona" 221 placeholder="Ingrese zona"
222 ng-required="true" 222 ng-required="true"
223 ng-focus="focus(6)" 223 ng-focus="focus(6)"
224 foca-focus="focused == 6" 224 foca-focus="focused == 6"
225 teclado-virtual 225 teclado-virtual
226 /> 226 />
227 <div class="input-group-append"> 227 <div class="input-group-append">
228 <button 228 <button
229 ladda="searchLoading" 229 ladda="searchLoading"
230 class="btn btn-outline-secondary form-control-sm" 230 class="btn btn-outline-secondary form-control-sm"
231 type="button" 231 type="button"
232 ng-click="seleccionarZona(13)" 232 ng-click="seleccionarZona(13)"
233 > 233 >
234 <i class="fa fa-search" aria-hidden="true"></i> 234 <i class="fa fa-search" aria-hidden="true"></i>
235 </button> 235 </button>
236 </div> 236 </div>
237 </div> 237 </div>
238 </div> 238 </div>
239 <div class="col-md-6 col-12"> 239 <div class="col-md-6 col-12">
240 <label>Actividad</label> 240 <label>Actividad</label>
241 <div class="input-group"> 241 <div class="input-group">
242 <input 242 <input
243 type="text" 243 type="text"
244 class="form-control form-control-sm" 244 class="form-control form-control-sm"
245 ng-model="cliente.actividad.NOM" 245 ng-model="cliente.actividad.NOM"
246 ng-keypress="seleccionarActividad($event.keyCode)" 246 ng-keypress="seleccionarActividad($event.keyCode)"
247 placeholder="Ingrese actividad" 247 placeholder="Ingrese actividad"
248 ng-required="true" 248 ng-required="true"
249 ng-focus="focus(7)" 249 ng-focus="focus(7)"
250 foca-focus="focused == 7" 250 foca-focus="focused == 7"
251 teclado-virtual 251 teclado-virtual
252 /> 252 />
253 <div class="input-group-append"> 253 <div class="input-group-append">
254 <button 254 <button
255 ladda="searchLoading" 255 ladda="searchLoading"
256 class="btn btn-outline-secondary form-control-sm" 256 class="btn btn-outline-secondary form-control-sm"
257 type="button" 257 type="button"
258 ng-click="seleccionarActividad(13)" 258 ng-click="seleccionarActividad(13)"
259 > 259 >
260 <i class="fa fa-search" aria-hidden="true"></i> 260 <i class="fa fa-search" aria-hidden="true"></i>
261 </button> 261 </button>
262 </div> 262 </div>
263 </div> 263 </div>
264 </div> 264 </div>
265 </div> 265 </div>
266 <div class="row"> 266 <div class="row">
267 <div class="col-6"> 267 <div class="col-md-6 col-12">
268 <div class="custom-control custom-checkbox"> 268 <label>Vendedor</label>
269 <div class="input-group">
270 <input
271 type="text"
272 class="form-control form-control-sm"
273 ng-model="vendedor.NomVen"
274 disabled="true"
275 />
276 </div>
277 </div>
278 <div class="col-6 d-flex">
279 <div class="custom-control custom-checkbox mt-auto">
269 <input 280 <input
270 type="checkbox" 281 type="checkbox"
271 class="custom-control-input" 282 class="custom-control-input"
272 id="checkDistribuidor" 283 id="checkDistribuidor"
273 ng-model="cliente.ES_MAY" 284 ng-model="cliente.ES_MAY"
274 checked 285 checked
275 disabled="disabled"> 286 disabled="disabled">
276 <label class="custom-control-label" for="checkDistribuidor">¿Este cliente es distribuidor?</label> 287 <label class="custom-control-label" for="checkDistribuidor">¿Este cliente es distribuidor?</label>
277 </div> 288 </div>
278 </div> 289 </div>
279 </div> 290 </div>
280 </uib-tab> 291 </uib-tab>
281 <uib-tab heading="Datos impositivos"> 292 <uib-tab heading="Datos impositivos">
282 <div class="row"> 293 <div class="row">
283 <div class="col-md-7 col-12"> 294 <div class="col-md-7 col-12">
284 <label>Responsabilidad ante el IVA</label> 295 <label>Responsabilidad ante el IVA</label>
285 <div class="input-group"> 296 <div class="input-group">
286 <input 297 <input
287 type="text" 298 type="text"
288 class="form-control form-control-sm" 299 class="form-control form-control-sm"
289 ng-model="cliente.iva.NOMBRE" 300 ng-model="cliente.iva.NOMBRE"
290 ng-keypress="seleccionarIva($event.keyCode)" 301 ng-keypress="seleccionarIva($event.keyCode)"
291 ng-required="true" 302 ng-required="true"
292 ng-focus="focus(8)" 303 ng-focus="focus(8)"
293 foca-focus="focused == 8" 304 foca-focus="focused == 8"
294 teclado-virtual 305 teclado-virtual
295 /> 306 />
296 <div class="input-group-append"> 307 <div class="input-group-append">
297 <button 308 <button
298 ladda="searchLoading" 309 ladda="searchLoading"
299 class="btn btn-outline-secondary form-control-sm" 310 class="btn btn-outline-secondary form-control-sm"
300 type="button" 311 type="button"
301 ng-click="seleccionarIva(13)" 312 ng-click="seleccionarIva(13)"
302 > 313 >
303 <i class="fa fa-search" aria-hidden="true"></i> 314 <i class="fa fa-search" aria-hidden="true"></i>
304 </button> 315 </button>
305 </div> 316 </div>
306 </div> 317 </div>
307 </div> 318 </div>
308 <div class="col-md-5 col-12"> 319 <div class="col-md-5 col-12">
309 <label>Factura que emite</label> 320 <label>Factura que emite</label>
310 <div class="input-group"> 321 <div class="input-group">
311 <input 322 <input
312 type="text" 323 type="text"
313 class="form-control form-control-sm" 324 class="form-control form-control-sm"
314 placeholder="Ingrese factura que emite" 325 placeholder="Ingrese factura que emite"
315 ng-model="cliente.tipoFactura.NOMBRE" 326 ng-model="cliente.tipoFactura.NOMBRE"
316 ng-required="true" 327 ng-required="true"
317 ng-keypress="seleccionarTipoFactura(13)" 328 ng-keypress="seleccionarTipoFactura(13)"
318 ng-focus="focus(9)" 329 ng-focus="focus(9)"
319 foca-focus="focused == 9" 330 foca-focus="focused == 9"
320 teclado-virtual> 331 teclado-virtual>
321 <div class="input-group-append"> 332 <div class="input-group-append">
322 <button 333 <button
323 ladda="searchLoading" 334 ladda="searchLoading"
324 class="btn btn-outline-secondary form-control-sm" 335 class="btn btn-outline-secondary form-control-sm"
325 type="button" 336 type="button"
326 ng-click="seleccionarTipoFactura(13)" 337 ng-click="seleccionarTipoFactura(13)"
327 > 338 >
328 <i class="fa fa-search" aria-hidden="true"></i> 339 <i class="fa fa-search" aria-hidden="true"></i>
329 </button> 340 </button>
330 </div> 341 </div>
331 </div> 342 </div>
332 </div> 343 </div>
333 </div> 344 </div>
334 <div class="row"> 345 <div class="row">
335 <div class="col-md-4 col-12"> 346 <div class="col-md-4 col-12">
336 <label>CUIT</label> 347 <label>CUIT</label>
337 <div class="input-group"> 348 <div class="input-group">
338 <input 349 <input
339 type="text" 350 type="text"
340 class="form-control form-control-sm" 351 class="form-control form-control-sm"
341 placeholder="Ingrese CUIT" 352 placeholder="Ingrese CUIT"
342 ng-model="cliente.CUIT" 353 ng-model="cliente.CUIT"
343 ng-required="true" 354 ng-required="true"
344 ng-pattern="regexCuit" 355 ng-pattern="regexCuit"
345 ng-maxlength="13" 356 ng-maxlength="13"
346 ng-keypress="next($event.keyCode)" 357 ng-keypress="next($event.keyCode)"
347 ng-focus="focus(10)" 358 ng-focus="focus(10)"
348 foca-focus="focused == 10" 359 foca-focus="focused == 10"
349 teclado-virtual> 360 teclado-virtual>
350 </div> 361 </div>
351 </div> 362 </div>
352 <div class="col-md-4 col-12"> 363 <div class="col-md-4 col-12">
353 <label>Clase de comprobante</label> 364 <label>Clase de comprobante</label>
354 <div class="input-group"> 365 <div class="input-group">
355 <input 366 <input
356 type="text" 367 type="text"
357 class="form-control form-control-sm" 368 class="form-control form-control-sm"
358 placeholder="Ingrese clase de comprobante" 369 placeholder="Ingrese clase de comprobante"
359 ng-keypress="seleccionarTipoComprobante($event.keyCode)" 370 ng-keypress="seleccionarTipoComprobante($event.keyCode)"
360 ng-model="cliente.tipoComprobante.NOMBRE" 371 ng-model="cliente.tipoComprobante.NOMBRE"
361 ng-required="true" 372 ng-required="true"
362 ng-focus="focus(11)" 373 ng-focus="focus(11)"
363 foca-focus="focused == 11" 374 foca-focus="focused == 11"
364 teclado-virtual> 375 teclado-virtual>
365 <div class="input-group-append"> 376 <div class="input-group-append">
366 <button 377 <button
367 ladda="searchLoading" 378 ladda="searchLoading"
368 class="btn btn-outline-secondary form-control-sm" 379 class="btn btn-outline-secondary form-control-sm"
369 type="button" 380 type="button"
370 ng-click="seleccionarTipoComprobante(13)" 381 ng-click="seleccionarTipoComprobante(13)"
371 > 382 >
372 <i class="fa fa-search" aria-hidden="true"></i> 383 <i class="fa fa-search" aria-hidden="true"></i>
373 </button> 384 </button>
374 </div> 385 </div>
375 </div> 386 </div>
376 </div> 387 </div>
377 <div class="col-md-4 col-12"> 388 <div class="col-md-4 col-12">
378 <label>Forma de pago</label> 389 <label>Forma de pago</label>
379 <div class="input-group"> 390 <div class="input-group">
380 <input 391 <input
381 type="text" 392 type="text"
382 class="form-control form-control-sm" 393 class="form-control form-control-sm"
383 placeholder="Ingrese forma de pago" 394 placeholder="Ingrese forma de pago"
384 ng-model="cliente.formaPago.NOMBRE" 395 ng-model="cliente.formaPago.NOMBRE"
385 ng-required="true" 396 ng-required="true"
386 ng-keypress="seleccionarFormaPago($event.keyCode)" 397 ng-keypress="seleccionarFormaPago($event.keyCode)"
387 ng-focus="focus(12)" 398 ng-focus="focus(12)"
388 foca-focus="focused == 12" 399 foca-focus="focused == 12"
389 teclado-virtual> 400 teclado-virtual>
390 <div class="input-group-append"> 401 <div class="input-group-append">
391 <button 402 <button
392 ladda="searchLoading" 403 ladda="searchLoading"
393 class="btn btn-outline-secondary form-control-sm" 404 class="btn btn-outline-secondary form-control-sm"
394 type="button" 405 type="button"
395 ng-click="seleccionarFormaPago(13)" 406 ng-click="seleccionarFormaPago(13)"
396 > 407 >
397 <i class="fa fa-search" aria-hidden="true"></i> 408 <i class="fa fa-search" aria-hidden="true"></i>
398 </button> 409 </button>
399 </div> 410 </div>
400 </div> 411 </div>
401 </div> 412 </div>
402 </div> 413 </div>
403 </uib-tab> 414 </uib-tab>
404 </uib-tabset> 415 </uib-tabset>
405 </form> 416 </form>
406 </div> 417 </div>
407 <div class="modal-footer py-1"> 418 <div class="modal-footer py-1">
408 <nav ng-show="currentPageClientes.length > 0 && primerBusqueda && !ingreso" class="mr-auto"> 419 <nav ng-show="currentPageClientes.length > 0 && primerBusqueda && !ingreso" class="mr-auto">
409 <ul class="pagination pagination-sm mb-0"> 420 <ul class="pagination pagination-sm mb-0">
410 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 421 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
411 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)"> 422 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)">
412 <span aria-hidden="true">&laquo;</span> 423 <span aria-hidden="true">&laquo;</span>
413 <span class="sr-only">Anterior</span> 424 <span class="sr-only">Anterior</span>
414 </a> 425 </a>
415 </li> 426 </li>
416 <li 427 <li
417 class="page-item" 428 class="page-item"
418 ng-repeat="pagina in paginas" 429 ng-repeat="pagina in paginas"
419 ng-class="{'active': pagina == currentPage}" 430 ng-class="{'active': pagina == currentPage}"
420 > 431 >
421 <a 432 <a
422 class="page-link" 433 class="page-link"
423 href="javascript:void()" 434 href="javascript:void()"
424 ng-click="selectPage(pagina)" 435 ng-click="selectPage(pagina)"
425 ng-bind="pagina" 436 ng-bind="pagina"
426 ></a> 437 ></a>
427 </li> 438 </li>
428 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 439 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
429 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)"> 440 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)">
430 <span aria-hidden="true">&raquo;</span> 441 <span aria-hidden="true">&raquo;</span>
431 <span class="sr-only">Siguiente</span> 442 <span class="sr-only">Siguiente</span>
432 </a> 443 </a>
433 </li> 444 </li>
434 </ul> 445 </ul>
435 </nav> 446 </nav>
436 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button> 447 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button>
437 <button 448 <button
438 class="btn btn-sm btn-primary" 449 class="btn btn-sm btn-primary"
439 type="button" 450 type="button"
440 ng-show="ingreso" 451 ng-show="ingreso"
441 ng-click="guardar()" 452 ng-click="guardar()"
442 ng-disabled="!formCliente.$valid">Guardar</button> 453 ng-disabled="!formCliente.$valid">Guardar</button>
443 </div> 454 </div>
444 455