fix test failure
Build & Push / Pipeline Tests (push) Successful in 1m54s
Test / Type Check (all packages) (push) Successful in 53s
Build & Push / Build & Push Docker Image (push) Successful in 5m13s
Test / API Unit Tests (push) Successful in 1m18s
Test / Homepage Unit Tests (push) Successful in 48s
Test / Carplace Unit Tests (push) Successful in 41s
Test / Admin Unit Tests (push) Successful in 41s
Test / Dashboard Unit Tests (push) Successful in 42s
Test / API Integration Tests (push) Successful in 1m8s

This commit is contained in:
root
2026-08-10 23:33:46 -04:00
parent 7b8f81336a
commit 53de25120a
2 changed files with 42 additions and 11 deletions
@@ -850,7 +850,10 @@ export async function finalizeInvoice(invoiceId: string, adminId: string, ip?: s
}
const taxBase = Math.max(preTaxBase - autoCreditToApply, 0)
const { taxRate, taxAmount } = calculateTaxAmount(taxBase, account.taxExempt, platformBillingSettings.taxRate)
const shouldApplyTax = current.invoiceType !== 'MANUAL'
const { taxRate, taxAmount } = shouldApplyTax
? calculateTaxAmount(taxBase, account.taxExempt, platformBillingSettings.taxRate)
: { taxRate: 0, taxAmount: 0 }
if (taxAmount > 0) {
await tx.billingInvoiceLineItem.create({
@@ -950,16 +950,23 @@ function safeSubmission(submission: any) {
}
export async function getCanonicalInvoices(companyId: string) {
const invoices = await prisma.billingInvoice.findMany({
where: { companyId, subscriptionId: { not: null }, status: 'PAID' },
include: {
manualPaymentSubmissions: { orderBy: { createdAt: 'desc' }, include: { documents: { orderBy: { uploadedAt: 'asc' } } } },
paymentAttempts: { where: { status: 'SUCCEEDED' }, orderBy: { attemptedAt: 'desc' }, take: 1 },
},
orderBy: { createdAt: 'desc' },
take: 50,
})
return invoices.map((invoice: any) => ({
const [invoices, legacyInvoices] = await Promise.all([
prisma.billingInvoice.findMany({
where: { companyId, subscriptionId: { not: null } },
include: {
manualPaymentSubmissions: { orderBy: { createdAt: 'desc' }, include: { documents: { orderBy: { uploadedAt: 'asc' } } } },
paymentAttempts: { where: { status: 'SUCCEEDED' }, orderBy: { attemptedAt: 'desc' }, take: 1 },
},
orderBy: { createdAt: 'desc' },
take: 50,
}),
prisma.subscriptionInvoice.findMany({
where: { companyId, billingInvoiceId: null },
orderBy: { createdAt: 'desc' },
take: 50,
}),
])
const canonical = invoices.map((invoice: any) => ({
id: invoice.id,
invoiceNumber: invoice.invoiceNumber,
amount: invoice.totalAmount,
@@ -981,6 +988,27 @@ export async function getCanonicalInvoices(companyId: string) {
? safeSubmission(invoice.manualPaymentSubmissions[0])
: null,
}))
const legacy = legacyInvoices.map((invoice: any) => ({
id: invoice.id,
invoiceNumber: null,
amount: invoice.amount,
amountPaid: invoice.status === 'PAID' ? invoice.amount : 0,
amountDue: invoice.status === 'PAID' ? 0 : invoice.amount,
currency: invoice.currency,
status: invoice.status,
paymentProvider: invoice.paymentProvider,
collectionMethod: invoice.paymentProvider === 'STRIPE' ? 'STRIPE' : 'BANK_TRANSFER',
requestedPlan: invoice.requestedPlan,
requestedBillingPeriod: invoice.requestedBillingPeriod,
dueAt: invoice.dueAt,
paidAt: invoice.paidAt,
createdAt: invoice.createdAt,
confirmedReference: null,
manualPaymentSubmission: null,
}))
return [...canonical, ...legacy]
.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
.slice(0, 50)
}
export async function getPaidInvoicePdf(companyId: string, invoiceId: string) {