跳轉到

程式資訊

  • 程式 IDCostCalculate
  • 所屬子系統:K.成本管理
  • 狀態:stable

成本計算作業

功能簡介

「成本計算作業」是月底結算的核心工具,依指定年月把當期的進貨、領退料、人工費用等異動展開成各品號的單位成本,並回寫到成本主檔(COST)。它不是一張可新增明細的單據,而是一個精靈式(wizard)作業視窗,從成本主檔的延伸功能開啟,使用者照頁籤由左到右依序執行:先檢核當期資料是否齊全、再算成本、最後檢核計算結果。成本會計、財務人員在每月結帳前使用。

整個視窗共有四個頁籤,後一頁要等前一頁通過才會解鎖:

  1. 計算前檢核(Check Before Calculate) —— 跑一系列系統檢核項目,確認當期單據都正確、可以結算。
  2. SKU 階別檢核(SKU Rank Check) —— 重算 BOM 低階碼並比對製令用料的階別關係(此頁目前在 XAML 中設為隱藏,見下方說明)。
  3. 計算成本(Calculate Cost) —— 按一鍵交給 SQL 結算引擎完整算完當期成本。
  4. 計算後檢核(Check After Calculate) —— 結算完再跑一輪檢核,確認金額、傳票都正確。

本作業沒有獨立選單

成本計算作業沒有自己的程式代碼(ProgramClass),它是成本主檔的延伸功能。請先進入成本主檔,再以延伸功能開啟本視窗。權限、選單位置都跟著成本主檔走。

前置需求

  • 權限:本視窗權限掛在成本主檔COST)底下;能進入成本主檔並使用其延伸功能即可開啟。
  • 基礎/當期資料:成本能否算對、能否算得出來,取決於下列資料的維護狀況——
資料 影響的結果
當期進貨、退貨單據 進貨成本計算、計算前檢核是否通過
領料/退料異動(TRLIMA 製令領退料) 當期領用成本、計算前檢核明細(IT Document 區)
BOM 與低階碼 SKU 階別檢核、成本由低階往高階逐層展開
人工/費用分攤資料 人工成本分攤(Labor Cost)結果
系統檢核項目設定(K-020* 檢核碼) 計算前/後兩輪檢核要跑哪些項目

同一年月只能算一次

若指定年月已經算過成本(成本主檔已有該期資料),按 Calculate 會跳出「Already calculate cost」並中止。需要重算時,必須先清除該期既有成本資料。

操作步驟

步驟① 輸入年月

  1. 視窗最上方輸入 Year And Month(年月),格式 yyyy/MM,預設帶入今天所在的年月
  2. 年月一旦通過計算前檢核就會鎖定唯讀,避免算到一半換期別。

步驟② 計算前檢核(Check Before Calculate)

  1. Check,系統撈出該期所有「計算前」檢核項目(檢核碼 K-020*、且設定為計算前檢核)逐項執行。
  2. 結果顯示在檢核清單格線:

    內容
    Check Item 檢核項目代碼(SystemCheckItemNo)
    Description 檢核項目說明
    Output 執行結果,OK 才算通過
  3. 任一項不是 OK,該列會以紅底標示(NotOkHintRow 樣式)。點選某一檢核列,下方格線會展開該項的異常明細,協助你找出哪幾筆單據有問題。

  4. 最下方「IT Document」區列出當期的領退料異動(WHTransaction No/SKU/數量/單位成本/倉庫/儲位/批號等)。其中 Unit Cost(單位成本) 欄可編輯,供人工補單價。
  5. 改完單位成本後按 Save,系統把這些異動以「使用者輸入」標記回寫(單據別 TRLIMA)。

全部 OK 才會解鎖下一步

當所有計算前檢核都 OK,系統會自動解鎖「SKU 階別檢核」與「計算成本」兩個頁籤,並把年月鎖成唯讀。有任何一項不過,後續頁籤維持鎖定。

