Add reminder mail template #12
This commit is contained in:
@@ -237,6 +237,15 @@ const deleteInvoice = function () {
|
||||
isOpen.value = false
|
||||
}
|
||||
|
||||
const remind = function () {
|
||||
// await axios call
|
||||
// make button spin
|
||||
// success -> set new status and save
|
||||
// error -> toast
|
||||
if (!invoice.value) return;
|
||||
window?.open('/api/invoices/' + invoice.value.id + '/remind', '_blank')?.focus();
|
||||
}
|
||||
|
||||
const updateTotalAmount = () => {
|
||||
if (!invoice.value) return;
|
||||
let total = 0;
|
||||
@@ -381,10 +390,10 @@ const updateTotalAmount = () => {
|
||||
<div id="document-meta"
|
||||
class="flex-none md:flex gap-12 mt-6 2 p-6 bg-slate-100 dark:bg-neutral-900 rounded-lg">
|
||||
|
||||
<div class="flex flex-col gap-0">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class="flex flex-row gap-4">
|
||||
<Input type="text" v-model="invoice.billingData.companyName" placeholder="Firma"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
|
||||
<Select v-model="importCustomer" by="id">
|
||||
<SelectTrigger
|
||||
@@ -406,10 +415,10 @@ const updateTotalAmount = () => {
|
||||
|
||||
<div class="flex flex-row gap-4">
|
||||
<Input type="text" v-model="invoice.billingData.contactFirstName" placeholder="Vorname"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
|
||||
<Input type="text" v-model="invoice.billingData.contactLastName" placeholder="Nachname"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
|
||||
<Select v-model="importContact" by="id">
|
||||
<SelectTrigger v-bind:disabled="!importCustomer || invoice.customer.id === 0"
|
||||
@@ -431,21 +440,21 @@ const updateTotalAmount = () => {
|
||||
|
||||
<Input type="text" v-model="invoice.billingData.billingAddress.lineOne"
|
||||
placeholder="Zeile 1"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
<Input type="text" v-model="invoice.billingData.billingAddress.lineTwo"
|
||||
placeholder="Zeile 2"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
|
||||
<div class="flex gap-4">
|
||||
<Input type="text" v-model="invoice.billingData.billingAddress.postalCode"
|
||||
placeholder="PLZ"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 w-20 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 w-20 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
<Input type="text" v-model="invoice.billingData.billingAddress.city" placeholder="Stadt"
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
</div>
|
||||
|
||||
<Input type="text" v-model="invoice.billingData.vatId" placeholder="USt-Id-Nr."
|
||||
class="mt-6 bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50" />
|
||||
class="mt-6 bg-transparent dark:bg-transparent hover:bg-background dark:hover:bg-background/40 p-1 shadow-none border-0 border-b-1 border-slate-300 dark:border-neutral-800 placeholder:text-muted-foreground/50 rounded-none hover:rounded-md" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
@@ -475,7 +484,7 @@ const updateTotalAmount = () => {
|
||||
</Select>
|
||||
|
||||
<Button v-if="['due', 'reminded'].includes(invoice.paymentStatus)"
|
||||
:size="'sm'" :variant="'destructive'">Mahnen</Button>
|
||||
:size="'sm'" :variant="'destructive'" @click="remind">Mahnen</Button>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
|
||||
@@ -580,7 +589,7 @@ const updateTotalAmount = () => {
|
||||
<Button v-if="alert.onCancel" @click="alert.onCancel">{{ alert.cancelText }}</Button>
|
||||
<Button variant="destructive" v-if="alert.onConfirm" @click="alert.onConfirm">{{
|
||||
alert.confirmText
|
||||
}}</Button>
|
||||
}}</Button>
|
||||
</AlertDialogFooter>
|
||||
</AlertDialogContent>
|
||||
</AlertDialog>
|
||||
|
||||
Reference in New Issue
Block a user