設計理念:
Tag 可以視為「專案」、「分類」、「預算」......等等,最重要的是可以一對多,一筆帳務明細對應到多個 tag。
例如,假設同時記錄全家人的收支時,可能會想將帳務細分為「由誰支出」、「花在誰身上」、「花在哪個特定的事件上」或是同時要區分上述所列的項目,可以建立以下 tag:
支付人.A
支付人.B
花費使用人.C
花費使用人.D
專案.X
專案.Y
然後在一筆明細中設定多個 tag:
支付人.A、
花費使用人.C、
專案.X
來表示這筆花費屬於專案 X,且是由 A 支付、花在 C 身上。(會太斤斤計較嗎?哈哈!)
接著可以透過報表或查詢功能去篩選某一期間、某些 tag,來查看收支的情形。
基本上,tag 和 account 的性質有點類似,可以把 account 視為實體帳戶,例如現金、銀行帳戶等等真的有實體存在;而 tag 可視為虛帳戶,例如同一個銀行帳戶裡的資金可能會劃分不同的用途。
透過 account 和 tag 的搭配,便可以同時達到彙整帳務或是細分帳務的目的。
功能需求:
1. Tag 管理畫面與帳本管理雷同
2. 點選 icon 後,顯示 tag 清單
3. 按 menu 出現「新增」按鈕
4. 長按清單項目出現「編輯」、「刪除」、「複製」按鈕
5. TB_TAG 記錄 tag 資訊
6. TB_DETTAG 記錄 details 和 tags 的對應關係資訊
7. 報表僅提供一 icon,進入後畫面與現有報表雷同,但最右側按鈕改為「週」、「月」、「年」、「日」
「自訂區間」切換呈現。
8. 同 tag 中金額計算
根據記帳時 to account 的借貸性質進行加減。to account 為資產時金額為正,其餘金額為負。
9. 「匯出 CSV」、「匯入 CSV」兩功能需加入 TB_TAG 和 TB_DETTAG。
PS1. 圖表有必要嗎?(不想做)
基本上如果做完這樣的功能,我也懶得再做預算功能了......
我自己做了一張很醜的圖
標籤管理
建立/修改明細時,可設定標籤。
標籤是多選形式。
標籤金額的報表
目前進度到 6.,其實有點卡住,
有很多東西可以和原本 Account 的處理共用,但是如果要做 refactoring,大概就得大改;倘若只是硬加上新功能的話,感覺又有很多重複的程式,真是兩難;另一方面,不太清楚原作者程式架構的設計理念,新加入的東西似乎有點格格不入。
就跟做專案一樣,每個人的程式撰寫風格都不同,也很難鉅細靡遺地規範程式應該怎麼寫;不論好壞與否,總是會有歧異而增加維護、修改的難度。