Creazione tabella Product

This commit is contained in:
Paolo Arena
2020-12-21 02:16:42 +01:00
parent 9ee59c0fc1
commit 67d2872e61
21 changed files with 767 additions and 42 deletions

View File

@@ -0,0 +1,67 @@
const cartModel = require('../models/cart')
class Cart {
constructor(oldCart) {
this.items = oldCart.items || {};
this.totalQty = oldCart.totalQty || 0;
this.totalPrice = oldCart.totalPrice || 0;
this.userId = oldCart.userId || "";
}
add(item, id) {
let storedItem = this.items[id];
if (!storedItem) {
storedItem = this.items[id] = { item: item, qty: 0, price: 0 };
}
storedItem.qty++;
storedItem.price = parseFloat((storedItem.item.price * storedItem.qty).toFixed(2));
this.items[id]=storedItem
this.totalQty++;
this.totalPrice += storedItem.item.price;
this.totalPrice = parseFloat(this.totalPrice.toFixed(2))
return this
}
generateModel(){
let newCart = new cartModel({
items: this.items,
totalQty: this.totalQty,
totalPrice: this.totalPrice,
userId: this.userId
})
return newCart
}
decreaseQty(id) {
this.items[id].qty--;
this.items[id].price -= this.items[id].item.price;
this.items[id].price = parseFloat(this.items[id].price.toFixed(2))
this.totalQty--;
this.totalPrice -= this.items[id].item.price
this.totalPrice = parseFloat(this.totalPrice.toFixed(2))
if (this.items[id].qty <= 0) {
delete this.items[id];
}
return this
}
increaseQty(id) {
this.items[id].qty++;
this.items[id].price += this.items[id].item.price;
this.items[id].price = parseFloat(this.items[id].price.toFixed(2))
this.totalQty++;
this.totalPrice += this.items[id].item.price
this.totalPrice = parseFloat(this.totalPrice.toFixed(2))
return this
}
generateArray() {
let arr = [];
for (let id in this.items) {
arr.push(this.items[id])
}
return arr;
}
}
module.exports = Cart