diff --git a/frontend/js/chart/debitAverage.js b/frontend/js/chart/debitAverage.js
index e984cb5..f1a2848 100644
--- a/frontend/js/chart/debitAverage.js
+++ b/frontend/js/chart/debitAverage.js
@@ -1,5 +1,18 @@
import {isInRange} from '../lib/dateFilter'
+const getDate = (value) => {
+ const d = new Date(value)
+
+ let month = d.getUTCMonth() + 1
+ const year = d.getUTCFullYear()
+
+ if (month < 10) {
+ month = `0${month}`
+ }
+
+ return `${month}/${year}`
+}
+
const compute = (transactions, dateFrom, dateTo, order) => {
const emptyCategory = {
id: -1,
@@ -27,6 +40,8 @@ const compute = (transactions, dateFrom, dateTo, order) => {
data[category.label] = {
category: category,
average: 0,
+ monthAverage: 0,
+ months: {},
count: 0,
sum: 0,
}
@@ -34,10 +49,22 @@ const compute = (transactions, dateFrom, dateTo, order) => {
++data[category.label].count
data[category.label].sum += transaction.debit
+
+ const date = getDate(transaction.date)
+
+ if (!Object.prototype.hasOwnProperty.call(data[category.label].months, date)) {
+ data[category.label].months[date] = 0
+ }
+
+ data[category.label].months[date] += transaction.debit
})
for (let i in data) {
data[i].average = data[i].sum / data[i].count
+
+ const monthsValues = Object.values(data[i].months)
+
+ data[i].monthAverage = monthsValues.reduce((a, b) => a + b, 0) / monthsValues.length
}
data = Object.values(data).sort((a, b) => {
diff --git a/frontend/js/chart/diffCreditDebit.js b/frontend/js/chart/diffCreditDebit.js
index 453fbb1..16e2745 100644
--- a/frontend/js/chart/diffCreditDebit.js
+++ b/frontend/js/chart/diffCreditDebit.js
@@ -37,7 +37,7 @@ const compute = (transactions, dateFrom, dateTo) => {
return
}
- let date = getDate(transaction.date)
+ const date = getDate(transaction.date)
if (!Object.prototype.hasOwnProperty.call(indexes, date)) {
indexes[date] = labels.length
diff --git a/frontend/js/components/dashboard/CategoriesStats.vue b/frontend/js/components/dashboard/CategoriesStats.vue
index b14a0fd..9614461 100644
--- a/frontend/js/components/dashboard/CategoriesStats.vue
+++ b/frontend/js/components/dashboard/CategoriesStats.vue
@@ -21,6 +21,11 @@
class="text-end"
>Somme totale
+ Montant moyen
QuantitéTransactions
@@ -44,6 +49,7 @@
>
{{ renderEuro(item.sum) }}
{{ renderEuro(item.average) }}
+ {{ renderEuro(item.monthAverage) }}
{{ item.count }}
@@ -75,8 +81,9 @@ import {renderCategory, renderEuro} from '../../lib/renderers'
const order = ref(getStorage('dashboard:debitAverage:order', 'sum'))
const orders = [
{value: 'sum', text: 'Somme total'},
- {value: 'average', text: 'Moyenne mensuelle'},
- {value: 'count', text: 'Quantité'},
+ {value: 'average', text: 'Montant moyen'},
+ {value: 'monthAverage', text: 'Moyenne mensuelle'},
+ {value: 'count', text: 'Transactions'},
]
watch(order, (v) => saveStorage('dashboard:debitAverage:order', v))