feat: 워크스페이스 탭 자동복원 + 주문 입금확인 토글 + 메뉴 개명(전화접수→주문접수)
종량제3 세션 작업. - 워크스페이스 탭 계정별 저장·자동복원(member_workspace_tabs 자동생성, pref/workspace-tabs) - 주문접수 관리 입금확인(so_paid) 수동 토글(phoneOrderMarkPaid, order/phone/manage/paid) - 메뉴 '전화 접수 관리' → '주문접수관리' 개명(피드백 #35) + 시드/개명 SQL Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -187,7 +187,7 @@ unset($g);
|
||||
<th class="text-right">금액</th>
|
||||
<th class="text-right">수량</th>
|
||||
<th class="text-right">금액</th>
|
||||
<th class="text-right">판매수량</th>
|
||||
<th class="text-right">판매수량(팩)</th>
|
||||
<th class="text-right">금액</th>
|
||||
<th class="text-center">B</th>
|
||||
<th class="text-center">P</th>
|
||||
@@ -212,7 +212,7 @@ unset($g);
|
||||
<td class="text-right px-2"><?= number_format($r['box']) ?></td>
|
||||
<td class="text-right px-2"><?= number_format($boxPrice) ?></td>
|
||||
<td class="text-right px-2"><?= number_format($r['price']) ?></td>
|
||||
<td><input class="border border-gray-300 rounded px-2 py-1 text-sm w-full text-right item-qty-input" name="item_qty[]" type="number" min="0" value="0"/></td>
|
||||
<td><input class="border border-gray-300 rounded px-2 py-1 text-sm w-full text-right item-qty-input item-pack-input" type="number" min="0" value="0"/><input type="hidden" name="item_qty[]" class="item-qty-hidden" value="0"/></td>
|
||||
<td class="text-right px-2 item-amount-cell">0</td>
|
||||
<td class="text-center item-box-cell">0</td>
|
||||
<td class="text-center item-pack-cell">0</td>
|
||||
@@ -330,12 +330,18 @@ unset($g);
|
||||
}
|
||||
|
||||
function calcRow(row) {
|
||||
const qtyInput = row.querySelector('.item-qty-input');
|
||||
const qty = parseInt(qtyInput.value || '0', 10) || 0;
|
||||
const qtyInput = row.querySelector('.item-pack-input');
|
||||
const hiddenQty = row.querySelector('.item-qty-hidden');
|
||||
const packQty = parseInt(qtyInput.value || '0', 10) || 0; // 입력값 = 팩 수
|
||||
const unitPrice = parseInt(row.dataset.unitPrice || '0', 10) || 0;
|
||||
const boxSheets = parseInt(row.dataset.boxSheets || '0', 10) || 0;
|
||||
const packSheets = parseInt(row.dataset.packSheets || '0', 10) || 0;
|
||||
|
||||
// 팩당 낱장 수(팩 매수 미설정 봉투는 1:1로 처리)
|
||||
const mult = packSheets > 0 ? packSheets : 1;
|
||||
const qty = packQty * mult; // 실제 낱장 수 → 서버로 전송
|
||||
if (hiddenQty) hiddenQty.value = String(qty);
|
||||
|
||||
let box = 0;
|
||||
let pack = 0;
|
||||
let sheet = qty;
|
||||
@@ -359,14 +365,14 @@ unset($g);
|
||||
row.querySelector('.item-pack-cell').textContent = pack ? nf(pack) : '';
|
||||
row.querySelector('.item-sheet-cell').textContent = sheet ? nf(sheet) : '';
|
||||
|
||||
return { qty, amount, box, pack, sheet };
|
||||
return { packQty, amount, box, pack, sheet };
|
||||
}
|
||||
|
||||
function recalcAllRows() {
|
||||
let sumQty = 0, sumAmount = 0, sumBox = 0, sumPack = 0, sumSheet = 0;
|
||||
document.querySelectorAll('.order-row').forEach((row) => {
|
||||
const r = calcRow(row);
|
||||
sumQty += r.qty;
|
||||
sumQty += r.packQty;
|
||||
sumAmount += r.amount;
|
||||
sumBox += r.box;
|
||||
sumPack += r.pack;
|
||||
|
||||
Reference in New Issue
Block a user