diff --git a/app/modules/malaysia/router.py b/app/modules/malaysia/router.py index 86921f9..fd9cc08 100644 --- a/app/modules/malaysia/router.py +++ b/app/modules/malaysia/router.py @@ -40,6 +40,21 @@ def _bom_map(request: Request) -> dict[str, list[dict[str, Any]]]: return r.set_bom_map() if r else {} +_WEEKDAYS_KO = ("월", "화", "수", "목", "금", "토", "일") + + +def _date_label(iso: str | None) -> str: + """'2026-06-11' → '2026-06-11 (목)'. 파싱 실패 시 원문.""" + from datetime import date as _date # noqa: WPS433 + + s = (iso or "").strip() + try: + d = _date.fromisoformat(s[:10]) + except (ValueError, TypeError): + return s + return f"{d.isoformat()} ({_WEEKDAYS_KO[d.weekday()]})" + + def _require_user(request: Request) -> dict[str, Any]: from app.main import get_current_user_record # noqa: WPS433 from app.store import has_module # noqa: WPS433 @@ -151,6 +166,16 @@ async def movements_page(request: Request) -> HTMLResponse: st, user = guard wh = _selected_wh(request, st) mtype = (request.query_params.get("type") or "").strip().upper() + fdate = (request.query_params.get("date") or "").strip() + movements = st.list_movements( + warehouse_code=wh, + movement_type=mtype if mtype in store.MOVEMENT_TYPES else None, + date_from=fdate or None, + date_to=fdate or None, + limit=300, + ) + for m in movements: + m["date_label"] = _date_label(m.get("movement_date")) ctx = _base_ctx(request, user, st, wh=wh) ctx.update( { @@ -158,13 +183,10 @@ async def movements_page(request: Request) -> HTMLResponse: "page_subtitle": f"{wh} · 입고/출고/조정 일괄 등록", "individual_items": st.list_items(kind="individual"), "set_items": st.list_items(kind="set"), - "movements": st.list_movements( - warehouse_code=wh, - movement_type=mtype if mtype in store.MOVEMENT_TYPES else None, - limit=200, - ), + "movements": movements, "today": today_kst().isoformat(), "filter_type": mtype if mtype in store.MOVEMENT_TYPES else "", + "filter_date": fdate, } ) return render_template(request, "malaysia/movements.html", ctx) diff --git a/app/modules/malaysia/templates/malaysia/movements.html b/app/modules/malaysia/templates/malaysia/movements.html index b32c9b2..8e09311 100644 --- a/app/modules/malaysia/templates/malaysia/movements.html +++ b/app/modules/malaysia/templates/malaysia/movements.html @@ -34,7 +34,6 @@ -

세트는 항상 출고(OUT) · BOM 분해. 빈칸/0 제외.

@@ -42,7 +41,7 @@
-

낱개 아이템

+

낱개 상품

@@ -61,7 +60,7 @@
-

세트 아이템 — 출고(OUT)

+

콤보 상품

CodeNameQty
@@ -82,32 +81,37 @@
-
-

최근 이동 이력

- - 전체 +
+

이동 이력{% if filter_date %} · {{ filter_date }}{% endif %}

+ +
+ + {% if filter_type %}{% endif %} + + {% if filter_date %}날짜해제{% endif %} + + 전체 {% for t in ['IN','OUT','ADJUST','STOCKTAKE'] %} - {{ t }} + {{ t }} {% endfor %}
Set CodeSet NameQty (OUT)
- + {% for m in movements %} - + - {% endfor %} {% if not movements %} - + {% endif %}
DateTypeItemQtyRefMemoBy
DateTypeItemQtyMemoBy
{{ m.movement_date }}{{ m.date_label }} {{ m.movement_type }} {{ m.item_code }} {{ m.qty }}{{ m.ref_type }}{% if m.ref_no %} / {{ m.ref_no }}{% endif %} {{ m.memo or '—' }} {{ m.created_by or '—' }}
이동 이력이 없습니다.
이동 이력이 없습니다.