Commit 7188ed6ca885a5459afdd8dcf55a1050c2706d97

Authored by Benjamin Rodriguez
1 parent 40d37eb225
Exists in develop

agrego setTimeOut al modal de promos

src/app/modules/admin/admin.component.ts
1 import { Component, OnInit, HostListener } from '@angular/core'; 1 import { Component, OnInit, HostListener } from '@angular/core';
2 import { Router } from '@angular/router'; 2 import { Router } from '@angular/router';
3 import { BsModalRef } from 'ngx-bootstrap/modal'; 3 import { BsModalRef } from 'ngx-bootstrap/modal';
4 4
5 @Component({ 5 @Component({
6 selector: 'app-admin', 6 selector: 'app-admin',
7 templateUrl: './admin.component.html', 7 templateUrl: './admin.component.html',
8 styleUrls: ['./admin.component.scss'] 8 styleUrls: ['./admin.component.scss']
9 }) 9 })
10 10
11 export class AdminComponent implements OnInit { 11 export class AdminComponent implements OnInit {
12 timerReposo: any; 12 timerReposo: any;
13 13
14 constructor( 14 constructor(
15 private router: Router, 15 private router: Router,
16 // private modalRef: BsModalRef 16 // private modalRef: BsModalRef
17 ) { } 17 ) { }
18 18
19 ngOnInit() { 19 ngOnInit() {
20 // this.startTimeOutInactividad(); 20 this.startTimeOutInactividad();
21 } 21 }
22 22
23 @HostListener('document:click', ['$event']) 23 @HostListener('document:click', ['$event'])
24 24
25 // documentClick(event: MouseEvent) { 25 documentClick(event: MouseEvent) {
26 // if (event) { 26 if (event) {
27 // this.restartTimer(); 27 this.restartTimer();
28 // } 28 }
29 // } 29 }
30 30
31 restartTimer() { 31 restartTimer() {
32 clearTimeout(this.timerReposo); 32 clearTimeout(this.timerReposo);
33 this.startTimeOutInactividad(); 33 this.startTimeOutInactividad();
34 } 34 }
35 35
36 startTimeOutInactividad() { 36 startTimeOutInactividad() {
37 this.timerReposo = setTimeout(() => { 37 this.timerReposo = setTimeout(() => {
38 // this.modalRef.hide(); 38 // this.modalRef.hide();
39 this.router.navigate(['cancelar-compra']); 39 this.router.navigate(['cancelar-compra']);
40 }, 90000); 40 }, 90000);
41 } 41 }
42 42
43 } 43 }
44 44
src/app/modules/seleccion-articulos/seleccion-articulos.component.ts
1 import { Component, OnInit, TemplateRef } from '@angular/core'; 1 import { Component, OnInit, TemplateRef } from '@angular/core';
2 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal'; 2 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
3 import { ArticuloService } from 'src/app/services/articulo/articulo.service'; 3 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
4 import { IArticulo } from 'src/app/interfaces/IArticulo'; 4 import { IArticulo } from 'src/app/interfaces/IArticulo';
5 import { APP_SETTINGS } from 'src/etc/AppSettings'; 5 import { APP_SETTINGS } from 'src/etc/AppSettings';
6 import { ICategoria } from 'src/app/interfaces/ICategoria'; 6 import { ICategoria } from 'src/app/interfaces/ICategoria';
7 import { CategoriaService } from 'src/app/services/categoria/categoria.service'; 7 import { CategoriaService } from 'src/app/services/categoria/categoria.service';
8 import { PromocionService } from 'src/app/services/promocion/promocion.service'; 8 import { PromocionService } from 'src/app/services/promocion/promocion.service';
9 9
10 @Component({ 10 @Component({
11 selector: 'app-seleccion-articulos', 11 selector: 'app-seleccion-articulos',
12 templateUrl: './seleccion-articulos.component.html', 12 templateUrl: './seleccion-articulos.component.html',
13 styleUrls: ['./seleccion-articulos.component.scss'] 13 styleUrls: ['./seleccion-articulos.component.scss']
14 }) 14 })
15 export class SeleccionArticulosComponent implements OnInit { 15 export class SeleccionArticulosComponent implements OnInit {
16 showSpinner = true; 16 showSpinner = true;
17 timeoutHandler: any; 17 timeoutHandler: any;
18 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`; 18 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`;
19 articulos: IArticulo[] = []; 19 articulos: IArticulo[] = [];
20 auxArticulos: IArticulo[] = []; 20 auxArticulos: IArticulo[] = [];
21 showQuantity = 100; 21 showQuantity = 100;
22 queMostrar = 'todos'; 22 queMostrar = 'todos';
23 categoriaActive: number = null; 23 categoriaActive: number = null;
24 categorias: ICategoria[] = []; 24 categorias: ICategoria[] = [];
25 searchTerm = ''; 25 searchTerm = '';
26 ordenandoByVendidos = true; 26 ordenandoByVendidos = true;
27 allActive = true; 27 allActive = true;
28 modalRef: BsModalRef; 28 modalRef: BsModalRef;
29 total: number = 0; 29 total: number = 0;
30 articuloPromo: IArticulo[] = []; 30 articuloPromo: IArticulo[] = [];
31 promociones: IArticulo[] = []; 31 promociones: IArticulo[] = [];
32 32
33 constructor( 33 constructor(
34 public articuloService: ArticuloService, 34 public articuloService: ArticuloService,
35 private categoriaService: CategoriaService, 35 private categoriaService: CategoriaService,
36 private modalService: BsModalService, 36 private modalService: BsModalService,
37 private promocionService: PromocionService 37 private promocionService: PromocionService
38 ) { } 38 ) { }
39 39
40 ngOnInit() { 40 ngOnInit() {
41 this.getCategorias(); 41 this.getCategorias();
42 } 42 }
43 43
44 getCategorias() { 44 getCategorias() {
45 this.categoriaService.getCategorias() 45 this.categoriaService.getCategorias()
46 .subscribe((categorias: ICategoria[]) => { 46 .subscribe((categorias: ICategoria[]) => {
47 switch (this.queMostrar) { 47 switch (this.queMostrar) {
48 case 'todos': 48 case 'todos':
49 this.categorias = categorias; 49 this.categorias = categorias;
50 this.categoriaActive = 0; 50 this.categoriaActive = 0;
51 break; 51 break;
52 case 'promociones': 52 case 'promociones':
53 this.categorias = categorias; 53 this.categorias = categorias;
54 this.categoriaActive = 19; 54 this.categoriaActive = 19;
55 break; 55 break;
56 case 'ordenar': 56 case 'ordenar':
57 this.categorias = categorias.filter((categoria: ICategoria) => { 57 this.categorias = categorias.filter((categoria: ICategoria) => {
58 return categoria.ES_PEDIDO; 58 return categoria.ES_PEDIDO;
59 }); 59 });
60 this.categoriaActive = 4; 60 this.categoriaActive = 4;
61 break; 61 break;
62 default: 62 default:
63 this.categorias = categorias; 63 this.categorias = categorias;
64 this.categoriaActive = 0; 64 this.categoriaActive = 0;
65 break; 65 break;
66 } 66 }
67 !localStorage.getItem('articulos') ? 67 !localStorage.getItem('articulos') ?
68 this.getProductos() : 68 this.getProductos() :
69 this.setProductos(); 69 this.setProductos();
70 }); 70 });
71 } 71 }
72 72
73 getProductos() { 73 getProductos() {
74 this.articuloService.getAll() 74 this.articuloService.getAll()
75 .subscribe((result: IArticulo[]) => { 75 .subscribe((result: IArticulo[]) => {
76 this.articuloService.setArticulosSinImagen(result); 76 this.articuloService.setArticulosSinImagen(result);
77 if (this.queMostrar === 'ordenar') { 77 if (this.queMostrar === 'ordenar') {
78 this.categorias.forEach((categoria: ICategoria) => { 78 this.categorias.forEach((categoria: ICategoria) => {
79 const tempArticulos = result.filter((articulo: IArticulo) => { 79 const tempArticulos = result.filter((articulo: IArticulo) => {
80 return articulo.categoria_selfservice === categoria.id; 80 return articulo.categoria_selfservice === categoria.id;
81 }); 81 });
82 result = tempArticulos; 82 result = tempArticulos;
83 }); 83 });
84 } 84 }
85 localStorage.setItem('articulos', JSON.stringify(result)); 85 localStorage.setItem('articulos', JSON.stringify(result));
86 this.setProductos(); 86 this.setProductos();
87 }, (error) => { 87 }, (error) => {
88 this.showSpinner = false; 88 this.showSpinner = false;
89 console.error(error); 89 console.error(error);
90 }); 90 });
91 } 91 }
92 92
93 setProductos() { 93 setProductos() {
94 this.articulos = JSON.parse(localStorage.getItem('articulos')); 94 this.articulos = JSON.parse(localStorage.getItem('articulos'));
95 this.filterItems(); 95 this.filterItems();
96 } 96 }
97 97
98 filterItems() { 98 filterItems() {
99 if (this.categoriaActive === 0) { 99 if (this.categoriaActive === 0) {
100 this.auxArticulos = this.articulos; 100 this.auxArticulos = this.articulos;
101 return; 101 return;
102 } 102 }
103 this.auxArticulos = this.articulos.filter(x => { 103 this.auxArticulos = this.articulos.filter(x => {
104 return x.categoria_selfservice === this.categoriaActive; 104 return x.categoria_selfservice === this.categoriaActive;
105 }); 105 });
106 this.ordenar(); 106 this.ordenar();
107 } 107 }
108 108
109 ordenar() { 109 ordenar() {
110 if (this.ordenandoByVendidos) { 110 if (this.ordenandoByVendidos) {
111 this.auxArticulos.sort((a, b) => { 111 this.auxArticulos.sort((a, b) => {
112 return b.cantidadVendida - a.cantidadVendida; 112 return b.cantidadVendida - a.cantidadVendida;
113 }); 113 });
114 } 114 }
115 } 115 }
116 116
117 selectCategoria(index: number, idCategoria?: number) { 117 selectCategoria(index: number, idCategoria?: number) {
118 if (this.categoriaActive === idCategoria) return; 118 if (this.categoriaActive === idCategoria) return;
119 this.categoriaActive = idCategoria; 119 this.categoriaActive = idCategoria;
120 this.allActive = idCategoria === 0 ? true : false; 120 this.allActive = idCategoria === 0 ? true : false;
121 this.categorias.forEach((categoria, i) => { 121 this.categorias.forEach((categoria, i) => {
122 categoria.selected = index === i ? true : false; 122 categoria.selected = index === i ? true : false;
123 }); 123 });
124 this.filterItems(); 124 this.filterItems();
125 } 125 }
126 126
127 elegirArticulo(articulo: IArticulo) { 127 elegirArticulo(articulo: IArticulo) {
128 this.articuloService.getById(articulo.id) 128 this.articuloService.getById(articulo.id)
129 .subscribe((res: IArticulo) => { 129 .subscribe((res: IArticulo) => {
130 res.cantidad = 1; 130 res.cantidad = 1;
131 this.articuloService.setArticulo(res); 131 this.articuloService.setArticulo(res);
132 }, err => console.error(err)); 132 }, err => console.error(err));
133 } 133 }
134 134
135 openModalPromos(articulo: IArticulo, templatePromos: TemplateRef<any>) { 135 openModalPromos(articulo: IArticulo, templatePromos: TemplateRef<any>) {
136 this.articuloService.getById(articulo.id) 136 this.articuloService.getById(articulo.id)
137 .subscribe((res: IArticulo) => { 137 .subscribe((res: IArticulo) => {
138 this.articuloPromo[0] = res; 138 this.articuloPromo[0] = res;
139 this.getPromociones(); 139 this.getPromociones();
140 }, err => console.error(err)); 140 }, err => console.error(err));
141 this.modalRef = this.modalService.show(templatePromos, { class: 'custom-modal modal-dialog-centered', backdrop: 'static' }); 141 this.modalRef = this.modalService.show(templatePromos, { class: 'custom-modal modal-dialog-centered', backdrop: 'static' });
142 setTimeout(() => {
143 this.modalRef.hide();
144 }, 80000);
142 } 145 }
143 146
144 getPromociones() { 147 getPromociones() {
145 var sector = this.articuloPromo[0].CodSec; 148 var sector = this.articuloPromo[0].CodSec;
146 var codigo = this.articuloPromo[0].CodArt; 149 var codigo = this.articuloPromo[0].CodArt;
147 this.promocionService.getPromociones(sector, codigo) 150 this.promocionService.getPromociones(sector, codigo)
148 .subscribe((res: IArticulo[]) => { 151 .subscribe((res: IArticulo[]) => {
149 this.promociones = res; 152 this.promociones = res;
150 }, error => { console.error(error); }) 153 }, error => { console.error(error); })
151 } 154 }
152 155
153 increaseShow() { 156 increaseShow() {
154 this.showQuantity += 100; 157 this.showQuantity += 100;
155 } 158 }
156 159
157 mouseup() { 160 mouseup() {
158 if (!this.timeoutHandler) return; 161 if (!this.timeoutHandler) return;
159 clearInterval(this.timeoutHandler); 162 clearInterval(this.timeoutHandler);
160 } 163 }
161 164
162 scrollY(el: HTMLElement, value) { 165 scrollY(el: HTMLElement, value) {
163 el.scroll({ behavior: 'smooth', top: value + el.scrollTop }); 166 el.scroll({ behavior: 'smooth', top: value + el.scrollTop });
164 this.timeoutHandler = setInterval(() => { 167 this.timeoutHandler = setInterval(() => {
165 el.scroll({ behavior: 'smooth', top: value + el.scrollTop }); 168 el.scroll({ behavior: 'smooth', top: value + el.scrollTop });
166 }, 500); 169 }, 500);
167 } 170 }
168 171
169 scrollX(el: HTMLElement, value) { 172 scrollX(el: HTMLElement, value) {
170 el.scroll({ behavior: 'smooth', left: value + el.scrollLeft }); 173 el.scroll({ behavior: 'smooth', left: value + el.scrollLeft });
171 this.timeoutHandler = setInterval(() => { 174 this.timeoutHandler = setInterval(() => {
172 el.scroll({ behavior: 'smooth', left: value + el.scrollLeft }); 175 el.scroll({ behavior: 'smooth', left: value + el.scrollLeft });
173 }, 500); 176 }, 500);
174 } 177 }
175 } 178 }
176 179