Home Finance Actives' Design 家庭理财软件的设计
2008-02-27 16:39
302 查看
Home Finance Actives’ Design
Copyright by Alva Chien, 2006 - 2008
· Base currency. The base currency used to calculate the amount of the finance activities. All foreign currency transaction can be converted into the base currency via the exchange rate.
· Exchange rate. The exchange rate defines the rate between the foreign currencies with the base currency. The system implements this functionality as a table, which allows the user to define several exchange rates into it. Each row in the table also with time dependence then the system will search the exact exchange rate out with the current date.
· Financial period. The system allows each account to define a financial period, and those data have been stored as customizing data. And the user can also decide whether to let the system generate ‘Opening’ and ‘Closing’ document automatically for the period opening and closing except the journal.
Each account must be assigned to a category. And the system supports a virtual mode of the account, and the virtual account located the bottom of the hierarchy if they existed.
1.
1.1.1
· Normal. This category also a default one for an account. Debit on a normal account means increasing the amount, and credit means the amount’s decrease.
· Equipment. This category is used for an asset account. The equipment account can’t post any document, it should only contain the equipment, and the user can maintain the equipment’s current price to accumulate the amount difference.
· Cash. A cash amount means it can’t be negative.
· Savings. A saving amount also can’t be negative, but it will hold the information about the bank card number, deposit number, as well as the bank information.
· CreditCard. The category used for the credit card. It also includes the bank information, and bank card number, the max limitation, the invoice day, last payment day, etc.
· Liability. The category means the account is used to recording liability. Debit on a liability means the decrease the amount, and credit on it means the amount’s increase. Just like “Account Payable“.
· Creditor. The category is used to mark as creditor. Just like “Account receivable”. It acts as the same as the normal one, and the difference with the normal account in working out the results.
A real (non-virtual) account can be split several virtual accounts. For example, a cash account could be several accounts’ migrations, and when posting a document to this real account, the system allows the user to choose a virtual account as additional information.
The members of the account group are quite simple, including the group’s name, comment, and create time.
· Normal. The default status when used in creating an account.
· Frozen. An account which has been frozen means this account can not be post any document. And the account will become normal if the user turn the status back.
· Close. An account which has been closed means not only the documents can be posted on the account, but also the account can’t be re-opened again.
Journal can’t post the opening and closing document.
The system defines six document types:
· Normal. A normal document just used to record one single finance activity which actually happened.
· Transfer. A transfer document means the amount has transferred from one account to another account. The document will store both accounts’ id.
· RepetitionPlan. A repetition plan is used to stored information for generating the repetition items; it normally includes the start date, end data, interest rate, amounts, and the specified account’s identification.
· Repetition. A repetition document used to some special transaction, for example the installment. In the system, all the repetition documents can be generated from a repetition plan, but the user can decided whether to post it on a specified account.
· Opening. This special type is used for the opening of the financial period opening.
· Closing. This special type is used for the closing of the financial period opening.
Create a repetition plan is the beginning of start repetition circle. I reckon a repetition plan is still live when the left amount is large than zero. An account must has at least one live repetition plan then the repetition item can be posted on that account which references the repetition plan.
It’s also allow to change the detail information of an existed and live repetition plan, that is change the lending rate or end date, etc.
The system stored a table for each repetition plan which contains their repetition items, this table also used to calculates the tax amounts which have paid for this repetition plan.
Each asset must assign to a category.
The asset also contains the information of the manufacturer, and some other generic data information.
The comparison between finance plans the real activities will give the user a generic overview of current finance status.
Copyright by Alva Chien, 2006 - 2008
1. Business Logic
1.1Global setting
There are several global settings of the finance:· Base currency. The base currency used to calculate the amount of the finance activities. All foreign currency transaction can be converted into the base currency via the exchange rate.
· Exchange rate. The exchange rate defines the rate between the foreign currencies with the base currency. The system implements this functionality as a table, which allows the user to define several exchange rates into it. Each row in the table also with time dependence then the system will search the exact exchange rate out with the current date.
· Financial period. The system allows each account to define a financial period, and those data have been stored as customizing data. And the user can also decide whether to let the system generate ‘Opening’ and ‘Closing’ document automatically for the period opening and closing except the journal.
1.2Account
1.2.1 Basic Concept
An account is a container of the posted documents, and the system supports three-tier account hierarchy.Each account must be assigned to a category. And the system supports a virtual mode of the account, and the virtual account located the bottom of the hierarchy if they existed.
1.2.2 Account category
The system defined several categories, as following:1.
1.1.1
· Normal. This category also a default one for an account. Debit on a normal account means increasing the amount, and credit means the amount’s decrease.
· Equipment. This category is used for an asset account. The equipment account can’t post any document, it should only contain the equipment, and the user can maintain the equipment’s current price to accumulate the amount difference.
· Cash. A cash amount means it can’t be negative.
· Savings. A saving amount also can’t be negative, but it will hold the information about the bank card number, deposit number, as well as the bank information.
· CreditCard. The category used for the credit card. It also includes the bank information, and bank card number, the max limitation, the invoice day, last payment day, etc.
· Liability. The category means the account is used to recording liability. Debit on a liability means the decrease the amount, and credit on it means the amount’s increase. Just like “Account Payable“.
· Creditor. The category is used to mark as creditor. Just like “Account receivable”. It acts as the same as the normal one, and the difference with the normal account in working out the results.
1.2.3 Virtual Mode
The system allows the account with a special status: “Virtual mode”. This new attribute is defined to support the following business scenarios:A real (non-virtual) account can be split several virtual accounts. For example, a cash account could be several accounts’ migrations, and when posting a document to this real account, the system allows the user to choose a virtual account as additional information.
1.2.4 Account group
An account group stands for a migration of several accounts. All documents which are posted on the child account will be reckoned as the document of this virtual account. The key point here is that when adding the child accounts to this account group, a validation will be forced to run to check the possible conflicts. For example, a cash account A has been split to two virtual accounts A1 and A2, and a credit card account B has been split into B1 and B2, it’s should be forbidden when creating an account group which contains “A and A1” or “A and A2” or “B1 and B” or “B2 and B”.The members of the account group are quite simple, including the group’s name, comment, and create time.
1.2.5 Account Status
Each account has a status, and the system also defines several statuses as well:· Normal. The default status when used in creating an account.
· Frozen. An account which has been frozen means this account can not be post any document. And the account will become normal if the user turn the status back.
· Close. An account which has been closed means not only the documents can be posted on the account, but also the account can’t be re-opened again.
1.3Journal
Journal just list out all the documents which are posted to all accounts. And the user can configure it’s time period in the customizing as well as the other accounts.Journal can’t post the opening and closing document.
1.4Document
A document is a basic unit for recording the finance activities. And a document must be posted to an account. A posted document must specify the date of the transaction.1.4.1 Document type
Each document has its own type. And the system will store the additional information for each type respectively.The system defines six document types:
· Normal. A normal document just used to record one single finance activity which actually happened.
· Transfer. A transfer document means the amount has transferred from one account to another account. The document will store both accounts’ id.
· RepetitionPlan. A repetition plan is used to stored information for generating the repetition items; it normally includes the start date, end data, interest rate, amounts, and the specified account’s identification.
· Repetition. A repetition document used to some special transaction, for example the installment. In the system, all the repetition documents can be generated from a repetition plan, but the user can decided whether to post it on a specified account.
· Opening. This special type is used for the opening of the financial period opening.
· Closing. This special type is used for the closing of the financial period opening.
1.4.2 Transaction
Each document must specify a transaction first before it post, and finance transaction has been defined as configurable object in the system. That means the user can define own finance transaction.1.4.3 Tax and invoice
There are two optional information have been defined for each document: tax and invoice. For tax, it must be the same currency as the document, for example, for repetition item; its tax amount will be generated out automatically for the repetition plan’s data. And for invoice, the system just store the invoice number, and the user can search it out hence.1.4.4 Asset’s document
It is also allowed to bind the relationship between the finance document and finance asset, for example, a document is posted for buying a new asset. The document should store this kind of the data.1.4.5 Repetition
It’s allowed to post repetition plan and repetition item to an account. This functionality is defined to support the installment.1.4.5.1 Repetition plan
The repetition plan is the documents which with category “Repetition Plan”.Create a repetition plan is the beginning of start repetition circle. I reckon a repetition plan is still live when the left amount is large than zero. An account must has at least one live repetition plan then the repetition item can be posted on that account which references the repetition plan.
It’s also allow to change the detail information of an existed and live repetition plan, that is change the lending rate or end date, etc.
The system stored a table for each repetition plan which contains their repetition items, this table also used to calculates the tax amounts which have paid for this repetition plan.
1.4.5.2 Repetition item
The repetition item is the documents which with category “Repetition”. The repetition item must specify a reference repetition plan and can only be posted on the account which contains live repetition plans.1.5Asset
1.5.1 Asset category
Asset category is used to specify an asset’s basic category. It’s also a configurable object which means allows the user to define new categories.Each asset must assign to a category.
1.5.2 Asset Item
Finance asset can only be created in the account with ‘Equipment’ category. And the system stores the assessment information of each asset. And the system also allows create several documents according to an asset: a bought document or a sold document, and that information are stored in bi-direction.The asset also contains the information of the manufacturer, and some other generic data information.
1.6Finance plan
The system offers the ability to create the detail finance plan and then compare it afterwards. The finance plan depends on the time periods of course.The comparison between finance plans the real activities will give the user a generic overview of current finance status.
相关文章推荐
- PADS中'定义设计规则(Defining Design Rules)'的对象间距含义
- HDU 1824 Let's go home(2-SAT)
- Getting the error “The view at '~/Views/Page/home.aspx' must derive from ViewPage, ViewPage<TViewDat
- hdu 1824 Let's go home(2-sat入门)
- Think & Design in CSS, 再谈web 2.0时代的网页设计
- reason: '-[UITableViewController loadView] loaded the "GWHomeViewController" nib but didn't get a UITableView.
- Waiting for HOME ('android.process.acore') to be launched...
- ssh配置还是需要输入密码;提示信息:Permissions 0775 for '/home/hadoop/.ssh/id_dsa' are too open.
- 错 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
- 设计模式学习笔记:What's 设计模式?
- 超级用户find: `/home/pipi/.gvfs': 权限不够
- Ubuntu SVN提交内容遇到错误:Can't open file '/home/svn/db/txn-current-lock': Permission denied
- HDU - 1824 Let's go home(2-SAT)
- CS 563 '99 - Advanced Topics in Computer Graphics Home Page
- 无法打开workflow的设计界面--缺'System.Workflow.ComponentModel.Compiler.ITypeProvider'
- 请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串,36进制规则0-9,A-Z,例如:1=‘000‘,10=’000A‘,100='002S',2000='01JK’
- O'Reilly 之美-设计超赞
- Please ensure that adb is correctly located at '/home/lq/android/sdk/platform-tools/adb'...
- hdu 1824 Let's go home (2-sat)
- HDU 1824 —— Let's go home(2-SAT)