/** * Get VAT from revenue/expense based on a date of interest and revenue/expense repeat status * * @param Expense|Revenue $moneyType * @param DateTime $date * @return double */ public function getVAT($moneyType, DateTime $date) { if ($moneyType->getVATCalculationMonth() != $date->format('n')) { return 0; } $moneyTypeDate = $moneyType->getDate() ?: $moneyType->getDate(true); if (!$moneyType->isRepeating() && $moneyTypeDate->format('Y') != $date->format('Y')) { return 0; } return $moneyType->getVAT(); }