78 lines
2.8 KiB
Svelte
78 lines
2.8 KiB
Svelte
<script>
|
|
import { _ } from "svelte-i18n";
|
|
import store from "../../store";
|
|
import AddDonorModal from "./AddDonorModal.svelte";
|
|
import DonorsOverview from "./DonorsOverview.svelte";
|
|
$: current_donors = [];
|
|
export let modal_open = false;
|
|
let addDonors;
|
|
</script>
|
|
|
|
<section class="container p-5">
|
|
<h4 class="mb-1 text-3xl font-extrabold leading-tight font-mono">
|
|
{$_("donors")}
|
|
</h4>
|
|
{#if store.state.jwtinfo.userdetails.permissions.includes("DONOR:CREATE")}
|
|
<button
|
|
on:click={() => {
|
|
modal_open = true;
|
|
}}
|
|
type="button"
|
|
class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:w-auto sm:text-sm mt-1 sm:mt-0"
|
|
>
|
|
{$_("add-donor")}
|
|
</button>
|
|
{/if}
|
|
{#if store.state.jwtinfo.userdetails.permissions.includes("DONOR:GET")}
|
|
<button
|
|
on:click={() => {
|
|
const data = current_donors
|
|
.filter((d) => d.receiptNeeded === true)
|
|
.map(function (d) {
|
|
d.address.address2 =
|
|
d.address.address2 === "" ? "" : " " + d.address.address2;
|
|
const address = `${d.address.address1}${d.address.address2}, ${d.address.postalcode} ${d.address.city}, ${d.address.country}`;
|
|
return [
|
|
d.firstname,
|
|
d.middlename,
|
|
d.lastname,
|
|
(d.paidDonationAmount/100).toFixed(2),
|
|
address,
|
|
];
|
|
});
|
|
let csv = `${$_("csv_import__firstname")};${$_(
|
|
"csv_import__middlename"
|
|
)};${$_("csv_import__lastname")};${$_(
|
|
"total_donation_amount_in_eur"
|
|
)};${$_("address")}\n`;
|
|
data.forEach(function (row) {
|
|
csv += row.join(";");
|
|
csv += "\n";
|
|
});
|
|
let hiddenElement = document.createElement("a");
|
|
hiddenElement.href = "data:text/csv;charset=utf-8," + encodeURI(csv);
|
|
hiddenElement.target = "_blank";
|
|
hiddenElement.download = `${$_(
|
|
"filename_sponsoringquittungsliste"
|
|
)}.csv`;
|
|
hiddenElement.click();
|
|
hiddenElement.remove();
|
|
}}
|
|
type="button"
|
|
class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:w-auto sm:text-sm mt-1 sm:mt-0"
|
|
>
|
|
{$_("sponsoring-quittungs-liste_herunterladen")}
|
|
</button>
|
|
{/if}
|
|
<DonorsOverview bind:current_donors bind:addDonors />
|
|
</section>
|
|
|
|
{#if store.state.jwtinfo.userdetails.permissions.includes("DONOR:CREATE")}
|
|
<AddDonorModal
|
|
on:created={(event) => {
|
|
addDonors(event.detail.donors);
|
|
}}
|
|
bind:modal_open
|
|
/>
|
|
{/if}
|