-
Notifications
You must be signed in to change notification settings - Fork 2
/
Balance.js
81 lines (58 loc) · 2.22 KB
/
Balance.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const Balance = (array_transactions,arg) => {
var sprintf = require("sprintf-js").sprintf;
// const parser = require("./parser");
// array_transactions = parser(file);
// console.log(JSON.stringify(array_transactions));
var movs = [];
var mov = [];
var balanceContent = {}
for (transaction in array_transactions) {
var movements = (array_transactions[transaction]["movements"].length);
for (var i=0; i<movements; i++) {
var amount = array_transactions[transaction]["movements"][i]["amount"];
var curr = array_transactions[transaction]["movements"][i]["currency"];
var desc = array_transactions[transaction]["movements"][i]["description"];
if (balanceContent.hasOwnProperty(desc)) {
balanceContent[desc][0] += amount
} else {
balanceContent[desc] = [amount, curr]
}
}
}
copybalanceContent = {}
if (arg.length > 0) {
for(var a in arg) {
keys = Object.keys(balanceContent);
for (var k in keys) {
if(keys[k].includes(arg[a])) {
copybalanceContent[keys[k]] = balanceContent[keys[k]]
//delete balanceContent[keys[k]];
}
}
}
} else {
copybalanceContent = balanceContent;
}
keys = Object.keys(copybalanceContent);
var sumas = {}
var tipoDeMoneda;
for (var i in keys) {
tipoDeMoneda = balanceContent[keys[i]][1]
if (sumas.hasOwnProperty(tipoDeMoneda)){
sumas[tipoDeMoneda] += copybalanceContent[keys[i]][0]
} else {
sumas[tipoDeMoneda] = copybalanceContent[keys[i]][0]
}
}
for (var i in keys){
var cantidad = `${copybalanceContent[keys[i]][1] } ${ copybalanceContent[keys[i]][0]}`;
console.log(sprintf("%20s %5s", cantidad, keys[i]));
};
console.log('--------------------')
for (var key in sumas) {
if (sumas.hasOwnProperty(key)) {
console.log(sprintf("%20s %5s",key, sumas[key]));
}
}
}
module.exports = Balance;