import { NextRequest, NextResponse } from "next/server"; import { prisma } from "prisma/client"; import * as XLSX from "xlsx"; export async function POST(request: NextRequest) { const searchParams = request.nextUrl.searchParams const companyId = searchParams.get('companyId') if (!companyId) return NextResponse.json({ error: 'Bad Request. Missing companyId' }, { status: 400 }) const intCompanyId = parseInt(companyId) const body = await request.arrayBuffer(); const workbook = XLSX.read(body, { type: 'buffer' }) const worksheetName = workbook.SheetNames[0] const worksheet = workbook.Sheets[worksheetName] const fileData: any[] = XLSX.utils.sheet_to_json(worksheet, { header: 1 }) fileData.shift(); const newProducts = fileData.map(row => ({ id: undefined, isDifferent: false, name: row[0].toString(), barcode: row[1].toString(), itemCode: row[2].toString(), onhandQty: row[3], differenceQty: row[4], companyId: row[5], })); const whereCompany = { companyId: intCompanyId } await prisma.stockOpname.deleteMany({ where: whereCompany }) await prisma.product.deleteMany({ where: whereCompany }) await prisma.product.createMany({ data: newProducts }) return NextResponse.json(true) }