跳轉到

程式資訊

  • 程式 IDPurama
  • 所屬子系統:J.品質管理
  • 狀態:stable

進貨暫收驗收單

功能簡介

「進貨暫收驗收單」是 IQC(進料品檢)的主要作業表單。採購單到貨後,品保人員在此登錄一張暫收單,逐項記錄檢驗數量、NG 數量、特採(允收)數量、抽檢數量與檢驗結果,作為後續入庫與退貨處理的依據。

一張暫收單包含一段主檔(暫收單號、暫收日期、收貨倉庫、供應廠商、幣別)與多筆明細(每個 SKU 一列)。明細可以手動逐筆輸入,也可以透過「其他1(採購單轉暫收)」直接從未結案的採購單批次帶入,省去重複 key 品號與數量。

在流程中的位置:採購單進貨暫收驗收(本單) → 入庫 / NG 退貨。

表單名稱說明

本表單的程式代號為 PURAMA(暫收 Purchasing Receiving Amount),主檔資料表為 Twork_jqc_vw_purama、明細為 Twork_jqc_vw_purade。它同時承擔「暫收」與「進料檢驗」兩件事,因此選單上可能看到「進貨暫收」「暫收驗收」或「進料檢驗」等不同稱呼,指的都是同一支程式。

前置需求

  • 權限:J.品保 → J-010 進貨暫收驗收單 的新增/修改/刪除/瀏覽/列印權限。
  • 基礎資料:暫收單能否順利建立,取決於下列資料的維護狀況——
資料 影響什麼
倉庫主檔 主檔倉儲代號搜尋與帶出倉庫簡稱;新增時的預設倉庫取自參數 6008
廠商主檔 主檔生產部門(供應廠商)搜尋與帶出廠商簡稱
品號主檔 明細輸入 SKU 時自動帶出品名與單位
幣別/匯率 主檔幣別預設帶本位幣,明細金額以此幣別計價
採購單(未結案) 「其他1(採購單轉暫收)」可帶入的來源;採購單轉入的列會被鎖定
系統參數 6008 暫收單新增時的預設收貨倉庫
系統參數 3017 採購單轉暫收視窗的預設倉庫

操作步驟

新增暫收單

  1. 進入「進貨暫收驗收單」,按工具列 新增。系統自動帶出:
    • 幣別=本位幣
    • 倉儲代號=系統參數 6008 的預設倉庫(同時帶出倉庫簡稱)
    • 暫收日期=今天
    • 公司代碼、建檔日期由系統填入。
  2. 倉儲代號欄輸入或搜尋收貨倉庫。
  3. 生產部門欄輸入或搜尋供應廠商,系統會帶出廠商簡稱。
  4. 視需要修改幣別暫收備註
  5. 建立明細,二擇一:
    • 手動輸入:在明細格線逐列輸入 SKUQuantity(數量)Unit Price(單價) 等,詳見 欄位連動與附加功能
    • 採購單轉入:按 其他1 開啟「採購單轉暫收」視窗批次帶入,見下節。
  6. 逐筆登錄檢驗結果:NGQuantity(NG 數量)Accept On Division Quantity(特採/允收數量)Sample Quantity(抽檢數量)InspectionResult(檢驗結果)
  7. 全部品檢完成後,把主檔的 檢驗完畢 設為
  8. 儲存

暫收日期必填

儲存時若暫收日期為空白,系統會擋下並提示輸入。其餘主檔欄位(倉儲、廠商)雖以紅字標示為重點欄位,但實際擋存檔的硬性條件是暫收日期。

用「其他1」從採購單批次轉入(採購單轉暫收)

  1. 在暫收單畫面按 其他1,開啟「Purchase Order To Temp Receiving(採購單轉暫收)」視窗。視窗預設帶入:
    • Warehouse(倉庫)=系統參數 3017
    • TempReceivingDate(暫收日期)=今天
    • ETA=今天 +30 天
  2. 輸入 VendorCode(廠商)(必填)、調整 ETA(必填)與 Warehouse,按 查詢
  3. 系統列出該廠商、該倉庫、預訂交期在 ETA(含)以前、且未結案、剩餘可收量大於已暫收量的採購單明細:
    • 正常可轉入的列顯示在主頁籤。
    • 已被別人鎖定(其他使用者編輯中)的列,會列在 Locked Source 頁籤,頁籤標題顯示鎖定筆數。
  4. 在要轉入的列輸入 In Transit Quantity(本次暫收量),或直接按該列的 Select 按鈕,一鍵帶入「數量 − 已交量」的剩餘可收量;再按一次 Select 則歸零。
  5. 視窗下方的 Subtotal 會即時加總所有列的暫收量。
  6. 按存檔。系統把暫收量大於 0 的列轉成一張新的暫收單,並把畫面導回該筆暫收單(自動帶廠商、倉庫、暫收日期、採購別、幣別=本位幣,序號前置碼由系統依程式代號自動取得)。

