adding sums

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-04-06 22:59:51 +02:00
parent 43208c5030
commit 023f159f31

View File

@@ -13,6 +13,19 @@
let sums = {};
function calcSums(){
sums[0] = 0;
for (let user of Object.values(users)) sums[user.id] = 0;
for (let transaction of transactions) {
for (let user of Object.values(users)){
if (user.id == transaction.destination.id) sums[user.id] += transaction.amount;
if (user.id == transaction.source.id) sums[user.id] -= transaction.amount;
}
if (!transaction.destination.id) sums[0] += transaction.amount;
if (!transaction.source.id) sums[0] -= transaction.amount;
}
}
async function load(){
let url = api(`accounting/${id}`);
let res = await get(url);
@@ -22,6 +35,7 @@
transactions = json.transactions;
users = json.user_list;
account = json.account;
calcSums();
} else error(res);
}
@@ -31,6 +45,11 @@
onMount(load);
</script>
<style>
.amount{ text-align: right }
</style>
{#if account}
<fieldset>
<legend>{account.name}</legend>
@@ -50,24 +69,20 @@
<tr>
<td>{transaction.date}</td>
{#each Object.entries(users) as [id,user]}
<td>
<td class="amount">
{#if id == transaction.source.id}
{sums[id] = -transaction.amount + (sums[id]?sums[id]:0)}
{-transaction.amount} {account.currency}
{(-transaction.amount).toFixed(2)}&nbsp;{account.currency}
{/if}
{#if id == transaction.destination.id}
{sums[id] = transaction.amount + (sums[id]?sums[id]:0)}
{transaction.amount} {account.currency}
{(+transaction.amount).toFixed(2)}&nbsp;{account.currency}
{/if}
</td>
{/each}
<td>
{#if !transaction.source.id}
{sums[0] = -transaction.amount + (sums[0]?sums[0]:0)}
{transaction.source.value}
{/if}
{#if !transaction.destination.id}
{sums[0] = transaction.amount + (sums[0]?sums[0]:0)}
{transaction.destination.value}
{/if}
</td>
@@ -80,14 +95,14 @@
{t('sums')}
</td>
{#each Object.entries(users) as [id,user]}
<th>
<th class="amount">
{user.name}<br/>
{sums[id]} {account.currency}
{sums[id].toFixed(2)}&nbsp;{account.currency}
</th>
{/each}
<td>
<td class="amount">
<br/>
{sums[0]} {account.currency}
{sums[0].toFixed(2)}&nbsp;{account.currency}
</td>
</tr>
</tbody>