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:
@@ -477,8 +477,21 @@ export async function getItems(req: AuthenticatedRequest, res: Response) {
|
||||
export async function generateNumber(req: AuthenticatedRequest, res: Response) {
|
||||
try {
|
||||
const companyCode = req.user!.companyCode;
|
||||
const pool = getPool();
|
||||
const ruleId = (req.query.ruleId as string) || (req.query.rule_id as string);
|
||||
|
||||
// 1순위: POP 화면설정에서 선택한 채번규칙 사용
|
||||
if (ruleId && ruleId !== "__none__") {
|
||||
try {
|
||||
const { numberingRuleService } = await import("../services/numberingRuleService");
|
||||
const newNumber = await numberingRuleService.allocateCode(ruleId, companyCode);
|
||||
return res.json({ success: true, data: newNumber });
|
||||
} catch (e: any) {
|
||||
logger.warn("선택한 채번규칙 사용 실패, 기본 채번으로 폴백", { ruleId, error: e.message });
|
||||
}
|
||||
}
|
||||
|
||||
// 2순위: 기본 하드코딩 채번 (OUT-YYYY-XXXX)
|
||||
const pool = getPool();
|
||||
const today = new Date();
|
||||
const yyyy = today.getFullYear();
|
||||
const prefix = `OUT-${yyyy}-`;
|
||||
|
||||
Reference in New Issue
Block a user