我正在编写可以定义为使用Rails 5的会计/发票应用程序。我需要实现一个预测公司未来现金流的部分。到目前为止,我已经得到以下信息:
使用这三组数据,我可以计算出未来任何给定日期的总和:最后一个已知的银行余额,加上所有未来发票的IN值,减去所有未来的费用,所以理论上,我得到了公司在任何特定日期的预期余额。
当涉及到经常性开支(或潜在收入)时,我会产生怀疑。鉴于我之前提到的所有项目(银行搬家,发票和费用)都是存储在我的数据库中的实际ActiveRecord记录,我不确定如何处理经常性费用,例如:
让我们想象一下,我想输入一个已知的未来某个员工的经常性薪水,每个月的第一天是2000美元。
1-我是否应该在某个时候生成下一个X条目并将它们视为正常的未来费用(每个都有自己的ID,日期和金额)?
2-我想到的另一个选择是做某种"声明"关于经常性费用的性质,例如,每月1美元,每月1美元,直至 - ",类似于cronjob。但是,如果我采用这种方法,我想要一个ActiveRecord - 类似的界面,这样我就可以这样做:
cashflow = []
last_movement = BankMovement.last
value = last_movement.balance
(last_movement.date..(last_movement.date + 12.months)).each do |day|
value += Invoice.pending.expected_on(day).sum(:gross_amount)
value -= Expense.pending.expected_on(day).sum(:gross_amount)
value -= RecurringExpense.expected_on(day).sum(:gross_amount)
cashflow.push( { date: day, balance: value } )
end
这感觉几乎是正确的但是,我不确定如何将实际费用与经常性/计算的费用联系起来。如果费用在假设后的第二天获得支付,我该怎样才能更改日期?我需要有一个实际的记录,至少每当他们是"合并"。
我不确定我是否在这里遇到麻烦,所以,如果有人想要并有空闲时间来帮助我,请随时询问任何额外的相关信息,我&#39 ;我真的很感激一些帮助,特别是如果我们能找到一种方法来做这个" Rails方式"!