@@ -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)} {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)} {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)} {account.currency}
|
||||
</th>
|
||||
{/each}
|
||||
<td>
|
||||
<td class="amount">
|
||||
<br/>
|
||||
{sums[0]} {account.currency}
|
||||
{sums[0].toFixed(2)} {account.currency}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
Reference in New Issue
Block a user