feat: POP 입고/출고 채번규칙을 화면설정과 연동

백엔드:
- receiving/generate-number: ?ruleId 쿼리 받아 numberingRuleService.allocateCode 사용
- outbound/generate-number: 동일
- ruleId 없거나 실패 시 기존 하드코딩 채번으로 폴백

프론트:
- InboundCartPage: 확정 시 화면설정의 popConfig.inbound.numberingRuleId 읽어 ruleId 전달
- OutboundCartPage: 확정 시 화면설정의 popConfig.outbound.numberingRuleId 읽어 ruleId 전달

POP 화면설정에서 채번규칙 선택 → 입고/출고 확정 시 자동 적용
This commit is contained in:
SeongHyun Kim
2026-04-07 17:11:39 +09:00
parent 1abc6645fb
commit d795c74dbd
4 changed files with 43 additions and 4 deletions

View File

@@ -310,9 +310,15 @@ export function InboundCartPage() {
try {
// 확정 시점에 채번 (동시접속 충돌 방지)
// POP 화면설정에서 선택한 채번규칙 사용 (없으면 기본)
let finalNumber = "";
try {
const numRes = await apiClient.get("/receiving/generate-number");
const settingsRes: any = await apiClient.get("/screen-management/screens/6527/layout-pop").catch(() => null);
const ruleId = settingsRes?.data?.data?.settings?.popConfig?.inbound?.numberingRuleId;
const url = ruleId && ruleId !== "__none__"
? `/receiving/generate-number?ruleId=${encodeURIComponent(ruleId)}`
: "/receiving/generate-number";
const numRes = await apiClient.get(url);
if (numRes.data?.success && numRes.data?.data) {
finalNumber = numRes.data.data;
setInboundNumber(finalNumber);

View File

@@ -305,9 +305,15 @@ export function OutboundCartPage() {
try {
// Generate outbound number at confirm time
// POP 화면설정에서 선택한 채번규칙 사용 (없으면 기본)
let finalNumber = "";
try {
const numRes = await apiClient.get("/outbound/generate-number");
const settingsRes: any = await apiClient.get("/screen-management/screens/5/layout-pop").catch(() => null);
const ruleId = settingsRes?.data?.data?.settings?.popConfig?.outbound?.numberingRuleId;
const url = ruleId && ruleId !== "__none__"
? `/outbound/generate-number?ruleId=${encodeURIComponent(ruleId)}`
: "/outbound/generate-number";
const numRes = await apiClient.get(url);
if (numRes.data?.success && numRes.data?.data) {
finalNumber = numRes.data.data;
setOutboundNumber(finalNumber);