feat(cupang): 쿠팡 발주 엑셀 업로드 → 센터별 박스 자동 계산
- ① 카드를 "쿠팡 발주 업로드"로 개편, xlsx 다중 선택 업로드 - POST /cupang/api/box-calc/upload (openpyxl): F13 입고예정일 −1일 = 출고일, 22행부터 B=쿠팡상품코드 / F=센터명 / G=수량을 읽어 파일들을 합산 - 쿠팡상품코드 → cupang_products.coupang_item_code 로 제품 매칭, 센터명 → cupang_centers.name 매칭. 미매칭 코드/센터/박스규칙은 경고로 표시 - 박스는 센터 단위로 포장되므로 센터마다 박스 계산을 돌려 ② 요약에 합치고 ③ 센터에 자동 배분(자투리 혼합 박스는 소속 센터를 라벨에 표시) - 확정 대화상자 기본 출고일도 업로드한 발주서 날짜로 채움 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1265,3 +1265,39 @@ body.cpg-dragging { cursor: grabbing; user-select: none; }
|
||||
.cpg-lg-dot { background: var(--color-deep-black); }
|
||||
.cpg-lg-today { background: var(--color-deep-black); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--color-subtle-ash); }
|
||||
.cpg-lg-sel { background: var(--color-ghost-gray); box-shadow: inset 0 0 0 1.5px var(--color-deep-black); }
|
||||
|
||||
/* ── 쿠팡 발주 업로드 (① 카드) ── */
|
||||
.cpg-po-box {
|
||||
border: 1px solid var(--color-subtle-ash);
|
||||
border-radius: 10px;
|
||||
padding: 12px;
|
||||
margin-bottom: 12px;
|
||||
background: var(--color-ghost-gray);
|
||||
}
|
||||
.cpg-po-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
|
||||
.cpg-po-file {
|
||||
flex: 1 1 220px; min-width: 0;
|
||||
font-size: 12px;
|
||||
padding: 6px;
|
||||
background: #fff;
|
||||
border: 1px solid var(--color-subtle-ash);
|
||||
border-radius: 8px;
|
||||
}
|
||||
.cpg-po-msg { margin: 8px 0 0; font-size: 12px; }
|
||||
.cpg-po-result { margin-top: 10px; }
|
||||
.cpg-po-sum { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
|
||||
.cpg-po-files, .cpg-po-warn { list-style: none; margin: 0; padding: 0; font-size: 12px; }
|
||||
.cpg-po-files > li {
|
||||
display: flex; align-items: baseline; gap: 8px;
|
||||
padding: 4px 0; border-top: 1px solid var(--color-subtle-ash);
|
||||
}
|
||||
.cpg-po-files > li > span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.cpg-po-files > li > em { font-style: normal; color: var(--color-midtone-gray); white-space: nowrap; }
|
||||
.cpg-po-files > li > b { font-family: var(--font-geist-mono); white-space: nowrap; }
|
||||
.cpg-po-warn {
|
||||
margin-top: 8px; padding: 8px 10px;
|
||||
border-radius: 8px;
|
||||
background: color-mix(in srgb, var(--color-callout-red) 10%, #fff);
|
||||
color: var(--color-callout-red);
|
||||
}
|
||||
.cpg-po-warn > li { padding: 2px 0; }
|
||||
|
||||
Reference in New Issue
Block a user