Commit 0ce491b2106809502b3fbe756a19b62213ca0610

Authored by Marcelo Puebla
Exists in develop

Merge branch 'master' into 'develop'

Master(benjamin)

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