feat(cupang): 제품명 설정에 수기 추가 폼
itemcode_db 목록에 없는 상품도 제품명·제품코드를 직접 입력해 등록할 수 있게 왼쪽 카드 상단에 폼 추가. 기존 POST /cupang/products (upsert)를 그대로 사용하며 같은 제품코드는 덮어쓴다. itemcode 검색이 비활성인 환경에서도 동작하도록 search_enabled 분기 밖에 둔다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "erp_base.html" %}
|
{% extends "erp_base.html" %}
|
||||||
|
|
||||||
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828x" />{% endblock %}
|
{% block head_extra %}<link rel="stylesheet" href="/static/cupang.css?v=20260828y" />{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="cpg">
|
<section class="cpg">
|
||||||
@@ -21,6 +21,21 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 수기 추가: itemcode_db 에 없는 상품도 직접 등록 -->
|
||||||
|
<form method="post" action="/cupang/products" class="cpg-prod-manual">
|
||||||
|
<div class="cpg-prod-manual-head">
|
||||||
|
<strong>수기 추가</strong>
|
||||||
|
<span class="erp-muted">아래 목록에 없는 상품을 직접 등록합니다. 같은 제품코드는 덮어씁니다.</span>
|
||||||
|
</div>
|
||||||
|
<div class="cpg-prod-manual-row">
|
||||||
|
<label class="erp-field"><span>제품명 *</span>
|
||||||
|
<input class="erp-input" type="text" name="product_name" required placeholder="예: 미라네 12호 세트" /></label>
|
||||||
|
<label class="erp-field"><span>제품코드 *</span>
|
||||||
|
<input class="erp-input" type="text" name="product_code" required placeholder="예: MS-1012" /></label>
|
||||||
|
<button type="submit" class="erp-btn erp-btn-primary">추가</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
{% if search_enabled %}
|
{% if search_enabled %}
|
||||||
<div class="cpg-inline-form" style="margin-bottom:10px;">
|
<div class="cpg-inline-form" style="margin-bottom:10px;">
|
||||||
<input class="erp-input" type="text" id="cpg-prod-q" placeholder="이름/코드 필터" style="min-width:200px" />
|
<input class="erp-input" type="text" id="cpg-prod-q" placeholder="이름/코드 필터" style="min-width:200px" />
|
||||||
|
|||||||
@@ -537,3 +537,27 @@
|
|||||||
.cpg-calc-layout > .erp-card { display: flex; flex-direction: column; }
|
.cpg-calc-layout > .erp-card { display: flex; flex-direction: column; }
|
||||||
.cpg-calc-card .erp-table-wrap { flex: 1 1 auto; }
|
.cpg-calc-card .erp-table-wrap { flex: 1 1 auto; }
|
||||||
.cpg-calc-sum { overflow: auto; max-height: min(78vh, 900px); }
|
.cpg-calc-sum { overflow: auto; max-height: min(78vh, 900px); }
|
||||||
|
|
||||||
|
/* 제품명 설정 — 수기 추가 폼 */
|
||||||
|
.cpg-prod-manual {
|
||||||
|
padding: 12px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
border: 1px solid var(--color-subtle-ash);
|
||||||
|
border-radius: 10px;
|
||||||
|
background: var(--color-ghost-gray);
|
||||||
|
}
|
||||||
|
.cpg-prod-manual-head {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 2px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
.cpg-prod-manual-head .erp-muted { font-size: 12px; }
|
||||||
|
.cpg-prod-manual-row {
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
align-items: flex-end;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.cpg-prod-manual-row .erp-field { flex: 1 1 160px; min-width: 0; }
|
||||||
|
.cpg-prod-manual-row .erp-input { min-width: 0; width: 100%; }
|
||||||
|
|||||||
Reference in New Issue
Block a user