fix: errors on saving transactions

This commit is contained in:
vas3k
2025-05-23 14:59:12 +02:00
parent 25c61f0519
commit ca7d206b07
3 changed files with 20 additions and 24 deletions

View File

@@ -16,7 +16,7 @@ export const fieldsToJsonSchema = (fields: Field[]) => {
...schemaProperties, ...schemaProperties,
items: { items: {
type: "array", type: "array",
description: "Included items or products in the transaction which have own name and price", description: "Separate items, products or transactions in the file which have own name and price or sum. Find all items!",
items: { items: {
type: "object", type: "object",
properties: schemaProperties, properties: schemaProperties,

View File

@@ -5,7 +5,7 @@ import { uploadFilesAction } from "@/app/(app)/files/actions"
import { uploadTransactionFilesAction } from "@/app/(app)/transactions/actions" import { uploadTransactionFilesAction } from "@/app/(app)/transactions/actions"
import { AlertCircle, CloudUpload, Loader2 } from "lucide-react" import { AlertCircle, CloudUpload, Loader2 } from "lucide-react"
import { useParams, useRouter } from "next/navigation" import { useParams, useRouter } from "next/navigation"
import { startTransition, useCallback, useEffect, useRef, useState } from "react" import { useCallback, useEffect, useRef, useState } from "react"
export default function ScreenDropArea({ children }: { children: React.ReactNode }) { export default function ScreenDropArea({ children }: { children: React.ReactNode }) {
const router = useRouter() const router = useRouter()
@@ -77,26 +77,24 @@ export default function ScreenDropArea({ children }: { children: React.ReactNode
formData.append("files", files[i]) formData.append("files", files[i])
} }
startTransition(async () => { const result = transactionId
const result = transactionId ? await uploadTransactionFilesAction(formData)
? await uploadTransactionFilesAction(formData) : await uploadFilesAction(formData)
: await uploadFilesAction(formData)
if (result.success) { if (result.success) {
showNotification({ code: "sidebar.unsorted", message: "new" }) showNotification({ code: "sidebar.unsorted", message: "new" })
setTimeout(() => showNotification({ code: "sidebar.unsorted", message: "" }), 3000) setTimeout(() => showNotification({ code: "sidebar.unsorted", message: "" }), 3000)
if (!transactionId) { if (!transactionId) {
router.push("/unsorted") router.push("/unsorted")
}
} else {
setUploadError(result.error ? result.error : "Something went wrong...")
} }
setIsUploading(false) } else {
}) setUploadError(result.error ? result.error : "Something went wrong...")
}
} catch (error) { } catch (error) {
console.error("Upload error:", error) console.error("Upload error:", error)
setIsUploading(false)
setUploadError(error instanceof Error ? error.message : "Something went wrong...") setUploadError(error instanceof Error ? error.message : "Something went wrong...")
} finally {
setIsUploading(false)
} }
} }
}, },

View File

@@ -13,9 +13,9 @@ export type TransactionData = {
convertedTotal?: number | null convertedTotal?: number | null
convertedCurrencyCode?: string | null convertedCurrencyCode?: string | null
type?: string | null type?: string | null
items?: TransactionData[] | null items?: TransactionData[] | undefined
note?: string | null note?: string | null
files?: string[] | null files?: string[] | undefined
extra?: Record<string, unknown> extra?: Record<string, unknown>
categoryCode?: string | null categoryCode?: string | null
projectCode?: string | null projectCode?: string | null
@@ -135,10 +135,8 @@ export const createTransaction = async (userId: string, data: TransactionData):
...standard, ...standard,
extra: extra, extra: extra,
items: data.items as Prisma.InputJsonValue, items: data.items as Prisma.InputJsonValue,
user: { userId,
connect: { id: userId } },
}
} as Prisma.TransactionCreateInput,
}) })
} }
@@ -151,7 +149,7 @@ export const updateTransaction = async (id: string, userId: string, data: Transa
...standard, ...standard,
extra: extra, extra: extra,
items: data.items ? data.items as Prisma.InputJsonValue : [], items: data.items ? data.items as Prisma.InputJsonValue : [],
} as Prisma.TransactionUpdateInput, },
}) })
} }