Summed table of products, small improvements

This commit is contained in:
2024-07-16 17:12:52 +02:00
parent bbec759b08
commit ff3b22fb1b
5 changed files with 176 additions and 55 deletions

View File

@@ -1,5 +1,5 @@
import { defineStore } from 'pinia'
import type { Category } from '@/main'
import type { Category, Order, Product } from '@/main'
import { ref } from 'vue'
import { axiosInstance } from '@/main'
@@ -15,6 +15,12 @@ export const useCategoriesStore = defineStore('categories', () => {
for (const product of category.Towary) {
product.Options = new Array(product.Twr_JM);
product.ChosenOption = product.Twr_JM;
product.BasePrice = product.Twr_Cena;
product.BasePriceZ = product.Twr_CenaZ;
product.SummedQuantity = 0;
product.SummedQuantityZ = 0;
product.SummedPrice = 0;
product.SummedPriceZ = 0;
if (product.Twr_JMZ != null) {
product.Options.push(product.Twr_JMZ);
}
@@ -23,5 +29,36 @@ export const useCategoriesStore = defineStore('categories', () => {
}
}
return {categories, fetchCategories}
async function sumProductsFromOrders(orders : Array<Order>) {
const productsMap = new Map<string, Product>();
await fetchCategories();
if(categories.value != undefined) {
for (const category of categories.value) {
for (const product of category.Towary) {
productsMap.set(product.Twr_TwrId.toString(), product);
}
}
}
if(orders != undefined) {
for (const order of orders) {
for (const product of order.MZamElem) {
const mapProduct = productsMap.get(String(product.MZE_TwrId));
if(product.MZE_TwrJm == mapProduct?.Twr_JM) {
mapProduct.SummedQuantity += Number(product.MZE_TwrIlosc);
mapProduct.SummedPrice += (Number(product.MZE_TwrCena) * Number(product.MZE_TwrIlosc));
}
if (product.MZE_TwrJm == mapProduct?.Twr_JMZ) {
mapProduct.SummedQuantityZ += Number(product.MZE_TwrIlosc);
mapProduct.SummedPriceZ += (Number(product.MZE_TwrCena) * Number(product.MZE_TwrIlosc));
}
}
}
}
console.log(categories.value);
}
return {categories, fetchCategories, sumProductsFromOrders}
})