程式資訊
- 程式 ID:
GTRLIMA - 所屬子系統:C.總務管理
- 狀態:stable
領料/倉庫異動單¶
功能簡介¶
「領料/倉庫異動單」是總務(C 模組)的實體倉庫異動單據:登錄一張單,把指定品號在倉庫的儲位之間搬動,或從倉庫領出。每筆明細以交易別碼標示異動性質(如 IT 品名調撥、BT 儲位調撥、OS 領料出庫…),並指定轉出倉儲(來源儲位)與轉入倉儲(目的儲位),系統據此更新各儲位的現有量。
它在總務流程中的位置:物料主檔(Gsppdt)建檔、入庫(Gstkbas_1)之後,當部門提出領料申請、或需要在倉庫內做儲位/品名調撥時,就用本單據做實際的庫存異動。最常見的兩種來源:
- 手動新增:直接開單填品號、數量、來源/目的儲位。
- 由領料申請轉入:透過工具列的
其他功能開啟領料申請轉領料(Picking)視窗,挑選未領的申請單、指派撿料儲位後回寫成一張領料單。
本頁程式定位
程式代號 GTRLIMA(領料),對應 ViewModel GtrlimaViewModel,主檔 Source 為 Twork_gen_vw_gtrlima、明細 Source 為 Twork_gen_vw_gtrlist。列印頁見 領料單列印。
前置需求¶
- 權限:C.總務管理 →
C-080 領料/倉庫異動單的瀏覽、新增、修改、刪除、列印權限。 - 基礎資料:下列主檔/參數會影響開單時的帶值與檢核——
| 資料 | 影響什麼 |
|---|---|
| 倉庫主檔(Warehouse 隸屬倉庫) | 決定本單異動的倉庫;序號前置碼為「品名調撥」時自動帶為交易部門 |
單據前置碼設定(GTRLIMA 規則) |
Prefix 下拉值與配號規則;新增後依前置碼配出倉單號 |
| 物料/品號主檔(Gsppdt) | 明細輸入品號後自動帶品名、單位 |
| 儲位主檔(Gsplace) | 轉出倉儲/轉入倉儲的可選儲位;同時用來判斷該儲位的隸屬倉庫 |
| 客/廠/部門主檔 | 交易部門(CuspSearch)與其簡稱 |
| 幣別/匯率資料 | 幣別/匯率預設值;幣別預設帶本位幣、匯率帶 1 |
| 運送方式代碼(C201) | Shipping Method 下拉值 |
操作步驟¶
新增一張領料/異動單¶
- 按工具列
新增,系統建立一張空白單並切換到庫存查詢頁籤(方便邊開單邊查現有量)。此時帶入下列預設值:- 公司代碼 =
1 - 交易日期 = 今天
- 匯率 =
1、幣別 = 本位幣
- 公司代碼 =
- 在 Warehouse(隸屬倉庫) 欄選擇本單要異動的倉庫。
- 若 Prefix 選的是「品名調撥(
IT)」前置碼,選完倉庫後系統會把 交易部門 自動帶成同一個倉庫(倉庫代號)。
- 若 Prefix 選的是「品名調撥(
- 選擇 Prefix(序號前置碼):決定單據種類與配號規則(新增時可改,進入修改後鎖定不可改)。
- 視需要調整 Transaction Date(交易日期)、Company Code(公司代碼)。
- 選 Transaction Department(交易部門):用放大鏡(CuspSearch)挑客戶/廠商/部門,右側自動顯示簡稱。
- 視需要填 Shipping Method(運送方式)、Remark(交易備註,上限 100 字)。
- 在明細格線逐列輸入異動內容(見下方明細輸入)。
- 按
存檔。儲存成功後 WHTransaction No(倉單號) 由系統依前置碼配號,TransactionNo(單號) 一併產生,兩者皆唯讀。
明細輸入¶
- 在格線新增一列,於 品號 欄輸入或用放大鏡查品號;系統自動帶出 品名 與可選 單位。
- 填 數量。
- 指定 轉出倉儲(來源儲位)與 轉入倉儲(目的儲位)——用放大鏡選儲位。
- 只填轉出倉儲=把貨從該儲位領出;同時填轉出與轉入=在兩個儲位間調撥。
- 視需要填 單價/其他金額,系統即時算出 原幣未稅/本幣未稅(見欄位連動與附加功能)。
- 交易別碼、途程序號、工程代號 等欄位多由轉單來源帶入或唯讀。
邊開單邊查庫存
新增時畫面會自動切到右側庫存查詢頁籤;點選某一明細列,該頁籤會依該列的品號/儲位顯示現有量,方便確認可領數量。
修改與刪除¶
- 用工具列
查詢或上一筆/下一筆切換到要處理的單據。 - 按
修改調整內容。- Prefix 在修改狀態為鎖定,不能變更前置碼。
- 已產生後續異動的明細不可再改(見常見問題)。
- 清空某明細列的品號即代表刪除該列;存檔時系統把該列標記為刪除。
- 整張單刪除請按工具列
刪除。
由領料申請轉入(Picking)¶
- 在本單按工具列的
其他功能,開啟領料申請轉領料視窗。 - 輸入查詢起訖日期(預設近兩個月),按
查詢列出申請量≠核發量的未領申請單。 - 在某列按
Pick,系統依該申請單的品號到倉庫查現有量並自動撿料、指派儲位。 - 確認撿料後存檔,視窗回寫一張領料單;關閉視窗後本表單會自動定位到剛產生的那張單。
列印¶
- 按工具列
列印開啟領料單列印條件頁。 - 系統預設帶入目前單據的倉單號為列印起訖;可改範圍後輸出。
列印資料來源規劃中
列印頁目前的取數邏輯(報表 SP DARB_RPT_GTRLIMA)在程式中仍為保留狀態,實際報表內容待後續啟用。條件面板與帶值已可操作。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| WHTransaction No(倉單號) | — | 系統配號,唯讀;存檔後依前置碼產生 |
| TransactionNo(單號) | — | 系統產生,唯讀 |
| Warehouse(隸屬倉庫) | ✔ | 本單異動倉庫;前置碼為品名調撥時帶為交易部門 |
| Prefix(序號前置碼) | ✔ | 單據前置碼,決定配號規則;修改狀態鎖定 |
| Transaction Date(交易日期) | ✔ | 短日期格式,預設今天 |
| Company Code(公司代碼) | — | 預設 1 |
| Transaction Department(交易部門) | ✔ | CuspSearch 選客/廠/部門,右側顯示簡稱 |
| Shipping Method(運送方式) | — | 代碼表 C201 下拉 |
| Remark(交易備註) | — | 上限 100 字 |
| 幣別 | — | 預設本位幣(Context.Env.LocalCurrency) |
| 匯率 | — | 預設 1;改幣別時由 TsCurrency 控件帶當日買入(Buy)匯率 |
| Turn In Notes(轉入備註) | — | 唯讀,系統產生;轉單時帶 TRAPPLY:<申請單號> |
| Turn Out Notes(轉出備註) | — | 唯讀,系統產生 |
明細欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 序號 | — | 4 位數流水號,系統維護 |
| 交易別碼 | — | 異動性質(IT 品名調撥、BT 儲位調撥、WT 倉庫調撥、OS 領料出庫等),多由轉單帶入 |
| 品號 | ✔ | 輸入後自動帶品名、單位 |
| 品名 | — | 唯讀,依品號帶出 |
| 單位 | — | 下拉(VM 提供 UOM 清單) |
| 數量 | ✔ | 數量格式;改值即時重算金額 |
| 轉出倉儲 | △ | 來源儲位,放大鏡選;領出時必填 |
| 轉入倉儲 | △ | 目的儲位,放大鏡選;調撥時必填 |
| 途程序號/工程代號 | — | 唯讀,轉單帶入 |
| 批號別/批號 | — | 批號管制品填寫 |
| 客廠品號 | — | 客戶/廠商端品號 |
| 單價 | — | 改值即時重算金額 |
| 其他金額 | — | 計入未稅金額;改值即時重算 |
| 原幣未稅 | — | 系統算出 |
| 本幣未稅 | — | 系統算出(原幣未稅 × 匯率) |
| 備註 | — | 明細備註 |
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某按鈕後,系統會做什麼」,全部來自實際程式碼(GtrlimaViewModel、Twork_gen_vw_gtrlima/list Source、GtrapplyToGtrlimaBll)。
新增時的預設帶值(AfterAddNew)¶
- 當你按
新增,系統會對主檔帶入:公司代碼=1、交易日期=今天、匯率=1、幣別=本位幣,並把 WarehouseBinding 同步成隸屬倉庫。 - 若新增當下 序號前置碼 已是「儲位調撥(
BT)」前置碼,交易部門 會自動帶成 隸屬倉庫。 - 明細會清空,畫面切到庫存查詢頁籤。
倉庫欄連動(WarehouseBinding)¶
- 當你在 Warehouse 選倉庫,若目前 序號前置碼 是「品名調撥(IT)」前置碼,系統會把 交易部門 自動設成你選的倉庫——因為品名調撥屬倉庫內部異動,部門即倉庫。
- 其他前置碼時只更新隸屬倉庫,不動交易部門。
幣別/匯率連動到明細(主檔 → 明細)¶
- 當你在主檔改 幣別,系統會把每一筆明細的計價幣別同步成主檔幣別,並重算金額。
- 當你在主檔改 匯率,系統會把每一筆明細的匯率同步成主檔匯率,並重算本幣金額。
- 新增一筆明細時,系統自動把該明細的計價幣別、匯率帶成主檔目前值,並掛上主檔做為含稅母體。
- TsCurrency 控件:改幣別時依交易日期自動帶當日「買入(Buy)」匯率到匯率欄。
明細金額即時重算(CalculateAmount / 數量·單價·其他金額)¶
- 當你改明細的 數量、單價 或 其他金額,系統立即重算:
- 原幣未稅 ≈ 四捨五入(數量 × 單價 + 其他金額)
- 本幣未稅 = 原幣未稅 × 匯率
- 重算同時套用稅務計算(
TaxCalculator)依主檔稅別處理含稅/未稅。
品號欄連動(品號Binding)¶
- 當你在明細輸入或選 品號,系統會依品號主檔自動帶出 品名,並補齊品號相關屬性(單位等)。
切換明細列 → 庫存查詢¶
- 當你點選某一明細列,畫面右側的庫存查詢會依該列的品號/儲位即時顯示現有量(本表單實作
IStockQuery,以選取明細為查詢鍵)。
其他功能:領料申請轉領料(ExtendedFunction1 / IOther1)¶
- 按工具列
其他功能會開啟領料申請轉領料視窗。視窗關閉且有存檔成功時,本表單會自動以新單的 Pkid 重新定位顯示剛產生的領料單。 -
轉單時依申請單的用途(ApplyType)走三種不同的回寫邏輯:
用途 前置碼 回寫方式 倉庫調撥(WarehouseTransfer,2) GD以撿料儲位產生「轉出」明細,交易別碼 BT,待轉入倉=預設倉、待轉出倉=對象代號預留(Reserve,3) GD每筆撿料產生一進一出兩列(序號+ A),途程序號標RS做預留其他(領料/樣品,1) OS以撿料儲位產生領出明細,交易別碼 OS -
撿料時系統呼叫 VFP 原版 SP
DARB_TUR_GSPLACE(依申請單品號查現有數量≠0 的儲位)並依「可用量=現有量−已用量」自動分配撿料數量;存檔前會檢查撿料量是否超過現有量、是否有可出貨記錄。
撿料 SP 已改接原版
挑單庫存來源、轉單合併皆改接 VFP 原版 SP(DARB_TUR_GSPLACE、DARB_TUR_GTRINOUTE),舊名 TWORK_QRY_GTRAPPLYPICK / TWORK_TUR_GTRAPPLYTOGTRLIMA 在資料庫不存在,屬刻意的設計決策。
列印(IPrintViewModel / GetPrintViewModel)¶
- 按
列印開啟列印頁,系統把目前單據的倉單號帶為列印起訖。報表取數 SP(DARB_RPT_GTRLIMA)目前保留,詳見上方步驟備註。
換單時重掛主檔(AfterMoverRecord)¶
- 切換到另一張單時,系統會把每筆明細重新掛上新主檔,確保倉庫/幣別等連動正確。
常見問題¶
存檔後倉單號是空的?
倉單號(WHTransaction No) 是系統配號欄,存檔成功後才會依序號前置碼規則產生。若一直空白,請確認:已正確存檔、且該前置碼在單據前置碼設定中有對應的配號規則。
為什麼某筆明細不能修改?
明細若已產生後續異動(已交數量>0 或 轉帳款數量>0)就會被鎖定(CanEdit 為 false),避免改動已影響庫存的紀錄。需更正請以反向異動單處理。
明細的本幣未稅一直是 0?
本幣未稅 = 原幣未稅 × 匯率。請確認:明細有填數量與單價、主檔匯率不為 0。改完幣別後若金額沒更新,回明細任一金額欄重新輸入即可觸發重算。
選了品名調撥,交易部門被自動改掉?
這是設計行為。序號前置碼為品名調撥時,本單屬倉庫內部異動,系統會把 交易部門 自動帶成 隸屬倉庫。如需改成其他部門,請改用其他前置碼。
領料申請轉領料按 Pick 後沒有任何撿料明細?
撿料是依申請單品號到倉庫查現有量>0的儲位。若該品號在預設倉沒有可用庫存(或工程代號/客戶綁定不符),就撿不到料。請先確認倉庫有該品號現貨,或調整申請單的預設倉庫。
Prefix 為什麼進入修改後不能改?
前置碼決定配號與單據種類,配號後不可變更,因此只在新增狀態可選;進入修改狀態即鎖定(PrefixIsEnabled 連動單據狀態)。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
gtrlima-step1.png— 主檔表頭(倉庫/前置碼/交易日期/交易部門)全貌gtrlima-step2.png— 明細格線(品號/數量/轉出倉儲/轉入倉儲/金額欄)gtrlima-step3.png— 領料申請轉領料(Picking)視窗的查詢與撿料畫面gtrlima-step4.png— 列印條件頁(依倉單號範圍)