步驟③ SKU 階別檢核(SKU Rank Check)

此頁目前隱藏

在現行 XAML 中,「SKU Rank Check」頁籤被設為 IsEnabled=FalseVisibility=Collapsed,正常流程不會經過此頁,成本展開的低階碼由步驟④的 SQL 引擎內部處理。以下為此頁籤保留的功能,供日後啟用時參考。

此頁籤用三個依序按的按鈕重算並檢核 BOM 低階碼:

  1. 1.Calculate SKU Rank:重算各 SKU 的新低階碼,結果列在 SKU Rank 格線;找不到階別的 SKU 會列在「SKU Rank Is Empty」欄。
  2. 2.Check SKU Rank:比對製令的生產品與用料品階別關係,異常列在 ChkTrwks 格線(含錯誤訊息 ErrorMessage)。
  3. 3.Upload To Server:檢核通過後把新低階碼上傳回伺服器,並解鎖「計算成本」頁。

步驟④ 計算成本(Calculate Cost)

  1. 視需要勾選 Auto Closing Book(自動關帳),預設勾選。勾選時結算完成會一併執行自動關帳。
  2. Calculate,系統交給 SQL 結算引擎(TWORK_LOG_COSTING)一次跑完整個成本計算流程,並把 Auto Closing Book 勾選狀態當參數傳入。
  3. 計算進度顯示在主視窗下方狀態列。
  4. 完成跳「Calculate Completed」;若引擎回 NG,跳出「Failed,<原因>」並中止,請依訊息排除後重算。

步驟⑤ 計算後檢核(Check After Calculate)

  1. Check,系統撈出所有「計算後」檢核項目(檢核碼 K-020*、設定為計算後檢核)逐項執行。
  2. 欄位與紅底邏輯同步驟②;點選某一列同樣可在下方看到該檢核項的異常明細。
  3. 全部 OK 表示本期成本結算正確,可進入後續傳票成本計算與過帳。

欄位說明

主視窗

欄位 必填 說明/格式/預設
Year And Month(年月) 結算期別,格式 yyyy/MM,預設今天年月;通過計算前檢核後鎖定唯讀

計算前/後檢核清單

欄位 可編輯 說明
Check Item 檢核項目代碼(K-020* 系列)
Description 檢核項目說明
Output 執行結果,OK=通過;非 OK 整列紅底

IT Document(計算前檢核下方領退料明細)

欄位 可編輯 說明
WHTransaction No 領退料單號
Transaction Date 異動日期
SKU/Quantity 品號與數量
Unit Price 單價(四位小數)
Unit Cost 單位成本,可人工補值;Save 後以「UserInput」回寫
Warehouse/Source Bin/Destination Bin 倉庫與來源/目的儲位
Lot Code/Lot Num 批號資料
Cost 該筆異動成本

計算成本頁

欄位 必填 說明/預設
Auto Closing Book(自動關帳) 勾選時計算完一併關帳,預設勾選

欄位連動與附加功能

這一節把「按某顆按鈕/輸入某欄位後系統實際會做什麼」逐條寫清楚,全部對應真實程式碼。

計算前檢核頁

  • Check(計算前檢核),系統會:
    1. 依年月撈出所有計算前檢核項目(檢核碼 K-020*CheckForCost='0'),逐項呼叫對應檢核 SP(TWORK_CHECK_<檢核碼>),把結果寫進每列的 Output
    2. 撈出當期領退料暫存(TWORK_ADT_COST1)填到下方「IT Document」格線。
    3. 只有當每一項檢核都回 OK,才會把「SKU 階別檢核」「計算成本」兩個頁籤的 TabIsEnabled 設為 true、並把年月設成唯讀;任一項不過則後續頁籤維持鎖定。
  • 某列檢核非 OK,該列以 NotOkHintRow 樣式整列紅底;點選該列時,下方明細格線(自動產生欄位)會即時帶出該檢核項的異常明細 DataTable,讓你直接看到是哪幾筆資料卡關。
  • 在 IT Document 修改 Unit Cost 後按 Save,系統會把每一筆領退料異動標記為「UserInput」、增刪修設為 E,以單據別 TRLIMA 透過上傳機制回寫資料庫;成功跳「Save Completed」,失敗跳「Save Failed」。若清單為空則直接略過不動作。

