treso-lydia-dump/src/filter.js
2021-12-22 17:54:50 +01:00

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;
}