Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const csvtojson = require("csvtojson");
- const _ = require("lodash");
- let map = {
- food: {
- keywords: [
- "BIEDRONKA",
- "ZABKA",
- "CARREFOUR",
- "ORLEN",
- "POLOMARKET",
- ],
- },
- foodOut: {
- keywords: [
- "PHA THA THAI",
- "MAX PREMIUM BURGERS",
- "SUSHI CORNER",
- "SANDWICZ SZOP",
- ],
- },
- parties: {
- keywords: [
- "CLUB JAMAICA",
- "PUB KREWNEGO",
- "SCHODY DONIKAD",
- "KLUB MELANZ",
- "MUNDO 71",
- "PRZYBIJ PIATAKA",
- ],
- },
- tickets: {
- keywords: [
- "INTERCITY",
- "SKYCASH",
- ],
- },
- subscriptions: {
- keywords: [
- "EUROSPORTSA",
- "NETFLIX COM",
- "OVHPL",
- "SPOTIFY",
- "VIRGINMOBIL",
- ],
- },
- flat: {
- keywords: [
- "Nazwa odbiorcy: PLAC LEGIONÓW",
- ],
- },
- culture: {
- keywords: [
- "VERTIGO",
- ],
- },
- other: {
- keywords: [],
- },
- };
- const isSomethingCreator = (thingArray) => {
- return (expense) => {
- for (let i = 0; i < thingArray.length; i += 1) {
- if (expense.field8.indexOf(thingArray[i]) !== -1) {
- return true;
- }
- }
- return false;
- };
- };
- map = _.mapValues(map, (entry) => {
- return {
- ...entry,
- amount: 0,
- checker: isSomethingCreator(entry.keywords),
- };
- });
- csvtojson().fromFile("./data/history.csv").then((expenses) => {
- let foodAmount = 0;
- let foodOutAmount = 0;
- let partiesAmount = 0;
- let ticketsAmount = 0;
- let subscriptionsAmount = 0;
- const keys = Object.keys(map);
- expenses.forEach((expense) => {
- const amount = Math.abs(parseFloat(expense.Kwota)) * 100;
- for (let i = 0; i < keys.length; i += 1) {
- const key = keys[i];
- const mapper = map[key];
- if (mapper.checker(expense)) {
- map[key].amount += amount;
- return;
- }
- }
- map.other.amount += amount;
- console.log("unknown: " + expense.field8);
- });
- const mapFiltered = _.mapValues(map, (entry) => {
- return {
- amount: entry.amount / 100,
- };
- });
- console.log(JSON.stringify(mapFiltered, null, 2));
- });
Add Comment
Please, Sign In to add comment