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 selectDocument = async (id) => {
const {data,error} = await supabase let documentIds = [id]
.from("files") if(documentIds.length === 0) return []
.select('*') const res = await useNuxtApp().$api("/api/files/presigned",{
.eq("id",id) method: "POST",
.single() body: {
ids: documentIds
}
})
const {data: supabaseData,error:supabaseError} = await supabase.storage.from(bucket).createSignedUrl(data.path,3600) console.log(res)
return { return res.files[0]
...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]*/
} }
const downloadFile = async (id?: string, ids?: string[]) => { const downloadFile = async (id?: string, ids?: string[]) => {

View File

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

View File

@@ -6,4 +6,4 @@ export function usePermission() {
} }
return { has } return { has }
} }

View File

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