超量檢核

轉入時若任一列的暫收量超過「(數量 − 已交量) ×(1 + 允收上限%)」,存檔會被擋下並提示「暫收量超過剩餘量」。允收上限取自品號設定的 ReceivingLimits。至少要有一列暫收量大於 0 才能存檔。

修改與刪除

  1. 用工具列的上一筆/下一筆或查詢功能切換到目標暫收單(切換後系統會重新帶出倉庫簡稱)。
  2. 修改 進入編輯狀態。
    • 採購單轉入的明細列會被鎖定無法編輯(SKU 等欄位唯讀),只有手動輸入(無採購單來源)的列可改。詳見 欄位連動與附加功能
  3. 要刪除整列明細,將該列品號清空後存檔,系統會把空品號的列視為待刪除。
  4. 刪除 可刪除整張暫收單(受權限與後端結案/入庫狀態限制)。

列印

  1. 列印,開啟「進貨暫收列印」條件頁。系統會把目前暫收單的廠商暫收日期帶成起訖預設值。
  2. 設定 Vendor(廠商起訖)Date(日期起訖)
  3. 選擇日期比對基準(單選):On Board Date / ETD / ETA In Warehouse
  4. 執行列印。

列印資料來源尚未提供

目前 PuramaPrintViewModel 的取數與報表載入程式(GetData / GetCrystalPrintSettings)整段被註解,列印條件頁可開啟、廠商起訖也會檢核,但實際報表內容的資料來源在新版尚未接上,屬規劃中功能。需要正式列印暫收清單時請先與系統管理員確認。

欄位說明

主檔欄位

欄位 必填 說明/格式/預設
暫收單號 系統產生 唯讀,由系統依序號前置碼 TP 編號
暫收日期 預設今天;儲存時不可空白
倉儲代號 ✔(重點) 收貨倉庫;新增時預設參數 6008,搜尋後帶出倉庫簡稱
生產部門 ✔(重點) 供應廠商;搜尋後帶出廠商簡稱(客廠部簡稱)
幣別 預設本位幣
暫收備註 最長 80 字
檢驗完畢 是/否;全部品檢完成後設為「是」

明細欄位

欄位 必填 說明/格式/預設
Line No(序號) 系統產生 唯讀流水序號
SKU(品號) 輸入後自動帶出品名與單位;轉入列唯讀
SKUDescription(品名) 自動 由 SKU 帶出,唯讀
Quantity(數量) 檢驗/暫收數量;異動時重算金額
Inspection Date(檢驗日期) 唯讀顯示
NGQuantity(NG 數量) 不良數量;存檔時負數自動歸 0
Accept On Division Quantity(特採/允收數量) 特採放行數量
Sample Quantity(抽檢數量) 抽檢樣本數
UOM(單位) 下拉選單;由 SKU 帶出可改
Unit Price(單價) 異動時重算金額
Currency Amount Without Tax(未稅金額) 自動 =四捨五入(數量 × 單價, 2),唯讀
Remark(備註) 最長 60 字
ETA(預訂交期) 唯讀顯示
InspectionResult(檢驗結果) 下拉:1.特採 / 2.允收 / 3.退貨 / 4.其他
Warehouse In Quantity(入庫數量) 系統 後段入庫回填,唯讀
Warehouse In Date(入庫日期) 系統 後段入庫回填,唯讀
Closed(是否結案) 自動/可勾 存檔時依「數量 − 入庫 − NG ≤ 0」自動結案
Purchase Order Line Pkid / Purchase Order No 系統 轉入列的來源採購單,唯讀

欄位連動與附加功能

這一節彙整「輸入某欄位後系統會做什麼」「按某按鈕會發生什麼」,全部來自實際程式碼。

主檔連動

  • 新增,系統自動帶入:幣別=本位幣、倉儲代號=參數 6008(並查出倉庫簡稱)、公司代碼=1、建檔日期=現在、暫收日期=今天。
  • 輸入/搜尋倉儲代號,系統用 WarehouseSearch 帶出倉庫簡稱顯示於旁。
  • 輸入/搜尋生產部門(供應廠商),系統用 VendorSearch 帶出廠商簡稱(客廠部簡稱)。
  • 切換到上一筆/下一筆暫收單後,系統會依當筆倉儲代號重新查出倉庫簡稱(AfterMoverRecord),避免簡稱顯示舊值。

明細欄位連動

  • 輸入 SKU(品號):離開欄位(LostFocus)時,系統呼叫 DescriptionHelper.SetISKU,自動帶出品名單位
  • 輸入 Quantity(數量)或 Unit Price(單價):離開欄位時自動重算 未稅金額=四捨五入(數量 × 單價, 2)。金額欄唯讀,不能直接改。
  • 明細列可否編輯:只有「採購單 Pkid ≤ 0」(即手動新增、沒有採購單來源)的列才允許編輯。從採購單轉入的列會整列鎖定(SKU、數量等唯讀),確保暫收量與採購來源一致。
  • 刪除明細列:把該列品號清空即視為待刪除(NeedDeleteFunction),存檔時移除。

