跳轉到

程式資訊

  • 程式 IDCommissionformula
  • 所屬子系統:I.帳款管理
  • 狀態:stable

業務員佣金公式設定

功能簡介

「業務員佣金公式設定」是佣金計算前置主檔。它替每位業務員建立一組「比對條件 → 佣金比率」的對照表:當佣金計算去抓某張發票的明細時,系統會拿明細上的客戶/倉庫/品號逐條去比對該業務員的公式,命中第一條符合的公式,就用該條的比率倉庫比率算出佣金與倉儲費。

一張主檔對應一位業務員(以業務員編號+建檔日期組成單號),底下可掛多筆明細公式,並用優先度決定比對順序。主要由負責訂定佣金制度的財務/業務主管維護;維護完成後,佣金計算才能據以產生每期應付佣金。

這支只「設定公式」,不「算錢」

本頁只負責建立與維護佣金比率規則,不會在這裡計算任何金額。實際把規則套到發票、算出佣金與倉儲費的是佣金計算;兩者的關係請見欄位連動與附加功能

前置需求

  • 權限:I.帳款管理 → 業務員佣金公式設定 的新增/修改/刪除/瀏覽權限。
  • 基礎資料:公式裡填的代號必須對得上既有主檔,否則佣金計算比對時會落空——
