pretty code

2009年8月9日 星期日

EasyPMT 前置工作

下面只是之前使用 file 當 db 的想法
如果要使用 SQLite
需要重新考量一番

SmartMoney UltraMoney

1.Account.db(記錄會計科目資訊)
a.類型(A,L,Q,R,E)
b.順序(會計科目設定畫面之顯示順序)
c.編號(1000,2000,3000,4000,5000 以此做分類帳科目的依據)
d.名稱(真正的名稱)
e.母科目(沒有為0...有則為母科目的編號)
f.層級(哪一層的科目...1(Root)...2(Sub)...應該為母科目加1)
g.預算(以月為單位)

原則上可以有無限層的子科目...但希望最好不要
/*
第一層科目假設叫 "食"
第二層就叫    "食.早餐"
第三層就叫 "食.早餐.美而美"
其他以此類推..總之在不超過999個下..要幾層就給他幾層
*/

.db的第一個位移量會記錄各類型科目的最後一個索引...以加速新增科目

//Account科目索引
struct SAccountIndex
{
int iAssetIndex;
int iLiabilityIndex;
int iRevenueIndex;
int iExpenseIndex;
//補齊用
char szTmp[112];

};

#define NAMEMAX 100
struct SAccount
{
//類型(A,L,Q,R,E)
char chType;
//順序(會計科目設定畫面之顯示順序)
int iOrder;
//編號(1000,2000,3000,4000,5000 以此做分類帳科目的依據)
int iNumber;
//名稱(真正的名稱)
char szName[NAMEMAX+1];
//母科目(沒有為0...有則為母科目的編號)
int iParent;
//層級(哪一層的科目...1(Root)...2(Sub)...應該為母科目加1)
int iLayer;
//預算
int iBudget;
};

2.PMT Account

1-Cash
Bank-台新
Bank-臺企
Bank-華南
Bank-郵局
投資
暫付款
零用金
扣繳
2-Card-華銀卡
Card-台新卡
暫收款
4-Salary
出差旅費
信用卡紅利
利息
中獎
二手
投資收益
其他收入
51-食-早餐
-午餐
-晚餐
-零食
-其他食
52-衣-衣服
-褲子
-鞋襪
-配件
-剪髮
-其他衣
53-住-水費
-電費
-瓦斯
-電話
-管理費
-手機
-網路
-手續費
-大賣場
-其他住
54-行-汽車-停車
-洗車
-加油
-保養
-修理
-稅捐
-汽保
-回數票
-捷運
-公車
-計程車
-火車
-飛機
-其他行
55-育-書報
-電腦-軟體
-硬體
-文具
-補習
-其他育
56-樂-漫畫
-唱歌
-電影
-其他樂
57-醫藥(有憑證)
58-醫藥(無憑證)
59-家人借支
60-紅白包
61-投資手續
62-投資損失
63-綜所稅
64-保險
65-捐助

3.資料庫架構
DataBase - 2007 - Account.db
- Journal.db
- Ledger - 1000 - 1001.db
|
1xxx.db

- 2000 - 2001.db
|
2xxx.db

- 3000 - 3001.db
|
3xxx.db

- 4000 - 4001.db
|
4xxx.db

- 5000 - 5001.db
|
5xxx.db

.db的第一個位移量會擺各月份第一筆資料的索引...以加速查詢

4.Account資料結構

typedef unsigned int CASHUNIT;
#define NOTEMAX 100

struct SEntry
{
//類型
char chType;
//科目編號
int iNumber;
//金額
CASHUNIT Price;
//統一發票號碼
int iInvoice;
//摘要針對各科目
char szNote[NOTEMAX+1];
};

5.Journal資料結構

6.Ledger資料結構

7.功能
a.編製傳票(複合分錄)
b.日記帳
c.分類帳
d.資產負債表
e.損益表
f.統一發票對獎
g.餘額分析
h.預算分析

8.UI介面

9.判斷複合分錄

比較有可能為以下兩種:
a.
Debit Asset
Credit Revenue (收入發生)
Credit Liability (借錢之類)
Credit Asset (轉帳交易)
b.
Debit Expense
Credit Asset (以資產支付費用)
Credit Liability (以負債支付費用)

原則上以上述方法評斷各交易單科科目實際金額
判斷後再跳出確認視窗讓使用者檢查

10.分錄之新增、刪除、修改

新增:
刪除:
修改:

11.科目之新增、刪除、修改

新增:
刪除:
修改:

沒有留言: