-
Kein Aktiver Mandant. Bitte wählen Sie ein Mandant.
+
Kein Aktiver Mandant.
Bitte wählen Sie ein Mandant.
{{tenant.name}}
-
+ Test
+ {{auth.tenants}}
+
+ Abmelden
\ No newline at end of file
diff --git a/middleware/auth.global.ts b/middleware/auth.global.ts
index 8d0d033..c03e09a 100644
--- a/middleware/auth.global.ts
+++ b/middleware/auth.global.ts
@@ -1,6 +1,9 @@
export default defineNuxtRouteMiddleware(async (to, from) => {
const auth = useAuthStore()
+ console.log(auth)
+
+ if (auth.loading) return
// Wenn nicht eingeloggt → auf /login (außer er will schon dahin)
diff --git a/middleware/redirectToMobileIndex.ts b/middleware/redirectToMobileIndex.ts
index 2ccfddc..e332a1b 100644
--- a/middleware/redirectToMobileIndex.ts
+++ b/middleware/redirectToMobileIndex.ts
@@ -1,9 +1,9 @@
export default defineNuxtRouteMiddleware(async (to, _from) => {
const router = useRouter()
- console.log(await useCapacitor().getIsPhone())
+ console.log(useCapacitor().getIsNative())
- if(await useCapacitor().getIsPhone() && _from.path !== '/mobile') {
+ if(useCapacitor().getIsNative() && _from.path !== '/mobile') {
return router.push('/mobile')
}
})
diff --git a/package.json b/package.json
index 0103f48..cc0dc96 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
},
"dependencies": {
"@capacitor/android": "^7.0.0",
+ "@capacitor/browser": "^7.0.2",
"@capacitor/core": "^7.0.0",
"@capacitor/device": "^7.0.0",
"@capacitor/ios": "^7.0.0",
@@ -66,7 +67,7 @@
"maplibre-gl": "^4.7.0",
"nuxt-editorjs": "^1.0.4",
"nuxt-viewport": "^2.0.6",
- "onesignal-cordova-plugin": "^5.2.11",
+ "onesignal-cordova-plugin": "^5.2.14",
"papaparse": "^5.4.1",
"pdf-lib": "^1.17.1",
"pinia": "^2.1.7",
diff --git a/pages/accounts/index.vue b/pages/accounts/index.vue
index e955732..3472214 100644
--- a/pages/accounts/index.vue
+++ b/pages/accounts/index.vue
@@ -16,9 +16,15 @@ const router = useRouter()
const items = ref([])
const dataLoaded = ref(false)
+const statementallocations = ref([])
+const incominginvoices = ref([])
+
const setupPage = async () => {
items.value = await useEntities("accounts").selectSpecial()
+ statementallocations.value = (await useEntities("statementallocations").select("*, bs_id(*)"))
+ incominginvoices.value = (await useEntities("incominginvoices").select("*, vendor(*)"))
+
items.value = await Promise.all(items.value.map(async (i) => {
let renderedAllocationsTemp = await renderedAllocations(i.id)
let saldo = getSaldo(renderedAllocationsTemp)
@@ -37,22 +43,22 @@ const setupPage = async () => {
const renderedAllocations = async (account) => {
- let statementallocations = (await useEntities("statementallocations").select("*, bs_id(*)")).filter(i => i.account === account)
- let incominginvoices = (await useEntities("incominginvoices").select("*, vendor(*)")).filter(i => i.accounts.find(x => x.account === account))
+ let statementallocationslocal = statementallocations.value.filter(i => i.account === account)
+ let incominginvoiceslocal = incominginvoices.value.filter(i => i.accounts.find(x => x.account === account))
- let tempstatementallocations = statementallocations.map(i => {
+ let tempstatementallocations = statementallocationslocal.map(i => {
return {
...i,
type: "statementallocation",
- date: i.bs_id.date,
- partner: i.bs_id ? (i.bs_id.debName ? i.bs_id.debName : (i.bs_id.credName ? i.bs_id.credName : '')) : ''
+ date: i.bankstatement.date,
+ partner: i.bankstatement ? (i.bankstatement.debName ? i.bankstatement.debName : (i.bankstatement.credName ? i.bankstatement.credName : '')) : ''
}
})
let incominginvoicesallocations = []
- incominginvoices.forEach(i => {
+ incominginvoiceslocal.forEach(i => {
incominginvoicesallocations.push(...i.accounts.filter(x => x.account === account).map(x => {
return {
diff --git a/pages/banking/statements/[mode]/[[id]].vue b/pages/banking/statements/[mode]/[[id]].vue
index 37f5db9..5f90098 100644
--- a/pages/banking/statements/[mode]/[[id]].vue
+++ b/pages/banking/statements/[mode]/[[id]].vue
@@ -65,8 +65,8 @@ const setup = async () => {
console.log(openDocuments.value)
- allocatedDocuments.value = documents.filter(i => i.statementallocations.find(x => x.bs_id === itemInfo.value.id))
- allocatedIncomingInvoices.value = incominginvoices.filter(i => i.statementallocations.find(x => x.bs_id === itemInfo.value.id))
+ allocatedDocuments.value = documents.filter(i => i.statementallocations.find(x => x.bankstatement === itemInfo.value.id))
+ allocatedIncomingInvoices.value = incominginvoices.filter(i => i.statementallocations.find(x => x.bankstatement === itemInfo.value.id))
console.log(allocatedDocuments.value)
console.log(allocatedIncomingInvoices.value)
openIncomingInvoices.value = (await useEntities("incominginvoices").select("*, statementallocations(*), vendor(*)")).filter(i => !i.archived && i.statementallocations.reduce((n,{amount}) => n + amount, 0).toFixed(2) !== getInvoiceSum(i,false))
@@ -611,7 +611,7 @@ const archiveStatement = async () => {
variant="outline"
icon="i-heroicons-check"
:disabled="!accountToSave"
- @click="saveAllocation({bs_id: itemInfo.id, amount: manualAllocationSum, account: accountToSave, description: allocationDescription })"
+ @click="saveAllocation({bankstatement: itemInfo.id, amount: manualAllocationSum, account: accountToSave, description: allocationDescription })"
/>
{
variant="outline"
icon="i-heroicons-check"
:disabled="!ownAccountToSave"
- @click="saveAllocation({bs_id: itemInfo.id, amount: manualAllocationSum, ownaccount: ownAccountToSave, description: allocationDescription })"
+ @click="saveAllocation({bankstatement: itemInfo.id, amount: manualAllocationSum, ownaccount: ownAccountToSave, description: allocationDescription })"
/>
{
variant="outline"
icon="i-heroicons-check"
:disabled="!customerAccountToSave"
- @click="saveAllocation({bs_id: itemInfo.id, amount: manualAllocationSum, customer: customerAccountToSave, description: allocationDescription })"
+ @click="saveAllocation({bankstatement: itemInfo.id, amount: manualAllocationSum, customer: customerAccountToSave, description: allocationDescription })"
/>
{
variant="outline"
icon="i-heroicons-check"
:disabled="!vendorAccountToSave"
- @click="saveAllocation({bs_id: itemInfo.id, amount: manualAllocationSum, vendor: vendorAccountToSave, description: allocationDescription })"
+ @click="saveAllocation({bankstatement: itemInfo.id, amount: manualAllocationSum, vendor: vendorAccountToSave, description: allocationDescription })"
/>
{
variant="outline"
class="mr-3"
v-if="!itemInfo.statementallocations.find(i => i.cd_id === document.id)"
- @click="saveAllocation({cd_id: document.id, bs_id: itemInfo.id, amount: Number(Number(document.openSum) < manualAllocationSum ? document.openSum : manualAllocationSum), description: allocationDescription})"
+ @click="saveAllocation({cd_id: document.id, bankstatement: itemInfo.id, amount: Number(Number(document.openSum) < manualAllocationSum ? document.openSum : manualAllocationSum), description: allocationDescription})"
/>
{
variant="outline"
class="mr-3"
v-if="!itemInfo.statementallocations.find(i => i.ii_id === item.id)"
- @click="saveAllocation({ii_id: item.id, bs_id: itemInfo.id, amount: Number(Math.abs(getInvoiceSum(item,true)) > Math.abs(manualAllocationSum) ? manualAllocationSum : getInvoiceSum(item,true)), description: allocationDescription})"
+ @click="saveAllocation({ii_id: item.id, bankstatement: itemInfo.id, amount: Number(Math.abs(getInvoiceSum(item,true)) > Math.abs(manualAllocationSum) ? manualAllocationSum : getInvoiceSum(item,true)), description: allocationDescription})"
/>
{
if (itemInfo.value.rows.length === 0) {
errors.push({message: "Es sind keine Positionen angegeben", type: "breaking"})
} else {
- itemInfo.value.rows.forEach(row => {
+ itemInfo.value.rows.forEach((row,index) => {
if (itemInfo.value.type !== "quotes" && row.optional) {
errors.push({
@@ -717,6 +717,10 @@ const findDocumentErrors = computed(() => {
}
}
+ if (index === itemInfo.value.rows.length - 1 && row.mode === "pagebreak") {
+ errors.push({message: `Die letze Position darf kein Seitenumbruch sein`, type: "breaking"})
+ }
+
})
}
diff --git a/pages/createDocument/index.vue b/pages/createDocument/index.vue
index a68944c..e16d2d7 100644
--- a/pages/createDocument/index.vue
+++ b/pages/createDocument/index.vue
@@ -83,7 +83,9 @@
>
{{dataStore.documentTypesForCreation[row.type].labelSingle}}
+
{{row.documentDate ? dayjs(row.documentDate).format("DD.MM.YY") : ''}}
+
-
+
+
+
diff --git a/pages/incomingInvoices/edit/[id].vue b/pages/incomingInvoices/[mode]/[id].vue
similarity index 89%
rename from pages/incomingInvoices/edit/[id].vue
rename to pages/incomingInvoices/[mode]/[id].vue
index dc033b3..319fc26 100644
--- a/pages/incomingInvoices/edit/[id].vue
+++ b/pages/incomingInvoices/[mode]/[id].vue
@@ -32,6 +32,8 @@ const costcentres = ref([])
const vendors = ref([])
const accounts = ref([])
+const mode = ref(route.params.mode)
+
const setup = async () => {
let filetype = (await useEntities("filetags").select()).find(i=> i.incomingDocumentType === "invoices").id
console.log(filetype)
@@ -43,6 +45,8 @@ const setup = async () => {
itemInfo.value = await useEntities("incominginvoices").selectSingle(route.params.id, "*, files(*)")
await loadFile(itemInfo.value.files[itemInfo.value.files.length-1].id)
+ if(itemInfo.value.date && !itemInfo.value.dueDate) itemInfo.value.dueDate = itemInfo.value.date
+
}
setup()
@@ -143,7 +147,7 @@ const findIncomingInvoiceErrors = computed(() => {
let errors = []
if(itemInfo.value.vendor === null) errors.push({message: "Es ist kein Lieferant ausgewählt", type: "breaking"})
- if(itemInfo.value.reference === null) errors.push({message: "Es ist keine Referenz angegeben", type: "breaking"})
+ if(itemInfo.value.reference === null || itemInfo.value.reference.length === 0) errors.push({message: "Es ist keine Referenz angegeben", type: "breaking"})
if(itemInfo.value.date === null) errors.push({message: "Es ist kein Datum ausgewählt", type: "breaking"})
if(itemInfo.value.dueDate === null) errors.push({message: "Es ist kein Fälligkeitsdatum ausgewählt", type: "breaking"})
if(itemInfo.value.paymentType === null) errors.push({message: "Es ist keine Zahlart ausgewählt", type: "breaking"})
@@ -168,21 +172,38 @@ const findIncomingInvoiceErrors = computed(() => {
-
+
+
+
+ Eingangsbelege
+
+
+
+ {{`Eingangsbeleg ${mode === 'show' ? 'anzeigen' : 'bearbeiten'}`}}
+
Speichern
Speichern & Buchen
@@ -192,6 +213,7 @@ const findIncomingInvoiceErrors = computed(() => {