65 lines
1.3 KiB
JavaScript
65 lines
1.3 KiB
JavaScript
const addZero = (value) => {
|
|
if (value < 10) {
|
|
value = `0${value}`
|
|
}
|
|
|
|
return value
|
|
}
|
|
|
|
const renderDate = (value) => {
|
|
const d = new Date(value)
|
|
|
|
let day = addZero(d.getUTCDate())
|
|
let month = addZero(d.getUTCMonth() + 1)
|
|
const year = d.getUTCFullYear()
|
|
|
|
return `${day}/${month}/${year}`
|
|
}
|
|
|
|
const renderDateTime = (value) => {
|
|
const d = new Date(value)
|
|
|
|
return `${renderDate(value)} ${addZero(d.getHours())}:${addZero(d.getMinutes())}`
|
|
}
|
|
|
|
const renderCategory = (item) => {
|
|
if (item !== null) {
|
|
return `<span class="fa-solid fa-square" style="color: ${item.color}" b> </span> ${item.label}`
|
|
}
|
|
}
|
|
|
|
const renderBankAccount = (item) => {
|
|
if (item !== null) {
|
|
return item.label
|
|
}
|
|
}
|
|
|
|
const renderEuro = (value) => {
|
|
if (value === null) {
|
|
return '-'
|
|
}
|
|
|
|
if (value === 0) {
|
|
return '-'
|
|
}
|
|
|
|
const euro = new Intl.NumberFormat('fr-FR', {
|
|
style: 'currency',
|
|
currency: 'EUR',
|
|
minimumFractionDigits: 2,
|
|
})
|
|
|
|
return euro.format(value)
|
|
}
|
|
|
|
const renderLabelWithSum = (label, rows, key) => {
|
|
let sum = 0
|
|
|
|
rows.forEach((row) => {
|
|
sum += row[key]
|
|
})
|
|
|
|
return `${label}<br><small class="fw-normal">${renderEuro(sum)}</small>`
|
|
}
|
|
|
|
export { renderDate, renderDateTime, renderCategory, renderBankAccount, renderEuro, renderLabelWithSum }
|