我正在建立一个简单的会计应用程序,用于个人理财。
用户可能会记录购买,即将到来的账单,经常性存款等。这将简单易懂。
两个问题:
1)我应该记住哪些建议?显然,我会在适当的地方使用事务,但是正确的数据类型和其他注意事项会很有用。
2)您是否知道我可以用来定期从银行获得用户余额的API?即一个API,无论是在Chase,BofA还是其他人,都可以简单地查询他们的帐户?
非常感谢,
迈克尔
答案 0 :(得分:9)
刚刚为学校相关的非营利组织完成了一些自定义编写的在线会计软件1.0版本,我有一些建议:)
答案 1 :(得分:3)
我将添加一些提示,因为我正在完成一个专注于会计的POS系统 - 这意味着需要跟踪购买,费用,发票,帐户,信用卡,现金,车辆等。这些概念最终将应用于个人系统。
最好的建议是查看您的文书工作,并尝试围绕将物理文档转换为计算机所需的操作形成数据库。将此与会计教科书的前几章结合起来,后者讨论了账户,会计科目和期刊。
我用过的书: 乔治·默里(George Murray)的会计触手可及 Suzanne Caplan为企业家提供财务和会计服务 Ainsworth会计简介 会计,信息技术和商业解决方案作者Hollander
将源文档输入系统后,您可以运行查询以获得答案。这样做消除了"总帐管理系统的概念。和"试算平衡"因为您只需更正或添加到源文档。所以" General Ledger"成为一个计算。这让我感到非常困惑。同样,所有源文档都将放入“期刊”中,这可以是您的数据库表。我使用普通日记帐,购买日记帐,付款或现金支付日记帐,销售日记帐和现金收据日记帐。请记住术语" CASH"指现金,信贷,支票,借记卡。
例如,我有一本"普通期刊"这基本上是你需要的。在这本期刊中,我会跟踪来源收据'。收据可能是发票,例如时间警告电缆,它有一个帐号。在那种情况下,我创建了一个帐户'为时间华纳。时代华纳帐户将链接到帐户图表'这将指定费用的类型为"互联网"。然后输入发票,其中包含日期,金额等。发票链接到时间报警者的帐户。输入发票后,它是未付款的。然后,您需要添加付款。当然,您可以按照自己的意愿全额支付账单,但您可能需要支付两笔款项,或支付拆分款,或者不支付全额款项。这将引导您进入“付款期刊”#34;结合发票到付款查询表'需要申请金额才能申请发票。这个申请金额非常重要,因为您可能有4张未付费的时间日期账单,而您只需要发送超过200美元的恐慌即可恢复您的账户。然后,此付款需要在发票之间拆分,并且金额适用于每个发票。当然,付款帐户会链接回您的帐户。
对于输入收据的情况,不使用该帐户。假设你在embrasse-moi拿起一些内衣,并支付现金。您的系统将采取供应商,embrasse-moi,日期,成本,我添加了使用税'如果您通过互联网购物并且没有纳税,但您仍然欠它,金额和帐户图表#39;这基本上是你的费用类别。这一切都归于一般期刊。在同一表格上,您将获得付款方式。我为费用+精确付款制作了简化表格,因为这很常见。如果付款被拆分,则您需要使用一个表单输入收据,然后使用其他表单创建多个付款链接到该收据。
所以最后这个简单会计应用程序的数据库将包含以下表格: 帐户(帐户信息包括帐户类型,如cc /借记卡,支票,现金,商业购买的库存帐户,费用帐户,如公用事业,默认帐户图表) 会计科目表(基本上是一个描述如何对支出和账户进行分类的清单,这些清单将流入您的运营报表,我在这里让您查看: http://embrasse-moi.com/exampleData/pos_chart_of_accounts.csv) 我有一张表用于开立账户余额,因为你必须从某个地方开始 帐户类型 - 表示信用卡,借记卡等。请记住基于帐户的会计等式基本切换。检查帐户借记是"坏"因为你放弃了你的钱和积分是好的"因为你拿到了钱而信用卡借记是好的"因为你减少了你的债务,而且信用额度很差。因为你增加了债务 帐户类型图表,这是一种资产,负债,长期资产等。这可以作为枚举类型包含在帐户购物车中 然后是通用期刊,如上所述,其中包含足以描述您的文档的信息。是在考虑吗?日期,金额,类型(收据或发票)截止日期,我保持“付款”#39;标志以缓解查询。 然后,您可以在'普通期刊'之间进行查找。表和付款表 然后你有付款表。
一旦掌握了所有这些信息,您几乎不会将您的银行用作来源,因为它们并不总是正确的,至少我的银行会犯错误。因此,这种类型的结构将使您始终掌握您的信息,并且在月末,该系统将生成与您的帐户对帐单相同的语句。这就是目标。
答案 2 :(得分:1)
关于从银行获取信息的API:如果可能的话,并非简单。你可以想象你的银行将经历的长度,以确保一切都是安全的。我不认为自动连接是可能的。 通常有一种方法可以在您登录网上银行后通过手动下载文件来下载数据(如果有的话)。希望它是CSV格式或类似的东西; - )
[编辑]
显然我在这里错了,各大银行都允许直接连接。我想你当时就必须咨询你的银行技术支持。
[/编辑]
至于要使用的数据类型,我至少建议使用金钱值的小数,而不是双精度/浮点数。请参阅this所以问题线程也是如此。
答案 3 :(得分:0)