sidebar.component.ts 2.51 KB
import { Component, OnInit } from '@angular/core';


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

  private cont: number = 1;
  private min: number = 1;
  private max: number = 50;
  private total: number = 0;

  private productos = [
    {
      "id": 1,
      "desc": "Galletas Oreo",
      "cod": 225412,
      "precio": 15,
      "img": "./assets/img/descarga.jpg",
      "cantidad": 1
    },
    {
      "id": 2,
      "desc": "Coca cola 500ml",
      "cod": 512632,
      "precio": 40,
      "img": "./assets/img/descarga.jpg",
      "cantidad": 1
    },
    {
      "id": 3,
      "desc": "Pancho grande",
      "cod": 775987,
      "precio": 45,
      "img": "./assets/img/descarga.jpg",
      "cantidad": 1
    }
  ];

  constructor() { }

  ngOnInit() {

    this.getCantidadProductos();
    this.getTotal();

  }

  getCantidadProductos() {
    var aux = 0;
    for (let i = 0; i < this.productos.length; i++) {
      ++aux;
    }
    return this.cont = aux;
  }

  getTotal() {

    let subTotal = 0;
    for (let i = 0; i < this.productos.length; i++) {
      subTotal = subTotal + (this.productos[i].precio * this.productos[i].cantidad);
    }
    console.log(subTotal);
    return this.total = subTotal;
  }

  public aumentarContador(index) {

    ++this.cont;
    for (let i = 0; i < this.productos.length; i++) {
      if (i === index) {
        this.total = this.total + this.productos[i].precio;
        return (this.productos[i].cantidad === this.max) ?
          this.productos[i].cantidad : ++this.productos[i].cantidad;

      }
    }
  }

  decrementarContador(index) {

    for (let i = 0; i < this.productos.length; i++) {
      if (i === index && this.productos[i].cantidad > 1) {
        --this.productos[i].cantidad;
        --this.cont;
        break;
      }
    }

    this.getTotal()
  }

  setCantidadItems() {

    this.cont = 0;
    for (let i = 0; i < this.productos.length; i++) {
      this.cont += this.productos[i].cantidad;
    }
  }

  deleteProducto(index) {

    for (let i = 0; i < this.productos.length; i++) {
      if (i === index) {
        this.cont -= this.productos[i].cantidad;
        //Elimina del total el precio de todo el item
        this.total = this.total - (this.productos[i].precio * this.productos[i].cantidad);
        this.productos.splice(i, 1);
        return;
      }
    }
  }

  clearCar() {
    
    this.productos = [];
    this.total = 0;
    this.cont = 0;
  }
}