程式資訊
- 程式 ID:
PREPAID - 所屬子系統:I.帳款管理
- 狀態:stable
暫付申請單¶
功能簡介¶
「暫付申請單」用來向廠商建立一筆預先支付/暫付的應付款項(財務類別取功能別 S 這組設定)。當公司需要在正式進貨或費用發生前先付款給廠商(例如預付訂金、暫付款)時,由申請人在本表單登錄受款廠商、事由、金額與付款日/到期日,存檔後即在 ARAP 體系產生一筆未沖帳的應付款,後續可由付款單沖帳,或經收付款條件推算付款日。
本表單為單一主檔(無明細)的交易單據,常見使用者為會計/財務人員與請款申請人。它與費用申請單、代收付同屬 rp_m 主檔家族,共用同一張 View 結構,差別只在財務類別與功能別。
前置需求¶
- 權限:
I-040 暫付申請單的瀏覽(查詢/列印)與修改(新增/修改/刪除)權限。 - 基礎資料:下列主檔會影響欄位自動帶值與存檔驗證——
| 資料 | 影響的結果 |
|---|---|
| 廠商主檔(含幣別、收付條件號、帳款起始日、統一編號、關係人、付款方式碼) | 輸入廠商後自動帶入幣別、付款條件、受款人等(見欄位連動) |
| 員工資料(申請人) | 自動帶申請人姓名、申請部門、部門簡稱 |
| 收付款條件(payterm) | 由收付條件號推算付款日/到期日 |
| 幣別與匯率資料 | 外幣單據存檔時自動補匯率(海關賣出匯率)並換算本幣 |
| 財務類別設定(收付財務類別,RPDEF) | 提供本表單下拉的財務類別/單據名稱清單(功能別 S) |
| 付款方式(代碼表 C203) | 付款方式下拉內容;新增時預設帶 1 |
操作步驟¶
新增一筆暫付申請¶
- 從主選單開啟 I 應收付管理 → 暫付申請單。
- 點工具列
新增,系統自動帶入下列預設值(見欄位說明):申請人(登入者)、申請日期(今天)、帳款期別(當月)、收付款日/到期日(今天)、付款方式(1)、幣別(本位幣)。 - 輸入廠商(受款廠商代號)。輸入後系統會自動帶出幣別、付款條件、受款人等資料。
- 確認或修改事由、受款人、幣別。
- 輸入原幣金額,系統自動以匯率換算金額(本幣)。
- 視需要調整付款方式、收付款日、到期日、備註。
-
點工具列
儲存。系統會檢核 11 項必填欄位(財務類別、申請日期、帳款期別、廠商、事由、受款人、幣別、原幣金額>0、付款方式、收付款日、到期日),通過後寫入。小技巧
備註留空時,存檔會自動把事由複製到備註,不必重打一次。

