fix: 접수가능 이중 집계 버그 수정 + 바텀바 삭제
- available-qty: master+SPLIT 이중 합산 → SPLIT만 합산 (5곳) - 원인: master에 합산된 good_qty와 SPLIT의 good_qty가 중복 카운트 - PopShell: 하단 footer(copyright/version/긴급연락) 삭제
This commit is contained in:
@@ -1051,7 +1051,8 @@ export const saveResult = async (
|
||||
if (csSeqNum > 1) {
|
||||
const prev = await pool.query(
|
||||
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as tg
|
||||
FROM work_order_process WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
|
||||
FROM work_order_process WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
|
||||
AND parent_process_id IS NOT NULL`,
|
||||
[csWoId, String(csSeqNum - 1), companyCode]
|
||||
);
|
||||
if (prev.rowCount > 0) csPrevGood = parseInt(prev.rows[0].tg, 10) || 0;
|
||||
@@ -1196,7 +1197,8 @@ const checkAndCompleteWorkInstruction = async (
|
||||
const totalGoodResult = await pool.query(
|
||||
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
|
||||
FROM work_order_process
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
|
||||
AND parent_process_id IS NOT NULL`,
|
||||
[woId, maxSeq, companyCode]
|
||||
);
|
||||
|
||||
@@ -1394,7 +1396,8 @@ export const confirmResult = async (
|
||||
const prevProcess = await pool.query(
|
||||
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
|
||||
FROM work_order_process
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
|
||||
AND parent_process_id IS NOT NULL`,
|
||||
[wo_id, prevSeq, companyCode]
|
||||
);
|
||||
if (prevProcess.rowCount > 0) {
|
||||
@@ -1595,14 +1598,15 @@ export const getAvailableQty = async (req: AuthenticatedRequest, res: Response)
|
||||
);
|
||||
const myInputQty = parseInt(totalAccepted.rows[0].total_input, 10) || 0;
|
||||
|
||||
// 앞공정 양품+특채 합산
|
||||
// 앞공정 양품+특채 합산 (SPLIT만 — master 이중 집계 방지)
|
||||
let prevGoodQty = instrQty;
|
||||
if (seqNum > 1) {
|
||||
const prevSeq = String(seqNum - 1);
|
||||
const prevProcess = await pool.query(
|
||||
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
|
||||
FROM work_order_process
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
|
||||
AND parent_process_id IS NOT NULL`,
|
||||
[wo_id, prevSeq, companyCode]
|
||||
);
|
||||
if (prevProcess.rowCount > 0) {
|
||||
@@ -1723,7 +1727,8 @@ export const acceptProcess = async (req: AuthenticatedRequest, res: Response) =>
|
||||
const prevProcess = await client.query(
|
||||
`SELECT COALESCE(SUM(good_qty::int), 0) + COALESCE(SUM(concession_qty::int), 0) as total_good
|
||||
FROM work_order_process
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3`,
|
||||
WHERE wo_id = $1 AND seq_no = $2 AND company_code = $3
|
||||
AND parent_process_id IS NOT NULL`,
|
||||
[row.wo_id, prevSeq, companyCode]
|
||||
);
|
||||
if (prevProcess.rowCount > 0) {
|
||||
|
||||
@@ -318,17 +318,7 @@ export function PopShell({ children, showBanner = true, title, showBack = false,
|
||||
{children}
|
||||
</main>
|
||||
|
||||
{/* ===== FOOTER ===== */}
|
||||
<footer className="border-t border-gray-200 bg-white px-4 sm:px-6 lg:px-8 py-3 sm:py-4">
|
||||
<div className="max-w-[1400px] mx-auto flex flex-col sm:flex-row items-center justify-between gap-2 text-xs text-gray-400">
|
||||
<span>© {new Date().getFullYear()} {user?.companyName || "VEXPLOR"}. All rights reserved.</span>
|
||||
<div className="flex items-center gap-3 sm:gap-4">
|
||||
<span>Version 1.0.0</span>
|
||||
<span className="hidden sm:inline">|</span>
|
||||
<span>긴급연락: 042-XXX-XXXX</span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{/* FOOTER 삭제 — POP 화면에서 불필요 */}
|
||||
|
||||
{/* Marquee keyframes */}
|
||||
<style jsx global>{`
|
||||
|
||||
Reference in New Issue
Block a user