Commit Graph

197 Commits

Author SHA1 Message Date
king 84624baf8e ui(expense): 경비 내역 표 가운데 정렬 + 동작 헤더 제거 + 한 줄(너비 자동)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 02:08:22 +09:00
king d728c55e2a fix(expense): 요약카드 70px 강제(!important) + 요약줄·등록폼 간격 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:40:22 +09:00
king 55c98b6b95 fix(expense): 요약카드 70px — grid-auto-rows 로 행 높이 고정(stretch 무력화)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:37:16 +09:00
king ca53042eb4 ui(expense): 상단 요약카드 70px + 경비등록(좌)/경비내역(우) 2단 배치
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:31:32 +09:00
king e2c6a50b46 feat(vacation): 관리자는 모든 상태(승인/취소 포함) 휴가 삭제 가능
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:27:10 +09:00
king cb43fe1257 fix(cupang): itemcode 조회 오류를 로그+API+화면에 노출 (원인 진단)
- ItemcodeReader.last_error 추가, _run 실패 시 logger.exception + 메시지 보존
- /api/products/all 응답에 error/count 추가
- products 화면: 결과 0 일 때 조회오류/사유 표시 (그냥 '결과 없음' 대신)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:16:54 +09:00
king 8f3761aeae ui(shell): 브랜드 'DBX ERP System' 통일 + 사이드바 접힘 시 아이콘 아래 메뉴명 표시
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 18:21:05 +09:00
king d30dcbada4 ui(cupang): 달력 행 유동화(6주 균등 분할) — 1883x938 세로 스크롤 제거
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 18:15:31 +09:00
king 9f361c4e6a ui(shell): 뷰포트(1883x938) 고정 — 문서 세로 스크롤 제거
- erp 셸 height:100vh + body overflow:hidden, .erp-page 가 남은 높이 채우고 내부 스크롤
- 휴가 달력: 6주 행이 가용 높이 균등 분할(유동), 날짜 셀 height:100%, 선택일 패널 내부 스크롤
- 쿠팡 출고 폼: 라인 패널 고정 900px 높이 → 가용 높이 채움
- CORM/Order 는 별도 창이라 해당 없음

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 18:12:41 +09:00
king fde2c9c2e9 ui(vacation): 휴가 bar 시작 위치 38px 로 내려 날짜 pill 가림 방지
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 09:01:19 +09:00
king 162e1d22a9 ui(cupang,vacation): 달력 년월 왼쪽 정렬(쿠팡) + 년월·이동버튼 18pt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:58:35 +09:00
king 1806c75ecb ui(vacation): 오늘 날짜 pill 배경을 요일색(빨강/파랑/검정)에 맞춰 흰글씨
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:54:11 +09:00
king 8ab5223790 feat(vacation): 상세 — 승인은 취소처리, 미승인(작성중/제출/반려)은 삭제(hard)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:50:02 +09:00
king fa1027fa1b feat(time): 프로젝트 전체 시간 KST(UTC+9) 통일
- app/timezone.py 신설: KST 고정오프셋(+9, DST 없음) + now_kst/today_kst/to_kst_iso
- DB 직렬화 created_at/updated_at/decided_at/uploaded_at 표시를 UTC→KST 로 변환
  (expense/cupang/vacation db.py)
