fix: restore from backup, restart button for tools, loader for fields

This commit is contained in:
vas3k
2025-05-20 20:37:26 +02:00
parent 4b3c62c9eb
commit c352f5eadd
18 changed files with 172 additions and 118 deletions

View File

@@ -1,4 +1,4 @@
import { Transaction } from "@/prisma/client"
import { Field, Transaction } from "@/prisma/client"
export function calcTotalPerCurrency(transactions: Transaction[]): Record<string, number> {
return transactions.reduce(
@@ -15,3 +15,21 @@ export function calcTotalPerCurrency(transactions: Transaction[]): Record<string
{} as Record<string, number>
)
}
export const isTransactionIncomplete = (fields: Field[], transaction: Transaction): boolean => {
const incompleteFields = incompleteTransactionFields(fields, transaction)
return incompleteFields.length > 0
}
export const incompleteTransactionFields = (fields: Field[], transaction: Transaction): Field[] => {
const requiredFields = fields.filter((field) => field.isRequired)
return requiredFields.filter((field) => {
const value = field.isExtra
? (transaction.extra as Record<string, any>)?.[field.code]
: transaction[field.code as keyof Transaction]
return value === undefined || value === null || value === ""
})
}