Commit db0824e1450dedb79053cf5c3a177121ffbed12c

Authored by Marcelo Puebla
Exists in develop

Merge branch 'develop' into 'develop'

Develop

See merge request !76
src/app/shared/header-publicidad/header-publicidad.component.ts
1 import { Component, OnInit, TemplateRef } from '@angular/core'; 1 import { Component, OnInit, TemplateRef } from '@angular/core';
2 import { APP_SETTINGS } from 'src/etc/AppSettings'; 2 import { APP_SETTINGS } from 'src/etc/AppSettings';
3 import { IPublicidad } from 'src/app/interfaces/IPublicidad'; 3 import { IPublicidad } from 'src/app/interfaces/IPublicidad';
4 import { PublicidadService } from 'src/app/services/publicidad/publicidad.service'; 4 import { PublicidadService } from 'src/app/services/publicidad/publicidad.service';
5 import { IArticulo } from 'src/app/interfaces/IArticulo'; 5 import { IArticulo } from 'src/app/interfaces/IArticulo';
6 import { PromocionComponent } from '../promocion/promocion.component'; 6 import { PromocionComponent } from '../promocion/promocion.component';
7 import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal'; 7 import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
8 import { ArticuloService } from 'src/app/services/articulo/articulo.service'; 8 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
9 import { ConfirmacionComponent } from '../confirmacion/confirmacion.component'; 9 import { ConfirmacionComponent } from '../confirmacion/confirmacion.component';
10 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service'; 10 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service';
11 import { ISinonimo } from 'src/app/interfaces/ISinonimo'; 11 import { ISinonimo } from 'src/app/interfaces/ISinonimo';
12 import { SinonimoComponent } from '../sinonimo/sinonimo.component'; 12 import { SinonimoComponent } from '../sinonimo/sinonimo.component';
13 import * as _ from 'lodash';
13 14
14 @Component({ 15 @Component({
15 selector: 'app-header-publicidad', 16 selector: 'app-header-publicidad',
16 templateUrl: './header-publicidad.component.html', 17 templateUrl: './header-publicidad.component.html',
17 styleUrls: ['./header-publicidad.component.scss'] 18 styleUrls: ['./header-publicidad.component.scss']
18 }) 19 })
19 export class HeaderPublicidadComponent implements OnInit { 20 export class HeaderPublicidadComponent implements OnInit {
20 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`; 21 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`;
21 publicidades: IPublicidad[] = []; 22 publicidades: IPublicidad[] = [];
22 modalRef: BsModalRef; 23 modalRef: BsModalRef;
23 24
24 constructor( 25 constructor(
25 private publicidadService: PublicidadService, 26 private publicidadService: PublicidadService,
26 private articuloService: ArticuloService, 27 private articuloService: ArticuloService,
27 private modalService: BsModalService, 28 private modalService: BsModalService,
28 private sinonimoService: SinonimoService 29 private sinonimoService: SinonimoService
29 ) { } 30 ) { }
30 31
31 ngOnInit() { 32 ngOnInit() {
32 this.getPublicidades(); 33 this.getPublicidades();
33 this.mediaPantalla(); 34 this.mediaPantalla();
34 } 35 }
35 36
36 getPublicidades() { 37 getPublicidades() {
37 this.publicidadService.getAll() 38 this.publicidadService.getAll()
38 .subscribe((res: IPublicidad[]) => { 39 .subscribe((res: IPublicidad[]) => {
39 this.publicidades = res; 40 this.publicidades = res;
40 }, err => console.error(err)); 41 }, err => console.error(err));
41 } 42 }
42 43
43 elegirArticulo(publicidad: IPublicidad) { 44 elegirArticulo(publicidad: IPublicidad) {
44 if (publicidad.id_articulo) this.getByID(publicidad.id_articulo); 45 if (publicidad.id_articulo) this.getByID(publicidad.id_articulo);
45 } 46 }
46 47
47 getByID(id: number) { 48 getByID(id: number) {
48 this.articuloService.getById(id) 49 this.articuloService.getById(id)
49 .subscribe((res: IArticulo) => { 50 .subscribe((res: IArticulo) => {
50 if (res.FPP) { 51 if (res.FPP) {
51 this.openModalPromos(res); 52 this.openModalPromos(res);
52 return; 53 return;
53 } else { 54 } else {
54 this.openModalConfirmacion(res); 55 this.openModalConfirmacion(res);
55 return; 56 return;
56 } 57 }
57 }, err => console.error(err)); 58 }, err => console.error(err));
58 } 59 }
59 60
60 openModalPromos(articulo: IArticulo) { 61 openModalPromos(articulo: IArticulo) {
61 this.modalRef = this.modalService.show(PromocionComponent, 62 this.modalRef = this.modalService.show(PromocionComponent,
62 { 63 {
63 initialState: { 64 initialState: {
64 idArticulo: articulo.id 65 idArticulo: articulo.id
65 }, 66 },
66 class: 'modal-promo modal-dialog-centered' 67 class: 'modal-promo modal-dialog-centered'
67 }); 68 });
68 } 69 }
69 70
70 openModalConfirmacion(articulo: IArticulo) { 71 openModalConfirmacion(articulo: IArticulo) {
71 this.modalRef = this.modalService.show(ConfirmacionComponent, 72 this.modalRef = this.modalService.show(ConfirmacionComponent,
72 { 73 {
73 initialState: { 74 initialState: {
74 titleMessage: articulo.DET_LAR, 75 titleMessage: articulo.DET_LAR,
75 imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/imagen-no-encontrada.jpg', 76 imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/imagen-no-encontrada.jpg',
76 footerMessageFirst: `¿DESEA AGREGAR ESTE ARTÍCULO`, 77 footerMessageFirst: `¿DESEA AGREGAR ESTE ARTÍCULO`,
77 footerMessageSecond: `a su carrito?`, 78 footerMessageSecond: `a su carrito?`,
78 footerConfirmation: articulo.PreVen, 79 footerConfirmation: articulo.PreVen,
79 footerClose: `volver` 80 footerClose: `volver`
80 }, 81 },
81 class: 'modal-promo modal-dialog-centered' 82 class: 'modal-promo modal-dialog-centered'
82 }); 83 });
83 this.modalRef.content.onClose.subscribe(() => { 84 this.modalRef.content.onClose.subscribe(() => {
84 this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt) 85 this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt)
85 .subscribe((res: ISinonimo[]) => { 86 .subscribe((res: ISinonimo[]) => {
86 if (res.length) { 87 if (res.length) {
87 const sinonimos = []; 88 const sinonimos = [];
88 const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN'); 89 const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN');
89 Object.keys(gruposArticulos).forEach(key => { 90 Object.keys(gruposArticulos).forEach(key => {
90 sinonimos.push({ productos: gruposArticulos[key] }); 91 sinonimos.push({ productos: gruposArticulos[key] });
91 }); 92 });
92 res = sinonimos; 93 res = sinonimos;
93 this.openModalSinonimos(res, articulo); 94 this.openModalSinonimos(res, articulo);
94 } else { 95 } else {
95 articulo.cantidad = 1; 96 articulo.cantidad = 1;
96 this.articuloService.setArticulo(articulo); 97 this.articuloService.setArticulo(articulo);
97 } 98 }
98 }, err => console.error(err)); 99 }, err => console.error(err));
99 }); 100 });
100 this.mediaPantalla(); 101 this.mediaPantalla();
101 } 102 }
102 103
103 openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) { 104 openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) {
104 const modalSinonimo = this.modalService.show(SinonimoComponent, { 105 const modalSinonimo = this.modalService.show(SinonimoComponent, {
105 initialState: { sinonimos: sinonimosData }, 106 initialState: { sinonimos: sinonimosData },
106 class: 'modal-promo modal-dialog-centered' 107 class: 'modal-promo modal-dialog-centered'
107 }); 108 });
108 modalSinonimo.content.onClose 109 modalSinonimo.content.onClose
109 .subscribe((res: any) => { 110 .subscribe((res: any) => {
110 for (const a of articulo.productos) { 111 for (const a of articulo.productos) {
111 for (const aRes of res.articulos) { 112 for (const aRes of res.articulos) {
112 if (a.idSinonimo === aRes.ID_SIN) { 113 if (a.idSinonimo === aRes.ID_SIN) {
113 a.CODA = aRes.CodArt; 114 a.CODA = aRes.CodArt;
114 a.CodArt = aRes.CodArt; 115 a.CodArt = aRes.CodArt;
115 a.SECA = aRes.CodSec; 116 a.SECA = aRes.CodSec;
116 aRes.CodSec = aRes.CodSec; 117 aRes.CodSec = aRes.CodSec;
117 a.PreVen = aRes.PreVen; 118 a.PreVen = aRes.PreVen;
118 a.id = aRes.id; 119 a.id = aRes.id;
119 a.DET_LAR = aRes.DET_LAR; 120 a.DET_LAR = aRes.DET_LAR;
120 a.DetArt = aRes.DetArt; 121 a.DetArt = aRes.DetArt;
121 } 122 }
122 } 123 }
123 } 124 }
124 this.articuloService.setArticulo(articulo); 125 this.articuloService.setArticulo(articulo);
125 }); 126 });
126 } 127 }
127 128
128 mediaPantalla() { 129 mediaPantalla() {
129 if ($('body').hasClass('media-pantalla')) { 130 if ($('body').hasClass('media-pantalla')) {
130 $('#headerPublicidad,#headerPad').addClass('media-pantalla'); 131 $('#headerPublicidad,#headerPad').addClass('media-pantalla');
131 } 132 }
132 } 133 }
133 } 134 }
134 135