From e948253bea21a466bdb555cb8761aaa070e6e971 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 21 Nov 2024 12:44:38 +0100 Subject: [PATCH] feat: refs #7134 vnTable setTableFooter --- src/components/VnTable/filters/tableFooter.js | 12 ++++++++++++ src/pages/Supplier/Card/SupplierBalance.vue | 10 +++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/components/VnTable/filters/tableFooter.js diff --git a/src/components/VnTable/filters/tableFooter.js b/src/components/VnTable/filters/tableFooter.js new file mode 100644 index 000000000..9c7d080f6 --- /dev/null +++ b/src/components/VnTable/filters/tableFooter.js @@ -0,0 +1,12 @@ +export default function (initialFooter, data) { + const footer = data.reduce( + (acc, row) => { + Object.entries(initialFooter).forEach(([key, initialValue]) => { + acc[key] += row?.[key] !== undefined ? row[key] : initialValue; + }); + return acc; + }, + { ...initialFooter } + ); + return footer; +} diff --git a/src/pages/Supplier/Card/SupplierBalance.vue b/src/pages/Supplier/Card/SupplierBalance.vue index dcfa7c72b..75cbcc673 100644 --- a/src/pages/Supplier/Card/SupplierBalance.vue +++ b/src/pages/Supplier/Card/SupplierBalance.vue @@ -6,7 +6,7 @@ import { useAcl } from 'src/composables/useAcl'; import axios from 'axios'; import { useQuasar } from 'quasar'; import { getSupplierRisk } from 'src/composables/getRisk'; - +import tableFooter from 'src/components/VnTable/filters/tableFooter'; import { dashIfEmpty, toCurrency, toDate, toDateHourMin } from 'src/filters'; import { useState } from 'composables/useState'; import { useStateStore } from 'stores/useStateStore'; @@ -187,7 +187,15 @@ async function getCurrentBalance() { }); return currentBalance && currentBalance.amount; } +function setFooter(data) { + const initialFooter = { + invoiceEuros: 0, + paymentEuros: 0, + euroBalance: 0, + }; + tableRef.value.footer = tableFooter(initialFooter, data); +} async function onFetch(data) { return; // balances.value = [];