[종결] 2026-10-13 세션 — PFS 자재 발주서 입고처·품목군·입고일·엑셀 NAS 양식 (/field/mat-orderpaper)
domain:pfs svc:mat-orderpaper · 페페 QA 연쇄 7건, 전부 운영 deploy-live 반영. 최종 deploy-live
500b577c. 세션 = 발주서 입고처 컬럼 (b91828e8) · 총괄 = 코디(opus) · 실행 = worker 서브에이전트 · 동시편집은 worktree 분할.
논의·결정 (원문 이관 — 시간순)
[코디] 🆕 26.10.13(화) — 자재 발주서 입고처 독립 칸 + 품목군 변경 — ✅운영 반영(master c0b4e3ab → deploy-live 9024bc7c · gh run watch 38354845715 success · 운영 읽기 실측 15칸·JS 오류 0) · [페페] 「입고처 컬럼이 없다(발주서 작성 참조)」 · 「품목군도 수정 가능하게」 → A(계산 따라 바뀜: 시트·보드·수량·공정업체) · Q1 (c) 도어 필름→LPM = 보드만(0.6T 엣지·피스마개 없음) · Q2 (b) 보드 외 행 = 이름·분류만 · 입고처 = 업체 뒤 120px 칸(수동·자동 행 · 빈칸 = 머리칸 → 포인 · 엑셀 동일 대체 · 재가져오기 사람 값 유지) · 품목군 = POST /api/mat-orderpaper/<no>/lines/category · 보드는 자재 단위 계산 override(calc_meta.cat_overrides · DDL 0 · calc.py 무수정) → 재가져오기 병합 재사용 · 불필요 연관 행 소프트삭제 · 사람 확정 업체 유지+「규칙과 다름」 · 보드↔보드외 전환 금지 · 저장본 바뀐 뒤면 거절 · 화면 = 칩 색 래퍼 입력칸 mo_rcat_auto 96px · 「수정됨 · 이력 N」 공용 · 검증 = 자체검사 155/155 · 테스트 실주소 API e2e·Playwright 1680/390 실패 0(C:\dev\_work\matcat-1013\) · 사이트맵 mat-orderpaper same · ⏳[페페] 열린 탭 새로고침 · 도어 3T→LPM = 우라판(board_pnr)만 나옴 확인 · worktree C:\dev\pfs_wt_matcat 삭제 승인 · 테스트 DB 네스팅 #83·발주서 #37 = 코디 테스트용(남김)
[코디] 🆕 26.10.13(화) — 자재 발주서 삭제 행 업체 확정 예외 — ✅운영 반영 15:53 KST(master e7b8131c·419c0b54 → deploy-live c10a8cc1·13871ed7 · JS v=20261013l) · [페페] QA 15:35 「삭제한 행도 업체 확정을 요구」 · 원인 = 서버 차단은 원래 삭제 행 제외였고, 운영 #5 실제 차단은 살아 있는 「70-115 PP시트」 업체 공란 — 삭제 행 업체 칸 「업체 미확정」 안내 + 경고 «참고» 「업체 미정: 70-115 칼라샘플」 이 헷갈리게 함(r13~r23 판이력) · 수정 = 삭제 행 업체 칸 안내 제거·툴팁·추천 없음 · 업체별 보기 삭제 묶음 · _warnings 업체 미정 참고에서 삭제 행뿐인 품목 제외 · 자체검사 159/159 · 테스트 #37 Playwright 확정 통과 · 운영 #5 참고 사라짐 확인 · ⏳[페페] 업체 확정된 품목의 낡은 「업체 미정」 참고도 숨길지 · 테스트 #37 = 취소됨 상태
[코디] 🆕 26.10.13(화) — 자재 발주서 → 자재관리 발주수량 = 최종(여유 포함) — ✅운영 반영(master 6d52c887 → deploy-live e013b9c2 · run 38360350832) + 운영 데이터 보정 · [페페] 「확정된 자재가 자재관리에 계산 수량으로만 뜬다」 · 원인 = _link_rows 가 현장 alloc_qty(실소요)를 그대로 실음 — 시트·엣지·칼라샘플·피스마개는 올림·여유가 문서 통합 1회라 어느 현장에도 안 실림(보드·수동·추가차수는 정상) · 수정 = calc_adapter.link_qtys(현장 몫 + 잔여를 실소요 비율 정수 배분 · 현장 합 = 최종 · 몫 0 현장 제외) · calc.py·문서 화면 배분·엑셀 무변경 · 자체검사 179/179 · 테스트 #38 재현 FAIL → #39 PASS · 보정 = 같은 함수 + pfs_link.sync_multi 재적재 + modify_item_stock(재고 이력) · 직접 SQL 0 · #4 엣지 46/37/370/6→60/50/380/20M · #5 시트·엣지 6행 · #1 13행 · 제외 6행(#1 op6399·6401·6403·6404 사람 수량 · op6415 입고 완료 155 vs 최종 400 · #5 op8798 사람 1000M·재고 794) · 스냅샷·스크립트 C:\dev\_work\linkqty-1013\ · ⏳[페페] 문서 화면 「현장 배분」·엑셀 현장 시트도 최종 기준으로 맞출지 · op6415·op8798 처리 · worktree C:\dev\pfs_wt_linkqty 삭제 승인
[코디] 🆕 26.10.13(화) — 자재 발주서 자동 제목 = 현장명만 — ✅운영 반영(master 60f9de98 → deploy-live 2635c7f3 · EC2 코드 SSM 확인) · [페페] 「제목은 현장명만, 도어+몸통 같은 구문 제거」 · _auto_title()(create_from_nesting 전용) 접미 제거 · 추가 차수 「원제목 추가N」 은 유지 · 엑셀 파일명은 제목을 따라가 새 문서부터 자동 반영 · 자체검사 186/186 · 테스트 #40(초안 남김) · ✅[페페] 「추천」 → 운영 #5 제목 「GS 대전 도마*변동」 정정(amend API · rev 23→24 · 라인 19 불변 · 자재관리 연동 18행 갱신 · C:\dev\_work\mo5_title\fix_title.py) · #1~#4 사람 제목 그대로
[코디] 🆕 26.10.13(화) — 자재 발주서 엑셀 다운로드 = NAS 원부자재발주서 양식(기본) + #5 첫 적용 + 현장 배분 = 적재 수량 — ✅운영 반영(master b42891e5·bac1f11e·6f32d9e2 → deploy-live 4cd36e19·a8c76168·eaef41a6 · JS v=20261013n) · [페페] 15:38 「엑셀이 NAS 원부자재발주서 형식이어야 · 기본으로 확정 · #5 첫 작업」 + 「현장 배분·엑셀 현장값도 최종」 추천대로 · 정본 작성 함수 = C:\dev\pfs\common\material_order\xlsx_writer.py(orderpaper_build 는 재내보내기) · 서버 양식 사본 common\material_order\orderpaper_form.xlsx(갱신 orderpaper_build.py --refresh-form) · build_nas = 업체별 탭·오엠씨 원장 탭·입고처 행 = 마지막 품목 바로 아래(26·28행 비움)·삭제/0 제외·keywords PFS-MAT#n · 파일명 한샘 <현장> 원부자재발주서.xlsx(확정 전 (초안)) · 버튼 = 주 클릭 NAS 양식 / ▾ (구)검토용 2종 · 화면 「적재」 열 = 서버 link_qty · 자체검사 214/214 · #4 재생성 vs 오전 손작업본 서식 차이 0 · #5 셀검사 55/0 · ✅#5 NAS 새 파일 \\192.168.0.101\공유폴더\2026현장\진행중\10월\한샘 GS 대전도마변동 MH\한샘 GS 대전 도마 변동 원부자재발주서.xlsx(16:25 KST · md5 12f84878… · 16:38 동기화 ins 0) · 작업 C:\dev\_work\mat-op5-nasxlsx-1013\ · ⏳[페페] 월 폴더 옛 목록형 \\192.168.0.101\공유폴더\2026현장\원부자재발주서\10월\한샘 GS 대전 도마 변동 원부자재발주서.xlsx(15:36 · PFS-MAT#5 · 2130 「대전」 오매칭 경고) 처리 · 동기화 대조 현장 매칭 결함(#5→2130 · #4→2124, 표식 문서 현장으로 대조 추천) · worktree C:\dev\pfs_wt_opxlsx 삭제 승인
[코디] 🆕 26.10.13(화) — 자재 발주서 입고일(공통·업체 일괄·품목별 · 확정 후 수정 → 자재관리 반영) — ✅운영 반영 16:50 KST(DDL patch62 mat_orderpaper_item.receive_date DATE NULL INSTANT · 운영 SSM 16:40 37→38칸 · master e7881a36·c9439d2f → deploy-live cbad2a63·9bfd16a5 · JS rd3) · [페페] Q1 A(DDL)·Q2 A(확정 후 수정)·Q3 A(품목 → 공통) · 실효 입고일 = effective_receive_date(line, header)(service · get_one receive_date_eff) · 확정 문서 save = 입고일만 허용 + 같은 트랜잭션 자재관리 연결 행 갱신 + 판이력 「입고일 변경」 · 입고 완료 행 미반영 띠 · 전부 입고 완료 품목은 수정 거절(web-designer) · pfs_link._UPSERT_MULTI 입고 완료 행 입고일 3칸 안 덮음(자재 발주서 전용) · 화면 = 입고처 뒤 「입고일」 칸(공통 점선 / 개별 파란 실선 · ↺ 공통) · 업체 일괄 입고일 줄 · 자체검사 246/246 · test_pfs_link OK · 테스트 Playwright 32/32 · 운영 읽기 FAIL 0 · 작업 C:\dev\_work\mat-rdate-1013\ · ⏳[페페] 확정 후 입고일 바꾸면 자재관리 사람 입력 입고일(*_user)을 비우고 발주서 날짜로 덮음(이전 값 판이력 op_user_replaced) — 유지할지 · rdstunnel 테스트 13307 15:51 부터 불통 · worktree C:\dev\pfs_wt_rdate 삭제 승인
[코디] 🆕 26.10.13(화) — 자재 발주서 NAS 양식 엑셀 보완 3건(입고일·외곽 thin·타입 칸) + 월 폴더 #5 덮어쓰기 — ✅운영 반영(master f529d514 → deploy-live 500b577c · run 38372247704) · [페페] 「DB 입고일 발주서별 반영 · 외곽 가는 일자선(점선 섞임) · 10월 원부자재 폴더 도마 변동 기존 파일 덮어쓰기 · 타입 = 전체 타입 쉼표:주방0,일반0」 · 점선 원인 = openpyxl 이 열 때·병합 때 병합칸 둘레를 첫 칸 테두리로 재칠(H:J 의 H 오른쪽 hair → J 외곽 점선) → xlsx_writer.seal_frame 로 채운 뒤 외곽 thin 재봉인 · 입고일 = 자재관리 실효 입고일 → 없으면 문서(운영 #5 문서엔 입고일 0, 자재관리에 10/15·16·19) · 탭 I3 = 최조 날짜, 다른 날짜 품목 = G열(양식 입고일 칸) · 타입 = 59A,84A,84B:주방1,일반3(field_type 주방10·일반20 행 수, 세대수 데이터 없음) · 자체검사 262/262 · #5 운영 다운로드 셀검사 87/0(외곽 550칸 thin · 격자 불변) · NAS \\192.168.0.101\공유폴더\2026현장\원부자재발주서\10월\한샘 GS 대전 도마 변동 원부자재발주서.xlsx 덮어씀 17:39 KST(md5 407ec59e… · 백업 C:\dev\_work\mat-op5-fix-1013\backup\ = 17:04 옛 코드 NAS 양식판) · 18:10 동기화 ins 0 · ⏳[페페] 「주방0,일반0」 = 타입 개수가 맞는지(세대수면 출처) · 현장 폴더 …\진행중\10월\한샘 GS 대전도마변동 MH\… 파일도 갱신할지 · 부자재·AL 엑셀 같은 점선 결함 점검 · worktree C:\dev\pfs_wt_xlsxfix 삭제 승인
산출물·커밋
- pfs master
c0b4e3ab·e7b8131c·419c0b54·6d52c887·60f9de98·b42891e5·bac1f11e·6f32d9e2·e7881a36·c9439d2f·f529d514 - deploy-live
9024bc7c·c10a8cc1·13871ed7·e013b9c2·2635c7f3·4cd36e19·a8c76168·eaef41a6·cbad2a63·9bfd16a5·500b577c - 작업 폴더
C:\dev\_work\matcat-1013\·C:\dev\_work\linkqty-1013\·C:\dev\_work\mat-op5-nasxlsx-1013\·C:\dev\_work\mat-rdate-1013\·C:\dev\_work\mat-op5-fix-1013\·C:\dev\_work\mo5_title\
다음 (종결 시점 미결 — 상주하지 않음)
- 낡은 「업체 미정」 참고 숨김(추후 검토) · op6415·op8798 처리 · 확정 후 입고일 변경 시 자재관리
*_user비움 정책 확인 · 월 폴더/동기화 오매칭(#5→2130·#4→2124) 수정 · 「주방N,일반N」 = 타입 개수 확인 · 현장 폴더 #5 파일 갱신 · 부자재·AL 엑셀 점선 점검 · worktree 6개(C:\dev\pfs_wt_matcat·pfs_wt_linkqty·pfs_wt_opxlsx·pfs_wt_title·pfs_wt_rdate·pfs_wt_xlsxfix) 삭제 승인
관계
- 규칙 =
projects/pfs/rules.md🆕 26.10.13 (동시편집 worktree · link_qtys · xlsx_writer 정본 · 실효 입고일 · openpyxl 병합 테두리) - 선행 = session-2026-10-13-hannam2-inek10-order.md (#4 손변환 선례)