function getBillingAmount($billing_category_id) { if (!is_numeric($billing_category_id)) { $billing_category_id = 0; } $wsBilling = WorkspaceBillings::findOne(array('conditions' => array('project_id = ? AND billing_id = ?', $this->getId(), $billing_category_id))); if ($wsBilling) { return $wsBilling->getValue(); } else { $parent = $this->getParentWorkspace(); if ($parent instanceof Project) { return $parent->getBillingAmount($billing_category_id); } else { $billing_category = BillingCategories::findById($billing_category_id); if ($billing_category instanceof BillingCategory) { return $billing_category->getDefaultValue(); } else { return 0; } } } }