mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 21:35:19 +00:00
fix: restore from backup, restart button for tools, loader for fields
This commit is contained in:
20
lib/stats.ts
20
lib/stats.ts
@@ -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 === ""
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user