Merge branch 'main' into jskim-node
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import React, { useState, useEffect, useRef, ReactNode } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
import { usePopSettings } from "@/hooks/pop/usePopSettings";
|
||||
|
||||
interface PopShellProps {
|
||||
children: ReactNode;
|
||||
@@ -98,8 +99,12 @@ export function PopShell({ children, showBanner = true, title, showBack = false,
|
||||
logout();
|
||||
};
|
||||
|
||||
const marqueeText =
|
||||
"[공지] 금일 오후 3시 전체 안전교육 실시 예정입니다. 전 직원 필참 바랍니다. \u00a0\u00a0|\u00a0\u00a0 [알림] 내일 설비 정기점검으로 인한 3호기 가동 중지 예정 \u00a0\u00a0|\u00a0\u00a0 [안내] 4월 생산실적 우수팀 발표 - 생산1팀 축하드립니다!";
|
||||
// POP 설정에서 배너 텍스트 로드 (POP화면설정에서 관리)
|
||||
const { settings: popSettings } = usePopSettings("/pop/home");
|
||||
const homeConfig = (popSettings as any)?.screens?.home;
|
||||
const bannerEnabled = homeConfig?.bannerEnabled ?? true;
|
||||
const bannerText = homeConfig?.bannerText;
|
||||
const marqueeText = bannerText || "[공지] 금일 오후 3시 전체 안전교육 실시 예정입니다. 전 직원 필참 바랍니다. \u00a0\u00a0|\u00a0\u00a0 [알림] 내일 설비 정기점검으로 인한 3호기 가동 중지 예정 \u00a0\u00a0|\u00a0\u00a0 [안내] 4월 생산실적 우수팀 발표 - 생산1팀 축하드립니다!";
|
||||
|
||||
return (
|
||||
<div className="min-h-screen min-h-dvh flex flex-col" style={{ background: "#F5F5F5" }}>
|
||||
@@ -296,7 +301,7 @@ export function PopShell({ children, showBanner = true, title, showBack = false,
|
||||
</header>
|
||||
|
||||
{/* ===== NOTICE BANNER (Marquee) ===== */}
|
||||
{showBanner && <div className="bg-amber-50 border-b border-amber-200 px-4 py-2 flex items-center gap-3">
|
||||
{showBanner && bannerEnabled && <div className="bg-amber-50 border-b border-amber-200 px-4 py-2 flex items-center gap-3">
|
||||
<div className="flex items-center gap-1.5 shrink-0">
|
||||
<span className="text-amber-600 text-sm">📢</span>
|
||||
<span className="text-xs font-bold text-amber-700">공지</span>
|
||||
|
||||
@@ -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);
|
||||
@@ -344,6 +350,7 @@ export function InboundCartPage() {
|
||||
reference_number: item.purchase_no,
|
||||
supplier_code: item.supplier_code,
|
||||
supplier_name: item.supplier_name,
|
||||
inbound_status: "입고완료",
|
||||
inspection_status: inspResult?.completed
|
||||
? "검사완료"
|
||||
: item.inspection_required
|
||||
|
||||
@@ -305,9 +305,16 @@ export function OutboundCartPage() {
|
||||
|
||||
try {
|
||||
// Generate outbound number at confirm time
|
||||
// POP 화면설정에서 선택한 채번규칙 사용 (없으면 기본)
|
||||
// 출고 장바구니 전용 screen_id 7010
|
||||
let finalNumber = "";
|
||||
try {
|
||||
const numRes = await apiClient.get("/outbound/generate-number");
|
||||
const settingsRes: any = await apiClient.get("/screen-management/screens/7010/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);
|
||||
@@ -337,7 +344,7 @@ export function OutboundCartPage() {
|
||||
customer_name: item.customer_name,
|
||||
source_type: "shipment_instruction_detail",
|
||||
source_id: item.source_id || item.id,
|
||||
outbound_status: "대기",
|
||||
outbound_status: "출고완료",
|
||||
})),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user