diff options
Diffstat (limited to 'app/api')
| -rw-r--r-- | app/api/partners/rfq-last/[id]/response/route.ts | 74 |
1 files changed, 45 insertions, 29 deletions
diff --git a/app/api/partners/rfq-last/[id]/response/route.ts b/app/api/partners/rfq-last/[id]/response/route.ts index ebcccd8f..5d05db50 100644 --- a/app/api/partners/rfq-last/[id]/response/route.ts +++ b/app/api/partners/rfq-last/[id]/response/route.ts @@ -264,42 +264,57 @@ export async function PUT( // 2. 새 버전 생성 (제출 시) 또는 기존 버전 업데이트 let responseId = existingResponse.id - if (data.status === "제출완료" && previousStatus !== "제출완료") { - // 기존 버전을 비활성화 - await tx.update(rfqLastVendorResponses) - .set({ isLatest: false }) - .where(eq(rfqLastVendorResponses.id, existingResponse.id)) + // if (data.status === "제출완료" && previousStatus !== "제출완료") { + // // 기존 버전을 비활성화 + // await tx.update(rfqLastVendorResponses) + // .set({ isLatest: false }) + // .where(eq(rfqLastVendorResponses.id, existingResponse.id)) - // 기존 첨부파일을 새 응답으로 이동 - if (existingResponse.id) { - await tx.update(rfqLastVendorAttachments) - .set({ vendorResponseId: existingResponse.id }) // 임시로 기존 응답에 연결 - .where(eq(rfqLastVendorAttachments.vendorResponseId, existingResponse.id)) - } + // // 기존 첨부파일을 새 응답으로 이동 + // if (existingResponse.id) { + // await tx.update(rfqLastVendorAttachments) + // .set({ vendorResponseId: existingResponse.id }) // 기존 응답에 연결 + // .where(eq(rfqLastVendorAttachments.vendorResponseId, existingResponse.id)) + // } + + // // 새 버전 생성 + // const [newResponse] = await tx.insert(rfqLastVendorResponses).values({ + // ...data, + // vendorDeliveryDate: data.vendorDeliveryDate ? new Date(data.vendorDeliveryDate) : null, + // submittedAt: data.submittedAt ? new Date(data.submittedAt) : null, + // responseVersion: existingResponse.responseVersion + 1, + // status:"제출완료", + // participationStatus: "참여", + // participationRepliedAt: existingResponse.participationRepliedAt ? new Date() : null, + // participationRepliedBy: existingResponse.participationRepliedBy ? session.user.id : null, + + // isLatest: true, + // createdBy: existingResponse.createdBy, + // updatedBy: session.user.id, + // }).returning() + + // // 기존 첨부파일을 새 응답으로 이동 + // if (newResponse.id) { + // await tx.update(rfqLastVendorAttachments) + // .set({ vendorResponseId: newResponse.id }) + // .where(eq(rfqLastVendorAttachments.vendorResponseId, existingResponse.id)) + // } - // 새 버전 생성 - const [newResponse] = await tx.insert(rfqLastVendorResponses).values({ + // responseId = newResponse.id + // } else { + // // 기존 버전 업데이트 + if(data.status === "제출완료") { + await tx.update(rfqLastVendorResponses) + .set({ ...data, vendorDeliveryDate: data.vendorDeliveryDate ? new Date(data.vendorDeliveryDate) : null, submittedAt: data.submittedAt ? new Date(data.submittedAt) : null, - responseVersion: existingResponse.responseVersion + 1, - status:"제출완료", - participationStatus: "참여", - isLatest: true, - createdBy: existingResponse.createdBy, + status: data.status, updatedBy: session.user.id, - }).returning() - - // 기존 첨부파일을 새 응답으로 이동 - if (newResponse.id) { - await tx.update(rfqLastVendorAttachments) - .set({ vendorResponseId: newResponse.id }) - .where(eq(rfqLastVendorAttachments.vendorResponseId, existingResponse.id)) - } - - responseId = newResponse.id + updatedAt: new Date(), + }) + .where(eq(rfqLastVendorResponses.id, existingResponse.id)) } else { - // 기존 버전 업데이트 await tx.update(rfqLastVendorResponses) .set({ ...data, @@ -311,6 +326,7 @@ export async function PUT( .where(eq(rfqLastVendorResponses.id, existingResponse.id)) } + // 3. 견적 아이템 업데이트 // 기존 아이템 삭제 await tx.delete(rfqLastVendorQuotationItems) |
