sinonimo.component.ts 1.59 KB
import { Component, OnInit } from '@angular/core';
import { ISinonimo } from 'src/app/interfaces/ISinonimo';
import { IArticulo } from 'src/app/interfaces/IArticulo';
import { BsModalRef } from 'ngx-bootstrap/modal';
import { Subject } from 'rxjs';
import { ArticuloService } from 'src/app/services/articulo/articulo.service';

@Component({
  selector: 'app-sinonimo',
  templateUrl: './sinonimo.component.html',
  styleUrls: ['./sinonimo.component.scss']
})
export class SinonimoComponent implements OnInit {
  sinonimos: ISinonimo[] = [];
  isValid: boolean;
  onClose: Subject<any>;
  articuloSelected: IArticulo;

  constructor(
    private modalRef: BsModalRef,
    private articuloService: ArticuloService,
  ) {
    this.onClose = new Subject();
  }

  ngOnInit() {
  }

  selectArticulo(articulo: IArticulo) {
    for (const s of this.sinonimos) {
      for (const a of s.productos) {
        a.seleccionado = false;
      }
    }
    articulo.seleccionado = true;
    this.articuloSelected = articulo;
  }

  validate() {
    this.isValid = false;
    for (const s of this.sinonimos) {
      for (const articulo of s.productos) {
        if (articulo.seleccionado) {
          this.isValid = true;
        }
      }
    }
    return !this.isValid ? 'disabled' : '';
  }

  continue() {
    if (!this.isValid) return;
    const ID_SIN = this.articuloSelected.ID_SIN;
    this.articuloService.getById(this.articuloSelected.id)
      .subscribe((res: IArticulo) => {
        this.modalRef.hide();
        this.onClose.next({
          articulo: res,
          ID_SIN
        });
      }, err => console.error(err));
  }

}