GLM001傳票維護 (GLM001) 新SA文件


傳票維護 (GLM001)

目錄

  1. 程式說明
  2. API 與資料表
  3. 後端 API 說明
  4. 畫面操作說明
  5. 欄位處理說明
  6. 異常訊息與處理
  7. 程式規則
  8. DB 物件說明
  9. 變數意義與操作
  10. 畫面操作流程
  11. 工具列與快捷鍵
  12. 注意事項
  13. 結束語

1. 程式說明

適用對象


2. API 與資料表

負責人員:後端 API 開發人員、儲存程序開發人員

資料表

2.1 GL_VOUCHER_MASTER(傳票主檔)

欄位名稱 PK 資料型態 說明 畫面欄位中文 畫面說明
VOUCHER_NO Y VARCHAR2(12) 傳票編號,唯一性 傳票編號 必填,作為查詢和維護的主要識別碼。
ACCNT_YEAR VARCHAR2(4) 會計年度 會計年度 必填,格式為 YYYY。
ACCNT_PERIOD VARCHAR2(2) 會計期間 會計期間 必填,格式為 MM。
VOUCHER_DATE DATE 傳票日期 傳票日期 必填,格式為 YYYY-MM-DD。
LAST_UPDATE_DATE DATE 最近維護日期 最後維護日 系統自動填入,不需輸入。

2.2 GL_VOUCHER_DETAIL(傳票明細檔)

欄位名稱 PK 資料型態 說明 畫面欄位中文 畫面說明
VOUCHER_NO Y VARCHAR2(12) 傳票編號 傳票編號 對應主檔,必填。
SEQ_NO Y NUMBER(4) 明細序號 明細序號 系統自動產生,不需輸入。
ACCNT_NO VARCHAR2(10) 科目代號 科目代號 必填,按 F9 開啟選擇視窗。
DEBIT_AMT NUMBER 借方金額 借方金額 若為借方金額,則必填且不可為負數。
CREDIT_AMT NUMBER 貸方金額 貸方金額 若為貸方金額,則必填且不可為負數。

3. 後端 API 說明

負責人員:後端 API 開發人員

GLM001Controller 包含多個 API 路由,用於處理傳票的新增、修改、刪除和查詢等操作。以下是詳細說明各個路由的用途、參數、回應結構和錯誤處理:

3.1 GLM001Controller

3.1.1 科目代號查詢

3.1.2 新增傳票

3.1.3 修改傳票

)
{
ApiResult result = new ApiResult();
ServiceResult serviceResult = _voucherService.UpdateVoucher(voucherInput);

  switch (serviceResult.status)
  {
      case CommonEnum.ACTION_STATUS.SUCCESS:
          result.RESULT_CODE = SysMessage.S0000000;
          break;
      case CommonEnum.ACTION_STATUS.FAILURE:
          result.RESULT_CODE = SysMessage.S0000003;
          result.RESULT_MSG = serviceResult.message;
          break;
  }
  return result;

}


