Corrected Usesum

This commit is contained in:
2025-03-10 14:59:54 +01:00
parent d83f31c3c2
commit 14e4e79c43
3 changed files with 30 additions and 9 deletions

View File

@@ -1,6 +1,8 @@
export const useSum = () => { export const useSum = () => {
const supabase = useSupabaseClient()
const getIncomingInvoiceSum = (invoice) => { const getIncomingInvoiceSum = (invoice) => {
let sum = 0 let sum = 0
invoice.accounts.forEach(account => { invoice.accounts.forEach(account => {
@@ -16,11 +18,26 @@ export const useSum = () => {
return sum.toFixed(2) return sum.toFixed(2)
} }
const getCreatedDocumentSum = (createddocument) => { const getCreatedDocumentSum = (createddocument,createddocuments = []) => {
let totalNet = 0 let totalNet = 0
let total19 = 0 let total19 = 0
let total7 = 0 let total7 = 0
/*let usedadvanceinvoices = []
if(createddocument.usedAdvanceInvoices.length > 0) {
console.log(createddocument)
console.log(createddocument.usedAdvanceInvoices)
console.log((await supabase.from("createddocuments").select().in("id", createddocument.usedAdvanceInvoices)))
usedadvanceinvoices = (await supabase.from("createddocuments").select().in("id", createddocument.usedAdvanceInvoices)).data
console.log(usedadvanceinvoices)
}*/
createddocument.rows.forEach(row => { createddocument.rows.forEach(row => {
if(!['pagebreak','title','text'].includes(row.mode)){ if(!['pagebreak','title','text'].includes(row.mode)){
let rowPrice = Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) /100) ).toFixed(3) let rowPrice = Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) /100) ).toFixed(3)
@@ -41,8 +58,9 @@ export const useSum = () => {
let totalGrossAlreadyPaid = 0 let totalGrossAlreadyPaid = 0
createddocument.usedAdvanceInvoices.forEach(advanceInvoiceId => { createddocument.usedAdvanceInvoices.forEach(advanceInvoiceId => {
let advanceInvoice = createddocuments.value.find(i => i.id === advanceInvoiceId) let advanceInvoice = createddocuments.find(i => i.id === advanceInvoiceId)
let priceNet = advanceInvoice.rows.find(i => i.advanceInvoiceData).price let priceNet = advanceInvoice.rows.find(i => i.advanceInvoiceData).price

View File

@@ -28,6 +28,8 @@ const allocatedDocuments = ref([])
const openIncomingInvoices = ref([]) const openIncomingInvoices = ref([])
const allocatedIncomingInvoices = ref([]) const allocatedIncomingInvoices = ref([])
const createddocuments = ref([])
const accounts = ref([]) const accounts = ref([])
const loading = ref(true) const loading = ref(true)
@@ -39,19 +41,20 @@ const setup = async () => {
manualAllocationSum.value = calculateOpenSum.value manualAllocationSum.value = calculateOpenSum.value
const documents = (await useSupabaseSelect("createddocuments","*, statementallocations(*), customer(id,name)")).filter(i => i.type === "invoices" ||i.type === "advanceInvoices") createddocuments.value = (await useSupabaseSelect("createddocuments","*, statementallocations(*), customer(id,name)"))
const documents = createddocuments.value.filter(i => i.type === "invoices" ||i.type === "advanceInvoices")
const incominginvoices = (await useSupabaseSelect("incominginvoices","*, statementallocations(*), vendor(id,name)")).filter(i => i.state === "Gebucht") const incominginvoices = (await useSupabaseSelect("incominginvoices","*, statementallocations(*), vendor(id,name)")).filter(i => i.state === "Gebucht")
accounts.value = (await supabase.from("accounts").select()).data accounts.value = (await supabase.from("accounts").select()).data
openDocuments.value = documents.filter(i => i.statementallocations.reduce((n,{amount}) => n + amount, 0).toFixed(2) !== useSum().getCreatedDocumentSum(i).toFixed(2)) openDocuments.value = documents.filter(i => i.statementallocations.reduce((n,{amount}) => n + amount, 0).toFixed(2) !== useSum().getCreatedDocumentSum(i,createddocuments.value).toFixed(2))
openDocuments.value = openDocuments.value.map(i => { openDocuments.value = openDocuments.value.map(i => {
return { return {
...i, ...i,
docTotal: useSum().getCreatedDocumentSum(i), docTotal: useSum().getCreatedDocumentSum(i,createddocuments.value),
statementTotal: Number(i.statementallocations.reduce((n,{amount}) => n + amount, 0)), statementTotal: Number(i.statementallocations.reduce((n,{amount}) => n + amount, 0)),
openSum: (useSum().getCreatedDocumentSum(i) - Number(i.statementallocations.reduce((n,{amount}) => n + amount, 0))).toFixed(2) openSum: (useSum().getCreatedDocumentSum(i,createddocuments.value) - Number(i.statementallocations.reduce((n,{amount}) => n + amount, 0))).toFixed(2)
} }
}) })
@@ -381,7 +384,7 @@ setup()
<template #header> <template #header>
<div class="flex flex-row justify-between"> <div class="flex flex-row justify-between">
<span>{{document.customer ? document.customer.name : ""}} - {{document.documentNumber}}</span> <span>{{document.customer ? document.customer.name : ""}} - {{document.documentNumber}}</span>
<span class="font-semibold text-nowrap">{{displayCurrency(useSum().getCreatedDocumentSum(document))}}</span> <span class="font-semibold text-nowrap">{{displayCurrency(useSum().getCreatedDocumentSum(document, createddocuments))}}</span>
</div> </div>
</template> </template>
<UButton <UButton
@@ -389,7 +392,7 @@ setup()
variant="outline" variant="outline"
class="mr-3" class="mr-3"
v-if="!itemInfo.statementallocations.find(i => i.cd_id === document.id)" v-if="!itemInfo.statementallocations.find(i => i.cd_id === document.id)"
@click="saveAllocation({cd_id: document.id, bs_id: itemInfo.id, amount: Number(useSum().getCreatedDocumentSum(document))})" @click="saveAllocation({cd_id: document.id, bs_id: itemInfo.id, amount: Number(useSum().getCreatedDocumentSum(document,createddocuments))})"
/> />
<UButton <UButton
icon="i-heroicons-x-mark" icon="i-heroicons-x-mark"

View File

@@ -125,7 +125,7 @@
</div> </div>
</template> </template>
<template #amount-data="{row}"> <template #amount-data="{row}">
<span v-if="row.type !== 'deliveryNotes'">{{displayCurrency(useSum().getCreatedDocumentSum(row))}}</span> <span v-if="row.type !== 'deliveryNotes'">{{displayCurrency(useSum().getCreatedDocumentSum(row,items))}}</span>
</template> </template>
</UTable> </UTable>