diff --git a/svelte/src/admin_panel/InvoiceVAT.svelte b/svelte/src/admin_panel/InvoiceVAT.svelte index 49e6d9d..bd31d4b 100644 --- a/svelte/src/admin_panel/InvoiceVAT.svelte +++ b/svelte/src/admin_panel/InvoiceVAT.svelte @@ -10,6 +10,7 @@ type Invoice = { time: string amount: number vat: number + processing_fee: number country: string payment_method: string status: string @@ -26,16 +27,26 @@ type Total = { count: number amount: number vat: number + fee: number } -let totals: { [id: string]: Total } = {} +let totals_provider: { [id: string]: Total } = {} +let totals_country: { [id: string]: Total } = {} const add_total = (i: Invoice) => { - if (totals[i.payment_method] === undefined) { - totals[i.payment_method] = {count: 0, amount: 0, vat: 0} + if (totals_provider[i.payment_method] === undefined) { + totals_provider[i.payment_method] = {count: 0, amount: 0, vat: 0, fee: 0} + } + if (totals_country[i.country] === undefined) { + totals_country[i.country] = {count: 0, amount: 0, vat: 0, fee: 0} } - totals[i.payment_method].count++ - totals[i.payment_method].amount += i.amount - totals[i.payment_method].vat += i.vat + totals_provider[i.payment_method].count++ + totals_provider[i.payment_method].amount += i.amount + totals_provider[i.payment_method].vat += i.vat + totals_provider[i.payment_method].fee += i.processing_fee + totals_country[i.country].count++ + totals_country[i.country].amount += i.amount + totals_country[i.country].vat += i.vat + totals_country[i.country].fee += i.processing_fee } const get_invoices = async () => { @@ -59,7 +70,8 @@ const get_invoices = async () => { return date_a.getTime() - date_b.getTime() }) - totals = {} + totals_provider = {} + totals_country = {} resp_json.forEach(row => { if (row.status === "paid") { add_total(row) @@ -120,11 +132,59 @@ onMount(() => { - {#each Object.entries(totals) as [key, tot]} - {key} ({tot.count})
- Amount:
- VAT:
- {/each} +

Invoices per payment processor

+
+ + + + + + + + + + + + {#each Object.entries(totals_provider) as [key, tot]} + + + + + + + + {/each} + +
ProviderCountAmountVATFee
{key}{tot.count}
+
+ +

Invoices per country

+
+ + + + + + + + + + + + {#each Object.entries(totals_country) as [key, tot]} + + + + + + + + {/each} + +
CountryCountAmountVATFee
{key}{tot.count}
+
+ +

All invoices

@@ -135,6 +195,7 @@ onMount(() => { ID Amount VAT + Fee Country Method Status @@ -147,6 +208,7 @@ onMount(() => { {row.id} + {row.country} {row.payment_method} {row.status}