mirror of
https://github.com/aclindsa/moneygo.git
synced 2024-12-26 07:33:21 -05:00
Add monthly cash flow example report
This commit is contained in:
parent
a69468785b
commit
951d56f7fe
@ -42,6 +42,8 @@ function generate()
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
More examples can be found in the reports/ directory in the MoneyGo source tree.
|
||||||
|
|
||||||
## Basic Operation
|
## Basic Operation
|
||||||
|
|
||||||
The lua code behind a report *must* contain a `generate()` function which takes
|
The lua code behind a report *must* contain a `generate()` function which takes
|
||||||
|
26
reports/monthly_cash_flow.lua
Normal file
26
reports/monthly_cash_flow.lua
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
function generate()
|
||||||
|
year = date.now().year
|
||||||
|
|
||||||
|
accounts = get_accounts()
|
||||||
|
t = tabulation.new(12)
|
||||||
|
t:title(year .. " Monthly Cash Flow")
|
||||||
|
series = t:series("Income minus expenses")
|
||||||
|
|
||||||
|
for month=1,12 do
|
||||||
|
begin_date = date.new(year, month, 1)
|
||||||
|
end_date = date.new(year, month+1, 1)
|
||||||
|
|
||||||
|
t:label(month, tostring(begin_date))
|
||||||
|
cash_flow = 0
|
||||||
|
|
||||||
|
for id, acct in pairs(accounts) do
|
||||||
|
if acct.type == account.Expense or acct.type == account.Income then
|
||||||
|
balance = acct:balance(begin_date, end_date)
|
||||||
|
cash_flow = cash_flow - balance.amount
|
||||||
|
end
|
||||||
|
end
|
||||||
|
series:value(month, cash_flow)
|
||||||
|
end
|
||||||
|
|
||||||
|
return t
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user