From 509691eebbb4d91b8712f93b9cb265831fb13f7b Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 16 Mar 2026 08:34:56 +0900 Subject: [PATCH] =?UTF-8?q?feat(tkpurchase):=20=ED=98=91=EB=A0=A5=EC=97=85?= =?UTF-8?q?=EC=B2=B4=20=ED=8F=AC=ED=84=B8/=EC=9D=B4=EB=A0=A5=EC=97=90=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EB=B0=B0=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 포털 스케줄 카드에 프로젝트명·job_no 초록 배지 표시 - 이력 카드에 프로젝트명·job_no 초록 배지 표시 - checkinModel.findHistoryByCompany에 LEFT JOIN projects 추가 Co-Authored-By: Claude Opus 4.6 --- tkpurchase/api/models/checkinModel.js | 3 ++- tkpurchase/web/static/js/tkpurchase-partner-history.js | 5 ++++- tkpurchase/web/static/js/tkpurchase-partner-portal.js | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tkpurchase/api/models/checkinModel.js b/tkpurchase/api/models/checkinModel.js index 7f1baaa..b9b7c3a 100644 --- a/tkpurchase/api/models/checkinModel.js +++ b/tkpurchase/api/models/checkinModel.js @@ -158,9 +158,10 @@ async function findHistoryByCompany(companyId, { dateFrom, dateTo, page = 1, lim const db = getPool(); // 1. 체크인 페이지네이션 조회 - let sql = `SELECT pc.*, ps.work_description, ps.workplace_name, ps.start_date, ps.end_date + let sql = `SELECT pc.*, ps.work_description, ps.workplace_name, ps.start_date, ps.end_date, p.project_name, p.job_no FROM partner_work_checkins pc LEFT JOIN partner_schedules ps ON pc.schedule_id = ps.id + LEFT JOIN projects p ON ps.project_id = p.project_id WHERE pc.company_id = ?`; const params = [companyId]; if (dateFrom) { sql += ' AND DATE(pc.check_in_time) >= ?'; params.push(dateFrom); } diff --git a/tkpurchase/web/static/js/tkpurchase-partner-history.js b/tkpurchase/web/static/js/tkpurchase-partner-history.js index 89477cb..99fdd02 100644 --- a/tkpurchase/web/static/js/tkpurchase-partner-history.js +++ b/tkpurchase/web/static/js/tkpurchase-partner-history.js @@ -109,7 +109,10 @@ function renderHistoryList(checkins) { ${checkinDate} ${statusHtml} - ${escapeHtml(c.workplace_name || '')} +
+ ${c.project_name ? `${escapeHtml(c.project_name)}${c.job_no ? ' · ' + escapeHtml(c.job_no) : ''}` : ''} + ${escapeHtml(c.workplace_name || '')} +
${c.work_description ? `

${escapeHtml(c.work_description)}

` : ''}
diff --git a/tkpurchase/web/static/js/tkpurchase-partner-portal.js b/tkpurchase/web/static/js/tkpurchase-partner-portal.js index d5e6343..1ed846c 100644 --- a/tkpurchase/web/static/js/tkpurchase-partner-portal.js +++ b/tkpurchase/web/static/js/tkpurchase-partner-portal.js @@ -79,7 +79,10 @@ async function renderScheduleCards() {
-

${escapeHtml(s.workplace_name || '작업장 미지정')}

+
+ ${s.project_name ? `
${escapeHtml(s.project_name)}${s.job_no ? ' · ' + escapeHtml(s.job_no) : ''}
` : ''} +

${escapeHtml(s.workplace_name || '작업장 미지정')}

+
${dateBadge}
${!isToday ? `
${formatDate(s.start_date)}${formatDate(s.start_date) !== formatDate(s.end_date) ? ' ~ ' + formatDate(s.end_date) : ''}
` : ''}