程式資訊
- 程式 ID:
SLIYCTR - 所屬子系統:Other
- 狀態:stable
轉總帳傳票¶
功能簡介¶
「轉總帳傳票」是一個共用彈窗,負責把各模組的財務單據(應收/應付帳款、固定資產折舊、預付費用攤提、費用申請單、財務單)自動轉成總帳傳票(SLIY)的草稿,讓會計人員在確認借貸分錄後一次存入總帳。它不是從主選單獨立開啟的程式,而是由六支來源表單透過 轉傳票/延伸功能 叫出來的子畫面,共用同一個 View(SliyTurn.xaml)與同一支 ProgramClass(SLIYCTR)。
整個視窗分成兩個頁籤:
- 條件頁(來源頁):依「來源表單」不同而異,輸入查詢區間/客廠代號等條件,按
轉傳票撈出符合條件、且尚未轉過傳票的單據,由後端 SP 預先排好借貸分錄。 - 轉傳票資料頁:顯示系統排好的母傳票清單與每張的明細分錄。會計人員可勾選要轉哪幾張、合併同性質的母傳票、補登或微調分錄,確認借貸平衡後按
儲存寫入總帳。
適合會計/出納人員在月結、立帳、攤提折舊時,把各模組已發生的交易批次過帳到總帳,省去逐筆手key傳票。
前置需求¶
- 權限:來源表單(應收/應付、固定資產、預付費用、費用申請、財務單)的
SLIYCTR 轉傳票操作權限;轉出後的傳票會進總帳傳票(SLIY),亦需總帳的新增權限。 - 基礎資料:轉出結果的正確性取決於下列資料——
| 資料 | 影響的結果 |
|---|---|
| 來源單據本身(收付款單、折舊明細、攤提、費用申請、財務單) | 撈不到資料時整段空白;已轉過傳票(傳票號碼非空)的單據不會再被撈出 |
| 會計科目主檔 | 後端 SP 依財務類別/資產別自動帶的科目代號;補登分錄時的科目搜尋 |
| 公司代碼(公司基本資料) | 母傳票的公司代碼,未設會擋存檔 |
環境設定:定額零用金標準作法(_prgpar 2034) |
影響費用申請單來源撈取的進銷分類範圍 |
| 環境設定:功能幣/集團幣小數位數 | 功能幣、集團幣金額的四捨五入位數 |
操作步驟¶
步驟① 從來源表單開啟轉傳票視窗¶
- 在來源表單(例如收款單、固定資產、費用申請單)按
轉傳票(多由工具列的延伸功能鍵叫出)。 - 系統開啟轉傳票彈窗,預設停在條件頁。各來源的預設條件不同:
- 應收/應付/財務單:起訖異動立帳日期預設為「7 天前~今天」。
- 固定資產/預付費用:折舊(攤提)年月預設為當月(
yyyy/MM)。 - 費用申請單:異動立帳日期預設為今天,可輸入廠商代號過濾。
步驟② 設定條件並查詢¶
- 輸入條件頁的查詢欄位(區間、客廠代號等,視來源而定)。
- 按
轉傳票。系統呼叫對應的後端 SP(如DARB_TUR_SLIY_AR、DARB_TUR_SLIY_ASSET)撈出尚未轉過傳票的單據,並預先排好每張母傳票的借貸分錄。 - 若無符合資料,會跳出「無資料」提示,停留在條件頁。
- 撈到資料後,系統自動切到轉傳票資料頁,並把所有母傳票預設勾選。
注意
後端 SP 在撈取的同時會鎖住來源資料(LockedSource),避免轉傳票過程中同一批單據被重複轉。若中途取消,鎖會在後端釋放。
步驟③ 在轉傳票資料頁挑選與調整¶
上方 grid 是「母傳票」(一張單一列),下方 grid 是目前選取母傳票的「明細分錄」。
- 挑選要轉的母傳票:
- 逐張:點該列的
選擇按鈕切換勾選;或直接在 選擇 欄打勾。 - 全部:按左下角
全選/取消一鍵切換全選或全不選。
- 逐張:點該列的
- 檢視/微調明細分錄:點母傳票列,下方顯示其分錄。每列可改 摘要、幣別、匯率、原幣借方/貸方、科目以及四個分類索引、客廠代號等。本幣借貸、功能幣、集團幣金額為唯讀,由系統換算。 3.(選用)補登分錄:在明細 grid 上以「新增」一次補 10 筆空白分錄列,掛在目前選取的母傳票下,用來補平借貸或加分錄。空白列(沒科目或金額為 0)存檔時會自動略過。 4.(選用)合併母傳票:見欄位連動與附加功能的「合併母傳票」一節。
步驟④ 儲存(寫入總帳)¶
- 確認每張要轉的母傳票借貸平衡、且已填公司代碼。
- 按工具列的
儲存。系統把勾選的母傳票與其明細寫進總帳暫存並上傳,成功後顯示成功訊息與新傳票 PKID。 - 存檔成功後本視窗會自動關閉並回到來源表單。
小技巧
存檔前若想放棄,按工具列 取消 即可;本視窗按 取消 後同樣會關閉、回到來源表單。轉出後若要把已轉的傳票退掉,請見「沖銷(解除已轉傳票)」一節。
欄位說明¶
條件頁欄位(依來源不同)¶
| 欄位 | 必填 | 說明/預設 |
|---|---|---|
| 異動立帳日期(起/訖) | ✔ | AR/AP/財務單的查詢區間,比對來源單據的立帳日期;預設 7 天前~今天 |
| 客戶代號(起/訖) | — | AR 用,預設起=空、訖=zzzzz(全部) |
| 廠商代號(起/訖) | — | AP 用,預設起=空、訖=zzzzz(全部) |
| 折舊/攤提年月 | ✔ | 固定資產、預付費用用,格式 yyyy/MM,預設當月 |
| 廠商代號 | — | 費用申請單用,輸入後自動帶出廠商名稱 |
| 異動立帳日期 | ✔ | 費用申請單用,預設今天 |
轉傳票資料頁 — 母傳票 grid(上方)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 選擇 | ✔ | 是否把這張母傳票轉入總帳;按 選擇 鈕或勾選欄皆可 |
| 編號 | — | 系統流水號(VirtualLineNo,四位) |
| 合併碼 | ✔ | 填相同代碼的母傳票,可用 合併 鈕併成一張(見下方說明) |
| 過帳備註/傳票日期/傳票種類 | — | 由後端 SP 帶入;公司代碼取自環境設定的公司代碼 |
| 功能幣匯率/集團幣匯率 | — | 預設皆為 1(業務上本幣=功能幣=集團幣,見下方說明) |
| 是否過帳/轉入類別/轉入備註 | — | 後端帶入的過帳狀態與來源標記 |
轉傳票資料頁 — 明細分錄 grid(下方)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 序號 | — | 分錄列序 |
| 科目代號/科目名稱 | ✔/— | 科目代號可用搜尋欄帶出,名稱唯讀;後端依單據性質預帶 |
| 摘要 | ✔ | 分錄摘要 |
| 幣別/匯率 | ✔ | 幣別=本位幣時匯率自動鎖為 1 |
| 原幣借方/原幣貸方 | ✔ | 輸入原幣金額,系統換算本幣 |
| 本幣借方/本幣貸方 | — | 唯讀,由原幣 × 匯率換算;借貸平衡以本幣判斷 |
| 功能幣借/貸、集團幣借/貸 | — | 唯讀,依功能幣/集團幣匯率換算 |
| 分類索引 1~4/客廠代號/部門/工號/員工 | ✔ | 分錄的輔助分類,可用各自的搜尋欄帶出 |
| 產品群組/品號/單別1~3/單號1~3/財務單id | — | 唯讀,來源單據的勾稽資訊 |
欄位連動與附加功能¶
這一節把「按某欄位/某按鈕後系統會做什麼」全部列出,全部來自實際程式碼。
六種轉入來源(同一視窗的六張臉)¶
轉傳票視窗由 ToGeneralLedgerWindowViewModel(ProgramClass=SLIYCTR)承載,條件頁則依「從哪支表單進來」換成對應的條件 ViewModel 與後端 SP:
| 來源表單 | 條件 ViewModel | 後端 SP | 條件欄位 | 進入點 |
|---|---|---|---|---|
| 應收帳款(收款) | ArToGlViewModel |
DARB_TUR_SLIY_AR |
異動立帳日期起訖、客戶代號起訖 | 收款單延伸功能 |
| 應付帳款(付款) | ApToGlViewModel |
DARB_TUR_SLIY_AP |
異動立帳日期起訖、廠商代號起訖 | 付款單延伸功能 |
| 固定資產折舊 | AssetToGlViewModel |
DARB_TUR_SLIY_ASSET |
折舊年月 | 固定資產延伸功能 |
| 預付費用攤提 | AccexpToGlViewModel |
DARB_TUR_SLIY_ACCEXP |
攤提年月 | 預付費用延伸功能 |
| 費用申請單 | PayapplyToGlViewModel |
DARB_TUR_SLIY_PAYAPPLY |
異動立帳日期、廠商代號 | 費用申請單延伸功能 |
| 財務單 | FtrlimaToGlViewModel |
DARB_TUR_SLIY_FTRLIMA |
異動立帳日期起訖 | 財務單延伸功能 |
- 當你按條件頁的
轉傳票,系統把你輸入的條件塞進對應 BLL,呼叫後端 SP 撈資料;只撈「傳票號碼為空」(尚未轉過)的單據。以應收為例,還會限定程式類別為收款、財務類別屬於應收/預收等類別,且「本幣應收付 ≠ 0」。 - 費用申請單另依環境設定
_prgpar2034(定額零用金是否採標準作法)決定撈取範圍:設為Y時不納入零用金 A/B 類進銷分類,否則一併撈入。 - 撈到資料後,系統自動切到轉傳票資料頁、補算母傳票合計、並把所有母傳票預設勾選。
母傳票合計自動補算(開啟資料頁時)¶
當資料載入轉傳票資料頁(SliyctrViewModel.Init),系統逐張母傳票做下列補算:
- 把每張母傳票的編號補成四位流水號、預設勾選。
- 修補匯率 0 的洞:若某明細的功能幣匯率/集團幣匯率為 0,自動補成 1;若功能幣/集團幣金額為 0 但本幣金額不為 0,用「本幣 × 匯率」回算,避免固定資產/預付費用這類來源因未設匯率而顯示金額 0。
- 把每張母傳票底下所有明細的原幣/本幣/功能幣/集團幣借貸加總,顯示在右下角的合計區。
功能幣/集團幣匯率固定為 1
這六種來源的轉傳票,功能幣匯率與集團幣匯率一律 hard-code 為 1(公司目前不做多幣別功能幣換算,本幣=功能幣=集團幣),這是業務決策而非錯誤。因此功能幣、集團幣金額等於本幣金額。
選擇 與 全選/取消¶
- 按某列的
選擇鈕:切換該母傳票的勾選狀態(勾選欄打勾=會被轉入)。 - 按左下
全選/取消:在「全選」與「全不選」之間切換所有母傳票。 - 勾選與合併碼連動:在母傳票輸入合併碼會自動把該列設為勾選;清空合併碼則自動取消勾選。
合併母傳票(合併)¶
當多張母傳票要併成一張傳票(例如同一天多筆收款想合開一張傳票):
- 在要合併的數張母傳票的 合併碼 欄填入相同的代碼。
- 在其中一張(作為主檔)按
合併鈕。 - 系統把所有「合併碼相同、但不是這張」的母傳票底下的明細,改掛到這張主傳票(重設 linkid),使它們合併成一張。
合併前要先填合併碼
按 合併 時若該列合併碼是空白,會跳出「請輸入合併碼」提示。合併會先做一次還原(把所有明細的 linkid 重設回各自母傳票),再依目前合併碼重新歸併;因此可反覆調整合併碼再按。存檔時,被併走明細、變成空殼的母傳票會自動標記刪除、不會產生空傳票。
補登分錄(明細 grid「新增」)¶
- 在明細 grid 觸發新增時,系統一次補 10 筆空白分錄列,掛在目前選取的母傳票下。
- 用途:補平借貸或加額外分錄(如手續費、稅)。
- 空白列(沒填科目或借貸金額皆為 0)在存檔時會被自動標記刪除、略過,不影響結果。
存檔時的檢核與換算(儲存)¶
按 儲存 時,系統對每張勾選的母傳票做下列把關(ToSliyBll.AllowSave):
- 借貸平衡檢核:以本幣借方總額=本幣貸方總額為準,不平衡會擋存並提示是哪一筆(Line No)。
- 公司代碼檢核:母傳票沒填公司代碼會擋存,提示「請先輸入公司代碼」。
- 空母傳票清理:合併後沒有明細的母傳票自動標記刪除。
- 明細清理:本幣借貸皆為 0 或沒科目的明細列自動標記刪除。
- 金額換算:幣別=本位幣時匯率鎖 1;再用功能幣/集團幣匯率把本幣借貸換算成功能幣、集團幣金額(依環境設定的小數位數四捨五入)。
- 主從對應定死:寫進暫存前重編母傳票 pkid,並讓明細的 linkid 跟著對齊(避免固定資產/預付費用這類建檔時母傳票 pkid=0 的單據,進 SQLite 被重配號而錯亂主從)。
- 全數通過後寫入總帳暫存(SLIY 母/明細)並上傳;成功顯示新傳票 PKID。
沖銷(解除已轉傳票)¶
部分來源(應收、應付、費用申請)在條件頁提供 解除/沖銷 功能,用來把已經轉出的傳票退掉:
- 應收:可依沖銷單號單筆沖銷,或依沖銷客戶+沖銷日期整批沖銷;兩者皆會跳「Remove transfered data from voucher?」確認,確認後呼叫
PRIME_UNDOSLIY後端 SP 刪除對應傳票,成功提示「刪除完成」。沖銷客戶/單號為空會提示請輸入。 - 應付:依沖銷單號沖銷,流程同上。
- 費用申請單:依沖銷單號沖銷。
沖銷是刪傳票,動作不可逆
沖銷會直接把對應的總帳傳票刪除(再轉一次即可重新產生)。請先確認沖銷單號/客戶正確,再按確認。
視窗開關行為¶
本視窗在進入轉傳票流程時,會把「存檔後關窗」與「取消後關窗」都強制設為是(覆寫一般 _prgpar 24 的預設):
- 轉傳票成功後(
AfterSave),視窗設定DialogResult = true並自動關窗,回到來源表單並刷新資料。 - 取消(
AfterCancel)設定DialogResult = false,同樣自動關窗,回到來源表單。
常見問題¶
按了 轉傳票 卻顯示「無資料」?
系統只撈尚未轉過傳票(傳票號碼為空)的來源單據;應收/應付/費用申請單另要求本幣金額不為 0。請確認:(1) 查詢區間/客廠代號涵蓋到目標單據;(2) 這批單據還沒被轉過傳票(轉過的不會再出現);(3) 來源單據確實有立帳/折舊/攤提資料。
明細的功能幣/集團幣金額或匯率是 0?
正常情況下系統會在載入資料頁時把 0 的功能幣/集團幣匯率補成 1、並用本幣回算金額。若仍為 0,多半是該明細本幣金額也是 0(空白列),會在存檔時被自動略過,不影響結果。功能幣/集團幣匯率本就固定為 1(本幣=功能幣=集團幣),詳見欄位連動與附加功能。
按 儲存 出現「借貸不平衡,無法儲存」?
系統以本幣借方總額=本幣貸方總額判斷,且會指出是哪一筆(Line No)。請點該母傳票,檢查明細的原幣借貸金額;可用明細 grid 的「新增」補一筆分錄補平差額。
存檔被擋,提示「請先輸入公司代碼」?
被勾選要轉的母傳票必須有公司代碼。母傳票公司代碼取自環境設定的公司代碼,若被清空或來源未帶,補上正確公司代碼再存。
合併沒生效,或產生了空白傳票?
合併要在每張要併的母傳票填相同合併碼,再在其中一張按 合併。被併走明細的母傳票會變空殼,存檔時自動刪除、不會留下空傳票;若仍看到,確認是否已重新按 合併 套用最新合併碼。
轉錯了想退掉傳票怎麼辦?
應收/應付/費用申請的條件頁提供沖銷功能,依沖銷單號(應收另可依客戶+日期整批)刪除對應傳票後重轉。固定資產/預付費用/財務單若無沖銷入口,請改由總帳傳票端作廢該傳票後重轉。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/Other/images/):
sliyturn-step1.png— 從來源表單按轉傳票開啟的條件頁(建議以應收或固定資產為例)sliyturn-step2.png— 轉傳票資料頁全貌(上方母傳票 grid、下方明細分錄、右下合計區)sliyturn-step3.png— 合併碼填寫與合併鈕操作sliyturn-step4.png— 沖銷確認對話框(Remove transfered data from voucher?)