7a01c140b0
출고 묶음을 만드는 길이 둘(신규 등록 폼 / 박스 계산 분배 확정)이라 헷갈렸다. 폼 경로를 없애고 [+ 신규 등록] 이 박스 계산을 열게 한다. 중복이던 오른쪽 [박스 계산] 버튼은 제거. /cupang/new 는 북마크가 깨지지 않게 박스 계산으로 리다이렉트하고 POST /new(생성)는 삭제했다. 기존 묶음 수정은 그대로 동작한다. 달력 칸은 작성/출고/입고 세 배지를 늘어놓아 읽기 어려웠다. 출고 기준으로 "출고 N건 · 센터 M곳"만 남긴다. 오른쪽 상세도 같은 기준(출고일)으로 맞추고 센터별 출고방식·총 박스/개수와 상품별 수량·박스를 카드 안에 펼친다. 품목이 바로 보이므로 hover 툴팁은 제거. 임시 저장 기본 제목은 "2026.08.31(월) 오후 04시 50분" 형식으로.
77 lines
3.4 KiB
HTML
77 lines
3.4 KiB
HTML
{% extends "erp_base.html" %}
|
|
|
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260831i" />{% endblock %}
|
|
|
|
{% block content %}
|
|
<section class="cpg">
|
|
|
|
<div class="erp-page-actions cpg-actions">
|
|
<a class="erp-btn erp-btn-primary" href="/cupang/?date={{ shipment.ship_date }}">◀◀ 달력</a>
|
|
|
|
<form method="post" action="/cupang/{{ shipment.id }}/delete" class="cpg-inline-form"
|
|
onsubmit="return confirm('이 출고 묶음을 취소 처리합니다(상태=취소). 계속할까요?');">
|
|
<button type="submit" class="erp-btn erp-btn-outline">취소 처리</button>
|
|
</form>
|
|
|
|
<form method="post" action="/cupang/{{ shipment.id }}/hard-delete" class="cpg-inline-form"
|
|
onsubmit="return confirm('이 출고를 완전 삭제합니다(복구 불가, 품목 포함). 계속할까요?');">
|
|
<button type="submit" class="erp-btn erp-btn-danger">삭제</button>
|
|
</form>
|
|
|
|
<a class="erp-btn erp-btn-primary cpg-push-right" href="/cupang/{{ shipment.id }}/edit">수정</a>
|
|
</div>
|
|
|
|
<!-- 헤더 -->
|
|
<div class="erp-card cpg-form-card">
|
|
<div class="cpg-card-head">
|
|
<h2>출고 #{{ shipment.id }}
|
|
{% set badge = 'erp-badge-neutral' %}
|
|
{% if shipment.status == '출고완료' %}{% set badge = 'erp-badge-inverse' %}
|
|
{% elif shipment.status == '센터입고완료' %}{% set badge = 'erp-badge-success' %}
|
|
{% elif shipment.status == '취소' %}{% set badge = 'erp-badge-danger' %}{% endif %}
|
|
<span class="erp-badge {{ badge }}">{{ shipment.status }}</span>
|
|
</h2>
|
|
</div>
|
|
<dl class="cpg-detail-grid">
|
|
<div><dt>작성일</dt><dd>{{ shipment.document_date }}</dd></div>
|
|
<div><dt>출고일</dt><dd>{{ shipment.ship_date }}</dd></div>
|
|
<div><dt>센터입고일</dt><dd>{{ shipment.center_arrival_date }}</dd></div>
|
|
<div><dt>입고센터</dt><dd>{{ shipment.center_name_snapshot or '—' }}</dd></div>
|
|
<div><dt>출고방식</dt><dd>{{ shipment.ship_method }}</dd></div>
|
|
<div><dt>작업자</dt><dd>{{ shipment.worker or '—' }}</dd></div>
|
|
<div class="cpg-full"><dt>출고/박스 요약</dt><dd>{{ shipment.outbound_summary or '—' }}</dd></div>
|
|
<div class="cpg-full"><dt>메모</dt><dd>{{ shipment.memo or '—' }}</dd></div>
|
|
</dl>
|
|
</div>
|
|
|
|
<!-- 라인 -->
|
|
<div class="erp-card cpg-form-card">
|
|
<div class="cpg-card-head"><h2>품목 ({{ shipment.lines|length }})</h2></div>
|
|
<div class="erp-table-wrap">
|
|
<table class="erp-table">
|
|
<thead>
|
|
<tr><th>#</th><th>제품코드</th><th>제품명</th><th>수량</th>
|
|
<th>입수량</th><th>필요박스</th><th>잔량</th><th>수동보정</th><th>메모</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for ln in shipment.lines %}
|
|
<tr>
|
|
<td>{{ ln.line_no }}</td>
|
|
<td>{{ ln.product_code }}</td>
|
|
<td>{{ ln.product_name_snapshot }}</td>
|
|
<td>{{ ln.quantity }}</td>
|
|
<td>{{ ln.units_per_box if ln.units_per_box else '미설정' }}</td>
|
|
<td>{{ ln.calculated_boxes if ln.calculated_boxes is not none else '—' }}</td>
|
|
<td>{{ ln.remainder_units if ln.remainder_units is not none else '—' }}</td>
|
|
<td>{{ ln.manual_box_text or '—' }}</td>
|
|
<td>{{ ln.memo or '—' }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
</section>
|
|
{% endblock %}
|