Fixed incoming EDIT, useFiles, useFunctions, usePermission
This commit is contained in:
@@ -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[]) => {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ export function usePermission() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return { has }
|
return { has }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user