41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
export function transactionPrices(data, filterOK=true) {
|
|
let transactionPrices = {};
|
|
data.forEach((transaction) => {
|
|
const price = Number(transaction[3].replace(',','.'));
|
|
if (!filterOK || transaction[7] === "OK")
|
|
transactionPrices[price] = transactionPrices[price] ? transactionPrices[price] + 1 : 1;
|
|
});
|
|
return transactionPrices;
|
|
}
|
|
|
|
export function calculateTotal(data, filterOK=true) {
|
|
let total = 0;
|
|
data.forEach((transaction) => {
|
|
const price = Number(transaction[3].replace(',','.'));
|
|
if (!filterOK || transaction[7] === "OK")
|
|
total += price;
|
|
});
|
|
return total;
|
|
}
|
|
|
|
export function filterMultiples(prices, multiples=[3.5]) {
|
|
let sales = {};
|
|
Object.entries(prices).forEach((pair) => {
|
|
const price = Number(pair[0]);
|
|
const amount = pair[1];
|
|
let dealt = false; // Ugly loop exit
|
|
//console.log(price,amount);
|
|
for (let i in multiples) {
|
|
let multiple = multiples[i];
|
|
if (price % multiple === 0) {
|
|
const quantity = price/multiple*amount;
|
|
sales[multiple] = sales[multiple] ? sales[multiple] + quantity : quantity;
|
|
dealt = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!dealt) sales[price] = sales[price] ? sales[price] + 1 : 1 ;
|
|
});
|
|
console.log(multiples);
|
|
return sales;
|
|
}
|