跳轉到

程式資訊

  • 程式 IDGREQMA
  • 所屬子系統:C.總務管理
  • 狀態:stable

請購需求單

功能簡介

請購需求單(GREQMA,C-030) 是總務採購流程的起點單據:由各部門人員登錄「想買什麼、要多少、什麼時候要、做什麼用」,送出後才進到後續的請購 / 採購作業。它對應 VFP 舊版 GREQMAscx_gen.vcx),主檔存於 greqma、明細存於 greqde,單號前置碼為 PR

典型使用者是各部門需求人員與總務窗口。在流程中的位置:

  1. 部門在本表登錄需求(品號、需求數量、預訂交期、用途)。
  2. 採購人員可在明細列按 查價,叫出廠商比價表參考歷史報價,把單價 回傳 填入預估單價。
  3. 需求確認後由後續的請購 / 採購程式轉成正式請購單;一旦本單已被轉出(轉出備註有值),本單即鎖定不可再修改。

與「暫收單」「採購單」的關係

本表只負責登錄「需求」,不直接產生收料或付款。後續作業請見 暫收單 GPURAMA 與相關採購程式。

前置需求

  • 權限:總務模組 → C-030 請購需求單 的瀏覽 / 修改 / 刪除權限。其中 查價 廠商比價功能另受「可檢視單價」權限(AllowViewPrice)控制,無此權限時查價鈕與比價表單價欄不顯示。
  • 基礎資料:下列主檔 / 參數會影響欄位帶值與存檔,建議先維護完整——
