Commit b31adf10154e25dddc9be952914b2ec65ea123af

Authored by Luigi
Exists in master and in 1 other branch develop

Merge remote-tracking branch 'upstream/develop'

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', 'vendedor', 4 '$uibModal', 'focaModalService', '$timeout', 'vendedor', 'cobrador',
5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter, 5 function($uibModalInstance, focaBusquedaClienteService, $scope, $filter,
6 $uibModal, focaModalService, $timeout, vendedor) { 6 $uibModal, focaModalService, $timeout, vendedor, cobrador) {
7 7
8 $scope.cobrador = cobrador ? cobrador : {};
8 $scope.vendedor = vendedor ? vendedor : {}; 9 $scope.vendedor = vendedor ? vendedor : {};
9 $scope.filters = ''; 10 $scope.filters = '';
10 $scope.primerBusqueda = false; 11 $scope.primerBusqueda = false;
11 // pagination 12 // pagination
12 $scope.numPerPage = 10; 13 $scope.numPerPage = 10;
13 $scope.currentPage = 1; 14 $scope.currentPage = 1;
14 $scope.filteredClientes = []; 15 $scope.filteredClientes = [];
15 $scope.currentPageClientes = []; 16 $scope.currentPageClientes = [];
16 $scope.selectedClientes = -1; 17 $scope.selectedClientes = -1;
17 $scope.ingreso = false; 18 $scope.ingreso = false;
18 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g); 19 $scope.regexCuit = new RegExp(/\b(20|23|24|27|30|33|34)(\D)?[0-9]{8}(\D)?[0-9]/g);
19 $scope.focused = 1; 20 $scope.focused = 1;
20 21
21 $scope.cliente = { 22 $scope.cliente = {
22 COD: 0, 23 COD: 0,
23 ES_MAY: true, 24 ES_MAY: true,
24 provincia: { 25 provincia: {
25 NOMBRE: '' 26 NOMBRE: ''
26 }, 27 },
27 localidad: { 28 localidad: {
28 NOMBRE: '' 29 NOMBRE: ''
29 }, 30 },
30 iva: { 31 iva: {
31 NOMBRE: '' 32 NOMBRE: ''
32 }, 33 },
33 actividad: { 34 actividad: {
34 NOM: '' 35 NOM: ''
35 }, 36 },
36 zona: { 37 zona: {
37 NOM: '' 38 NOM: ''
38 }, 39 },
39 tipoFactura: { 40 tipoFactura: {
40 NOMBRE: '' 41 NOMBRE: ''
41 }, 42 },
42 tipoComprobante: { 43 tipoComprobante: {
43 NOMBRE: '' 44 NOMBRE: ''
44 }, 45 },
45 formaPago: { 46 formaPago: {
46 NOMBRE: '' 47 NOMBRE: ''
47 }, 48 },
48 cobrador: { 49 cobrador: {
49 NomVen: '' 50 NomVen: ''
50 } 51 }
51 }; 52 };
52 53
53 $scope.busquedaPress = function(key) { 54 $scope.busquedaPress = function(key) {
54 if (key === 13) { 55 if (key === 13) {
55 var funcion = ($scope.vendedor.id) ? 56 var funcion;
56 'obtenerClientesPorNombreOCuitByVendedor' : 'obtenerClientesPorNombreOCuit'; 57 if ($scope.vendedor.id) {
58 funcion = 'obtenerClientesPorNombreOCuitByVendedor';
59 } else if ($scope.cobrador.id) {
60 funcion = 'obtenerClientesPorNombreOCuitByCobrador';
61 } else {
62 funcion = 'obtenerClientesPorNombreOCuit';
63 }
64
57 65
58 $scope.searchLoading = true; 66 $scope.searchLoading = true;
59 focaBusquedaClienteService 67 focaBusquedaClienteService
60 [funcion]($scope.filters, $scope.vendedor.id) 68 [funcion]($scope.filters, $scope.vendedor.id || $scope.cobrador.id)
61 .then( 69 .then(
62 function(res) { 70 function(res) {
63 $scope.primerBusqueda = true; 71 $scope.primerBusqueda = true;
64 $scope.clientes = res.data; 72 $scope.clientes = res.data;
65 $scope.search(true); 73 $scope.search(true);
66 primera(); 74 primera();
67 $scope.searchLoading = false; 75 $scope.searchLoading = false;
68 }); 76 });
69 } 77 }
70 }; 78 };
71 79
72 $scope.search = function (pressed) { 80 $scope.search = function (pressed) {
73 if($scope.primerBusqueda) { 81 if($scope.primerBusqueda) {
74 $scope.filteredClientes = $filter('filter')( 82 $scope.filteredClientes = $filter('filter')(
75 $scope.clientes, {$: $scope.filters} 83 $scope.clientes, {$: $scope.filters}
76 ); 84 );
77 85
78 if(pressed && $scope.filteredClientes.length === 0){ 86 if(pressed && $scope.filteredClientes.length === 0){
79 $timeout(function() { 87 $timeout(function() {
80 angular.element('#search')[0].focus(); 88 angular.element('#search')[0].focus();
81 $scope.filters = ''; 89 $scope.filters = '';
82 }); 90 });
83 } 91 }
84 92
85 $scope.lastPage = Math.ceil( 93 $scope.lastPage = Math.ceil(
86 $scope.filteredClientes.length / $scope.numPerPage 94 $scope.filteredClientes.length / $scope.numPerPage
87 ); 95 );
88 96
89 $scope.resetPage(); 97 $scope.resetPage();
90 } 98 }
91 }; 99 };
92 100
93 $scope.resetPage = function () { 101 $scope.resetPage = function () {
94 $scope.currentPage = 1; 102 $scope.currentPage = 1;
95 $scope.selectPage(1); 103 $scope.selectPage(1);
96 }; 104 };
97 105
98 $scope.selectPage = function (page) { 106 $scope.selectPage = function (page) {
99 var start = (page - 1) * $scope.numPerPage; 107 var start = (page - 1) * $scope.numPerPage;
100 var end = start + $scope.numPerPage; 108 var end = start + $scope.numPerPage;
101 $scope.paginas = []; 109 $scope.paginas = [];
102 $scope.paginas = calcularPages(page); 110 $scope.paginas = calcularPages(page);
103 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end); 111 $scope.currentPageClientes = $scope.filteredClientes.slice(start, end);
104 $scope.currentPage = page; 112 $scope.currentPage = page;
105 }; 113 };
106 114
107 $scope.select = function(cliente, esNuevo = false) { 115 $scope.select = function(cliente, esNuevo = false) {
108 cliente.esNuevo = esNuevo; 116 cliente.esNuevo = esNuevo;
109 $uibModalInstance.close(cliente); 117 $uibModalInstance.close(cliente);
110 }; 118 };
111 119
112 $scope.cancel = function() { 120 $scope.cancel = function() {
113 if($scope.ingreso) { 121 if($scope.ingreso) {
114 $scope.ingreso = false; 122 $scope.ingreso = false;
115 }else { 123 }else {
116 $uibModalInstance.dismiss('cancel'); 124 $uibModalInstance.dismiss('cancel');
117 } 125 }
118 }; 126 };
119 127
120 $scope.busquedaDown = function(key) { 128 $scope.busquedaDown = function(key) {
121 if (key === 40) { 129 if (key === 40) {
122 primera(key); 130 primera(key);
123 } 131 }
124 }; 132 };
125 133
126 $scope.itemCliente = function(key) { 134 $scope.itemCliente = function(key) {
127 if (key === 38) { 135 if (key === 38) {
128 anterior(key); 136 anterior(key);
129 } 137 }
130 138
131 if (key === 40) { 139 if (key === 40) {
132 siguiente(key); 140 siguiente(key);
133 } 141 }
134 142
135 if (key === 37) { 143 if (key === 37) {
136 retrocederPagina(); 144 retrocederPagina();
137 } 145 }
138 146
139 if (key === 39) { 147 if (key === 39) {
140 avanzarPagina(); 148 avanzarPagina();
141 } 149 }
142 }; 150 };
143 151
144 $scope.focus = function(val) { 152 $scope.focus = function(val) {
145 $scope.focused = val; 153 $scope.focused = val;
146 }; 154 };
147 155
148 $scope.next = function(key) { 156 $scope.next = function(key) {
149 if (key === 13) $scope.focused++; 157 if (key === 13) $scope.focused++;
150 }; 158 };
151 159
152 $scope.seleccionarProvincia = function(key) { 160 $scope.seleccionarProvincia = function(key) {
153 if(key === 13) { 161 if(key === 13) {
154 var parametrosModal = { 162 var parametrosModal = {
155 query: '/provincia', 163 query: '/provincia',
156 columnas: [ 164 columnas: [
157 { 165 {
158 propiedad: 'ID', 166 propiedad: 'ID',
159 nombre: 'Codigo', 167 nombre: 'Codigo',
160 filtro: { 168 filtro: {
161 nombre: 'rellenarDigitos', 169 nombre: 'rellenarDigitos',
162 parametro: 3} 170 parametro: 3
163 }, 171 }
172 },
164 { 173 {
165 propiedad: 'NOMBRE', 174 propiedad: 'NOMBRE',
166 nombre: 'Nombre' 175 nombre: 'Nombre'
167 } 176 }
168 ], 177 ],
169 titulo:'Búsqueda de provincias', 178 titulo:'Búsqueda de provincias',
170 size: 'md' 179 size: 'md'
171 }; 180 };
172 focaModalService.modal(parametrosModal).then(function(provincia) { 181 focaModalService.modal(parametrosModal).then(function(provincia) {
173 $scope.cliente.provincia = provincia; 182 $scope.cliente.provincia = provincia;
174 $timeout(function() { 183 $timeout(function() {
175 $scope.focused = 5; 184 $scope.focused = 5;
176 }); 185 });
177 }, function() { 186 }, function() {
178 //TODO: función llamada cuando cancela el modal 187 //TODO: función llamada cuando cancela el modal
179 }); 188 });
180 } 189 }
181 }; 190 };
182 $scope.seleccionarLocalidad = function(key) { 191 $scope.seleccionarLocalidad = function(key) {
183 if($scope.cliente.provincia.ID === undefined) { 192 if($scope.cliente.provincia.ID === undefined) {
184 focaModalService.alert('Seleccione una provincia'); 193 focaModalService.alert('Seleccione una provincia');
185 return; 194 return;
186 } 195 }
187 if(key === 13) { 196 if(key === 13) {
188 var parametrosModal = { 197 var parametrosModal = {
189 query: '/localidad/' + $scope.cliente.provincia.ID, 198 query: '/localidad/' + $scope.cliente.provincia.ID,
190 columnas: [ 199 columnas: [
191 { 200 {
192 propiedad: 'ID', 201 propiedad: 'ID',
193 nombre: 'Código', 202 nombre: 'Código',
194 filtro: { 203 filtro: {
195 nombre: 'rellenarDigitos', 204 nombre: 'rellenarDigitos',
196 parametro: 3 205 parametro: 3
197 } 206 }
198 }, 207 },
199 { 208 {
200 propiedad: 'NOMBRE', 209 propiedad: 'NOMBRE',
201 nombre: 'Nombre' 210 nombre: 'Nombre'
202 } 211 }
203 ], 212 ],
204 titulo:'Búsqueda de localidades', 213 titulo:'Búsqueda de localidades',
205 size: 'md' 214 size: 'md'
206 }; 215 };
207 focaModalService.modal(parametrosModal).then(function(localidad) { 216 focaModalService.modal(parametrosModal).then(function(localidad) {
208 $scope.cliente.localidad = localidad; 217 $scope.cliente.localidad = localidad;
209 $timeout(function() { 218 $timeout(function() {
210 $scope.focused = 6; 219 $scope.focused = 6;
211 }); 220 });
212 }, function() { 221 }, function() {
213 //TODO: función llamada cuando cancela el modal 222 //TODO: función llamada cuando cancela el modal
214 }); 223 });
215 } 224 }
216 }; 225 };
217 $scope.seleccionarIva = function(key) { 226 $scope.seleccionarIva = function(key) {
218 if(key === 13) { 227 if(key === 13) {
219 var parametrosModal = { 228 var parametrosModal = {
220 query: '/iva', 229 query: '/iva',
221 columnas: [ 230 columnas: [
222 { 231 {
223 propiedad: 'ID', 232 propiedad: 'ID',
224 nombre: 'Código', 233 nombre: 'Código',
225 filtro: { 234 filtro: {
226 nombre: 'rellenarDigitos', 235 nombre: 'rellenarDigitos',
227 parametro: 3 236 parametro: 3
228 } 237 }
229 }, 238 },
230 { 239 {
231 propiedad: 'NOMBRE', 240 propiedad: 'NOMBRE',
232 nombre: 'Nombre' 241 nombre: 'Nombre'
233 } 242 }
234 ], 243 ],
235 titulo:'Búsqueda de responsabilidad ante el IVA', 244 titulo:'Búsqueda de responsabilidad ante el IVA',
236 size: 'md' 245 size: 'md'
237 }; 246 };
238 focaModalService.modal(parametrosModal).then( 247 focaModalService.modal(parametrosModal).then(
239 function(iva) { 248 function(iva) {
240 $scope.cliente.iva = iva; 249 $scope.cliente.iva = iva;
241 $timeout(function() { 250 $timeout(function() {
242 $scope.focused = 10; 251 $scope.focused = 10;
243 }); 252 });
244 }, function() { 253 }, function() {
245 // funcion ejecutada cuando se cancela el modal 254 // funcion ejecutada cuando se cancela el modal
246 }); 255 });
247 } 256 }
248 }; 257 };
249 $scope.seleccionarActividad = function(key) { 258 $scope.seleccionarActividad = function(key) {
250 if(key === 13) { 259 if(key === 13) {
251 var parametrosModal = { 260 var parametrosModal = {
252 query: '/actividad', 261 query: '/actividad',
253 columnas: [ 262 columnas: [
254 { 263 {
255 propiedad: 'ID', 264 propiedad: 'ID',
256 nombre: 'Código', 265 nombre: 'Código',
257 filtro: { 266 filtro: {
258 nombre: 'rellenarDigitos', 267 nombre: 'rellenarDigitos',
259 parametro: 3 268 parametro: 3
260 } 269 }
261 }, 270 },
262 { 271 {
263 propiedad: 'NOM', 272 propiedad: 'NOM',
264 nombre: 'Nombre' 273 nombre: 'Nombre'
265 } 274 }
266 ], 275 ],
267 titulo: 'Búsqueda de actividades', 276 titulo: 'Búsqueda de actividades',
268 size: 'md' 277 size: 'md'
269 }; 278 };
270 focaModalService.modal(parametrosModal).then( 279 focaModalService.modal(parametrosModal).then(
271 function(actividad) { 280 function(actividad) {
272 $scope.cliente.actividad = actividad; 281 $scope.cliente.actividad = actividad;
273 $timeout(function() { 282 $timeout(function() {
274 $scope.focused = 8; 283 $scope.focused = 8;
275 }); 284 });
276 }, function() { 285 }, function() {
277 // funcion ejecutada cuando se cancela el modal 286 // funcion ejecutada cuando se cancela el modal
278 }); 287 });
279 } 288 }
280 }; 289 };
281 $scope.seleccionarZona = function(key) { 290 $scope.seleccionarZona = function(key) {
282 if(key === 13) { 291 if(key === 13) {
283 var parametrosModal = { 292 var parametrosModal = {
284 query: '/zona', 293 query: '/zona',
285 columnas: [ 294 columnas: [
286 { 295 {
287 propiedad: 'ID', 296 propiedad: 'ID',
288 nombre: 'Código', 297 nombre: 'Código',
289 filtro: { 298 filtro: {
290 nombre: 'rellenarDigitos', 299 nombre: 'rellenarDigitos',
291 parametro: 3 300 parametro: 3
292 } 301 }
293 }, 302 },
294 { 303 {
295 propiedad: 'NOM', 304 propiedad: 'NOM',
296 nombre: 'Nombre' 305 nombre: 'Nombre'
297 } 306 }
298 ], 307 ],
299 titulo: 'Búsqueda de zonas', 308 titulo: 'Búsqueda de zonas',
300 size: 'md' 309 size: 'md'
301 }; 310 };
302 focaModalService.modal(parametrosModal).then( 311 focaModalService.modal(parametrosModal).then(
303 function(zona) { 312 function(zona) {
304 $scope.cliente.zona = zona; 313 $scope.cliente.zona = zona;
305 $timeout(function() { 314 $timeout(function() {
306 $scope.focused = 7; 315 $scope.focused = 7;
307 }); 316 });
308 }, function() { 317 }, function() {
309 // funcion ejecutada cuando se cancela el modal 318 // funcion ejecutada cuando se cancela el modal
310 }); 319 });
311 } 320 }
312 }; 321 };
313 $scope.seleccionarTipoFactura = function(key) { 322 $scope.seleccionarTipoFactura = function(key) {
314 if(key === 13) { 323 if(key === 13) {
315 var parametrosModal = { 324 var parametrosModal = {
316 query: '/tipo-factura', 325 query: '/tipo-factura',
317 columnas: [ 326 columnas: [
318 { 327 {
319 propiedad: 'ID', 328 propiedad: 'ID',
320 nombre: 'Código' 329 nombre: 'Código'
321 }, 330 },
322 { 331 {
323 propiedad: 'NOMBRE', 332 propiedad: 'NOMBRE',
324 nombre: 'Nombre' 333 nombre: 'Nombre'
325 } 334 }
326 ], 335 ],
327 titulo: 'Búsqueda de tipos de factura', 336 titulo: 'Búsqueda de tipos de factura',
328 size: 'md' 337 size: 'md'
329 }; 338 };
330 focaModalService.modal(parametrosModal).then( 339 focaModalService.modal(parametrosModal).then(
331 function(tipoFactura) { 340 function(tipoFactura) {
332 $scope.cliente.tipoFactura = tipoFactura; 341 $scope.cliente.tipoFactura = tipoFactura;
333 $timeout(function() { 342 $timeout(function() {
334 $scope.focused = 11; 343 $scope.focused = 11;
335 }); 344 });
336 }, function() { 345 }, function() {
337 // funcion ejecutada cuando se cancela el modal 346 // funcion ejecutada cuando se cancela el modal
338 }); 347 });
339 } 348 }
340 }; 349 };
341 $scope.seleccionarTipoComprobante = function(key) { 350 $scope.seleccionarTipoComprobante = function(key) {
342 if(key === 13) { 351 if(key === 13) {
343 var parametrosModal = { 352 var parametrosModal = {
344 query: '/tipo-comprobante', 353 query: '/tipo-comprobante',
345 columnas: [ 354 columnas: [
346 { 355 {
347 propiedad: 'ID', 356 propiedad: 'ID',
348 nombre: 'Código' 357 nombre: 'Código'
349 }, 358 },
350 { 359 {
351 propiedad: 'NOMBRE', 360 propiedad: 'NOMBRE',
352 nombre: 'Nombre' 361 nombre: 'Nombre'
353 } 362 }
354 ], 363 ],
355 titulo: 'Búsqueda de tipos de comprobante', 364 titulo: 'Búsqueda de tipos de comprobante',
356 size: 'md' 365 size: 'md'
357 }; 366 };
358 focaModalService.modal(parametrosModal).then( 367 focaModalService.modal(parametrosModal).then(
359 function(tipoComprobante) { 368 function(tipoComprobante) {
360 $scope.cliente.tipoComprobante = tipoComprobante; 369 $scope.cliente.tipoComprobante = tipoComprobante;
361 $timeout(function() { 370 $timeout(function() {
362 $scope.focused = 13; 371 $scope.focused = 13;
363 }); 372 });
364 }, function() { 373 }, function() {
365 // funcion ejecutada cuando se cancela el modal 374 // funcion ejecutada cuando se cancela el modal
366 }); 375 });
367 } 376 }
368 }; 377 };
369 $scope.seleccionarFormaPago = function(key) { 378 $scope.seleccionarFormaPago = function(key) {
370 if(key === 13) { 379 if(key === 13) {
371 var parametrosModal = { 380 var parametrosModal = {
372 query: '/forma-pago', 381 query: '/forma-pago',
373 columnas: [ 382 columnas: [
374 { 383 {
375 propiedad: 'ID', 384 propiedad: 'ID',
376 nombre: 'Código', 385 nombre: 'Código',
377 filtro: { 386 filtro: {
378 nombre: 'rellenarDigitos', 387 nombre: 'rellenarDigitos',
379 parametro: 3 388 parametro: 3
380 } 389 }
381 }, 390 },
382 { 391 {
383 propiedad: 'NOMBRE', 392 propiedad: 'NOMBRE',
384 nombre: 'Nombre' 393 nombre: 'Nombre'
385 } 394 }
386 ], 395 ],
387 titulo: 'Búsqueda de formas de pago', 396 titulo: 'Búsqueda de formas de pago',
388 size: 'md' 397 size: 'md'
389 }; 398 };
390 focaModalService.modal(parametrosModal).then( 399 focaModalService.modal(parametrosModal).then(
391 function(formaPago) { 400 function(formaPago) {
392 $scope.cliente.formaPago = formaPago; 401 $scope.cliente.formaPago = formaPago;
393 }, function() { 402 }, function() {
394 // funcion ejecutada cuando se cancela el modal 403 // funcion ejecutada cuando se cancela el modal
395 }); 404 });
396 } 405 }
397 }; 406 };
398 $scope.seleccionarCobrador = function(key) { 407 $scope.seleccionarCobrador = function(key) {
399 if(key === 13) { 408 if(key === 13) {
400 var parametrosModal = { 409 var parametrosModal = {
401 query: '/cobrador', 410 query: '/cobrador',
402 columnas: [ 411 columnas: [
403 { 412 {
404 propiedad: 'NUM', 413 propiedad: 'NUM',
405 nombre: 'Código' 414 nombre: 'Código'
406 }, 415 },
407 { 416 {
408 propiedad: 'NOM', 417 propiedad: 'NOM',
409 nombre: 'Nombre' 418 nombre: 'Nombre'
410 } 419 }
411 ], 420 ],
412 titulo: 'Búsqueda de cobradores', 421 titulo: 'Búsqueda de cobradores',
413 size: 'md' 422 size: 'md'
414 }; 423 };
415 focaModalService.modal(parametrosModal).then( 424 focaModalService.modal(parametrosModal).then(
416 function(cobrador) { 425 function(cobrador) {
417 $scope.cliente.cobrador = cobrador; 426 $scope.cliente.cobrador = cobrador;
418 }, function() { 427 }, function() {
419 // funcion ejecutada cuando se cancela el modal 428 // funcion ejecutada cuando se cancela el modal
420 }); 429 });
421 } 430 }
422 }; 431 };
423 432
424 $scope.guardar = function() { 433 $scope.guardar = function() {
425 434
426 if (!$scope.cliente.NOM) { 435 if (!$scope.cliente.NOM) {
427 focaModalService.alert('Ingrese Nombre'); 436 focaModalService.alert('Ingrese Nombre');
428 return; 437 return;
429 } else if (!$scope.cliente.CPO) { 438 } else if (!$scope.cliente.CPO) {
430 focaModalService.alert('Ingrese Codigo Postal'); 439 focaModalService.alert('Ingrese Codigo Postal');
431 return; 440 return;
432 } else if (!$scope.cliente.provincia.NOMBRE) { 441 } else if (!$scope.cliente.provincia.NOMBRE) {
433 focaModalService.alert('Seleccione una provincia'); 442 focaModalService.alert('Seleccione una provincia');
434 return; 443 return;
435 } else if (!$scope.cliente.DOM) { 444 } else if (!$scope.cliente.DOM) {
436 focaModalService.alert('Ingrese Domicilio'); 445 focaModalService.alert('Ingrese Domicilio');
437 return; 446 return;
438 } else if (!$scope.cliente.localidad.NOMBRE) { 447 } else if (!$scope.cliente.localidad.NOMBRE) {
439 focaModalService.alert('Seleccione una localidad'); 448 focaModalService.alert('Seleccione una localidad');
440 return; 449 return;
441 } else if (!$scope.cliente.zona.NOM) { 450 } else if (!$scope.cliente.zona.NOM) {
442 focaModalService.alert('Seleccione una zona'); 451 focaModalService.alert('Seleccione una zona');
443 return; 452 return;
444 } else if (!$scope.cliente.actividad.NOM) { 453 } else if (!$scope.cliente.actividad.NOM) {
445 focaModalService.alert('Seleccione actividad'); 454 focaModalService.alert('Seleccione actividad');
446 return; 455 return;
447 } else if (!$scope.cliente.cobrador.NUM) { 456 } else if (!$scope.cliente.cobrador.NUM) {
448 focaModalService.alert('Seleccione un cobrador'); 457 focaModalService.alert('Seleccione un cobrador');
449 return; 458 return;
450 } else if (!$scope.cliente.iva.NOMBRE) { 459 } else if (!$scope.cliente.iva.NOMBRE) {
451 focaModalService.alert('Seleccione responsabilidad ante el IVA'); 460 focaModalService.alert('Seleccione responsabilidad ante el IVA');
452 return; 461 return;
453 } else if (!$scope.cliente.tipoFactura.NOMBRE) { 462 } else if (!$scope.cliente.tipoFactura.NOMBRE) {
454 focaModalService.alert('Seleccione tipo de Factura'); 463 focaModalService.alert('Seleccione tipo de Factura');
455 return; 464 return;
456 } else if (!$scope.cliente.CUIT) { 465 } else if (!$scope.cliente.CUIT) {
457 focaModalService.alert('Ingresar CUIT'); 466 focaModalService.alert('Ingresar CUIT');
458 return; 467 return;
459 } else if (!$scope.cliente.tipoComprobante.NOMBRE) { 468 } else if (!$scope.cliente.tipoComprobante.NOMBRE) {
460 focaModalService.alert('Seleccione un Comprobante'); 469 focaModalService.alert('Seleccione un Comprobante');
461 return; 470 return;
462 } else if (!$scope.cliente.formaPago.NOMBRE) { 471 } else if (!$scope.cliente.formaPago.NOMBRE) {
463 focaModalService.alert('Seleccione una forma de pago'); 472 focaModalService.alert('Seleccione una forma de pago');
464 return; 473 return;
465 } 474 }
466 475
467 $scope.cliente.PCX = $scope.cliente.provincia.ID; 476 $scope.cliente.PCX = $scope.cliente.provincia.ID;
468 $scope.cliente.LOX = $scope.cliente.localidad.ID; 477 $scope.cliente.LOX = $scope.cliente.localidad.ID;
469 $scope.cliente.IVA = $scope.cliente.iva.ID; 478 $scope.cliente.IVA = $scope.cliente.iva.ID;
470 $scope.cliente.ACT = $scope.cliente.actividad.ID; 479 $scope.cliente.ACT = $scope.cliente.actividad.ID;
471 $scope.cliente.ZON = $scope.cliente.zona.ID; 480 $scope.cliente.ZON = $scope.cliente.zona.ID;
472 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID; 481 $scope.cliente.TIP = $scope.cliente.tipoFactura.ID;
473 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID; 482 $scope.cliente.TCO = $scope.cliente.tipoComprobante.ID;
474 $scope.cliente.FPA = $scope.cliente.formaPago.ID; 483 $scope.cliente.FPA = $scope.cliente.formaPago.ID;
475 $scope.cliente.VEN = $scope.vendedor.id; 484 $scope.cliente.VEN = $scope.vendedor.id;
476 $scope.cliente.idCobrador = $scope.cliente.cobrador.id; 485 $scope.cliente.idCobrador = $scope.cliente.cobrador.id;
477 486
478 delete $scope.cliente.provincia; 487 delete $scope.cliente.provincia;
479 delete $scope.cliente.localidad; 488 delete $scope.cliente.localidad;
480 delete $scope.cliente.iva; 489 delete $scope.cliente.iva;
481 delete $scope.cliente.actividad; 490 delete $scope.cliente.actividad;
482 delete $scope.cliente.zona; 491 delete $scope.cliente.zona;
483 delete $scope.cliente.tipoFactura; 492 delete $scope.cliente.tipoFactura;
484 delete $scope.cliente.tipoComprobante; 493 delete $scope.cliente.tipoComprobante;
485 delete $scope.cliente.formaPago; 494 delete $scope.cliente.formaPago;
486 delete $scope.cliente.cobrador; 495 delete $scope.cliente.cobrador;
487 496
488 focaBusquedaClienteService 497 focaBusquedaClienteService
489 .guardarCliente($scope.cliente) 498 .guardarCliente($scope.cliente)
490 .then(function(res) { 499 .then(function(res) {
491 var cliente = { 500 var cliente = {
492 cod: res.data.COD, 501 cod: res.data.COD,
493 cuit: res.data.CUIT, 502 cuit: res.data.CUIT,
494 esNuevo: res.data.esNuevo, 503 esNuevo: res.data.esNuevo,
495 nom: res.data.NOM 504 nom: res.data.NOM
496 }; 505 };
497 $scope.select(cliente, true); 506 $scope.select(cliente, true);
498 }); 507 });
499 }; 508 };
500 509
501 function calcularPages(paginaActual) { 510 function calcularPages(paginaActual) {
502 var paginas = []; 511 var paginas = [];
503 paginas.push(paginaActual); 512 paginas.push(paginaActual);
504 513
505 if (paginaActual - 1 > 1) { 514 if (paginaActual - 1 > 1) {
506 515
507 paginas.unshift(paginaActual - 1); 516 paginas.unshift(paginaActual - 1);
508 if (paginaActual - 2 > 1) { 517 if (paginaActual - 2 > 1) {
509 paginas.unshift(paginaActual - 2); 518 paginas.unshift(paginaActual - 2);
510 } 519 }
511 } 520 }
512 521
513 if (paginaActual + 1 < $scope.lastPage) { 522 if (paginaActual + 1 < $scope.lastPage) {
514 paginas.push(paginaActual + 1); 523 paginas.push(paginaActual + 1);
515 if (paginaActual + 2 < $scope.lastPage) { 524 if (paginaActual + 2 < $scope.lastPage) {
516 paginas.push(paginaActual + 2); 525 paginas.push(paginaActual + 2);
517 } 526 }
518 } 527 }
519 528
520 if (paginaActual !== 1) { 529 if (paginaActual !== 1) {
521 paginas.unshift(1); 530 paginas.unshift(1);
522 } 531 }
523 532
524 if (paginaActual !== $scope.lastPage) { 533 if (paginaActual !== $scope.lastPage) {
525 paginas.push($scope.lastPage); 534 paginas.push($scope.lastPage);
526 } 535 }
527 536
528 return paginas; 537 return paginas;
529 } 538 }
530 539
531 function primera() { 540 function primera() {
532 $scope.selectedClientes = 0; 541 $scope.selectedClientes = 0;
533 } 542 }
534 543
535 function anterior() { 544 function anterior() {
536 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 545 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
537 retrocederPagina(); 546 retrocederPagina();
538 } else { 547 } else {
539 $scope.selectedClientes--; 548 $scope.selectedClientes--;
540 } 549 }
541 } 550 }
542 551
543 function siguiente() { 552 function siguiente() {
544 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) { 553 if ($scope.selectedClientes < $scope.currentPageClientes.length - 1 ) {
545 $scope.selectedClientes++; 554 $scope.selectedClientes++;
546 } else { 555 } else {
547 avanzarPagina(); 556 avanzarPagina();
548 } 557 }
549 } 558 }
550 559
551 function retrocederPagina() { 560 function retrocederPagina() {
552 if ($scope.currentPage > 1) { 561 if ($scope.currentPage > 1) {
553 $scope.selectPage($scope.currentPage - 1); 562 $scope.selectPage($scope.currentPage - 1);
554 $scope.selectedClientes = $scope.numPerPage - 1; 563 $scope.selectedClientes = $scope.numPerPage - 1;
555 } 564 }
556 } 565 }
557 566
558 function avanzarPagina() { 567 function avanzarPagina() {
559 if ($scope.currentPage < $scope.lastPage) { 568 if ($scope.currentPage < $scope.lastPage) {
560 $scope.selectPage($scope.currentPage + 1); 569 $scope.selectPage($scope.currentPage + 1);
561 $scope.selectedClientes = 0; 570 $scope.selectedClientes = 0;
562 } 571 }
563 } 572 }
564 } 573 }
565 ]); 574 ]);
566 575
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 obtenerClientesPorNombreOCuitByVendedor: function(nombreOCuit, idVendedor) { 4 obtenerClientesPorNombreOCuitByVendedor: function(nombreOCuit, idVendedor) {
5 return $http.post(API_ENDPOINT.URL + '/cliente/listar', 5 return $http.post(API_ENDPOINT.URL + '/cliente/listar',
6 {nombreOCuit: nombreOCuit, idVendedor: idVendedor}); 6 {nombreOCuit: nombreOCuit, idVendedor: idVendedor});
7 }, 7 },
8 obtenerClientesPorNombreOCuitByCobrador: function(nombreOCuit, idCobrador) {
9 return $http.post(API_ENDPOINT.URL + '/cliente/listar',
10 {nombreOCuit: nombreOCuit, idCobrador: idCobrador});
11 },
8 obtenerClientesPorNombreOCuit: function(nombreOCuit) { 12 obtenerClientesPorNombreOCuit: function(nombreOCuit) {
9 return $http.post(API_ENDPOINT.URL + '/cliente/listar', 13 return $http.post(API_ENDPOINT.URL + '/cliente/listar',
10 {nombreOCuit: nombreOCuit}); 14 {nombreOCuit: nombreOCuit});
11 }, 15 },
12 guardarCliente: function(cliente) { 16 guardarCliente: function(cliente) {
13 return $http.post(API_ENDPOINT.URL + '/cliente', {cliente: cliente}); 17 return $http.post(API_ENDPOINT.URL + '/cliente', {cliente: cliente});
14 } 18 }
15 }; 19 };
16 }]); 20 }]);
17 21
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 && vendedor.NUM" 21 ng-show="!ingreso && vendedor.NUM"
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 cliente"> 102 <uib-tab heading="Datos cliente">
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-md-6 col-12"> 267 <div class="col-md-6 col-12">
268 <label>Cobrador</label> 268 <label>Cobrador</label>
269 <div class="input-group"> 269 <div class="input-group">
270 <input 270 <input
271 type="text" 271 type="text"
272 class="form-control form-control-sm" 272 class="form-control form-control-sm"
273 ng-model="cliente.cobrador.NOM" 273 ng-model="cliente.cobrador.NOM"
274 ng-keypress="seleccionarCobrador($event.keyCode)" 274 ng-keypress="seleccionarCobrador($event.keyCode)"
275 placeholder="Ingrese cobrador" 275 placeholder="Ingrese cobrador"
276 ng-focus="focus(8)" 276 ng-focus="focus(8)"
277 foca-focus="focused == 8" 277 foca-focus="focused == 8"
278 teclado-virtual 278 teclado-virtual
279 /> 279 />
280 <div class="input-group-append"> 280 <div class="input-group-append">
281 <button 281 <button
282 ladda="searchLoading" 282 ladda="searchLoading"
283 class="btn btn-outline-secondary form-control-sm" 283 class="btn btn-outline-secondary form-control-sm"
284 type="button" 284 type="button"
285 ng-click="seleccionarCobrador(13)" 285 ng-click="seleccionarCobrador(13)"
286 > 286 >
287 <i class="fa fa-search" aria-hidden="true"></i> 287 <i class="fa fa-search" aria-hidden="true"></i>
288 </button> 288 </button>
289 </div> 289 </div>
290 </div> 290 </div>
291 </div> 291 </div>
292 <div class="col-md-6 col-12"> 292 <div class="col-md-6 col-12">
293 <label>Vendedor</label> 293 <label>Vendedor</label>
294 <div class="input-group"> 294 <div class="input-group">
295 <input 295 <input
296 type="text" 296 type="text"
297 class="form-control form-control-sm" 297 class="form-control form-control-sm"
298 ng-model="vendedor.NomVen" 298 ng-model="vendedor.NOM"
299 disabled="true" 299 disabled="true"
300 /> 300 />
301 </div> 301 </div>
302 </div> 302 </div>
303 </div> 303 </div>
304 <div class="row"> 304 <div class="row">
305 <div class="col-6 d-flex"> 305 <div class="col-6 d-flex">
306 <div class="custom-control custom-checkbox mt-auto"> 306 <div class="custom-control custom-checkbox mt-auto">
307 <input 307 <input
308 type="checkbox" 308 type="checkbox"
309 class="custom-control-input" 309 class="custom-control-input"
310 id="checkDistribuidor" 310 id="checkDistribuidor"
311 ng-model="cliente.ES_MAY" 311 ng-model="cliente.ES_MAY"
312 checked 312 checked
313 disabled="disabled"> 313 disabled="disabled">
314 <label class="custom-control-label" for="checkDistribuidor">¿Este cliente es distribuidor?</label> 314 <label class="custom-control-label" for="checkDistribuidor">¿Este cliente es distribuidor?</label>
315 </div> 315 </div>
316 </div> 316 </div>
317 </div> 317 </div>
318 </uib-tab> 318 </uib-tab>
319 <uib-tab heading="Datos impositivos"> 319 <uib-tab heading="Datos impositivos">
320 <div class="row"> 320 <div class="row">
321 <div class="col-md-7 col-12"> 321 <div class="col-md-7 col-12">
322 <label>Responsabilidad ante el IVA</label> 322 <label>Responsabilidad ante el IVA</label>
323 <div class="input-group"> 323 <div class="input-group">
324 <input 324 <input
325 type="text" 325 type="text"
326 class="form-control form-control-sm" 326 class="form-control form-control-sm"
327 placeholder="Ingrese responsabilidad ante el IVA" 327 placeholder="Ingrese responsabilidad ante el IVA"
328 ng-model="cliente.iva.NOMBRE" 328 ng-model="cliente.iva.NOMBRE"
329 ng-keypress="seleccionarIva($event.keyCode)" 329 ng-keypress="seleccionarIva($event.keyCode)"
330 ng-required="true" 330 ng-required="true"
331 ng-focus="focus(9)" 331 ng-focus="focus(9)"
332 foca-focus="focused == 9" 332 foca-focus="focused == 9"
333 teclado-virtual 333 teclado-virtual
334 /> 334 />
335 <div class="input-group-append"> 335 <div class="input-group-append">
336 <button 336 <button
337 ladda="searchLoading" 337 ladda="searchLoading"
338 class="btn btn-outline-secondary form-control-sm" 338 class="btn btn-outline-secondary form-control-sm"
339 type="button" 339 type="button"
340 ng-click="seleccionarIva(13)" 340 ng-click="seleccionarIva(13)"
341 > 341 >
342 <i class="fa fa-search" aria-hidden="true"></i> 342 <i class="fa fa-search" aria-hidden="true"></i>
343 </button> 343 </button>
344 </div> 344 </div>
345 </div> 345 </div>
346 </div> 346 </div>
347 <div class="col-md-5 col-12"> 347 <div class="col-md-5 col-12">
348 <label>Factura que emite</label> 348 <label>Factura que emite</label>
349 <div class="input-group"> 349 <div class="input-group">
350 <input 350 <input
351 type="text" 351 type="text"
352 class="form-control form-control-sm" 352 class="form-control form-control-sm"
353 placeholder="Ingrese factura que emite" 353 placeholder="Ingrese factura que emite"
354 ng-model="cliente.tipoFactura.NOMBRE" 354 ng-model="cliente.tipoFactura.NOMBRE"
355 ng-required="true" 355 ng-required="true"
356 ng-keypress="seleccionarTipoFactura(13)" 356 ng-keypress="seleccionarTipoFactura(13)"
357 ng-focus="focus(10)" 357 ng-focus="focus(10)"
358 foca-focus="focused == 10" 358 foca-focus="focused == 10"
359 teclado-virtual> 359 teclado-virtual>
360 <div class="input-group-append"> 360 <div class="input-group-append">
361 <button 361 <button
362 ladda="searchLoading" 362 ladda="searchLoading"
363 class="btn btn-outline-secondary form-control-sm" 363 class="btn btn-outline-secondary form-control-sm"
364 type="button" 364 type="button"
365 ng-click="seleccionarTipoFactura(13)" 365 ng-click="seleccionarTipoFactura(13)"
366 > 366 >
367 <i class="fa fa-search" aria-hidden="true"></i> 367 <i class="fa fa-search" aria-hidden="true"></i>
368 </button> 368 </button>
369 </div> 369 </div>
370 </div> 370 </div>
371 </div> 371 </div>
372 </div> 372 </div>
373 <div class="row"> 373 <div class="row">
374 <div class="col-md-4 col-12"> 374 <div class="col-md-4 col-12">
375 <label>CUIT</label> 375 <label>CUIT</label>
376 <div class="input-group"> 376 <div class="input-group">
377 <input 377 <input
378 type="text" 378 type="text"
379 class="form-control form-control-sm" 379 class="form-control form-control-sm"
380 placeholder="Ingrese CUIT" 380 placeholder="Ingrese CUIT"
381 ng-model="cliente.CUIT" 381 ng-model="cliente.CUIT"
382 ng-required="true" 382 ng-required="true"
383 ng-pattern="regexCuit" 383 ng-pattern="regexCuit"
384 ng-maxlength="13" 384 ng-maxlength="13"
385 ng-keypress="next($event.keyCode)" 385 ng-keypress="next($event.keyCode)"
386 ng-focus="focus(11)" 386 ng-focus="focus(11)"
387 foca-focus="focused == 11" 387 foca-focus="focused == 11"
388 teclado-virtual> 388 teclado-virtual>
389 </div> 389 </div>
390 </div> 390 </div>
391 <div class="col-md-4 col-12"> 391 <div class="col-md-4 col-12">
392 <label>Clase de comprobante</label> 392 <label>Clase de comprobante</label>
393 <div class="input-group"> 393 <div class="input-group">
394 <input 394 <input
395 type="text" 395 type="text"
396 class="form-control form-control-sm" 396 class="form-control form-control-sm"
397 placeholder="Ingrese clase de comprobante" 397 placeholder="Ingrese clase de comprobante"
398 ng-keypress="seleccionarTipoComprobante($event.keyCode)" 398 ng-keypress="seleccionarTipoComprobante($event.keyCode)"
399 ng-model="cliente.tipoComprobante.NOMBRE" 399 ng-model="cliente.tipoComprobante.NOMBRE"
400 ng-required="true" 400 ng-required="true"
401 ng-focus="focus(12)" 401 ng-focus="focus(12)"
402 foca-focus="focused == 12" 402 foca-focus="focused == 12"
403 teclado-virtual> 403 teclado-virtual>
404 <div class="input-group-append"> 404 <div class="input-group-append">
405 <button 405 <button
406 ladda="searchLoading" 406 ladda="searchLoading"
407 class="btn btn-outline-secondary form-control-sm" 407 class="btn btn-outline-secondary form-control-sm"
408 type="button" 408 type="button"
409 ng-click="seleccionarTipoComprobante(13)" 409 ng-click="seleccionarTipoComprobante(13)"
410 > 410 >
411 <i class="fa fa-search" aria-hidden="true"></i> 411 <i class="fa fa-search" aria-hidden="true"></i>
412 </button> 412 </button>
413 </div> 413 </div>
414 </div> 414 </div>
415 </div> 415 </div>
416 <div class="col-md-4 col-12"> 416 <div class="col-md-4 col-12">
417 <label>Forma de pago</label> 417 <label>Forma de pago</label>
418 <div class="input-group"> 418 <div class="input-group">
419 <input 419 <input
420 type="text" 420 type="text"
421 class="form-control form-control-sm" 421 class="form-control form-control-sm"
422 placeholder="Ingrese forma de pago" 422 placeholder="Ingrese forma de pago"
423 ng-model="cliente.formaPago.NOMBRE" 423 ng-model="cliente.formaPago.NOMBRE"
424 ng-required="true" 424 ng-required="true"
425 ng-keypress="seleccionarFormaPago($event.keyCode)" 425 ng-keypress="seleccionarFormaPago($event.keyCode)"
426 ng-focus="focus(13)" 426 ng-focus="focus(13)"
427 foca-focus="focused == 13" 427 foca-focus="focused == 13"
428 teclado-virtual> 428 teclado-virtual>
429 <div class="input-group-append"> 429 <div class="input-group-append">
430 <button 430 <button
431 ladda="searchLoading" 431 ladda="searchLoading"
432 class="btn btn-outline-secondary form-control-sm" 432 class="btn btn-outline-secondary form-control-sm"
433 type="button" 433 type="button"
434 ng-click="seleccionarFormaPago(13)" 434 ng-click="seleccionarFormaPago(13)"
435 > 435 >
436 <i class="fa fa-search" aria-hidden="true"></i> 436 <i class="fa fa-search" aria-hidden="true"></i>
437 </button> 437 </button>
438 </div> 438 </div>
439 </div> 439 </div>
440 </div> 440 </div>
441 </div> 441 </div>
442 </uib-tab> 442 </uib-tab>
443 </uib-tabset> 443 </uib-tabset>
444 </form> 444 </form>
445 </div> 445 </div>
446 <div class="modal-footer py-1"> 446 <div class="modal-footer py-1">
447 <nav ng-show="currentPageClientes.length > 0 && primerBusqueda && !ingreso" class="mr-auto"> 447 <nav ng-show="currentPageClientes.length > 0 && primerBusqueda && !ingreso" class="mr-auto">
448 <ul class="pagination pagination-sm mb-0"> 448 <ul class="pagination pagination-sm mb-0">
449 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 449 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
450 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)"> 450 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)">
451 <span aria-hidden="true">&laquo;</span> 451 <span aria-hidden="true">&laquo;</span>
452 <span class="sr-only">Anterior</span> 452 <span class="sr-only">Anterior</span>
453 </a> 453 </a>
454 </li> 454 </li>
455 <li 455 <li
456 class="page-item" 456 class="page-item"
457 ng-repeat="pagina in paginas" 457 ng-repeat="pagina in paginas"
458 ng-class="{'active': pagina == currentPage}" 458 ng-class="{'active': pagina == currentPage}"
459 > 459 >
460 <a 460 <a
461 class="page-link" 461 class="page-link"
462 href="javascript:void()" 462 href="javascript:void()"
463 ng-click="selectPage(pagina)" 463 ng-click="selectPage(pagina)"
464 ng-bind="pagina" 464 ng-bind="pagina"
465 ></a> 465 ></a>
466 </li> 466 </li>
467 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 467 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
468 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)"> 468 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)">
469 <span aria-hidden="true">&raquo;</span> 469 <span aria-hidden="true">&raquo;</span>
470 <span class="sr-only">Siguiente</span> 470 <span class="sr-only">Siguiente</span>
471 </a> 471 </a>
472 </li> 472 </li>
473 </ul> 473 </ul>
474 </nav> 474 </nav>
475 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button> 475 <button class="btn btn-sm btn-secondary" type="button" ng-click="cancel()">Cancelar</button>
476 <button 476 <button
477 class="btn btn-sm btn-primary" 477 class="btn btn-sm btn-primary"
478 type="button" 478 type="button"
479 ng-show="ingreso" 479 ng-show="ingreso"
480 ng-click="guardar()" 480 ng-click="guardar()"
481 >Guardar</button> 481 >Guardar</button>
482 </div> 482 </div>
483 483