refactor: remove duplicate order feature and unused UI imports in my-orders page
This commit is contained in:
+16
-85
@@ -271,37 +271,6 @@ export async function createOrder(data: {
|
||||
}
|
||||
}
|
||||
|
||||
export async function duplicateOrder(order_id: string) {
|
||||
try {
|
||||
const oldOrder = await prisma.order.findUnique({
|
||||
where: { id: order_id },
|
||||
include: { available_items: true },
|
||||
})
|
||||
if (!oldOrder) return { success: false, error: 'Order tidak ditemukan' }
|
||||
|
||||
const newOrder = await prisma.order.create({
|
||||
data: {
|
||||
title: oldOrder.title + ' (Copy)',
|
||||
description: oldOrder.description,
|
||||
date: new Date(),
|
||||
allow_custom: oldOrder.allow_custom,
|
||||
creator_id: oldOrder.creator_id,
|
||||
status: 'DRAFT',
|
||||
available_items: {
|
||||
create: oldOrder.available_items.map((ai) => ({
|
||||
name: ai.name,
|
||||
is_sold_out: ai.is_sold_out,
|
||||
})),
|
||||
},
|
||||
},
|
||||
})
|
||||
revalidatePath('/my-orders')
|
||||
return { success: true, order: newOrder }
|
||||
} catch (e) {
|
||||
return { success: false, error: 'Gagal menduplikasi order.' }
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateOrder(
|
||||
order_id: string,
|
||||
data: {
|
||||
@@ -440,48 +409,6 @@ export async function updateSubmissionPayment(
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateBulkSubmissionPayment(
|
||||
submission_ids: string[],
|
||||
payment_status: string,
|
||||
use_balance: boolean = false
|
||||
) {
|
||||
try {
|
||||
if (payment_status === 'LUNAS') {
|
||||
const submissions = await prisma.submission.findMany({
|
||||
where: { id: { in: submission_ids } },
|
||||
})
|
||||
const ops = submissions.map((sub) =>
|
||||
prisma.submission.update({
|
||||
where: { id: sub.id },
|
||||
data: {
|
||||
payment_status,
|
||||
paid_amount: use_balance
|
||||
? sub.paid_amount || 0
|
||||
: sub.paid_amount != null
|
||||
? sub.paid_amount
|
||||
: sub.bill,
|
||||
saldo_used: use_balance ? Math.max(0, (sub.bill || 0) - (sub.paid_amount || 0)) : 0,
|
||||
},
|
||||
})
|
||||
)
|
||||
await prisma.$transaction(ops)
|
||||
} else {
|
||||
await prisma.submission.updateMany({
|
||||
where: { id: { in: submission_ids } },
|
||||
data: { payment_status },
|
||||
})
|
||||
}
|
||||
revalidatePath(`/my-orders`)
|
||||
revalidatePath(`/my-purchases`)
|
||||
revalidatePath(`/reports`)
|
||||
revalidatePath(`/balances`)
|
||||
return { success: true }
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
return { success: false, error: 'Gagal mengubah status tagihan massal.' }
|
||||
}
|
||||
}
|
||||
|
||||
export async function processBulkPayment(data: {
|
||||
submission_ids: string[]
|
||||
cash_amount: number
|
||||
@@ -570,19 +497,23 @@ export async function processBulkPayment(data: {
|
||||
// Partially covered -> BELUM_BAYAR
|
||||
let balanceToUse = Math.min(remainingBalance, totalAvailable)
|
||||
remainingBalance -= balanceToUse
|
||||
|
||||
|
||||
let cashToUse = totalAvailable - balanceToUse
|
||||
remainingCash -= cashToUse
|
||||
|
||||
|
||||
let finalPaid = prevPaid + cashToUse
|
||||
let finalSaldoUsed = prevSaldoUsed + balanceToUse
|
||||
|
||||
|
||||
totalAvailable = 0
|
||||
|
||||
ops.push(
|
||||
prisma.submission.update({
|
||||
where: { id: sub.id },
|
||||
data: { payment_status: 'BELUM_BAYAR', paid_amount: finalPaid, saldo_used: finalSaldoUsed },
|
||||
data: {
|
||||
payment_status: 'BELUM_BAYAR',
|
||||
paid_amount: finalPaid,
|
||||
saldo_used: finalSaldoUsed,
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
@@ -909,7 +840,7 @@ export async function getPiutangSummary(creator_id: string) {
|
||||
})
|
||||
|
||||
const grouped = new Map<string, any>()
|
||||
|
||||
|
||||
unpaidSubmissions.forEach((sub) => {
|
||||
if (!grouped.has(sub.user_id)) {
|
||||
grouped.set(sub.user_id, {
|
||||
@@ -918,20 +849,20 @@ export async function getPiutangSummary(creator_id: string) {
|
||||
submissions: [],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const u = grouped.get(sub.user_id)
|
||||
|
||||
|
||||
const paidAmount = (sub.paid_amount || 0) + (sub.saldo_used || 0)
|
||||
const unpaid = Math.max(0, (sub.bill || 0) - paidAmount)
|
||||
|
||||
|
||||
if (unpaid > 0) {
|
||||
u.totalPiutang += unpaid
|
||||
u.submissions.push({
|
||||
...sub,
|
||||
unpaidAmount: unpaid
|
||||
...sub,
|
||||
unpaidAmount: unpaid,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
return Array.from(grouped.values()).filter(g => g.totalPiutang > 0)
|
||||
|
||||
return Array.from(grouped.values()).filter((g) => g.totalPiutang > 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user