diff options
Diffstat (limited to 'lib/bidding/service.ts')
| -rw-r--r-- | lib/bidding/service.ts | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/bidding/service.ts b/lib/bidding/service.ts index 2474d464..0261ad57 100644 --- a/lib/bidding/service.ts +++ b/lib/bidding/service.ts @@ -2294,14 +2294,22 @@ export async function updateBiddingSchedule( try { const userName = await getUserNameById(userId) - // 날짜 문자열을 Date 객체로 변환 + // 날짜 문자열을 Date 객체로 수동 변환 const parseDate = (dateStr?: string) => { if (!dateStr) return undefined - try { - return new Date(dateStr) - } catch { - return undefined - } + // 'YYYY-MM-DDTHH:mm' 또는 'YYYY-MM-DD HH:mm' 등을 허용 + // 잘못된 포맷이면 undefined 반환 + const m = dateStr.match( + /^(\d{4})-(\d{2})-(\d{2})[T ]?(\d{2}):(\d{2})(?::(\d{2}))?$/ + ) + if (!m) return undefined + const year = parseInt(m[1], 10) + const month = parseInt(m[2], 10) - 1 // JS month는 0부터 + const day = parseInt(m[3], 10) + const hour = parseInt(m[4], 10) + const min = parseInt(m[5], 10) + const sec = m[6] ? parseInt(m[6], 10) : 0 + return new Date(Date.UTC(year, month, day, hour, min, sec)) } return await db.transaction(async (tx) => { @@ -2310,8 +2318,8 @@ export async function updateBiddingSchedule( updatedBy: userName, } - if (schedule.submissionStartDate !== undefined) updateData.submissionStartDate = parseDate(schedule.submissionStartDate) - if (schedule.submissionEndDate !== undefined) updateData.submissionEndDate = parseDate(schedule.submissionEndDate) + if (schedule.submissionStartDate !== undefined) updateData.submissionStartDate = parseDate(schedule.submissionStartDate) || null + if (schedule.submissionEndDate !== undefined) updateData.submissionEndDate = parseDate(schedule.submissionEndDate) || null if (schedule.remarks !== undefined) updateData.remarks = schedule.remarks if (schedule.isUrgent !== undefined) updateData.isUrgent = schedule.isUrgent if (schedule.hasSpecificationMeeting !== undefined) updateData.hasSpecificationMeeting = schedule.hasSpecificationMeeting @@ -2335,7 +2343,7 @@ export async function updateBiddingSchedule( await tx .update(specificationMeetings) .set({ - meetingDate: new Date(specificationMeeting.meetingDate), + meetingDate: parseDate(specificationMeeting.meetingDate) || null, meetingTime: specificationMeeting.meetingTime || null, location: specificationMeeting.location, address: specificationMeeting.address || null, @@ -2355,7 +2363,7 @@ export async function updateBiddingSchedule( .insert(specificationMeetings) .values({ biddingId, - meetingDate: new Date(specificationMeeting.meetingDate), + meetingDate: specificationMeeting.meetingDate, meetingTime: specificationMeeting.meetingTime || null, location: specificationMeeting.location, address: specificationMeeting.address || null, |
