Fixed incoming EDIT, useFiles, useFunctions, usePermission

This commit is contained in:
2025-09-07 19:29:41 +02:00
parent 949b094490
commit 6d233f5bfb
4 changed files with 55 additions and 64 deletions

View File

@@ -69,39 +69,18 @@ export const useFiles = () => {
}
const selectDocument = async (id) => {
const {data,error} = await supabase
.from("files")
.select('*')
.eq("id",id)
.single()
let documentIds = [id]
if(documentIds.length === 0) return []
const res = await useNuxtApp().$api("/api/files/presigned",{
method: "POST",
body: {
ids: documentIds
}
})
const {data: supabaseData,error:supabaseError} = await supabase.storage.from(bucket).createSignedUrl(data.path,3600)
console.log(res)
return {
...data,
url: supabaseData.signedUrl
}
/*
if(data.length > 0){
let paths = []
data.forEach(doc => {
paths.push(doc.path)
})
const {data: supabaseData,error} = await supabase.storage.from(bucket).createSignedUrls(paths,3600)
data = data.map((doc,index) => {
return {
...doc,
url: supabaseData[index].signedUrl
}
})
}
//console.log(data)
return data[0]*/
return res.files[0]
}
const downloadFile = async (id?: string, ids?: string[]) => {

View File

@@ -24,7 +24,7 @@ export const useFunctions = () => {
}
const useNextNumber = async (numberRange) => {
const {data:{session:{access_token}}} = await supabase.auth.getSession()
/*const {data:{session:{access_token}}} = await supabase.auth.getSession()
return (await axios({
method: "POST",
@@ -35,7 +35,11 @@ export const useFunctions = () => {
headers: {
Authorization: `Bearer ${access_token}`
}
})).data.usedNumber
})).data.usedNumber*/
return (await useNuxtApp().$api(`/api/functions/usenextnumber/${numberRange}`,)).usedNumber
}
const useCreateTicket = async (subject,message,url,source) => {
@@ -80,9 +84,17 @@ export const useFunctions = () => {
}
const useCreatePDF = async (invoiceData,path) => {
const {data:{session:{access_token}}} = await supabase.auth.getSession()
//const {data:{session:{access_token}}} = await supabase.auth.getSession()
const {data} = await axios({
const data = await useNuxtApp().$api(`/api/functions/createinvoicepdf`, {
method: "POST",
body: {
invoiceData: invoiceData,
backgroundPath: path,
}
})
/*const {data} = await axios({
method: "POST",
url: `${baseURL}/functions/createpdf`,
data: {
@@ -93,7 +105,7 @@ export const useFunctions = () => {
headers: {
Authorization: `Bearer ${access_token}`
}
})
})*/
console.log(data)

View File

@@ -7,11 +7,7 @@ import {useSupabaseSelect} from "~/composables/useSupabase.js";
const dataStore = useDataStore()
const profileStore = useProfileStore()
const supabase = useSupabaseClient()
const route = useRoute()
const router = useRouter()
const toast = useToast()
const itemInfo = ref({
vendor: 0,
@@ -34,14 +30,18 @@ const itemInfo = ref({
})
const costcentres = ref([])
const vendors = ref([])
const accounts = ref([])
const setup = async () => {
let filetype = (await supabase.from("filetags").select().eq("tenant",profileStore.currentTenant).eq("incomingDocumentType","invoices").single()).data.id
let filetype = (await useEntities("filetags").select()).find(i=> i.incomingDocumentType === "invoices").id
console.log(filetype)
costcentres.value = await useSupabaseSelect("costcentres")
costcentres.value = await useEntities("costcentres").select()
vendors.value = await useEntities("vendors").select()
accounts.value = await useEntities("accounts").selectSpecial()
itemInfo.value = await useSupabaseSelectSingle("incominginvoices", route.params.id, "*, files(*)")
itemInfo.value = await useEntities("incominginvoices").selectSingle(route.params.id, "*, files(*)")
await loadFile(itemInfo.value.files[itemInfo.value.files.length-1].id)
}
@@ -63,7 +63,7 @@ const loadFile = async (id) => {
const changeNetMode = (mode) => {
useNetMode.value = mode
itemInfo.value.accounts = [{account: null,amountNet: null,amountTax: null,taxType: '19'}]
//itemInfo.value.accounts = [{account: null,amountNet: null,amountTax: null,taxType: '19'}]
}
@@ -137,7 +137,7 @@ const updateIncomingInvoice = async (setBooked = false) => {
} else {
item.state = "Entwurf"
}
const data = await dataStore.updateItem('incominginvoices',item)
const data = await useEntities('incominginvoices').update(itemInfo.value.id,item)
}
const findIncomingInvoiceErrors = computed(() => {
@@ -232,7 +232,7 @@ const findIncomingInvoiceErrors = computed(() => {
<InputGroup>
<USelectMenu
v-model="itemInfo.vendor"
:options="dataStore.vendors"
:options="vendors"
option-attribute="name"
value-attribute="id"
searchable
@@ -245,7 +245,7 @@ const findIncomingInvoiceErrors = computed(() => {
{{option.vendorNumber}} - {{option.name}}
</template>
<template #label>
{{dataStore.vendors.find(vendor => vendor.id === itemInfo.vendor) ? dataStore.vendors.find(vendor => vendor.id === itemInfo.vendor).name : 'Lieferant auswählen'}}
{{vendors.find(vendor => vendor.id === itemInfo.vendor) ? vendors.find(vendor => vendor.id === itemInfo.vendor).name : 'Lieferant auswählen'}}
</template>
</USelectMenu>
<EntityModalButtons
@@ -254,10 +254,10 @@ const findIncomingInvoiceErrors = computed(() => {
@return-data="(data) => itemInfo.vendor = data.id"
/>
<UButton
icon="i-heroicons-x-mark"
variant="outline"
color="rose"
@click="itemInfo.vendor = null"
icon="i-heroicons-x-mark"
variant="outline"
color="rose"
@click="itemInfo.vendor = null"
/>
</InputGroup>
@@ -321,26 +321,26 @@ const findIncomingInvoiceErrors = computed(() => {
<InputGroup class="my-3">
<UButton
:variant="!useNetMode ? 'solid' : 'outline'"
@click="changeNetMode(false)"
:variant="!useNetMode ? 'solid' : 'outline'"
@click="changeNetMode(false)"
>
Brutto
</UButton>
<UButton
:variant="useNetMode ? 'solid' : 'outline'"
@click="changeNetMode(true)"
:variant="useNetMode ? 'solid' : 'outline'"
@click="changeNetMode(true)"
>
Netto
</UButton>
<!-- Brutto
<UToggle
v-model="useNetMode"
@update:model-value="itemInfo.accounts = [{account: null,amountNet: null,amountTax: null,taxType: '19'}]"
/>
Netto-->
<!-- Brutto
<UToggle
v-model="useNetMode"
@update:model-value="itemInfo.accounts = [{account: null,amountNet: null,amountTax: null,taxType: '19'}]"
/>
Netto-->
</InputGroup>
<table v-if="itemInfo.accounts.length > 1" class="w-full">
@@ -367,7 +367,7 @@ const findIncomingInvoiceErrors = computed(() => {
class="mb-3"
>
<USelectMenu
:options="dataStore.accounts"
:options="accounts"
option-attribute="label"
value-attribute="id"
searchable
@@ -377,7 +377,7 @@ const findIncomingInvoiceErrors = computed(() => {
:color="!item.account ? 'rose' : 'primary'"
>
<template #label>
{{dataStore.accounts.find(account => account.id === item.account) ? dataStore.accounts.find(account => account.id === item.account).label : "Keine Kategorie ausgewählt" }}
{{accounts.find(account => account.id === item.account) ? accounts.find(account => account.id === item.account).label : "Keine Kategorie ausgewählt" }}
</template>
</USelectMenu>