From e42b772dcf5eb60e8b5e386d8f7bfa24b01033d3 Mon Sep 17 00:00:00 2001 From: Kanjana Date: Fri, 18 Apr 2025 16:23:02 +0700 Subject: [PATCH] use await Promise.all in uploadedFile Product --- src/controllers/04-product-controller.ts | 53 ++++++++++++------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/controllers/04-product-controller.ts b/src/controllers/04-product-controller.ts index 146f6d1..1035beb 100644 --- a/src/controllers/04-product-controller.ts +++ b/src/controllers/04-product-controller.ts @@ -518,34 +518,35 @@ export class ProductController extends Controller { async (tx) => { const branch = productGroup.registeredBranch; const company = (branch.headOffice || branch).code; - console.log(branch, company); - for (const item of data) { - const dataDuplicate = productSameName.some( - (v) => v.code.slice(0, -3) === item.code.toUpperCase() && v.name === item.name, - ); - if (!dataDuplicate) { - const last = await tx.runningNo.upsert({ - where: { - key: `PRODUCT_${company}_${item.code.toLocaleUpperCase()}`, - }, - create: { - key: `PRODUCT_${company}_${item.code.toLocaleUpperCase()}`, - value: 1, - }, - update: { value: { increment: 1 } }, - }); + await Promise.all( + data.map(async (item) => { + const dataDuplicate = productSameName.some( + (v) => v.code.slice(0, -3) === item.code.toUpperCase() && v.name === item.name, + ); - dataProduct.push({ - ...item, - code: `${item.code.toLocaleUpperCase()}${last.value.toString().padStart(3, "0")}`, - createdByUserId: req.user.sub, - updatedByUserId: req.user.sub, - productGroupId: productGroupId, - }); - } - } - console.log("dataProduct", dataProduct); + if (!dataDuplicate) { + const last = await tx.runningNo.upsert({ + where: { + key: `PRODUCT_${company}_${item.code.toLocaleUpperCase()}`, + }, + create: { + key: `PRODUCT_${company}_${item.code.toLocaleUpperCase()}`, + value: 1, + }, + update: { value: { increment: 1 } }, + }); + + dataProduct.push({ + ...item, + code: `${item.code.toLocaleUpperCase()}${last.value.toString().padStart(3, "0")}`, + createdByUserId: req.user.sub, + updatedByUserId: req.user.sub, + productGroupId: productGroupId, + }); + } + }), + ); return await prisma.product.createManyAndReturn({ data: dataProduct,