sidebar.component.ts 1.93 KB
import { Component, OnInit } from '@angular/core';
import { Producto } from 'src/app/wrappers/producto';
import { appSettings } from 'src/etc/AppSettings';
import { ProductoService } from 'src/app/services/producto.service';

@Component({
  selector: 'app-sidebar',
  templateUrl: './sidebar.component.html',
  styleUrls: ['./sidebar.component.scss'],
})
export class SidebarComponent implements OnInit {

  private cantTotal: number = 0;
  private cantMin: number = 1;
  private cantMax: number = 50;
  private total: number = 0;
  private apiUrl: string = appSettings.apiUrl;

  public productosCarrito: Producto[] = [];

  constructor(private productoService: ProductoService) { }

  ngOnInit() {

    this.productosCarrito = this.productoService.productos;
  }

  getCantidadProductos() {

    setTimeout(() => {
      var cantTotalAux = 0;
      this.productosCarrito.forEach(producto => {

        cantTotalAux += producto.cantidad;
      }, 250);
      this.cantTotal = cantTotalAux;
    })
    return this.cantTotal;
  }

  getTotal() {

    var subTotal = 0;
    for (let i = 0; i < this.productosCarrito.length; i++) {
      subTotal = subTotal + (this.productosCarrito[i].PreVen * this.productosCarrito[i].cantidad);
    }
    return this.total = subTotal;
  }

  aumentarCantidad(producto: Producto) {

    if (producto.cantidad < this.cantMax) {
      producto.cantidad++;
      this.cantTotal++
    }
  }

  restarCantidad(producto: Producto) {

    if (producto.cantidad > this.cantMin) {
      producto.cantidad--;
      this.cantTotal--;
    }
  }

  deleteProducto(producto: Producto, index: number) {

    this.cantTotal -= producto.cantidad;
    this.total -= producto.PreVen * producto.cantidad;
    this.productosCarrito.reverse().splice(index, 1);
    return;
  }

  esPersonalizable(producto: Producto) {

    var esPersonalizable: boolean = false;
    if (producto.tieneSinonimos)
      esPersonalizable = true;

    return esPersonalizable;
  }

}