Managing own invoices

This commit is contained in:
2026-02-13 12:38:48 +01:00
parent ab711109a7
commit f468814a2f
15 changed files with 715 additions and 21 deletions

View File

@@ -21,7 +21,10 @@ class DashboardController extends CommonController {
private function renderForLoggedInUser(Request $request) {
$authCheckProvider = new AuthCheckProvider;
$inertiaProvider = new InertiaProvider('Dashboard/Dashboard', ['appName' => app('tenant')->name]);
$inertiaProvider = new InertiaProvider('Dashboard/Dashboard', [
'myInvoices' => $this->invoices->getMyInvoicesWidget()
]);
return $inertiaProvider->render();
}

View File

@@ -1,8 +1,17 @@
<script setup>
import AppLayout from '../../../../resources/js/layouts/AppLayout.vue'
import ShadowedBox from "../../../Views/Components/ShadowedBox.vue";
import {onMounted} from "vue";
import {toast} from "vue3-toastify";
import MyInvoices from "./Partials/Widgets/MyInvoices.vue";
const props = defineProps({
myInvoices: Object,
})
function newInvoice() {
window.location.href = '/invoice/new';
}
</script>
<template>
@@ -13,7 +22,10 @@ import {toast} from "vue3-toastify";
</shadowed-box>
<shadowed-box class="dashboard-widget-box">
Meine Abrechnungen
<MyInvoices />
<input type="button" value="Neue Abrechnung" @click="newInvoice" style="margin-top: 20px;">
</shadowed-box>
</diV>
</AppLayout>
@@ -31,7 +43,6 @@ import {toast} from "vue3-toastify";
.dashboard-widget-box {
flex-grow: 1; display: inline-block;
height: 150px;
margin: 0 10px;
margin: 0 10px;
}
</style>

View File

@@ -8,7 +8,7 @@ const myInvoices = reactive({
})
onMounted(async () => {
const response = await fetch('/api/v1/dashboard/my-invoices');
const response = await fetch('/api/v1/dashboard/my-invoices');
const data = await response.json();
Object.assign(myInvoices, data);
});
@@ -17,7 +17,7 @@ onMounted(async () => {
<template>
<p v-for="invoice in myInvoices.myInvoices" class="widget-content-item">
<a :href="'/invoices/my-invoices/' + invoice.slug" class="link">{{invoice.title}} ({{invoice.count}})</a>
<a :href="'/invoice/my-invoices/' + invoice.slug" class="link">{{invoice.title}} ({{invoice.count}})</a>
<label>
{{invoice.amount}}
</label>