king
57f0c3426f
refactor(cupang): UI에서 제거된 기능의 죽은 코드 정리
...
- 엑셀 내보내기 전체 제거: /export, /{id}/export, _build_xlsx,
_flatten_for_sheet, shipments_for_export, SHEET_COLUMNS
- 미사용 라우트 제거: /api/calendar, /api/products/search, /api/box-calc,
/{id}/status(상태변경 UI 삭제됨)
- 미사용 db 메서드 제거: deactivate_box_rule, get_box_rule, box_rule_map
- form.html window.CPG + cpg-search-pop, cupang.js CFG, 검색 드롭다운 CSS 제거
- 템플릿 미사용 statuses 컨텍스트 제거, router import 정리
- 캐시 버전 k
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 06:37:51 +09:00
king
bcbf3de24c
ui(cupang): 달력 상단 엑셀 버튼 삭제 + 설정 버튼 이름/우측정렬
...
- 엑셀(N월) 버튼 제거
- 제품명 설정 / 입고센터 관리 / 박스 입수량 설정 로 명칭 통일, 우측 정렬
- 캐시 버전 j
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 06:29:22 +09:00
king
2f16457ac6
ui(cupang): 품목 라인 체크박스 칸 가운데 정렬 (Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>)
2026-05-30 06:25:07 +09:00
king
fdabeec4e3
ui(cupang): 품목 라인 번호열을 체크박스로 + 선택 라인 삭제 + 전체선택
...
- # 열 → 체크박스(헤더 전체선택, indeterminate 지원)
- "라인 삭제" → "선택 라인 삭제": 체크된 행 삭제(최소 1줄 유지)
- 캐시 버전 h
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 06:23:16 +09:00
king
f25948185b
ui(cupang): 박스이름 180px로 맞춰 박스당 입수량을 제품코드와 세로 정렬 (Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>)
2026-05-30 06:14:54 +09:00
king
90e286dc4d
ui(cupang): 박스룰 폼 3행 배치 + 목록 컬럼 정리/하드삭제
...
- 폼: 1행 제품명180/제품코드100, 2행 박스이름/박스당입수량, 3행 메모(전체폭)
- 목록 순서 제품명·제품코드·박스명·입수량·메모, 상태열/비활성 제거
- 삭제 버튼=완전삭제(delete_box_rule, 참조 라인 box_rule_id NULL 처리)
- 캐시 버전 f
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 06:11:57 +09:00
king
2e3ea610b7
ui(cupang): 박스 입수량 2열 배치 + 고정폭 + 입수량 "개" 단위
...
- 추가/수정 480px(좌), 입수량 규칙 900px(우)
- 제품명/제품코드/박스이름 입력 140px, 박스당 입수량 60px + "개" 접미
- 캐시 버전 e
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 06:03:02 +09:00
king
c11c5733de
ui(cupang): 박스 입수량 폼 제품명 드롭다운 + 라벨 정리
...
- 제품명*(등록 제품 드롭다운, 코드 오름차순) 선택 시 제품코드/스냅샷 자동
- 라벨: 제품명* / 제품코드 / 박스이름 / 박스당 입수량*
- 캐시 버전 d
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 05:52:57 +09:00
king
478cde8caf
fix(cupang): 헤더 입력 185px — erp.css min-width:240 오버라이드
...
진짜 원인: erp.css .erp-input{min-width:240px} 가 width:185 를 눌러 240 고정.
헤더 입력 규칙에 min-width:185px 추가로 해결. 캐시 버전 c 로 bump.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 05:43:37 +09:00
king
574c053077
fix(ui): 정적 CSS/JS 캐시 무효화 쿼리(?v=) 추가
...
브라우저가 옛 cupang.css/erp-shell.css 를 캐시해 최근 레이아웃 변경
(헤더 185px, 콘텐츠 1550px 등)이 반영되지 않던 문제. 링크에 버전 쿼리 추가.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-30 05:40:44 +09:00
king
151de492ad
feat(expense): 첨부 뷰어 모달 — 이미지 미리보기 + 펜 주석
...
승인 대기 페이지의 "첨부" 텍스트 링크를 클립 아이콘 버튼으로 교체.
클릭 시 모달 팝업으로 이미지 미리보기 + 마우스 펜 주석 + 다운로드.
뷰어 컴포넌트 (전역, 다른 페이지에서도 재사용 가능):
- 좌측: 첨부 목록 (썸네일/메타)
- 우측: 캔버스 스택 (img + 투명 canvas)
- 도구: 펜/지우개, 색상 4종, 굵기 3종, 전체 지우기, 합성 PNG 저장, 원본 열기
- 이미지 외 파일은 다운로드 링크만 표시
- ESC/배경 클릭으로 닫기, pointer events 지원
전역 노출: window.ErpAttachViewer.{open, openFor, close}
2026-05-29 03:40:03 +09:00
king
9c58b022e2
feat(expense): 개인경비 모듈 + ERP 좌측메뉴 셸 + expense_db 연결
...
- ERP 셸: 좌측 사이드바 + 상단 헤더 + 콘텐츠 영역(erp_base.html)
- 분기: 슈퍼관리자 → 업무모듈 카드, 일반사용자 → ERP 메인(erp_home.html)
- 신규 라우트: /modules (슈퍼관리자 모듈 카드 재진입)
- 개인경비 모듈: app/modules/expense/ (라우터/저장소/템플릿)
- JSON 저장소(ExpenseStore) + PostgreSQL 저장소(ExpenseDBStore)
- 팩토리: EXPENSE_DB_URL 있으면 DB, 없으면 JSON 폴백
- DB: scripts/sql/expense_db_init.sql (멱등 DDL, postgres-db 컨테이너)
- expense_db, 역할 expense_app, 테이블 expense_items, 인덱스/트리거
- 마이그레이션: scripts/migrate_expense_json_to_db.py (멱등, --dry-run)
- 의존성: psycopg[binary,pool]>=3.2
- 환경변수: EXPENSE_DB_URL 추가
- 문서: CLAUDE.md 작업 기준 + docs/{PROJECT_OVERVIEW,SERVER_ARCHITECTURE,DATABASES,DEPLOYMENT}.md
- main-app 배포 경로 /opt/www/main 고정 명시
- 위험 명령(DROP/TRUNCATE/rm -rf/volume 삭제) 사용자 승인 정책
2026-05-29 02:21:03 +09:00