資料 影響什麼
業務員主檔(業務員編號 主檔的業務員、明細儲存後回填的業務員。沒有此業務員,存檔會被擋(見 AllowSave
客戶主檔(客戶代號) 公式中「客戶」條件的比對來源;可留空或用 * 表示不限客戶
倉庫主檔(倉庫代號 公式中「倉庫代號」條件的比對來源;可留空或用 * 表示不限倉庫
品號主檔(品號 公式中「品號」條件的比對來源;可留空或用 * 表示不限品號

操作步驟

本表單為「主檔+明細」結構:上方是一筆業務員主檔,下方格線是該業務員的多筆佣金公式明細。

  1. 按工具列 新增,系統自動把建檔日期帶為今天(見 AfterAddNew)。
  2. 在主檔區輸入業務員編號:可點放大鏡叫出業務員查詢視窗挑選(業務員編號 欄為查詢型欄位)。單號為唯讀,存檔時自動由系統組出。
  3. 在下方明細格線逐列建立公式,每一列代表一條「條件 → 比率」規則:
    1. 優先度:數字越小越優先比對(排序規則見欄位連動與附加功能)。
    2. 填比對條件:客戶/倉庫代號/品號。三者皆為「前置字串比對」,可只填前幾碼,亦可留空或填 * 代表該條件「不限」。
    3. 比率(佣金 %)與倉庫比率(倉儲費 %)。
  4. 按工具列 儲存
    • 系統先檢查業務員編號是否有填,沒填會擋下並提示(見 AllowSave)。
    • 存檔時自動組出單號=業務員編號+建檔日期(去掉斜線),並把每一筆明細回填該業務員與建檔日期。
    • 整列空白(客戶空、比率=0、倉庫比率=0)的明細會被視為刪除、不寫入。
  5. 要修改舊公式:在瀏覽清單挑出該業務員的單據,調整明細後再 儲存
  6. 要刪除整張公式表:用工具列 刪除。若只想刪某一條明細,把該列的客戶清空即可(見 NeedDeleteFunction)。

小技巧

同一條件若要「全包」,客戶/倉庫代號/品號留白或填 * 都可以——系統比對時會把 * 去掉,去掉後若為空字串就視為「此條件一律符合」。

欄位說明

主檔(業務員)

欄位 必填 說明/格式/預設
單號 系統產生 唯讀。存檔時自動組為「業務員編號+建檔日期(YYYYMMDD,去斜線)」
建檔日期 新增時預設帶今天;同時是明細的「起始日期」來源
業務員編號 查詢型欄位,可叫出業務員查詢挑選。未填則存檔被擋

明細(佣金公式)

欄位 必填 說明/格式/預設
優先度 比對排序用;數字越小越優先(取第二碼起的數字,以 1000 減去當排序鍵,再對排序鍵由大到小排,等同優先度數字由小到大先比)
客戶 客戶代號「前置比對」;留空或 *=不限客戶
倉庫代號 倉庫代號「前置比對」;留空或 *=不限倉庫
品號 品號「前置比對」;留空或 *=不限品號
比率 佣金比率(%),小數,預設 0
倉庫比率 倉儲費比率(%),小數,預設 0

畫面文字仍為英文

目前 XAML 標籤仍顯示英文(Document No:Created Date:Sales Rep Code:PriorityCustomerWarehouse CodeSKURateWarehouse Rate),對應的中文語系(單號/建檔日期/業務員編號/優先度/客戶/倉庫代號/品號/比率/倉庫比率)已建好但畫面尚未切換。本頁欄位名以中文語系為準。

欄位連動與附加功能

這一節說明「輸入某欄位/按某動作後系統會做什麼」,全部來自實際程式碼。

主檔/明細的自動行為

  • 新增:系統自動把主檔的建檔日期帶為今天(AfterAddNewCreatedDate = 今天)。其餘欄位維持空白等你輸入。
  • 儲存 時的檢核(AllowSave):若主檔業務員編號為空白,系統會擋下存檔並跳出「請輸入業務員編號」之類的提示訊息,回到畫面讓你補填。
  • 存檔時自動組單號(HandleDataBeforeEndEdit):存檔前系統把主檔單號設為「業務員編號建檔日期(去掉 /)」。例如業務員 S001、建檔日期 2026/06/13,單號即 S00120260613。所以同一位業務員在同一天只會對應一張公式表。
  • 整列空白的明細會被丟棄:存檔時,凡是客戶空白、比率=0、倉庫比率=0 的明細列,系統一律標記為刪除、不寫進資料庫。換言之,你想刪掉某一條明細公式,把那一列的客戶清空(且比率歸 0)再存檔即可,系統會自動移除。
  • 明細自動回填業務員與起始日期:非空白的明細在存檔時,系統會把它的「業務員」與「起始日期」分別填成主檔的業務員編號建檔日期——你不必在每一列重複輸入業務員。

佣金計算的連動(本設定真正被用到的地方)

本表單建立的公式,會在佣金計算產生某期佣金時被讀出來套用。其比對邏輯如下(來源:佣金計算的計算程式):

  1. 依業務員與起始日期取公式:佣金計算先依「業務員+起始日期」抓出該業務員所有公式列,再排序。排序鍵的算法:取優先度第二碼起的數字(首字被略過)、用 1000 減掉它,最後把「業務員+起始日期+排序鍵」這串由大到小排。由於排序鍵=1000 − 優先度,由大到小排的結果就是優先度數字小的排在前面
  2. 逐筆發票明細比對:對每一筆要算佣金的發票明細,系統從優先度數字最小的公式列往下試,每一條公式檢查三個條件:
    • 客戶:公式的客戶(去掉 *)若為空 → 視為符合;否則用「發票客戶代號開頭包含此值」判斷。
    • 倉庫代號:公式的倉庫代號(去掉 *)若為空 → 視為符合;否則用「發票倉庫代號開頭包含此值」判斷。
    • 品號:公式的品號(去掉 *)若為空 → 視為符合;否則用「發票品號開頭包含此值」判斷。
  3. 三個條件全部符合才命中:當一條公式的三個條件同時成立,系統就採用該條的比率當佣金率、倉庫比率當倉儲費率,並停止往後比(取第一條命中的)。
  4. 算金額
    • 佣金(AMTCOMM)=發票原幣金額 × 命中的比率 ÷ 100,四捨五入到 2 位。
    • 倉儲費(WHMTFEE)=發票原幣金額 × 命中的倉庫比率 ÷ 100,四捨五入到 2 位。

優先度怎麼用最順手

把「最特定」的公式(指定到某客戶+某品號)給較小的優先度,把「最通用」的全包公式(客戶/倉庫/品號全留空)給較大的優先度當作 fallback。這樣特定規則(優先度數字小)會先被比對命中,沒有任何特定規則符合時才落到全包那一條。

前置比對與 * 的真正行為

三個條件都是「開頭包含」而非完全相等。例如客戶填 A,則所有以 A 開頭的客戶都會命中;填 * 或留空則一律命中。換句話說 * 不是「萬用字元樣式」,而是被直接移除後當成「空=不限」處理——只在字串開頭或單獨使用時才符合直覺,夾在中間的 * 不會被當作通配。

規劃中/尚未提供

本頁未提供列印(無 IPrintSource/GetReports)、匯入匯出、轉傳票或簽核流程;目前僅有新增/修改/刪除/查詢的主檔維護功能。若日後新增列印或批次匯入,再於此補述。

常見問題

存檔時一直跳「請輸入業務員編號」,怎麼回事?

主檔的業務員編號是必填,未填會被 AllowSave 擋下。請先在主檔區挑選或輸入有效的業務員編號再存檔;單號是系統依業務員編號+建檔日期自動產生的,不需手動填。

我打的明細公式存檔後不見了?

存檔時,客戶空白且比率=0、倉庫比率=0 的明細列會被系統視為刪除而丟棄(見 NeedDeleteFunction)。若要保留一條「全客戶通用」的公式,至少要填上不為 0 的比率倉庫比率,光留條件空白是不會被存下來的。

佣金計算抓不到我設的比率,金額都是 0?

佣金計算是用「業務員+起始日期」找公式,再用客戶/倉庫代號/品號三個條件對發票明細做前置比對,三者全中才採用。請確認:(1) 公式的業務員與佣金計算期間對得上;(2) 條件代號是發票上實際值的「開頭」(例如客戶填整碼或正確前幾碼,不要填到後段);(3) 想全包的條件請留空或填 *。比對細節見與佣金計算的連動

兩條公式都符合,系統用哪一條?

系統依優先度由小到大逐條試,取第一條三個條件全中的公式並停止。所以較特定的規則請給較小的優先度,全包的 fallback 給較大的優先度。

同一位業務員可以建多張公式表嗎?

單號=業務員編號+建檔日期(去斜線),所以同一位業務員在「同一天」只會有一張。若要新的一組公式,可在不同日期新增,或直接修改既有那張的明細。

相關功能


需補截圖清單

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

  1. commissionformula-step1.png — 新增後的空白主檔+明細畫面(顯示建檔日期已自動帶今天)
  2. commissionformula-step2.png — 主檔填好業務員、明細建好數條公式(含優先度、客戶/倉庫/品號條件與比率)的範例
  3. commissionformula-step3.png — 業務員查詢視窗(點業務員編號放大鏡叫出)