{"running":null,"status":"tracked","retry":null,"issue_id":"7d204e8c-e60b-4fcd-ae1f-574b39732836","workspace":{"path":"/Users/julian/.codex/worktrees/symphony/TEC-57","host":null},"attempts":{"current_retry_attempt":0,"restart_count":0},"issue_identifier":"TEC-57","last_error":null,"logs":{"codex_session_logs":[]},"recent_events":[],"tracked":{"priority":"Low","state":"Ready for Verify","title":"발주서관리에서 수입품명·공급업체품명이 자재명과 동일하게 표시됨","url":"https://linear.app/tonextchapter/issue/TEC-57/발주서관리에서-수입품명공급업체품명이-자재명과-동일하게-표시됨","updated_at":"2026-04-08 08:47 UTC","detail":{"ready_for_verify":"### 2026-04-08\n\n* self-review result summary: 현재 diff랑 주변 코드 같이 봤는데 이번 변경 범위에서 크게 걸리는 건 없었어요.\n* screenshot: 없음 (로컬 dev 서버 Turbopack panic으로 캡처 실패)\n* test url: `/api/test/login?next=/po-management`\n* test url: `/po-management`\n* verify focus: `/po-management`에서 문제 있었던 발주서를 열고 `공급업체품명`이 자재명 복제값 대신 마스터 alias 또는 빈값으로 보이는지 확인해 주세요.\n* verify focus: 같은 행의 `수입품명(영문)`도 마스터 영문명 또는 빈값으로 보이는지 같이 봐주세요.\n* verify focus: 기타비용 추가 후 새 행 저장이나 재확정/PDF 소스 재생성 때 alias, 영문명이 자재명으로 자동 복사되지 않는지 확인해 주세요.","agent_analysis":"### 요청 요약\n\n* 발주서관리 상세행에서 `공급업체품명`, `수입품명(영문)`이 `자재명`과 동일하게 저장/표시되는 케이스가 있어서, 마스터 기준 값으로 다시 맞춰야 합니다.\n\n### 기대 동작\n\n* `/po-management` 상세행에서 `공급업체품명`, `수입품명(영문)`이 자재명 복제값이 아니라 마스터 정보 기준으로 보여야 합니다.\n* 마스터값이 비어 있으면 빈 값으로 두고, 자재명을 자동 복사하지 않아야 합니다.\n* 같은 발주를 재확정하거나 PDF 소스를 다시 만들 때도 같은 이름 규칙을 따라야 합니다.\n* 이후 신규 발주 생성/기타비용 추가 때도 같은 오염이 다시 생기지 않아야 합니다.\n\n### 관련 화면/경로\n\n* 화면: `/po-management`\n* 프론트: `web/src/app/(pages)/(nextcentury)/(century)/po-management/ui/PoManagementPageClient.tsx`\n* API: `web/src/app/api/nextcentury/screens/century/po-management/route.ts`\n* 조회/재확정 소스: `web/src/server/services/nextcentury/century/century-po-management.repo.server.ts`\n* 발주 생성 소스: `web/src/server/services/nextcentury/century/century-po-dashboard.repo.server.ts`, `web/src/server/services/nextcentury/century/century-po-dashboard.service.ts`\n* Retool 기준 참고: `web/docs/domains/nextcentury/sources/NextCentury-retool/lib/openModalToExcelPO.js`, `web/docs/domains/nextcentury/sources/NextCentury-retool/lib/appendExtraCostPO.js`, `web/docs/domains/nextcentury/sources/NextCentury-retool/lib/fnNormalizePDFPOItem.js`\n\n### 재현 방법 또는 근거\n\n* 현재 NCOS `po-management` 조회는 `tblSourcingPO.itemNameAlias`, `tblSourcingPO.itemNameEN`을 그대로 읽어서 보여줍니다.\n* 그런데 발주 생성 쪽 `century-po-dashboard.repo.server.ts`에서 검증된 발주행을 정규화할 때 `itemNameAlias`, `itemNameEN`이 비면 `itemName`으로 fallback 하도록 되어 있습니다.\n* `po-management`의 기타비용 추가 저장도 `itemNameAlias ?? itemName`, `itemNameEN ?? itemName`으로 들어가서 같은 패턴이 반복됩니다.\n* 반면 Retool 원본은 발주 생성/기타비용 추가/PDF 정규화에서 alias, 영문명을 자재명으로 강제로 채우지 않고 원래 값 또는 빈 값으로 둡니다. 이 차이 때문에 NCOS에서만 자재명 복제 현상이 생긴 걸로 보는 게 가장 자연스럽습니다.\n\n### 완료 조건\n\n* 현재 `po-management`에서 보이는 `공급업체품명`, `수입품명(영문)`이 affected row 기준으로 마스터 값과 맞게 보입니다.\n* 재확정/PDF 생성 소스도 같은 이름 값으로 맞춰집니다.\n* 신규 발주 생성과 `po-management` 기타비용 추가 경로에서 alias, 영문명을 자재명으로 자동 복사하지 않습니다.\n\n### 애매한 지점\n\n* 기존 저장값을 DB에서 일괄 보정할지, 화면/생성 로직에서만 바로잡을지 판단 포인트가 있었는데, 이번 이슈는 화면 오표시를 빨리 잡고 재발도 막는 게 더 중요하다고 봤어요. 그래서 이번엔 조회/PDF 경로 보정 + 신규 저장 경로 보정으로 가면 충분하다고 판단했어요. 다만 운영에서 `tblSourcingPO` 값 자체를 영구 정리해야 하면, 그때는 별도 DB 보정 작업을 후속으로 잡는 게 맞습니다.","decision_needed":"없음","human_notes":"* 없음","human_review_entry":null,"ready_for_verify_test_urls":[],"release":"없음","review_updates":"### 2026-04-08\n\n* 이번 리뷰에서는 크게 손볼 건 없어서 그대로 마무리했어요.","rework_request":"없음","slack_request":"발주서관리 화면에서 수입품명과 공급업체품명이 자재명과 동일하게 들어가 있으며, 마스터 정보와 다르게 표시된다. 해당 값 수정이 필요하다.\n\n![image.png](https://uploads.linear.app/7c52ab50-7609-4512-9c46-3c8e24ee8e67/4c79f361-4683-4686-bcea-96ec48456de1/0931a65b-2ae0-4932-8807-5257ec5f433d?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzdjNTJhYjUwLTc2MDktNDUxMi05YzQ2LTNjOGUyNGVlOGU2Ny80Yzc5ZjM2MS00NjgzLTQ2ODYtYmNlYS05NmVjNDg0NTZkZTEvMDkzMWE2NWItMmFlMC00OTMyLTg4MDctNTI1N2VjNWY0MzNkIiwiaWF0IjoxNzc1NDUyMzcwLCJleHAiOjE3NzU0NTI2NzB9.rYPcOyJbYO9-7BDIziewq7Srlww5lSMKXMjP0h_8gsM)\n\n* 요청자: Susan Sujeong Yoon\n* 요청일: 2026-03-30\n* Slack 링크: [https://nextchapter-inc.slack.com/archives/C04EFJG5MA7/p1774836310418939?thread_ts=1774836310.418939&cid=C04EFJG5MA7](<https://nextchapter-inc.slack.com/archives/C04EFJG5MA7/p1774836310418939?thread_ts=1774836310.418939&cid=C04EFJG5MA7>)","verify_history":"### 2026-04-08 17:46\n\n* 리뷰에서 반영한 것: 이번 리뷰에서는 크게 손볼 건 없어서 그대로 마무리했어요.\n* Ready for Verify: 현재 diff랑 주변 코드 같이 봤는데 이번 변경 범위에서 크게 걸리는 건 없었어요. 스크린샷은 로컬 dev 서버 Turbopack panic 때문에 못 남겼어요.\n* 검증: `pnpm -C web exec biome lint src/app/'(pages)'/'(nextcentury)'/'(century)'/po-management/ui/PoManagementPageClient.tsx src/server/services/nextcentury/century/century-po-dashboard.repo.server.ts src/server/services/nextcentury/century/century-po-dashboard.service.ts src/server/services/nextcentury/century/century-po-management.repo.server.ts`, `pnpm -C web typecheck`\n* 브랜치/커밋: `codex/TEC-57-po-management-item-alias`, `43be4e82`"}}}