protected function calculate() { $this->sip_exit_fee_rate = ParamUtils::getExitSipFreeRate($this->sip_months); $this->sell_fee_discount_rate = ParamUtils::getSaleFeeDiscountRate($this->purchase_type); $saleFeeRate = ParamUtils::getSaleFeeRate($this->kept_months); $this->sell_fee_rate = ($saleFeeRate + $this->sip_exit_fee_rate) * (1 - $this->sell_fee_discount_rate / 100); $this->sell_fee = $this->sell_fee_rate * $this->revenue / 100; $this->profit_before_taxes = $this->revenue - $this->sell_fee; $this->income_tax = $this->profit_before_taxes * $this->income_tax_rate / 100; $this->profit_after_taxes = $this->profit_before_taxes - $this->income_tax; $this->investment_result = $this->profit_after_taxes - $this->investment; }