ui(malaysia): Qty 150px·name 한줄, 재고조사 3분할, 재고현황 낱개/콤보 2분할

- Qty 컬럼 150px 고정, 상품명 줄바꿈 방지(nowrap)
- 콤보 Qty(OUT) 헤더 → Qty
- 일일 재고조사 상세 3분할(좌 정보/동작·중 낱개·우 콤보)
- 재고현황: 좌 낱개 분해 전체 + 우 콤보(최근 재고조사 세트 수량)
- db.latest_set_quantities 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 16:17:26 +09:00
parent 9039d1d80b
commit ea03a7aa18
5 changed files with 173 additions and 75 deletions
@@ -1,34 +1,71 @@
{% extends "erp_base.html" %}
{% block head_extra %}
<style>
.mys-compact .erp-table th,
.mys-compact .erp-table td { padding-top:4px; padding-bottom:4px; }
.mys-compact td.nm { white-space:nowrap; }
</style>
{% endblock %}
{% block content %}
<section class="mys">
<section class="mys mys-compact">
{% set active_tab = 'status' %}
{% include "malaysia/_nav.html" %}
<div class="erp-card">
<div class="cpg-card-head" style="display:flex;justify-content:space-between;align-items:center;">
<h2>재고 현황 ({{ rows|length }})</h2>
<span class="erp-muted">현재고 = 입고 − 출고 + 조정 + 재고조사반영 (낱개 아이템 기준)</span>
<div style="display:grid;grid-template-columns:1fr 420px;gap:16px;align-items:start;">
<!-- 좌: 낱개로 분리된 전체 재고 -->
<div class="erp-card">
<div class="cpg-card-head" style="display:flex;justify-content:space-between;align-items:center;">
<h2>재고 현황 — 낱개 기준 ({{ rows|length }})</h2>
<span class="erp-muted">현재고 = 입고 − 출고 + 조정 + 재고조사반영 (콤보는 낱개로 분해 반영됨)</span>
</div>
<div class="erp-table-wrap">
<table class="erp-table">
<thead>
<tr><th>Item Code</th><th>Product Name</th><th style="text-align:right">Current Qty</th><th>Last Stocktake</th></tr>
</thead>
<tbody>
{% for r in rows %}
<tr>
<td>{{ r.item_code }}</td>
<td class="nm">{{ r.item_name }}</td>
<td style="text-align:right;font-weight:600;">{{ r.current_qty }}</td>
<td>{{ r.last_stocktake_date or '—' }}</td>
</tr>
{% endfor %}
{% if not rows %}
<tr><td colspan="4" class="erp-muted">표시할 재고가 없습니다.</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
<div class="erp-table-wrap">
<table class="erp-table">
<thead>
<tr><th>Item Code</th><th>Product Name</th><th style="text-align:right">Current Qty</th><th>Last Stocktake</th></tr>
</thead>
<tbody>
{% for r in rows %}
<tr>
<td>{{ r.item_code }}</td>
<td>{{ r.item_name }}</td>
<td style="text-align:right;font-weight:600;">{{ r.current_qty }}</td>
<td>{{ r.last_stocktake_date or '—' }}</td>
</tr>
{% endfor %}
{% if not rows %}
<tr><td colspan="4" class="erp-muted">표시할 재고가 없습니다.</td></tr>
{% endif %}
</tbody>
</table>
<!-- 우: 콤보(세트) 단위 재고 -->
<div class="erp-card">
<div class="cpg-card-head"><h2>콤보 재고 (세트 단위)</h2></div>
<span class="erp-muted">
{% if set_stocktake_date %}최근 재고조사 {{ set_stocktake_date }} 기준 입력 수량{% else %}재고조사 입력 없음{% endif %}
</span>
<div class="erp-table-wrap" style="margin-top:8px;">
<table class="erp-table">
<thead><tr><th>Set Code</th><th>Set Name</th><th style="text-align:right">Qty</th></tr></thead>
<tbody>
{% for s in set_rows %}
<tr>
<td>{{ s.set_code }}</td>
<td class="nm">{{ s.set_name }}</td>
<td style="text-align:right;font-weight:600;">{{ s.qty }}</td>
</tr>
{% endfor %}
{% if not set_rows %}
<tr><td colspan="3" class="erp-muted">콤보 재고 입력이 없습니다.</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</section>