2010-03-31 13:39:14很好!VeryGood

會計資訊系統 1/2 - Project A s01.04

[Description]
主要使用 ASP.NET MVC 2 的技術,目標實作整個會計循環,目前僅進度到"平時會計程序",而會計的實現、支付收取、時間有微妙的關聯,又考慮到"及時"的因素,"期末會計程序"將更複雜,這就留待 Project A stage 2。
看到會計本科系的網站才發現他們的課程納入了"股票",那時才想到法人、自然人可能自行發行股票或作金融避險投資,可是我手上的參考書 lag 很久了,還得想辦法另外研究學習。

[Known Bugs and Unfinished]
1.在 view 中,使用 getJOSN 方法去取回資料的控制項,當該資料來源異動,該控制項將無法取回新的資料。沒 postback,後來看 MvcContrib 的 Grid 的換頁功能,有點領悟處理這個問題的概念...。
2.想再加入 membership 的功能。但考慮到之前預設立場支援各資料庫系統,各家資料庫系統支援 membership 的資料結構不同,要花時間查找免費的 provider,api 使用方法名稱大同小異,要想一下怎麼套用一下 design pattern。使用者權限還要考慮到"程式"(譬如本專案的會計科目表理應僅能供特殊群組的人使用)的使用權限,預期大概是擴充原本 ADO.NET Membership 的功能。
3.本系統用 SQL Server 2008 with Entity Framework,想再支援較冷門的資料庫配合我少嘗試的存取方式,不想用以前玩到了無新意的 ADO.NET,Linq to SQL 也不想用,因為 Linq to SQL 功能太好用了很少會碰到問題,那麼決定 next stage 在 view 層內嵌 Silverlight Business Application with WCF RIA Services,一樣由 Repository Pattern 來控管資料層。
4.前陣子看到老外寫的 ASP.NET MVC 1 專案用 DDD + TDD,超羨慕。那麼 next stage 我也想用 C# 4 的 dynamic type 來搞 TDD,這之前也先去了解別人怎麼去玩 DDD。一般來講實作的程式碼不該有"專業領域"的邏輯,UI 控制、資料存取都不會受該邏輯的影響,一開始就這樣的策略,後續維護也較輕鬆。
5.還是得針對已寫好的方法去補齊 unit testing。
6.多國語言?

[Screenshots and Preview]
本系統一筆交易的記帳時間就是 keyin 當下的年月日時分秒微秒,不給作假帳,因此以下的範例無法實現交易的時間。
首先呢,假設有間公司於8月份發生下列交易:
8/1 依面額發行普通股10000股,每股面額10,取得現金100000。
8/3 購買文具用品3000。
8/4 支付本月房租10000。

第一筆交易我寫程式的時候已經做了,那就pass吧,來看第二筆。先點"Create New"來新增。


對了,請先自行上網 google "會計科目中英文對照及編碼",下載個 doc 檔回來。查到文具用品的順序關係是:營業費用(6)->推銷費用(61)->推銷費用(615)->文具用品(6153),一級科目的下拉選單連"營業費用"都沒有,又要自己慢慢建了...。


上面的tab還真方便,點選會計科目表來新增一下會計科目。


先來新增一級科目。


資料寫進去了。以此類推,其他的不多作說明了。


需要的會計科目新增好後,回頭來新增我們要的交易,先新增的是一筆借方。會計科目後括號了它的編碼,那是因為有同樣名稱的會計科目名稱,方便辨別用。


新增成功後,自動返回該筆交易的交易明細,繼續新增貸方以符合會計恆等式。



滑鼠隨便點幾下,一筆交易完成了。一眼就可以看出借方貸方是否平衡。交易明細的"日期時間"好像有點雞肋,每筆項目的時間絕對是依樣的。


接下來我們直接點"試算表",驗證一下我們 keyin 數值的時候有沒打瞌睡。喔~表格跑位了,這是 ASP.NET MVC 與 ReportViewer 相容性的問題。OYa! 總和的會計平衡了,這表示我們沒打瞌睡。



繼續補完第三筆交易。房租的會計科目:營業費用(6)->推銷費用(61)->推銷費用(615)->租金支出(6152),這下可以少建三個會計科目了,只要建"租金支出"就可以了。之前建好的資料跑到第三頁了,劃粗線的地方不能選1, 2, 3...這樣翻頁找資料,沒幾天滑鼠就要換一支了吧。ASP.NET MVC 熱潮剛剛興起,很多東西的支援度還是比不上 ASP.NET,不過慢慢地時間會帶來更多有價值的應用發展。


輸入完三筆交易資料後,再點選"試算表",然後點選那個軟碟磁碟片的符號,輸出PDF就可以看到下面的畫面。


會計循環的"平時會計程序"就到這邊結束啦。疑?那過帳以及分類帳呢?電腦是用來減輕人類的負擔,用手記帳當然要過帳到分類帳,對照類頁對到眼花,交給電腦的話這些工作就可以減免了。

[Download]
http://cid-bf301c8d307d8b07.skydrive.live.com/self.aspx/.Public/MvcApplication2.zip