- _now_iso(JSON 저장) KST 기준
- 라우터 date.today()/datetime.now() → today_kst()/now_kst() (달력 '오늘'/엑셀 파일명)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:48:28 +09:00
king 32fc12e283 ui: 검정 배경 요소 글자 흰색 강제 (a:visited 가 덮어쓰던 문제 차단, 전역)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:39:46 +09:00
king 8562c4f65d ui(vacation): 날짜 숫자 20px + 칸 높이 125px + 신청 버튼 글자 흰색
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:36:21 +09:00
king bec9c5e5a6 ui(vacation): 달력 날짜 정사각형 셀 + 큰 글자 + 안쪽 테두리 + bar 오버레이
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:33:15 +09:00
king 8c6539d6cb ui(sidebar): 아이콘/글자 크기 확대 + 운영·관리 그룹 묶음 정렬
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:29:28 +09:00
king 269e779129 feat(vacation): 휴가 관리 모듈 — 월간 달력 bar/연차·반차 신청/승인 워크플로/공휴일·연차 설정
- vacation_db 전용 저장소(VacationDBStore), VACATION_DB_URL 미설정 시 '설정 필요' 안내
- 월간 달력: 구글식 휴가 bar(주 단위 lane 배정), 일/공휴일 빨강·토요일 파랑
- 신청 폼: 종류/기간/시작·종료 구분(종일/오전/오후)/사유 + 예상 일수 미리보기
- 일수 계산은 서버(compute_days)에서 주말+공휴일(is_red) 제외 재계산
- 워크플로: 작성중/반려→제출→승인|반려, 취소 soft delete, 본인만 수정(작성중/반려)
- 권한: vacation(접근)/vacation_approver(승인), admin 통과. 설정은 admin 전용
- 공휴일(vacation_holidays) DB 기반 provider + settings CRUD, 연차잔여(vacation_balances)
- 엑셀 내보내기(openpyxl), scripts/sql/vacation_db_init.sql(멱등, 2026 공휴일 seed)
- main.py 등록, 메뉴 ready 전환, docs/.env.example/CLAUDE.md 갱신

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 08:20:20 +09:00
king 3cf22513ca ui(cupang): 출고 리스트 상태 배지 제거 (상태 항목 폐지)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 07:14:19 +09:00
king 33ce9482dd fix(cupang): 출고 툴팁 수량에 '개' 단위 표기
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 07:00:36 +09:00
king ce1014e6bc fix(cupang): 출고 툴팁 500 에러 — s.items(dict 메서드 충돌) → tip_items
Jinja 의 s.items 는 dict 키가 아닌 .items() 메서드를 반환해 tojson 실패.
컨텍스트 키를 tip_items 로 변경.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 06:58:32 +09:00
king 652e53c3e8 feat(cupang): 선택일 출고 항목 hover 툴팁(제품명+수량, 커서 따라감)
- index sel_shipments 에 품목 요약(name/qty) 첨부
- 리스트 항목 hover 시 커서 왼쪽에 따라다니는 툴팁 표시
- 캐시 버전 m

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 06:55:52 +09:00
king 5c7730d4a1 ui(cupang): 달력 상단 설정 버튼을 달력 컬럼 오른쪽 끝에 정렬 (Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>) 2026-05-30 06:41:11 +09:00
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 7d39c2edec ui(cupang): 입수량 규칙 목록 입수량에 개 단위 표기 (Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>) 2026-05-30 06:12:47 +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 800fbd1da4 ui(cupang): 헤더 입력 185px 강제 + 라인 추가/삭제 버튼 제목행 우측
- 헤더 입력 185px 특이도 강화(.cpg .cpg-header-grid .erp-field>input)
- 라인 추가/삭제 버튼을 "품목 라인" 제목행 우측으로 이동(하단 footer 제거)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:38:33 +09:00
king 2607e0610f ui: 콘텐츠 영역 1550px, 쿠팡 헤더 입력란 185px 고정
- erp-page max-width 1280 -> 1550 (우측 콘텐츠 사용 영역)
- 공통 헤더 작성일/출고일/센터입고일/입고센터/출고방식/작업자 185px 컬럼 고정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:32:58 +09:00
king 150335cf87 ui(cupang): 폼 프레임 크기 고정 + 라인 추가/삭제 버튼 하단 우측
- 공통 헤더 450px, 품목 라인 900x900 내부 스크롤
- 저장/취소 위 구분선 제거
- 라인 추가 + 라인 삭제 버튼을 품목 라인 하단 우측에 배치
- 행별 ✕ 삭제 제거 → "라인 삭제"가 마지막 라인 삭제(최소 1줄 유지)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:24:49 +09:00
king d4e823f1fa ui(cupang): 저장·취소 버튼을 공통 헤더 카드 하단에 고정 배치
품목 라인 수가 늘어도 좌측 헤더 카드 하단에 고정(우측 컬럼 높이와 무관)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:13:41 +09:00
king b75fda5901 ui(cupang): 신규/수정 폼 저장·취소 버튼 하단 sticky 고정
라인 수가 늘어도 저장/취소 위치가 밀리지 않도록 position:sticky bottom

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:11:05 +09:00
king d9ea7550b0 feat(cupang): 출고방식 파렛트, 상태/문서번호 폼 제거, 폼·상세 레이아웃 개편
- 출고방식 선택지에 "파렛트" 추가
- 신규/수정 폼에서 상태·문서번호 입력 제거 (status는 작성중 기본 + 취소처리로만 변경)
- document_no DB 컬럼 제거: init.sql 반영 + 기존 DB용 002 드롭 마이그레이션(승인 후 실행)
- 폼: 공통 헤더(좌) / 품목 라인(우) 2열 배치
- 상세: 엑셀·상태변경 버튼 삭제, ◀◀ 달력(검정) 좌측, 수정 우측 정렬, 문서번호 표시 제거

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 05:07:21 +09:00
king 4113a034f4 ui(cupang): 입고센터 페이지 좌우 배치 + 목록 가나다순/900px 스크롤
- 추가 폼에서 정렬순서 입력란 제거(좌측), 센터 목록 우측
- 센터 목록 이름 오름차순, 프레임 900px 고정 내부 스크롤, 1열 행
- 행 편집은 이름 저장 + 활성/비활성 + 삭제 (정렬 입력 제거)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 04:39:47 +09:00
king f9c1dc140b ui: 입고센터 드롭다운 가나다순, 사이드바 hover 개선, 달력 버튼 강조
- 출고 폼 입고센터 드롭다운 이름 오름차순 정렬
- 사이드바: is-active 메뉴는 hover 무변화, 그 외 진한 회색(#d9d9d9)
- 설정/센터/박스 페이지 "← 달력" → "◀◀ 달력", 검정 배경 흰 글씨(primary)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 04:35:35 +09:00
king 17dfd23cfc ui(cupang): 설정 프레임 높이 950->900 (Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>) 2026-05-30 04:24:24 +09:00
king 45f6b3b174 ui(cupang): 제품명 목록/드롭다운 정렬을 제품코드 오름차순으로
폼 제품명 드롭다운 + 설정 등록목록 모두 list_products 사용 → ORDER BY product_code ASC

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 04:21:48 +09:00
king 867bc510da ui(cupang): 박스입수량 라벨/겹침, 입고센터 컴팩트 재디자인, 출고 완전삭제
- 박스 입수량 폼: 제품명(스냅샷)→제품명, 헤더그리드로 교체해 입력란 겹침 해소
- 입고센터: 추가 폼 슬림화 + 센터 목록 2열 그리드(한 줄/센터)로 압축
- 출고 상세: 완전삭제 버튼 추가(/{id}/hard-delete, 라인 CASCADE). 취소 처리는 outline 로

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 04:16:24 +09:00
king 69b84db4bb ui(cupang): 설정 프레임 크기 고정 + 라벨 변경 + 코드 우측 타입 제거
- "itemcode_db 상품" → "미라네 주방 상품"
- 미라네 주방 상품 500x950, 등록된 제품명 600x950 고정, 내부 스크롤
- 좌측 리스트 코드 옆 type(낱개/세트) 표기 제거

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 03:57:32 +09:00
king 1d33761003 feat(cupang): 설정 화면 2열 개편 — itemcode 다중선택 등록 + 활성/삭제
- 수동 등록 카드 제거
- 왼쪽: itemcode_db 전체 목록(낱개+세트) 다중선택, 등록된 항목 진회색+흰글씨
  /cupang/api/products/all + /cupang/products/bulk(JSON 일괄 upsert)
- 오른쪽: 등록 제품명 목록 — 제품명/코드/상태 + 활성·비활성 토글 + 완전삭제
  /products/{id}/active (토글), /products/{id}/delete (hard delete)
- ItemcodeReader.list_all 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 03:46:35 +09:00
king 96e2c49506 docs(cupang): itemcode_db 실제 스키마 반영 (single_items/set_items UNION 검색 SQL)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 03:33:08 +09:00
king 34c7e2f964 feat(cupang): 제품명 카탈로그 설정 + 달력 공휴일 색상 + 폼 UI 개선
- 설정 화면 추가: /cupang/products — itemcode_db 검색 등록 + 수동 등록.
  제품명 드롭다운 소스. cupang_products 테이블 신규(init.sql 멱등 재실행 필요)
- 폼 품목라인: 제품명 드롭다운 선택 → 제품코드 자동 입력
- 라인 컬럼 순서 제품명·제품코드·수량·입수량·박스계산·메모
- 제품코드 140px, 수량·입수량 60px 폭 고정
- 공통 헤더 입력란 겹침 수정(min-width:0, width:100%, box-sizing)
- 달력: 일/공휴일 빨강, 토 파랑, 글자 크기 확대. 한국 공휴일 모듈(holidays.py)
- document_no null → "None" 출력 버그 수정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 03:24:05 +09:00