summaryrefslogtreecommitdiff
path: root/lib/bidding/actions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bidding/actions.ts')
-rw-r--r--lib/bidding/actions.ts45
1 files changed, 11 insertions, 34 deletions
diff --git a/lib/bidding/actions.ts b/lib/bidding/actions.ts
index ae1fb54f..3eadaace 100644
--- a/lib/bidding/actions.ts
+++ b/lib/bidding/actions.ts
@@ -85,8 +85,6 @@ export async function transmitToContract(biddingId: number, userId: number) {
materialDescription: prItemsForBidding.materialDescription,
quantity: prItemsForBidding.quantity,
quantityUnit: prItemsForBidding.quantityUnit,
- totalWeight: prItemsForBidding.totalWeight,
- weightUnit: prItemsForBidding.weightUnit,
})
.from(companyPrItemBids)
.leftJoin(prItemsForBidding, eq(companyPrItemBids.prItemId, prItemsForBidding.id))
@@ -138,16 +136,12 @@ export async function transmitToContract(biddingId: number, userId: number) {
if (companyBids.length > 0) {
console.log(`Creating ${companyBids.length} contract items for winner company ${winnerCompany.companyId} with award ratio ${awardRatio}`)
for (const bid of companyBids) {
- // 발주비율에 따른 최종 수량/중량 계산
+ // 발주비율에 따른 최종 수량 계산 (중량 제외)
const originalQuantity = Number(bid.quantity) || 0
- const originalWeight = Number(bid.totalWeight) || 0
const bidUnitPrice = Number(bid.bidUnitPrice) || 0
const finalQuantity = originalQuantity * awardRatio
- const finalWeight = originalWeight * awardRatio
- const finalAmount = finalQuantity > 0
- ? finalQuantity * bidUnitPrice
- : finalWeight * bidUnitPrice
+ const finalAmount = finalQuantity * bidUnitPrice
await db.insert(generalContractItems).values({
contractId: contractId,
@@ -156,13 +150,13 @@ export async function transmitToContract(biddingId: number, userId: number) {
specification: bid.materialDescription || '',
quantity: finalQuantity || null,
quantityUnit: bid.quantityUnit || '',
- totalWeight: finalWeight || null,
- weightUnit: bid.weightUnit || '',
+ totalWeight: null, // 중량 정보 제외
+ weightUnit: '', // 중량 단위 제외
contractDeliveryDate: bid.proposedDeliveryDate || null,
contractUnitPrice: bid.bidUnitPrice || null,
contractAmount: finalAmount || null,
contractCurrency: bid.currency || biddingData.currency || 'KRW',
- } as any)
+ })
}
console.log(`Created ${companyBids.length} contract items for winner company ${winnerCompany.companyId}`)
} else {
@@ -239,10 +233,7 @@ export async function transmitToPO(biddingId: number) {
materialDescription: string | null
quantity: string | null
quantityUnit: string | null
- totalWeight: string | null
- weightUnit: string | null
finalQuantity: number
- finalWeight: number
finalAmount: number
awardRatio: number
vendorCode: string | null
@@ -265,29 +256,22 @@ export async function transmitToPO(biddingId: number) {
materialDescription: prItemsForBidding.materialDescription,
quantity: prItemsForBidding.quantity,
quantityUnit: prItemsForBidding.quantityUnit,
- totalWeight: prItemsForBidding.totalWeight,
- weightUnit: prItemsForBidding.weightUnit,
})
.from(companyPrItemBids)
.leftJoin(prItemsForBidding, eq(companyPrItemBids.prItemId, prItemsForBidding.id))
.where(eq(companyPrItemBids.biddingCompanyId, winner.id))
- // 발주비율 적용하여 PO 아이템 생성
+ // 발주비율 적용하여 PO 아이템 생성 (중량 제외)
for (const bid of companyBids) {
const originalQuantity = Number(bid.quantity) || 0
- const originalWeight = Number(bid.totalWeight) || 0
const bidUnitPrice = Number(bid.bidUnitPrice) || 0
const finalQuantity = originalQuantity * awardRatio
- const finalWeight = originalWeight * awardRatio
- const finalAmount = finalQuantity > 0
- ? finalQuantity * bidUnitPrice
- : finalWeight * bidUnitPrice
+ const finalAmount = finalQuantity * bidUnitPrice
poItems.push({
...bid,
finalQuantity,
- finalWeight,
finalAmount,
awardRatio,
vendorCode: winner.vendorCode,
@@ -394,28 +378,21 @@ export async function getWinnerDetails(biddingId: number) {
materialDescription: prItemsForBidding.materialDescription,
quantity: prItemsForBidding.quantity,
quantityUnit: prItemsForBidding.quantityUnit,
- totalWeight: prItemsForBidding.totalWeight,
- weightUnit: prItemsForBidding.weightUnit,
})
.from(companyPrItemBids)
.leftJoin(prItemsForBidding, eq(companyPrItemBids.prItemId, prItemsForBidding.id))
.where(eq(companyPrItemBids.biddingCompanyId, winner.id))
- // 발주비율에 따른 계산 (백분율을 실제 비율로 변환)
+ // 발주비율에 따른 계산 (백분율을 실제 비율로 변환, 중량 제외)
const awardRatio = (Number(winner.awardRatio) || 100) / 100
const calculatedItems = companyBids.map(bid => {
const originalQuantity = Number(bid.quantity) || 0
- const originalWeight = Number(bid.totalWeight) || 0
const bidUnitPrice = Number(bid.bidUnitPrice) || 0
- // 발주비율에 따른 최종 수량/중량 계산
+ // 발주비율에 따른 최종 수량 계산
const finalQuantity = originalQuantity * awardRatio
- const finalWeight = originalWeight * awardRatio
-
- // 최종 견적가 계산 (수량 또는 중량에 따른)
- const finalAmount = finalQuantity > 0
- ? finalQuantity * bidUnitPrice
- : finalWeight * bidUnitPrice
+ const finalWeight = 0 // 중량 제외
+ const finalAmount = finalQuantity * bidUnitPrice
return {
...bid,