修改¶
- 用工具列的瀏覽鈕或
查詢定位到要修改的單據。 -
點
修改,調整欄位後儲存。已沖帳不得修改
若該筆暫付已被付款單沖帳(沖帳金額不為 0),系統會發出提示音並擋下修改。請改由沖帳的付款單處理。
刪除¶
- 定位到要刪除的單據,點
刪除。 - 本單採作廢式刪除(保留單號、標記作廢),作廢後該筆暫付不再列入未沖帳餘額。已沖帳的單據同樣受「不得修改」防呆保護,請先處理沖帳關係。
列印¶
- 定位到要列印的單據,點工具列
列印。 -
系統以目前單據的財務單號為起訖條件,套用報表
I040-1 暫付申請單(A4)輸出。備註
列印頁的單號起訖預設帶入目前單據的財務單號,相關設定見暫付申請單列印。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 財務單號 | 是 | 系統自動產生(新增時顯示 +++),唯讀 |
| 財務類別 | 是 | 由財務類別控件(TsFinanceType)下拉選取,清單限功能別 S;新增時不預設值,須自行選取 |
| 申請日期 | 是 | yyyy/MM/dd,新增預設今天 |
| 申請人 | 是 | 員工代號;新增預設登入者,連動帶姓名/申請部門 |
| 申請部門 | — | 隨申請人自動帶入,亦可手動指定 |
| 事由 | 是 | 文字(最長 250 字),暫付原因 |
| 廠商 | 是 | 受款廠商代號(綁定 收付客廠號),連動帶幣別/條件/受款人 |
| 受款人 | 是 | 文字(最長 80 字),預設帶廠商簡稱,可改 |
| 幣別 | 是 | 幣別代碼;新增預設本位幣;變更時自動帶匯率 |
| 匯率 | — | 隨幣別自動帶;存檔若≤0 自動補海關賣出匯率 |
| 原幣金額 | 是 | 必須 > 0;輸入後自動換算本幣金額 |
| 金額(本幣應收付) | — | 系統計算=原幣金額 × 匯率(四捨五入至本幣小數位),唯讀 |
| 沖帳原幣/沖帳本幣 | — | 系統維護的已沖帳金額,唯讀;不為 0 即不得修改 |
| 帳款期別 | 是 | yyyy/MM,新增預設當月;本表單為手動輸入欄(申請日期變更不會自動改寫帳款期別) |
| 帳款起始日 | — | 隨廠商帶入(影響到期日推算) |
| 付款方式 | 是 | 代碼表 C203;新增預設 1 |
| 收付款日 | 是 | yyyy/MM/dd,新增預設今天;可由收付條件推算 |
| 到期日 | 是 | yyyy/MM/dd,新增預設今天;可由收付條件推算 |
| 備註 | — | 文字(最長 999 字);存檔留空時自動帶事由 |
| 轉入備註 | — | 由他處轉入時的備註,唯讀(系統產生欄位顏色標示) |
新增單據的內部預設值
新增時系統還會在背景設定:公司代碼=1、匯率=1、立帳日期/交易日期=今天(皆來自 Source 建構子);存檔時 立帳日期 會被設為與申請日期一致、收付客廠號 同步為廠商代號。
欄位連動與附加功能¶
本節整理「輸入某欄位/按某按鈕後系統做什麼」,全部來自實際程式碼(ViewModel/Source/SaveBll 與 VFP prepaid class)。
新增時的自動帶值(AfterAddNew)¶
當你點 新增,系統會:
- 把申請人設為登入者,並帶出申請人姓名;再依員工資料帶申請部門與部門簡稱。
- 申請日期=今天;帳款期別=當年當月(
yyyy/MM)。 - 到期日=今天、收付款日=今天。
- 付款方式預設代碼
1。 - 幣別若為空,帶入本位幣(
Context.Env.LocalCurrency)。
輸入「申請人」(申請人Binding → SetApplicant)¶
當你輸入或選取申請人,系統會依員工資料自動帶:申請人姓名、申請部門、部門簡稱。
VFP 版的「申請人→使用人」連動尚未提供
VFP 原版在申請人輸入後,會把空白的使用人補成同一人(申請人.代號.LostFocus)。新版 C# 尚未移植「使用人/使用部門/使用日期」這組欄位,本表單目前不顯示也不帶這些值。
輸入「廠商」(收付客廠號Binding → SetTransactionCustVendDept)¶
這是本表單最重要的連動。當你輸入廠商代號,系統依廠商主檔一次帶入多個欄位:
- 統一編號、帳款起始日、關係人 直接套用廠商設定。
- 幣別:廠商有設定幣別時帶入(TsCurrency 控件偵測到幣別變更會自動帶當期匯率);廠商沒設幣別則維持原本的本位幣。
- 收付條件號:套用廠商的收付條件,並立即觸發到期日推算(放在帳款起始日之後設定,確保用新的起始日計算)。
- 付款方式碼:套用廠商的付款方式。
- 受款人 與 客廠簡稱 預設帶廠商簡稱(受款人之後可手動改)。
- 當
NeedUpdateCustVendCode為真時,客廠部代號 與 客廠部簡稱 同步成此廠商。
客廠部代號由廠商連動帶入(無獨立輸入框)
本表單 XAML 只有「廠商」一個輸入框(綁 收付客廠號Binding),畫面上沒有獨立的客廠部代號欄位。SetTransactionCustVendDept 在 NeedUpdateCustVendCode 為真時會自動把客廠部代號與客廠部簡稱同步成所選廠商,這也是存檔驗證真正檢查的欄位(見存檔驗證)。
程式另有一條 客廠部代號Binding(變更時帶客廠部簡稱、收付客廠號為空則補同代號並觸發廠商連動,對應 VFP sqlnm_sp1.代號.LostFocus),但本表單未綁定該欄,使用者無法直接觸發。
變更「幣別/匯率」與「原幣金額」¶
- 幣別:由
TsCurrency控件控制,變更幣別時自動帶出對應匯率。 - 原幣金額(
原幣應收付Binding):輸入後立即呼叫SetDueAmount,以 原幣金額 × 匯率 重算金額(本幣應收付),四捨五入至本幣小數位。
手改匯率不會即時重算本幣
新版的匯率輸入框為一般綁定,手動修改匯率後本幣不會自動重算;不過存檔時若匯率≤0,系統會自動補匯率並重算本幣(見下)。若需匯率變動後本幣同步,請重新輸入一次原幣金額觸發重算。(VFP 原版在 匯率.LostFocus 會即時重算,此差異為已知待辦。)
輸入「收付條件號」(收付條件號Binding → SetDueDate)¶
設定收付條件號後,系統查收付款條件表,帶出條件說明,並依「帳款起始日/交易日期/發票日期」推算出到期日與收付款日。
收付條件 lookup 欄位尚未顯示
本表單 XAML 中的「付款條件」查詢欄目前為註解狀態(尚未移植 lookup UI)。收付條件號仍會在輸入廠商時由廠商主檔帶入並推算付款日/到期日,只是畫面上沒有獨立的條件選擇框。
存檔時的補值與重算(HandleDataBeforeEndEdit)¶
按 儲存 時,存檔前系統會自動:
- 備註留空 → 帶入事由。
- 收付客廠號 ← 客廠部代號(兩者同步)。
- 立帳日期 ← 申請日期。
- 若匯率 ≤ 0 → 以
U_Blrate取海關(Customs)賣出(Sell)匯率(依幣別與申請日期),填入匯率欄並呼叫SetDueAmount重算本幣。
存檔驗證(AllowSave)¶
存檔時逐項檢核,任一不過即擋下並提示:財務類別、申請日期、帳款期別、廠商(客廠部代號)、事由、受款人、幣別、原幣金額 > 0、付款方式 > 0、收付款日、到期日。
接上驗證後的行為變化
過去(驗證未接線時)存得進去的不完整單(無廠商、無事由、無受款人…)現在會被擋下,這是預期行為。
修改防呆(AllowEditHandle)¶
按 修改 時,若該筆沖帳原幣 ≠ 0(已被沖帳),系統發出提示音並擋下修改。
列印(GetPrintViewModel / TemporaryPrintViewModel)¶
按 列印 開啟列印頁,預設以目前單據的財務單號同時帶入單號起/訖;報表清單為 I040-1 暫付申請單(報表名 Temporary、A4、資料來源 rpt_i040_prepaid_report1)。起訖單號任一為空白時即不產生報表資料(兩格都要填)。
尚未提供/規劃中的功能(VFP 有、新版尚未移植)¶
下列 VFP 原版功能在新版目前不可用
- 工作流程/快速審核按鈕:VFP
prepaid有「工作流程」「快速審核」兩顆按鈕(送審、暫付單流程)。新版改採集中式 workflow(架構決策),本表單不再各自提供這兩顆按鈕。 - 附件按鈕:VFP 有
attachment_btn,新版本表單尚未移植附件功能。 - 使用人/使用部門/使用日期 欄位:VFP 有但新版未顯示。
- 沖帳口徑差異:修改防呆新版以沖帳原幣判斷,VFP 以沖帳本幣判斷,外幣尾差為已知邊角差異。
常見問題¶
存檔時出現「原幣金額未輸入」或「廠商未輸入」?
暫付申請單有 11 項必填檢核:財務類別、申請日期、帳款期別、廠商、事由、受款人、幣別、原幣金額需大於 0、付款方式、收付款日、到期日。請確認紅框欄位都已填,且原幣金額不是 0。
金額(本幣)一直是 0?
本幣金額=原幣金額 × 匯率,於輸入原幣金額時計算。若你是先改匯率再看金額,本幣不會即時重算;請重新輸入一次原幣金額,或直接存檔(匯率≤0 時系統會補匯率並重算本幣)。詳見欄位連動與附加功能。
輸入廠商後幣別/受款人沒帶出來?
幣別、收付條件、受款人是依廠商主檔帶值。若廠商沒設幣別,幣別會維持原本的本位幣;受款人則帶廠商簡稱。請先確認該廠商主檔資料完整。
想修改舊單卻被擋住,提示「已沖帳,不得修改」?
該暫付已被付款沖帳(沖帳金額不為 0),不能直接改。請從沖帳它的付款單處理,或先解除沖帳關係。
找不到「工作流程」「快速審核」「附件」按鈕?
這些是 VFP 舊版的按鈕。新版採集中式 workflow,暫付單不再各自提供工作流程/快速審核按鈕;附件功能本表單尚未移植。詳見尚未提供/規劃中的功能。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/I-ARAP/images/):
prepaid-step1.png— 暫付申請單新增畫面全貌(含財務類別、廠商、金額、付款日等欄位)