style(malaysia): 입수량·박스 한 줄 + 칸 합계 제거

- 입수량/박스 입력을 한 줄로(.rk-line)
- 칸 ∑ 합계 제거 — 서로 다른 상품을 합산해 의미 없음(입력·랙보기 양쪽)
- 상품별 행 소계(합계)는 유지(개별 SKU 기준 유효)
- malaysia_rack.js: 칸 합계 로직 삭제, 행 소계만 갱신

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-14 17:10:49 +09:00
parent b24a418718
commit eacde5b322
3 changed files with 14 additions and 30 deletions
+2 -15
View File
@@ -3,7 +3,8 @@
* - 칸(.rack-cell) 헤더의 + 버튼: 빈 입력행을 칸에 추가(템플릿 #rk-row-tpl 클론).
* 클론 시 숨김필드 rk_cell 에 해당 칸 코드를 채워 서버 병렬배열과 정렬.
* - 행의 × 버튼: 그 행 제거(칸에 행이 0개여도 무방 — 서버가 빈 칸 스킵).
* - 입수량/박스수 입력 시 행 소계(rk-sub)와 칸 합계(rk-cell-total-v) 실시간 갱신.
* - 입수량/박스수 입력 시 행 소계(rk-sub) 실시간 갱신.
* (칸 합계는 서로 다른 상품을 더하게 되어 의미 없으므로 표시하지 않음.)
* 저장은 폼 제출(서버에서 SKU별 집계 → 재고조사 라인 재생성).
*/
(function () {
@@ -25,29 +26,16 @@
if (sub) sub.textContent = comma(upb * box);
}
function recalcCell(cell) {
var total = 0;
cell.querySelectorAll(".rk-row").forEach(function (row) {
total += num(row.querySelector(".rk-upb")) * num(row.querySelector(".rk-box"));
});
var out = cell.querySelector(".rk-cell-total-v");
if (out) out.textContent = comma(total);
}
function wireRow(row) {
row.querySelectorAll(".rk-upb, .rk-box").forEach(function (inp) {
inp.addEventListener("input", function () {
recalcRow(row);
var cell = row.closest(".rack-cell");
if (cell) recalcCell(cell);
});
});
var del = row.querySelector(".rk-del");
if (del) {
del.addEventListener("click", function () {
var cell = row.closest(".rack-cell");
row.remove();
if (cell) recalcCell(cell);
});
}
}
@@ -71,7 +59,6 @@
wireRow(row);
recalcRow(row);
});
document.querySelectorAll(".rack-cell").forEach(recalcCell);
document.querySelectorAll(".rack-cell .rk-add").forEach(function (btn) {
btn.addEventListener("click", function () {
var cell = btn.closest(".rack-cell");