コード例 #1
0
ファイル: index.php プロジェクト: JSila/money-flow
$outflow2 = new Outflow(200, new DateTime('-2 days'), $expense, $payment2);
$money = new MoneyFlow();
$money->addRevenue($revenue)->addExpense($expense);
// -- scenario 1: get balance and monthly vat
// echo $money->getBalance(new DateTime('-1 day'));  // 610
// echo $money->calculateMonthlyVAT(new DateTime('now'));  // 110
// -- scenario 2: same as scenario 1, but expense was created 4 months ago
// $expense->setDate(new DateTime('-4 months'));
// echo $money->getBalance(new DateTime('-1 day'));  // 610
// echo $money->calculateMonthlyVAT(new DateTime('now'));  // 220
// -- scenario 3: same as scenario 1, but revenue was created 4 months ago and is set to repeat every month
// $revenue->setDate(new DateTime('-4 months'));
// $revenue->setRepeating();
// echo $money->getBalance(new DateTime('now'));  // 5490
$revenue = new Revenue(800, 'Website development', 'Website development description', $category);
$revenue->setDate(new DateTime('+4 days'), true);
$inflow1 = new Inflow(500, new DateTime('+2 days'), $revenue, $payment1);
$inflow1->setProbability(0.8);
$inflow2 = new Inflow(300, new DateTime('+6 days'), $revenue, $payment2);
$inflow2->setProbability(0.8);
$expense = new Expense(300, 'WP theme purchase', 'WP theme purchase description', $category);
$expense->setDate(new DateTime('+4 days'), true);
$outflow1 = new Outflow(100, new DateTime('+2 days'), $expense, $payment1);
$outflow1->setProbability(0.8);
$outflow2 = new Outflow(200, new DateTime('+6 days'), $expense, $payment2);
$outflow2->setProbability(0.8);
$money = new MoneyFlow();
$money->addRevenue($revenue)->addExpense($expense);
// -- scenario 4: predictions
// echo $money->getBalancePrediction(new DateTime('+5 days')); // 280 - only inflow1 and outflow2 gets counted
// echo $money->getBalancePrediction(new DateTime('+7 days')); // 350