DCFP101Controller
是一組 Web API,用於進貨應付帳款傳票作業。該 API 包含多項功能,包括交易區分查詢、進貨應付帳款傳票暫存檔查詢、資料轉入、傳票生成,以及檢核 DC 代號等操作。本文將詳細描述每個 API 方法的運作流程、使用情境、輸入與輸出格式,以及檢核邏輯。
[Authorize]
屬性,任何用戶都可以調用。使用者在進行進貨資料管理時,需要選擇交易類型(例如:買賣、代購)。當使用者點擊前端的下拉選單時,前端會調用 GetBusTypeList
API 來獲取交易類型選項。
GET
請求到 GetBusTypeList
API。_commonService.QueryBusTypeForBPTypeResult()
,從資料庫中取得交易類型列表。ACCT_MNO
)、賬戶子編號(ACCT_RNO
)。CodeReference_OutputVo
)"A"
(表示買賣)。"買賣"
。{
"RESULT_CODE": "S0000001",
"RESULT_MESSAGE": "查詢成功",
"RESULT": [
{
"CODE_NO": "A",
"CODE_DESC": "買賣",
"ACCT_MNO": "12345",
"ACCT_RNO": "67890"
},
{
"CODE_NO": "F",
"CODE_DESC": "代購",
"ACCT_MNO": "23456",
"ACCT_RNO": "78901"
},
{
"CODE_NO": "99",
"CODE_DESC": "全部",
"ACCT_MNO": "",
"ACCT_RNO": ""
}
]
}
[Authorize]
屬性,任何用戶都可以調用。使用者想要查詢某月份的進貨應付帳款,輸入查詢條件(結帳年月、結帳期間、DC 代號、交易區分),然後點擊查詢按鈕。
使用者在查詢條件輸入框中填寫以下資訊:
結帳年月
: "202408"
結帳期間 起
: "2024-08-01"
結帳期間 迄
: "2024-08-31"
DC 代號
: "DC001"
交易區分
: "A"
前端將這些資訊打包成 JSON 格式,並發送 POST
請求到 Query
API:
{
"P_YYMM": "202408",
"P_SDATE": "2024-08-01",
"P_EDATE": "2024-08-31",
"P_DC_CODE": "DC001",
"P_BUS_TYPE": "A"
}
API 調用 _service.QueryResult(inputVo)
,根據 DCFP101_InputVo
中的查詢條件到資料庫中檢索符合的進貨資料。
API 將查詢結果組合成 DCFP101Q_OutputVo
物件,並打包成 JSON 格式返回給前端。
DCFP101_InputVo
)"202408"
)。"2024-08-01"
)。"2024-08-31"
)。"DC001"
)。"A"
)。DCFP101Q_OutputVo
){
"RESULT_CODE": "S0000001",
"RESULT_MESSAGE": "查詢成功",
"RESULT": [
{
"O_BUS_TYPE": "A",
"O_ACCT_DATE": "2024-08-15T00:00:00",
"O_CNT": 5,
"O_AMT": 5000,
"O_TAX": 250,
"O_EXPECT": 200,
"O_DIF": 50
}
]
}
流程圖: : 流程圖
[Authorize]
屬性,必須經過身份驗證的用戶才能調用。使用者從供應商那裡獲取了一份進貨資料的 CSV 文件,希望將這些資料匯入系統中。該 API 包含前端資料檢核,以確保資料的正確性。
使用者點擊「資料轉入」按鈕,前端將 CSV 文件內容及相關資訊(如匯入月份、DC 代號、交易區分)打包成 JSON,並發送 POST
請求到 Procedure_Ins_WDS_Data
API:
{
"P_YYMM": "202408",
"P_SDATE": "2024-08-01",
"P_EDATE": "2024-08-31",
"P_DC_CODE": "DC001",
"P_BUS_TYPE": "A",
"fileContent": "DOC_NO,INVOICE_NO,AMT,TAX\nDOC001,INV202408001,5000,250\nDOC002,INV202408002,3000,150"
}
資料檢核:
IsInsWDSDataFieldCheck
方法,對輸入的資料進行檢核,確保資料格式和內容的正確性。執行儲存程序:
P_BUS_TYPE
的值來決定執行哪個儲存程序:P_BUS_TYPE
為 "A"
,則執行 INS_WDS_DATA_A
。P_BUS_TYPE
為 "F"
,則執行 INS_WDS_DATA_F
。結果處理:
"RESULT_CODE": "S0000001"
並記錄成功訊息:「預存程序 INS_WDS_DATA_A 執行完成」。P_ERRMSG
欄位將包含錯誤資訊。DCFP101_InputVo
):DC 代號。
DCFP101_OutputVo
){
"RESULT_CODE": "S0000001",
"RESULT_MESSAGE": "預存程序 INS_WDS_DATA_A 執行完成",
"RESULT": {
"P_ERRMSG": ""
}
}
[Authorize]
屬性,必須經過身份驗證的用戶才能調用。使用者已經匯入了某月份的進貨資料,並核對無誤。希望生成對應的會計傳票。
使用者點擊「生成傳票」按鈕,前端將條件打包成 JSON,發送 POST
請求到 Function_DCFP101v
API:
{
"P_YYMM": "202408",
"P_SDATE": "2024-08-01",
"P_EDATE": "2024-08-31",
"P_DC_CODE": "DC001",
"P_BUS_TYPE": "A"
}
資料檢核:
IsDCFP101vFieldCheck
方法對輸入資料進行檢核,確保內容正確。執行儲存程序檢核:
Procedure_Check_Data
進行進一步檢核,若有異常,則返回錯誤訊息。Function_DCFP101v
生成傳票。成功時提交資料,失敗則回滾。結果處理:
SUCCESS
並記錄成功訊息:「傳票產生完成」。DCFP101_OutputVo
中的 P_ERRMSG
。DCFP101_OutputVo
){
"RESULT_CODE": "S0000001",
"RESULT_MESSAGE": "傳票產生完成",
"RESULT": {
"P_ERRMSG": ""
}
}
[Authorize]
屬性,任何用戶都可以調用。使用者在輸入 DC 代號時,想要確認該代號是否正確並存在於系統內。
POST
請求到 CheckDCCode
API:{
"DC_CODE": "DC001"
}
_ddpdDao
對 DC 代號進行檢核,確認該代號是否存在於 DCFM103
表中。ServiceResult<bool>
)"S0000001"
代表成功。"檢核成功"
或 "在參數檔 DCFM103 中無 DC 代號"
。true
代表 DC 代號有效,false
代表無效。成功情況:
{
"RESULT_CODE": "S0000001",
"RESULT_MESSAGE": "檢核成功",
"RESULT": true
}
無效情況:
{
"RESULT_CODE": "S0010001",
"RESULT_MESSAGE": "在參數檔 DCFM103 中無 DC 代號",
"RESULT": false
}