程式資訊
- 程式 ID:
CUPDMA - 所屬子系統:E.營業收款
- 狀態:stable
客戶報價單¶
功能簡介¶
「客戶報價單」用來為特定客戶建立並維護產品報價,是報價/接單流程的源頭單據:業務人員在這裡輸入客戶、品號、數量與單價,存檔後即成為客戶與品號的有效報價。後續建立銷售訂單、或在生產計劃查詢等功能計算金額時,都會回頭抓這張報價單的單價。
單據分主檔(報價單號、客戶、幣別、有效期間等)與明細(逐項品號的數量、單價、各類費用)兩層。報價別分為「正式」與「其他」兩種:正式報價必須指定客戶、單號以 QT 開頭;其他(暫存/詢價型)報價則以 QN 開頭,不強制填客戶。
前置需求¶
- 權限:E.銷售訂單 →
E-050 客戶報價單的瀏覽/修改權限。 - 基礎資料:下列主檔影響欄位自動帶值與報價計算的完整度——
| 資料 | 影響什麼 |
|---|---|
| 客戶資料 | 輸入客戶代號後自動帶出簡稱、業務員、收付條件、聯絡人、電話、幣別 |
| 品號主檔(SKU) | 輸入品號後自動帶出品名、規格、中文描述 |
| 幣別與匯率資料 | 報價日期當天的買入匯率,用來把外幣單價換算成本幣金額 |
| 收付條件主檔 | 收付條件號 的搜尋與說明 |
| 業務員主檔 | 業務員編號 的搜尋與報價人員 |
頁首備註設定(類別 M207) |
新增 時自動帶入的頁首備註內容(見欄位連動與附加功能) |
操作步驟¶
新增一張報價單¶
- 從主選單開啟 E.銷售訂單 → 客戶報價單。
- 點工具列
新增。系統自動帶入預設值(報價日期=今天、幣別=本位幣、匯率=1、報價別=正式、製表人員/報價人員=登入者、有效天數=30、生效日期=報價日期),並自動切到右側「頁首備註」面板帶入預設備註。 -
在 Customer Code(客戶代號) 欄輸入或搜尋客戶。系統會自動帶出客戶名稱、業務員、收付條件、聯絡人、電話與幣別(詳見欄位連動與附加功能)。
報價別=其他時可不填客戶
只有「正式」報價在存檔時強制要求客戶代號;「其他」報價別可空白。
-
確認 Quotation Date(報價日期)、Effective Date(生效日期)、Currency(幣別)/FX Rate(匯率) 無誤。
- 在下方明細格線逐列輸入:
- SKU(品號):輸入或搜尋品號,系統自動帶出品名、規格、中文描述。
- Quantity(數量) 與 Unit Price(單價):兩者任一變動都會即時重算該列 Amount(金額)。
- 視需要填入材料費、加工費、模具費等成本欄位。
- 點工具列
儲存。系統會做存檔前檢核(見常見問題)。
用「Find Price」帶入歷史單價¶
- 在某一明細列先輸入 SKU 與該張單的 客戶、報價日期。
- 點該列的
Find Price按鈕。 - 系統在右側「Customer Quotation Query」面板列出該客戶+該品號的歷史報價與最近一筆訂單單價。
- 在清單中選一筆按
取得,該單價會回填到目前這一列的 Unit Price,並即時重算金額。
修改 / 刪除¶
- 用
查詢或前後筆切換(第一筆/上一筆/下一筆/最後一筆)找到要修改的報價單。 - 切到編輯狀態後修改主檔或明細欄位,再
儲存。 - 要刪除整列明細,於該列切換刪除狀態;品號與品名皆空白的列會被視為無效列自動清除。
列印報價單¶
- 點工具列
列印。 - 在列印條件頁選擇查詢方式:
Quotation No:依報價單號起訖列印(從目前單據開啟時,起訖會預設為目前單號)。Customer:依客戶代號+報價日期起訖列印。
- 執行列印。
頁首備註面板
右側支援面板含「頁首備註」分頁,可在此挑選/組合報價單抬頭下方要印出的條款文字,按 返回 寫回 Page Header Notes 欄位。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Quotation No(報價單號) | 自動 | 存檔時依報價別產生:正式=QT 開頭、其他=QN 開頭 |
| Type(報價別) | 是 | 正式 或 其他;預設正式。正式須填客戶 |
| Quotation Date(報價日期) | 是 | yyyy/MM/dd,預設今天;存檔必填 |
| Effective Date(生效日期) | 是 | 預設=報價日期;存檔必填 |
| Customer Code(客戶代號) | 正式必填 | 搜尋客戶;觸發一連串自動帶值 |
| Customer Name(客戶名稱) | — | 由客戶代號帶出,可手改 |
| Sales Rep Code(業務員編號) | 是 | 存檔必填;由客戶帶出,可改 |
| Contact / Telephone / Fax(聯絡人/電話/傳真) | — | 聯絡人、電話由客戶帶出 |
| Currency(幣別)/FX Rate(匯率) | — | 預設本位幣、匯率 1;輸入客戶或選幣別時依報價日期帶入買入匯率 |
| Activity Start / End Date(活動起訖日) | — | 報價活動有效區間 |
| Estimated / Actual Closed Date(預計/實際結案日) | — | 報價案結案追蹤 |
| Payment Term(收付條件號) | — | 由客戶帶出,可改 |
| ProjectCode(專案代號) | — | 搜尋專案,帶出專案名稱 |
| Page Header Notes(頁首備註) | — | 新增時由 M207 設定自動帶入,可由頁首備註面板重組 |
| Notes(報價備註) | — | 自由輸入 |
| 製表人員 | 自動 | 預設登入者;存檔時若空白補登入者 |
| 報價人員 | 自動 | 預設登入者;存檔時若空白補登入者 |
| 最低毛利率 / 有效天數 | 自動 | 新增預設 1 / 30 |
明細欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Line No(序號) | 自動 | 明細列序號 |
| SKU(品號) | 是 | 輸入後自動帶出品名、規格、中文描述 |
| SKUDescription(品名) | — | 由品號帶出,可改 |
| Chinese Description(中文描述) | — | 唯讀,由品號帶出 |
| Spec(規格) | — | 由品號帶出 |
| Quantity(數量) | — | 變動即時重算金額 |
| UOM(單位) | — | 下拉選單 |
| Unit Price(單價) | — | 變動即時重算金額;可用 Find Price 帶入 |
| Customer Price(客戶價) | — | 客戶端參考價 |
| Standard Unit Price(標準單價) | — | 標準單價 |
| Amount(金額) | 自動 | 唯讀=數量 × 單價 × 匯率(依幣別小數位四捨五入) |
| Material / Processing / Mold Fee(材料費/加工費/模具費) | — | 成本明細,本幣金額 |
| Allocation Amount / Quantity(分攤金額/數量) | — | 分攤資訊 |
| Suggested Price(建議售價) | — | 建議售價 |
| Mold No(模具編號) | — | 對應模具 |
| Minimum Order Quantity / Package(最低訂單量/最低包裝數) | — | 訂購限制 |
| Lead Time(前置天數) | — | 交期參考 |
| Quotation Cost(報價成本) | — | 該列報價成本 |
| Modified Date / Reason(異動日期/異動原因) | — | 單價異動追蹤 |
| Customer SKU(客戶品號) | — | 客戶端料號 |
| Notes(備註) | — | 逐列備註 |
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某按鈕後系統會做什麼」,全部來自實際程式碼。
新增時的預設值(AfterAddNew)¶
當你按 新增,系統會:
- 自動切到右側支援面板的「頁首備註」分頁。
- 帶入下列預設:報價日期=今天、匯率=1、幣別=本位幣(
Context.Env.LocalCurrency)、公司代碼=1、報價別=正式、製表人員/報價人員=登入帳號、最低毛利率=1、有效天數=30、生效日期=報價日期。 - 從
M207頁首備註設定組出預設的 Page Header Notes 填入頁首備註欄。
輸入客戶代號(CustomerCodeBinding)¶
當你在 Customer Code 輸入並離開欄位,系統用該客戶去查最近一筆銷售訂單資料:
- 查到:自動帶入 客戶簡稱、業務員編號、收付條件號、收付條件說明、幣別、聯絡人、電話;並依該幣別+報價日期取買入匯率填入匯率欄。
- 查不到:上述欄位清空,幣別退回本位幣。
- 任何情況下若幣別最後仍為空,一律補成本位幣。
小技巧
若帶出的幣別不是你要的,可直接改 Currency;匯率會依新幣別與報價日期重新取得,明細金額隨之重算。
輸入品號(明細 品號Binding)¶
當你在明細 SKU 欄輸入品號並離開欄位,系統會自動帶出該品號的品名、規格、中文描述等資料(透過品號描述服務)。
金額即時重算(SetPrice)¶
明細 Amount 是唯讀,由系統算:
金額 = 單價 × 數量 × 主檔匯率,再依幣別小數位數四捨五入。
下列任一動作都會觸發重算:
- 修改明細 Quantity 或 Unit Price。
- 新增明細列(建立時即綁定主檔並算一次)。
- 修改主檔的幣別或匯率 —— 系統會把所有明細列重新計算一次(透過弱事件監聽
幣別/匯率)。 - 前後筆切換載入舊單時,系統會重設幣別小數位並逐列重算金額。
Find Price(明細列「尋價」按鈕)¶
按某一列的 Find Price:
- 系統先檢查主檔報價日期是否已填,未填會提示輸入。
- 用
主檔客戶 + 該列品號 + 報價日期查詢:該品號最近一筆訂單單價 + 所有歷史報價單價。 - 結果顯示在右側「Customer Quotation Query」面板。
- 在面板選一筆按
取得,把該筆單價回填到目前這列的 Unit Price(並重算金額)。
頁首備註面板(PageHeaderSpecialQueryViewModel)¶
右側「頁首備註」分頁從類別 M207 的設定明細組出抬頭條款文字:
- 每條設定可帶巨集
DATE()+n,系統會展開成今天加 n 天的日期(格式 yyyy/MM/dd)。 - 按
返回會把目前組好的條款依序編號(1. 2. 3. …)寫回主檔 Page Header Notes。
列印(CupdmaPrintViewModel → CUPDMAPRINT)¶
列印 開啟列印條件頁,可依報價單號起訖或客戶+報價日期起訖列印。從已開啟的單據按列印時,單號起訖會預設成目前這張單號。
尚未提供的進階功能
本表單目前未提供轉傳票、附件管理、Excel 匯入等功能;新版亦未包含獨立的簽核流程畫面(主檔雖有審核相關欄位,但無對應操作介面)。
常見問題¶
存檔時擋下來,說「報價日期/生效日期」必填?
這兩個欄位是存檔硬性條件。報價日期與生效日期都不可空白,新增時系統會幫你預設為今天,若被清空請補回。
報價別選「正式」卻存不了?
正式報價(單號 QT 開頭)存檔時強制要求客戶代號。若是詢價或暫存型報價,可改選「其他」(單號 QN 開頭),就不需要填客戶。另外業務員編號在任何報價別都必填。
存檔時出現「資料重複」?
系統不允許同一張報價單裡出現品號+數量完全相同的兩列明細。請檢查是否重複輸入了相同品號又相同數量的列,刪掉多餘的一列即可。
明細金額(Amount)一直是 0?
金額=單價 × 數量 × 匯率。請確認該列數量與單價都已輸入、且主檔匯率不為 0。若改了主檔幣別/匯率,明細會自動重算;改了單列數量或單價也會即時重算。
輸入客戶後沒有自動帶出幣別、業務員等資料?
自動帶值是用該客戶最近一筆銷售訂單回填的。若這個客戶在系統中沒有任何訂單,就帶不出資料,幣別會退回本位幣,其餘欄位需手動輸入。
Find Price 按了沒有反應或提示要輸入日期?
Find Price 需要主檔報價日期已填才會查價;也要先在該列輸入品號、且主檔有客戶。三者齊全才能查到歷史報價與訂單單價。
相關功能¶
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
cupdma-step1.png— 新增報價單主畫面(主檔+明細格線)cupdma-step2.png— 輸入客戶後自動帶值的結果cupdma-step3.png— Find Price 開啟右側「Customer Quotation Query」面板cupdma-step4.png— 頁首備註面板cupdma-step5.png— 列印條件頁(報價單號/客戶兩種模式)