#### 3.1.4 刪除傳票
- **API 路徑**:`DELETE /api/GLM001/DeleteVoucher/{voucherNo}`
- **描述**:刪除指定的傳票資料,需確認無沖銷資料才能執行刪除。
- **參數**:
- `voucherNo`(`string`):要刪除的傳票編號。
- **回應**:
- 成功:回傳 `RESULT_CODE` 為 `SysMessage.S0000000`。
- 異常狀況:若存在沖銷資料或刪除失敗,回傳 `RESULT_CODE` 為 `SysMessage.S0000004`,並提供錯誤訊息。
- **程式碼片段**:
```csharp
[Route("DeleteVoucher/{voucherNo}")]
[HttpDelete]
public ApiResult DeleteVoucher(string voucherNo)
{
    ApiResult result = new ApiResult();
    ServiceResult serviceResult = _voucherService.DeleteVoucher(voucherNo);

    switch (serviceResult.status)
    {
        case CommonEnum.ACTION_STATUS.SUCCESS:
            result.RESULT_CODE = SysMessage.S0000000;
            break;
        case CommonEnum.ACTION_STATUS.FAILURE:
            result.RESULT_CODE = SysMessage.S0000004;
            result.RESULT_MSG = serviceResult.message;
            break;
    }
    return result;
}

3.1.5 查詢傳票


4. 畫面操作說明

負責人員:前端開發人員

4.1 新增操作

此圖幫助開發人員了解傳票畫面中每個欄位的位置和名稱,方便在新增和修改操作時進行欄位輸入。


4.2 修改操作


5. 欄位處理說明

負責人員:儲存程序開發人員

欄位名稱 資料型態 說明
公司別(P_COMPANY_ID) VARCHAR2(10) MIS_USER 表中取得,不可為空值。
科目代號(P_ACCNT_NO) VARCHAR2(10) 必須為有效的科目代號,系統自動進行驗證。
借方金額(P_DEBIT_AMT) NUMBER 若金額為負數,則顯示錯誤訊息。
貸方金額(P_CREDIT_AMT) NUMBER 若金額為負數,則顯示錯誤訊息。

6. 異常訊息與處理

負責人員:前端開發人員、儲存程序開發人員

異常訊息 處理方式
公司別不可為空值 顯示錯誤訊息,並阻止操作繼續。
傳票編號重複 顯示錯誤訊息,提示使用者輸入新的傳票編號。
借方金額不可為負 顯示錯誤訊息,要求重新輸入借方金額。
科目代號不存在 顯示錯誤訊息,阻止存檔操作,要求選擇有效的科目代號。

7. 程式規則

負責人員:儲存程序開發人員

  1. 傳票新增規則
  2. 傳票刪除規則

以下是優化後的 8. DB 物件說明,包含每個儲存程序的詳細運作流程、參數說明、SQL 操作細節和錯誤處理邏輯。這樣的格式將更有助於儲存程序開發人員編寫相應的儲存程序。


8. DB 物件說明

負責人員:儲存程序開發人員

本節詳細描述 GLM001 傳票維護中涉及的資料庫物件,包括各儲存程序、函數的用途、參數、運作流程和 SQL 操作細節,以協助儲存程序開發人員正確編寫程式碼。

8.1 儲存程序與函數

物件名稱 類型 說明 相關業務規則
GLM001 Package 包含傳票維護相關的主要邏輯。 負責新增、修改、刪除傳票的業務邏輯處理。
DEL_CHECK_APM Function 檢查應付帳款子畫面是否存在資料。 在刪除傳票前,確認應付帳款是否已沖銷。
DEL_CHECK_ARM Function 檢查應收帳款子畫面是否存在資料。 在刪除傳票前,確認應收帳款是否已沖銷。
CHECK_UNIT Procedure 檢查單位別的有效性。 驗證傳票明細中的單位別是否存在及有效。
GL_CREATE_OFFSET Procedure 建立沖銷餘額。 負責處理沖銷相關的業務邏輯。

8.2 儲存程序與函數詳細說明

8.2.1 Package GLM001

8.2.2 Function DEL_CHECK_APM

8.2.3 Procedure CHECK_UNIT

8.2.4 Procedure GL_CREATE_OFFSET


9. 變數意義與操作

負責人員:儲存程序開發人員

變數名稱 資料型態 說明
P_COMPANY_ID VARCHAR2 公司別,從 MIS_USER 表中取得。

10. 畫面操作流程

負責人員:前端開發人員

  1. 新增傳票流程

    1. 點擊新增按鈕,進入傳票維護畫面。
    2. 輸入科目代號、借方金額、貸方金額等資訊。
    3. 點擊存檔按鈕,完成新增操作。
  2. 修改傳票流程

    1. 輸入查詢條件後,點擊查詢按鈕。
    2. 選擇要修改的傳票,更新相應資訊。
    3. 點擊存檔按鈕,完成修改。

11. 工具列與快捷鍵

負責人員:前端開發人員

快捷鍵 功能描述
F4 刪除目前選中的資料。
F9 開啟科目代號選擇視窗。

12. 注意事項

適用對象:全體開發人員


13. 結束語

本文件為開發人員提供傳票維護系統的使用流程、API 設計、資料表結構、異常處理和操作規則。請在開發過程中參考本文件。