99eea01fc1
03_TikTok_Order_Export.xlsx 업로드 → 1박스=1카드 출고 작업 리스트, SKU 피킹 요약, Kagayaku 전달표(A4 인쇄)를 자동 생성. - 1박스 묶음 기준: Package ID > Tracking ID > Order ID, 같은 박스 같은 SKU 합산 - 작업 상태 5단계 토글(AJAX 즉시 저장) + dispatch_logs 기록 - 고객 이름/주소/전화 미저장(파싱 시 폐기, 스키마에 컬럼 없음) - 엑셀은 openpyxl 파싱(pandas 미사용), DB는 dispatch_db 전용 - 인증은 기존 Google OAuth + 신규 권한키 dispatch 재사용 - scripts/sql/dispatch_db_init.sql, docs/DISPATCH_MODULE.md 동봉 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
51 lines
2.2 KiB
HTML
51 lines
2.2 KiB
HTML
{% extends "erp_base.html" %}
|
||
|
||
{% block content %}
|
||
<section class="dsp">
|
||
{% include "dispatch/_nav.html" %}
|
||
|
||
<div class="erp-card">
|
||
<div class="cpg-card-head" style="display:flex;justify-content:space-between;align-items:center;">
|
||
<h2>출고 배치 ({{ batches|length }})</h2>
|
||
<a class="erp-btn erp-btn-primary" href="/dispatch/batches/new">+ 새 업로드</a>
|
||
</div>
|
||
<div class="erp-table-wrap">
|
||
<table class="erp-table">
|
||
<thead>
|
||
<tr>
|
||
<th>날짜</th><th>플랫폼</th><th>배치명</th>
|
||
<th style="text-align:right">박스</th>
|
||
<th style="text-align:right">스캔완료</th>
|
||
<th>생성시각</th><th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for b in batches %}
|
||
<tr>
|
||
<td style="white-space:nowrap;">{{ b.dispatch_date }}</td>
|
||
<td>{{ b.platform }}</td>
|
||
<td><a href="/dispatch/batches/{{ b.id }}" style="font-weight:600;">{{ b.batch_name or '(이름없음)' }}</a></td>
|
||
<td style="text-align:right;">{{ b.parcel_count }}</td>
|
||
<td style="text-align:right;">
|
||
{% if b.parcel_count and b.scanned_count == b.parcel_count %}
|
||
<span style="color:#16a34a;font-weight:600;">{{ b.scanned_count }} ✓</span>
|
||
{% else %}{{ b.scanned_count }}{% endif %}
|
||
</td>
|
||
<td class="erp-muted" style="white-space:nowrap;">{{ b.created_at }}</td>
|
||
<td style="text-align:right;white-space:nowrap;">
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}">작업</a>
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}/picking">피킹</a>
|
||
<a class="erp-btn erp-btn-outline" href="/dispatch/batches/{{ b.id }}/handover">전달</a>
|
||
</td>
|
||
</tr>
|
||
{% endfor %}
|
||
{% if not batches %}
|
||
<tr><td colspan="7" class="erp-muted">아직 출고 배치가 없습니다. <a href="/dispatch/batches/new">새 업로드</a>로 시작하세요.</td></tr>
|
||
{% endif %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
{% endblock %}
|