From c276e5c05a36b547ab8cc5bf3486c35c85ae3711 Mon Sep 17 00:00:00 2001 From: Fornax Date: Wed, 11 Oct 2023 19:49:17 +0200 Subject: [PATCH] Add Mollie settlement information to admin panel --- .../src/admin_panel/MollieSettlement.svelte | 149 ++++++++++++++++++ .../src/admin_panel/MollieSettlements.svelte | 76 +++++++++ svelte/src/admin_panel/Router.svelte | 6 + webcontroller/web_controller.go | 19 +-- 4 files changed, 241 insertions(+), 9 deletions(-) create mode 100644 svelte/src/admin_panel/MollieSettlement.svelte create mode 100644 svelte/src/admin_panel/MollieSettlements.svelte diff --git a/svelte/src/admin_panel/MollieSettlement.svelte b/svelte/src/admin_panel/MollieSettlement.svelte new file mode 100644 index 0000000..6cf2bb9 --- /dev/null +++ b/svelte/src/admin_panel/MollieSettlement.svelte @@ -0,0 +1,149 @@ + + + + +

Accounting information

+ +{#if per_country.NL} + +{/if} + + +

Taxes per country

+ + + + + + + + + + {#each Object.entries(per_country) as [country, row]} + + + + + + + + + {/each} + + + + + + + + + + {#if per_country.NL} + + + + + + + + + {/if} +
CountryPaymentsAmountVATVAT%Total
{country}{row.count}{row.vat_fraction*100}%
Total{totals.count}
Total - NL{totals.count - per_country.NL.count}
+ + +

All payments ({payments.length})

+
+ + + + + + + + + + + {#each payments as row (row.id)} + + + + + + + + + + {/each} +
IDCreatedStatusCountryAmountVATTotal
{row.id}{formatDate(row.createdAt, true, true, false)}{row.status}{row.metadata.country}
+
diff --git a/svelte/src/admin_panel/MollieSettlements.svelte b/svelte/src/admin_panel/MollieSettlements.svelte new file mode 100644 index 0000000..8b1a05d --- /dev/null +++ b/svelte/src/admin_panel/MollieSettlements.svelte @@ -0,0 +1,76 @@ + + + + +
+ {#each settlements as row (row.id)} + +
+
{row.id}
+
+ Date
+ {formatDate(row.createdAt, false, false, false)} +
+
+ Amount
+ +
+
+ Status
+ {row.status} +
+
+ + +
+ {/each} +
+ + diff --git a/svelte/src/admin_panel/Router.svelte b/svelte/src/admin_panel/Router.svelte index 6e8d289..7260f15 100644 --- a/svelte/src/admin_panel/Router.svelte +++ b/svelte/src/admin_panel/Router.svelte @@ -6,6 +6,7 @@ import BlockFiles from "./BlockFiles.svelte"; import TabMenu from "../util/TabMenu.svelte"; import UserManagement from "./UserManagement.svelte"; import EmailReporters from "./EmailReporters.svelte"; +import MollieSettlements from "./MollieSettlements.svelte"; let pages = [ { @@ -38,6 +39,11 @@ let pages = [ title: "User Management", icon: "person", component: UserManagement, + }, { + path: "/admin/mollie_settlements", + title: "Mollie Settlements", + icon: "paid", + component: MollieSettlements, }, ] diff --git a/webcontroller/web_controller.go b/webcontroller/web_controller.go index da0ab31..8581cc1 100644 --- a/webcontroller/web_controller.go +++ b/webcontroller/web_controller.go @@ -192,15 +192,16 @@ func New(r *httprouter.Router, prefix string, conf Config) (wc *WebController) { {PST, "coupon_redeem", wc.serveForm(wc.couponForm, handlerOpts{})}, // Admin settings - {GET, "admin" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/status" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/block_files" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/email_reporters" /**/, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/abuse_reports" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/ip_bans" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/user_management" /**/, wc.serveTemplate("admin", handlerOpts{Auth: true})}, - {GET, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})}, - {PST, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})}, + {GET, "admin" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/status" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/block_files" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/email_reporters" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/abuse_reports" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/ip_bans" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/user_management" /* */, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/mollie_settlements" /**/, wc.serveTemplate("admin", handlerOpts{Auth: true})}, + {GET, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})}, + {PST, "admin/globals" /* */, wc.serveForm(wc.adminGlobalsForm, handlerOpts{Auth: true})}, // Misc {GET, "misc/sharex/pixeldrain.com.sxcu", wc.serveShareXConfig},