程式資訊
- 程式 ID:
CUDATAM - 所屬子系統:E.營業收款
- 狀態:stable
客戶信用額度設定¶
功能簡介¶
「客戶信用額度設定」用一張生效日期單,一次維護多個客戶的信用額度(Credit Limit)。每張單代表一個生效日期,單身逐列記錄各客戶在該日期起適用的額度與備註。額度資料會被歸戶到客戶身上,供客戶資料表的「Credit limit」查詢頁、應收帳齡與授信相關報表引用。
適合財會/授信主管或業務助理在客戶條件變動(例如年度重新核給、提高/調降額度)時,建立一張新生效日期單調整一批客戶的額度,並保留歷史軌跡(單身會顯示最新額度與前次額度,方便核對調整幅度)。
與「客戶資料表」的關係
本表單與客戶資料表(CUDATA)是兩支獨立程式:客戶資料表維護客戶的基本主檔,本表單則專責維護信用額度這一項目。在客戶資料表內可透過「Credit limit」特殊查詢頁,直接查到某客戶目前的信用額度資料,但新增與修改額度一律在本表單進行。
前置需求¶
- 權限:E.銷售訂單 →
E-020 客戶信用額度設定的瀏覽(檢視)與修改(新增/儲存/刪除)權限。 - 基礎資料:單身的客戶代號以 Seek 欄位挑選,需先維護好客戶主檔——
| 資料 | 影響什麼 |
|---|---|
| 客戶資料表(CUDATA) | 單身客戶代號只能挑已建檔的客戶;挑選後自動帶出客戶簡稱(Customer Name) |
操作步驟¶
本表單為主檔+單身結構:上方是一張生效日期單(主檔),下方格線逐列輸入各客戶的額度(單身)。
新增一張信用額度單¶
- 從主選單開啟 E.銷售訂單 → 客戶信用額度設定。
- 點工具列
新增。系統自動帶入兩個日期(見欄位連動與附加功能):- 建立日期(Created Date)=今天,唯讀。
- 生效日期(Effective Date)=今天,可改。
- 視需要修改生效日期為這批額度真正開始適用的日期,並填備註(Notes)。
- 在下方格線逐列輸入客戶與額度:
- 在客戶代號欄按 Seek(放大鏡)挑客戶,系統自動帶出客戶簡稱。
- 輸入信用額度金額。
- 視需要填單身備註。
- 重複步驟 4 加入更多客戶(每張單可放多個客戶,但同一客戶不可重複)。
-
點
儲存。小技巧
可用 Ctrl+S 快速儲存。
修改/刪除¶
- 用上方工具列查詢叫出既有的信用額度單。
- 直接在格線修改信用額度或備註後
儲存。 - 要移除某客戶的額度列,選取該列後刪除,再
儲存;單身整列若客戶代號為空,會被視為空列並在儲存時自動略過、不會存成一筆資料(見欄位連動與附加功能)。
尚未提供列印/轉拋
本表單目前的程式碼只實作新增/修改/刪除(IAdd),沒有列印報表、簽核流程、Excel 匯入匯出或轉拋其他單據的功能。額度資料是由其他單據與報表反向引用,而非從本表單推送出去。
欄位說明¶
主檔(上方生效日期單)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 單號(Document No) | — | 識別此額度單的單號 |
| 生效日期(Effective Date) | ✔ | 這批額度開始適用的日期;新增時預設今天,可修改。空白不可儲存 |
| 建立日期(Created Date) | — | 系統欄位,唯讀;新增時自動帶今天 |
| 備註(Notes) | — | 主檔層自由輸入(最長 500 字) |
單身(下方客戶額度格線)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 客戶代號(Customer Code) | ✔ | Seek 欄位,只能挑客戶資料表已建檔的客戶;同一張單內不可重複 |
| 客戶簡稱(Customer Name) | — | 挑客戶後自動帶出,唯讀 |
| 信用額度(Credit Limit) | ✔ | 數值(19,4),本幣金額;此即要設定的額度 |
| 備註(Notes) | — | 單身層自由輸入(最長 500 字) |
| 最新額度(Latest Credit Limit) | — | 唯讀,供核對用,由查詢帶出 |
| 前次額度(Previous Credit Limit) | — | 唯讀,供核對用,由查詢帶出 |
畫面文字目前為英文
本表單 XAML 的標題與欄位 Header(Document No、Effective Date、Credit Limit…)目前仍是英文字串、尚未套用中文多語系。實際操作時請依上表的中文對照辨識欄位。
欄位連動與附加功能¶
這一節把「輸入某欄位後系統會做什麼」「按某動作會發生什麼」逐條列出,全部來自實際程式碼。
新增時的預設帶值¶
- 當你按
新增,系統會在主檔自動帶值(AfterAddNew):- 建立日期=今天(
TodayYYYYMMDD),且此欄唯讀,無法手動改。 - 生效日期=今天,但允許你改成實際生效日。
- 建立日期=今天(
單身客戶 Seek 的連動¶
- 客戶代號是 Seek 欄位(
TsCustomerSeekGridViewColumn)。當你挑定一個客戶後,系統會自動把該客戶的簡稱帶到唯讀的客戶簡稱欄;此欄不可手動輸入。
儲存前的檢核(AllowSave)¶
按 儲存 時,除了系統共通檢核外,本表單會額外擋下三種情況:
- 找不到主檔資料 → 顯示系統錯誤訊息,不允許儲存。
- 生效日期空白 → 提示「請輸入 生效日期」,不允許儲存。生效日期是必填。
- 同一客戶在單身重複 → 系統會把單身中未被刪除、且客戶代號非空的列依客戶代號分組,只要有任一客戶出現超過一次,就提示「資料重複:客戶代號」,不允許儲存。
空列自動略過(不會被存成一筆資料)¶
- 單身若整列的客戶代號為空白,系統會把該列判定為「需刪除」(
Twork_ord_vw_cudatalimitdSource.NeedDeleteFunction回傳客戶代號.IsNullOrWhiteSpace())。上傳時這種列會被當成刪除/略過處理,不會被存成一筆新資料。因此你可以放心留著沒填完的空白列,儲存時它不會變成一筆空的額度紀錄。
額度資料被誰引用(往下游的連動)¶
本表單存好的信用額度,會被下列地方讀取(單向引用,本表單不主動推送):
- 客戶資料表(CUDATA) 的「Credit limit」查詢頁:在客戶資料表選定某客戶後,該頁會以目前客戶代號為條件,呼叫查詢取回該客戶的信用額度明細(含最新/前次額度),讓你不必離開客戶主檔即可檢視額度。
- 授信/集團資料、應收帳齡相關報表:信用額度欄位也被集團資料查詢、應收帳齡(ArAge)等處引用,作為授信判斷與報表呈現的依據。
銷售訂單的額度檢查目前為停用狀態
程式碼中銷售訂單(ORMAST)存檔時原本有一段「信用不足 / 額度為 0 即擋單」的檢查,目前在新版中是註解停用的。也就是說,現階段建立訂單不會自動依本表單的額度即時擋單;本表單的額度主要供查詢與報表參考。如需恢復即時擋單,須由開發端啟用該段檢查。
常見問題¶
按儲存出現「請輸入 生效日期」?
主檔的生效日期為必填,新增時雖預設今天,但若被清空就會擋存。請在上方填入這批額度的生效日期後再儲存。
按儲存出現「資料重複:客戶代號」?
同一張信用額度單裡同一個客戶只能出現一次。請檢查單身是否把同一客戶輸入了兩列;若要改該客戶的額度,直接改原本那一列即可,不要再新增一列。
在客戶資料表查不到某客戶的信用額度?
信用額度是在本表單(客戶信用額度設定)建立的,不是在客戶資料表建立。請先在本表單為該客戶建立一張含其額度的生效日期單並儲存,客戶資料表的「Credit limit」頁才查得到。
客戶簡稱欄空白?
客戶簡稱由客戶代號 Seek 挑選後自動帶出。若空白,多半是該列尚未以 Seek 正確挑到已建檔的客戶;請重新從 Seek 欄挑選客戶。
設了額度,為什麼下訂單時沒有擋單?
現階段銷售訂單存檔時的信用額度檢查在程式中為停用(註解)狀態,所以不會即時依額度擋單。本表單的額度目前主要供查詢與授信/帳齡報表參考。
相關功能¶
- 客戶資料表(CUDATA) — 客戶基本主檔;內含「Credit limit」查詢頁可檢視本表單設定的額度
- 銷售訂單(ORMAST) — 額度檢查的引用方(目前停用)
- 銷售訂單模組首頁
- 應收/應付(AR/AP)模組 — 應收帳齡與授信報表引用信用額度
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
cudatam-step1.png— 新增後的主檔(自動帶入建立日期/生效日期)cudatam-step2.png— 單身格線:客戶 Seek 挑選 + 信用額度/最新/前次額度欄cudatam-step3.png— 儲存檢核訊息(生效日期空白 / 客戶代號重複)示意