計算成本頁

  • Calculate,系統會:
    1. 先檢查該年月成本主檔是否已有資料;已算過會跳「Already calculate cost」並中止(同期不可重算)。
    2. 未算過則呼叫 SQL 結算引擎(TWORK_LOG_COSTING),把 Auto Closing Book 勾選狀態當參數傳入(勾選=關帳旗標 1)。
    3. 引擎回傳結果字串:開頭含 NG 視為失敗,跳「Failed,<原因>」;否則跳「Calculate Completed」。
    4. 計算成功後解鎖「計算後檢核」頁。
  • Auto Closing Book 連動:此勾選只在按 Calculate 當下讀取,決定結算完是否自動關帳;計算前修改沒有即時效果,要在按下計算前設定好。

舊版逐步計算流程(已停用)

程式內保留一段舊版 OldCalculate,把成本拆成清資料→算進貨→撈當期→人工分攤→算本期→產生明細→SKU 轉檔七步、各步在狀態列顯示進度(如「2.Calculating receiving cost」),並有 Upload 按鈕分批上傳。現行版本已改走步驟④的單一 SQL 引擎一次算完,這段逐步流程與其上傳鈕不在現行畫面操作路徑上。

計算後檢核頁

  • Check(計算後檢核),系統撈出所有計算後檢核項目(K-020*CheckForCost='1'),逐項呼叫 TWORK_CHECK_<檢核碼>,把結果寫進 Output;紅底與點列看明細的行為同計算前檢核頁。

結束

  • 按右上角的離開鈕(Exit),直接關閉本視窗回到成本主檔。

常見問題

按 Calculate 跳「Already calculate cost」算不下去?

表示該年月的成本主檔已經有資料、本期已經算過。系統不允許同一年月重複計算。若確實要重算,須先清除該期既有成本資料後再執行。

計算成本/SKU 階別檢核頁籤是灰的點不動?

這兩個頁籤要等計算前檢核全部 OK 才會解鎖。請先回「Check Before Calculate」頁按 Check,把所有紅底的檢核項排除到全部顯示 OK

計算前檢核某項一直不是 OK,怎麼找出問題?

點選那一列紅底的檢核項,下方明細格線會帶出該檢核項抓到的異常資料(哪幾筆單據/品號)。依明細回頭修正對應單據後,再按一次 Check 重檢。

在 IT Document 改了 Unit Cost 沒有反映到成本?

修改單位成本後必須先按 Save 把異動回寫(標記為 UserInput),才會被後續的成本計算採用;只改格線不存檔不會生效。另外存檔只在清單有資料時才動作。

找不到「SKU Rank Check」頁籤?

該頁籤目前在程式中設為隱藏(Collapsed),正常結算流程不會用到,低階碼由計算引擎內部處理,屬於正常情形,不是缺漏。

成本算完了,要怎麼接傳票與過帳?

本作業負責把成本算出並回寫成本主檔。後續的傳票成本計算請見成本管理模組總覽,再經總帳管理過帳。

相關功能


需補截圖清單

以下截圖待功能 runtime 驗收後補拍(放 docs/K-Cost/images/):

  1. costcalculate-step1.png — 視窗頂部年月輸入與四頁籤全貌
  2. costcalculate-step2.png — 計算前檢核頁(含紅底未過項、明細展開、IT Document 區)
  3. costcalculate-step4.png — 計算成本頁(Auto Closing Book 勾選與 Calculate 鈕)
  4. costcalculate-step5.png — 計算後檢核頁