資料 影響什麼
人員資料(sk_perdata 輸入需求人員後自動帶出姓名需求部門部門簡稱
部門資料 需求部門搜尋、部門簡稱顯示
倉庫資料(G 倉 gstkbas 倉儲代號搜尋來源
品號主檔(ginvent 明細輸入品號後帶出品名單位
系統參數 4001 新增時帶入的預設倉儲代號(總務請購單預設倉庫)
採購別代碼(smems C229) 採購別下拉選單內容
廠商報價單(GSPPDT)與歷史採購紀錄 查價 廠商比價表的資料來源(由 SP TWORK_BIZ_GSPPDT 撈各廠商歷史採購 / 報價)

操作步驟

新增請購需求

  1. 從主選單開啟 總務 → 請購需求單
  2. 按工具列 新增。系統自動帶入預設值(參見欄位連動與附加功能):公司代碼 = 1、需求日期 = 今日、需求人員 / 需求部門 = 登入者、採購別 = 1、倉儲代號 = 系統參數 4001
  3. 視需要修改主檔欄位(需求日期、需求人員、需求部門、採購別、倉儲代號)。
  4. 在明細格線逐列輸入需求:

    1. 輸入品號(按搜尋鈕挑品號);非雜項品號會自動帶品名單位。雜項請直接輸入品號 MISC,品名 / 單位可自行填寫。
    2. 輸入需求數量單位
    3. 輸入預估單價(或用 查價 從廠商比價表 回傳),系統自動算預估金額
    4. 輸入預訂交期(不得早於今日)與用途——這兩欄是存檔必填。
    5. 視需要填特別要求廠牌
  5. 按工具列 儲存

    小技巧

    可用 Ctrl+S 快速儲存。

查價(廠商比價)

  1. 在明細選取一列(需有品號)。
  2. 按該列的 查價 鈕,或直接點選明細列。系統以需求日期(空白時改用今日)查 SP TWORK_BIZ_GSPPDTGppurchBll.GetUnitPrice,查詢別 1=跨廠商最新),把不同廠商對該品號的最新採購 / 報價列在下方廠商比價表
  3. 在比價表挑一筆,按該列 回傳(Return),系統把該筆單價寫回明細的預估單價,並重算預估金額。

    查價需在編輯狀態才能回傳

    回傳 只有在新增 / 修改模式(IsInEditingMode)下才會把單價寫回;純瀏覽時只供查看。

修改 / 刪除

  1. 上一筆 / 下一筆 或查詢功能找到要處理的單據。
  2. 修改,調整主檔或明細後 儲存
  3. 刪除整張單按 刪除;刪某一明細列把該列需求數量設為 0 或清空品號即可(存檔時自動標記刪除)。

已轉出的單不可修改

若本單的轉出備註已有值(代表已被後續程式轉成請購單),按 修改 會被擋下並提示「已轉出至其他單據,不可修改」。

欄位說明

主檔

欄位 必填 說明 / 格式 / 預設
需求單號 自動 系統產生,前置碼 PR,唯讀
公司代碼 新增預設 1
需求日期 yyyy/MM/dd,新增預設今日;空白擋存檔
需求人員 帶出姓名 / 需求部門 / 部門簡稱;新增預設登入者
姓名 由需求人員帶入,唯讀
需求部門 新增預設登入者部門;空白擋存檔
部門簡稱 由需求部門帶入,唯讀
採購別 下拉(C229),新增預設 1;為 0 擋存檔
倉儲代號 G 倉搜尋,新增預設系統參數 4001
轉入備註 系統產生,唯讀(由其他單轉入時帶出)
轉出備註 系統產生,唯讀;有值代表已轉出,鎖定本單

明細

欄位 必填 說明 / 格式 / 預設
序號 自動 系統產生,唯讀
需求部門 空白時存檔自動帶主檔需求部門
品號 搜尋品號;空白存檔時自動填 MISC(雜項)
品名 非 MISC 由品號帶入;MISC 可自填
需求數量 數值;≤ 0 的列存檔時自動標記刪除
單位 下拉(單位清單);由品號帶入
幣別 固定本位幣,唯讀(不需輸入)
預估單價 數值;可手填或由查價回傳
預估金額 自動 = ROUND(需求數量 × 預估單價),唯讀
預訂交期 yyyy/MM/dd;不得早於今日;需求數量 > 0 時必填
用途 需求數量 > 0 時必填
特別要求 自由輸入
廠牌 自由輸入
請購數量 系統回填(轉請購後),唯讀
請購單號 系統回填(轉請購後),唯讀

欄位連動與附加功能

這一節把「輸入某欄位 / 按某按鈕後系統會做什麼」全部列出,來源皆為實際程式碼(C# 還原自 VFP 欄位事件)。

新增時的預設帶值(AfterAddNew

當你按 新增 建立一張新單,系統會自動填好主檔:

  • 公司代碼 設為 1。
  • 需求日期 設為今日(yyyy/MM/dd)。
  • 需求人員 設為登入者帳號。
  • 需求部門 設為登入者的部門代號。
  • 採購別 設為 1。
  • 倉儲代號 取系統參數 4001(總務請購單預設倉庫代號)。

輸入「需求人員」→ 自動帶部門資料(需求人員Binding

當你在需求人員欄輸入 / 挑選一位人員,系統依 sk_perdata 查該人員,帶出:

  • 姓名
  • 需求部門(人員所屬部門代號)
  • 部門簡稱(部門名稱)

VFP 原碼小註記

VFP 此處原本誤寫成 gppurch 的「請購部門」欄(抄寫殘留),新版已修正為本表的需求部門

輸入明細「品號」→ 自動帶品名 / 單位(品號Binding

  • 一般品號:由 ginvent 帶出品名單位(覆寫整列)。
  • 品號為 MISC(雜項):只有在品名 / 單位為空白時才帶入,已填的內容會保留——讓雜項可自行命名。

金額自動重算(SetAmount

只要改了需求數量預估單價,系統立即重算:

預估金額 = ROUND(需求數量 × 預估單價),四捨五入到本位幣小數位。

存檔前(HandleDataBeforeEndEdit)也會對每一列再算一次,確保金額正確。

預訂交期即時檢核(預訂交期Binding

輸入預訂交期當下,若日期早於今日,該儲存格立刻顯示錯誤「不得小於今日日期」;改回不早於今日即自動清除錯誤。

這是輸入當下的檢查

此檢核發生在你打字輸入交期的那一刻;若資料是程式帶入或舊資料,並不會回頭重檢。

查價鈕與廠商比價表(QueryCommand / VendorBid

  • 按明細列 查價 鈕,或點選明細列,系統以需求日期(空白用今日)呼叫 SP TWORK_BIZ_GSPPDT,列出不同廠商對該品號的最新報價 / 採購價
  • 廠商比價表欄位:Type(採購 / 報價別)、廠商代號、廠商名稱、廠商料號、報價日期、生效日、幣別、單價回傳 鈕、單位、最低採購量、備註。
  • 比價表按 回傳(Return):在編輯模式下,把該筆單價寫回明細的預估單價(並連動重算預估金額)。
  • 無「可檢視單價」權限時,查價 鈕與比價表的單價欄都不顯示。

VFP「全搜」鈕尚未提供

VFP 另有一個不限日期上限的「全搜」鈕(DARB_BIZ_SPPDTG1)。新版目前只保留以需求日期為準的 查價,全搜功能尚未移植。

存檔驗證(GreqmaSave.AllowSave

儲存 時,系統依序檢查(任一不過即擋下並提示):

  1. 需求日期不可空白。
  2. 需求部門不可空白。
  3. 採購別不可為 0。
  4. 每一列「需求數量 > 0」的明細,預訂交期用途都必須有值(否則提示 LineNo:序號, 請輸入…)。

存檔前自動處理(HandleDataBeforeEndEdit

存檔前系統會逐列自動整理:

  • 重算每列預估金額
  • 明細需求部門空白時,帶入主檔的需求部門。
  • 需求數量 ≤ 0 的列:標記為刪除(不會存進去)。
  • 數量 > 0 但品號空白的列:自動填 MISC(雜項)。

修改鎖定(GreqmaEdit.AllowEditHandle

修改 時,若轉出備註有值(本單已被轉成請購單),系統發出提示音並擋下,顯示「已轉出至其他單據,不可修改」。

報表尚未提供

VFP 的列印程式 GREQMA_PSCX_GENP)尚未移植到新版,目前本表單沒有對應的列印 / 報表輸出。

工作流程 / 快速審核

VFP 舊版的工作流程與快速審核(CMDELSE1/2)在新版改走集中式 workflow,不在本表單內另做。

常見問題

按儲存時提示「請輸入需求日期 / 需求部門 / 採購別」?

這三個主檔欄位是存檔必填。需求日期不可空白、需求部門不可空白、採購別不可為 0(請從下拉挑一個有效採購別)。新增時系統會帶預設值,若被清空就會被擋下。

存檔提示「LineNo:N, 請輸入預訂交期 / 用途」?

凡是需求數量大於 0 的明細列,預訂交期用途都必須填。請補齊提示中該序號(LineNo)那一列的這兩個欄位;不想要的列把需求數量設為 0 即可(存檔時自動刪除)。

預估金額一直是 0?

預估金額 = 需求數量 × 預估單價,由系統自動算。請確認該列需求數量預估單價都有值;改完任一欄金額會立即重算,存檔時也會再算一次。可用 查價 從廠商比價表 回傳 帶單價。

輸入品號沒有自動帶品名 / 單位?

一般品號會從品號主檔 ginvent 帶值。若帶不出來,多半是該品號未建檔。雜項品號 MISC 是特例:只有在品名 / 單位空白時才帶入,已輸入的內容會保留,所以雜項可自行命名。

按修改沒反應 / 提示「已轉出至其他單據,不可修改」?

代表本單的轉出備註已有值,也就是這張需求已經被後續程式轉成請購單,依規則鎖定不可再改。若需調整,請從下游的請購 / 採購單據處理。

查價查不到資料、或看不到單價欄?

查價以需求日期(空白用今日)為基準查 SP TWORK_BIZ_GSPPDT,請先確認該品號有採購 / 報價紀錄。若整個單價欄與 查價 鈕都看不到,是因為你沒有「可檢視單價」權限(AllowViewPrice)。

相關功能


需補截圖清單

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

  1. greqma-step1.png — 新增請購需求的主檔 + 明細整體畫面(含預設值)
  2. greqma-step2.png — 明細列輸入(品號帶品名 / 單位、預估金額自動算)
  3. greqma-step3.png — 查價廠商比價表(含 回傳 鈕)