Merge branch 'accounting' into dev
Build Docker Image / Docker-Build (push) Successful in 2m11s
Build Docker Image / Clean-Registry (push) Successful in 5s

This commit is contained in:
2026-04-20 21:55:23 +02:00
3 changed files with 26 additions and 11 deletions
+18 -10
View File
@@ -11,13 +11,15 @@
let account = $state(null);
let filter = $state([]);
let transactions = $state([]);
let filtered = $derived(transactions.filter(t => checker(t.tags,filter)));
let users = {};
let sums = {};
let sums = $derived.by(calcSums);
function calcSums(){
let sums = {};
sums[0] = 0;
for (let user of Object.values(users)) sums[user.id] = 0;
for (let transaction of transactions) {
for (let transaction of filtered) {
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;
@@ -25,18 +27,26 @@
if (!transaction.destination.id) sums[0] += transaction.amount;
if (!transaction.source.id) sums[0] -= transaction.amount;
}
return sums;
}
function addToFilter(tag){
filter.push(tag);
filter.push(tag.toLowerCase());
}
function checker(taglist, filter){
return filter.every(tag => taglist.includes(tag));
for (var f of filter){
var included = false;
for (var t of taglist){
if (t.toLowerCase() == f && (included = true)) break;
}
if (!included) return false;
}
return true;
}
function dropTag(tag){
filter = filter.filter(x => x != tag);
filter = filter.filter(x => x != tag.toLowerCase());
}
async function load(){
@@ -48,7 +58,6 @@
transactions = json.transactions;
users = json.user_list;
account = json.account;
calcSums();
} else error(res);
}
@@ -90,12 +99,10 @@
</tr>
</thead>
<tbody>
{#each transactions as transaction, i}
{#if checker(transaction.tags,filter)}
{#each filtered as transaction, i}
<Transaction {account} {addToFilter} {transaction} {users} />
{/if}
{/each}
<tr>
<tr class="sums">
<td>
<br/>
{t('sums')}
@@ -110,6 +117,7 @@
<br/>
{sums[0].toFixed(2)}&nbsp;{account.currency}
</td>
<td colspan="2"></td>
</tr>
</tbody>
</table>
@@ -62,11 +62,12 @@ tr:hover .taglist .tag button {
background: orange;
color: black;
}
.account .sums,
.archive{
background: black;
}
.account .sums:hover,
.archive.hover{
background: orange;
color: black;
@@ -365,6 +365,12 @@ textarea{
display: inherit;
}
.account .sums{
position: sticky;
bottom: 0;
z-index: 100;
}
.taglist .editor > span{
display: inline-block;
min-width: 150px;