存檔前自動處理(PuramaSave.HandleDataBeforeEndEdit

儲存 時,系統在寫入前會自動做下列調整:

  • 主檔序號前置碼強制設為 TP;新增或複製時把建檔日期設為現在。
  • 每筆明細呼叫 SetIsClosed():當「數量 − 入庫數量 − NG 數量 ≤ 0」時自動把 是否結案 設為 Y,否則清空。
  • 合格判定:當該列品質管制日檢驗日期都有值時——
    • NG 數量 > 0 且 特採數量 > 0 → 合格欄清空(視為不完全合格)。
    • 否則 → 合格欄設為 Y
  • NG 數量為負數時自動歸 0,避免錯誤的負量。

存檔擋關(PuramaSave.AllowSave

  • 主檔暫收日期空白時擋存並提示輸入暫收日期。

其他1:採購單轉暫收(ExtendedFunction1Purama_E

  • 其他1 開啟採購單轉暫收視窗(WindowName.Purama_E)。
  • 視窗以廠商 + 倉庫 + ETA(預訂交期上限)為條件,查出未結案、剩餘可收量 > 已暫收量的採購單明細。
  • 列上的 Select 按鈕:一鍵把該列暫收量設為「數量 − 已交量」;再按一次歸零(SetTempReceivedQuantity)。
  • 任一列暫收量變動時,Subtotal 即時重算(所有列暫收量加總)。
  • 存檔時檢核:至少一列暫收量 > 0;且每列暫收量不可超過「(數量 − 已交量) ×(1 + 允收上限%)」。
  • 存檔成功後關閉視窗,主畫面用回傳的 Pkid 自動導航到剛產生的暫收單。

列印(GetPrintViewModelPuramaPrintViewModel

  • 列印 時,系統把目前暫收單的廠商暫收日期帶成列印條件的起訖預設值。
  • 列印條件頁可選日期基準 On Board Date / ETD / ETA In Warehouse,並設定廠商與日期起訖。
  • 報表資料來源尚未接上

    列印取數與報表(GetData / GetCrystalPrintSettings)在新版尚被註解,屬規劃中,詳見 列印 節的說明。

常見問題

為什麼採購單轉入的明細列無法編輯?

這是設計上的鎖定。只有手動新增、沒有採購單來源(採購單 Pkid ≤ 0)的明細列才能編輯;從採購單轉入的列會整列唯讀,以確保暫收量與來源採購單一致。若要修改數量,請在「採購單轉暫收」視窗調整暫收量後重新轉入。

明細的「未稅金額」一直是 0?

金額是由數量 × 單價自動算出且唯讀。請確認該列已輸入單價與數量;改完數量或單價後移開該欄位(LostFocus)才會觸發重算。

輸入 SKU 後品名/單位沒帶出來?

品名與單位是離開 SKU 欄位時由品號主檔帶出。請確認該品號存在於品號主檔;若品號正確仍沒帶值,多半是該品號主檔尚未維護品名/單位。

存檔時被擋,提示要輸入暫收日期?

暫收日期是硬性必填欄位。新增時雖預設帶今天,但若被清空就會擋存。請補上暫收日期再存。

「其他1」查不到任何採購單?

採購單轉暫收只會帶出符合所有條件的列:指定廠商、指定倉庫、預訂交期 ≤ ETA、採購單與明細皆未結案、且「(數量 − 已交量) > (暫收量 − NG 量)」、採購單需設為可暫收。任一條件不符就不會出現。也請確認該列沒有被其他使用者鎖定(會改列在 Locked Source 頁籤)。

轉入時存檔被擋,說暫收量超過剩餘量?

每列暫收量不能超過「(數量 − 已交量) ×(1 + 允收上限%)」。允收上限來自品號設定,若需要超收請調整品號的允收上限百分比,或降低本次暫收量。

為什麼某列自動被打勾結案了?

存檔時系統會對每列做結案判定:當「數量 − 入庫數量 − NG 數量 ≤ 0」即自動結案。代表該列已無剩餘可入庫量。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/J-Quality/images/):

  1. purama-step1.png — 暫收單主畫面(主檔+明細格線全貌)
  2. purama-step2.png — 明細列檢驗欄位(NG/特採/抽檢/檢驗結果下拉)
  3. purama-step3.png — 「其他1」採購單轉暫收視窗(含 Select 按鈕與 Subtotal)
  4. purama-step4.png — Locked Source 頁籤(被鎖定的採購單列)
  5. purama-step5.png — 列印條件頁(廠商/日期起訖+日期基準單選)