header-publicidad.component.ts 2.04 KB
import { Component, OnInit } from '@angular/core';
import { APP_SETTINGS } from 'src/etc/AppSettings';
import { IPublicidad } from 'src/app/interfaces/IPublicidad';
import { PublicidadService } from 'src/app/services/publicidad/publicidad.service';
import { IArticulo } from 'src/app/interfaces/IArticulo';
import { PromocionComponent } from '../promocion/promocion.component';
import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
import { ArticuloService } from 'src/app/services/articulo/articulo.service';

@Component({
  selector: 'app-header-publicidad',
  templateUrl: './header-publicidad.component.html',
  styleUrls: ['./header-publicidad.component.scss']
})
export class HeaderPublicidadComponent implements OnInit {
  urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`;
  publicidades: IPublicidad[] = [];
  modalRef: BsModalRef;

  constructor(
    private publicidadService: PublicidadService,
    private articuloService: ArticuloService,
    private modalService: BsModalService,
  ) { }

  ngOnInit() {
    this.getPublicidades();
    this.mediaPantalla();
  }

  getPublicidades() {
    this.publicidadService.getAll()
      .subscribe((res: IPublicidad[]) => {
        this.publicidades = res;
      }, err => console.error(err));
  }

  elegirArticulo(publicidad: IPublicidad) {
    if (publicidad.id_articulo) this.getByID(publicidad.id_articulo);
  }

  getByID(id: number) {
    this.articuloService.getById(id)
      .subscribe((res: IArticulo) => {
        if (res.FPP) {
          this.openModalPromos(res);
          return;
        }
        res.cantidad = 1;
        this.articuloService.setArticulo(res);
      }, err => console.error(err));
  }

  openModalPromos(articulo: IArticulo) {
    this.modalRef = this.modalService.show(PromocionComponent,
      {
        initialState: {
          idArticulo: articulo.id
        },
        class: 'modal-promo modal-dialog-centered'
      });
  }

  mediaPantalla() {
    if ($('body').hasClass('media-pantalla')) {
      $('#headerPublicidad,#headerPad').addClass('media-pantalla');
    }
  }
}