public function calculate() { $this->purchase_fee_rate = ParamUtils::getPurchaseFeeRate($this->purchase); $this->discount_rate = ParamUtils::getPurchaseFeeDiscountRate($this->purchase_type); $this->total_fee_rate = $this->purchase_fee_rate * (100 - $this->discount_rate) / 100; $this->purchase_fee_rule = ParamUtils::getPurchaseFeeRule(); $this->purchase_fee = NumberUtils::rounds($this->purchase * $this->total_fee_rate / 100, $this->purchase_fee_rule); $this->real_purchase = $this->purchase - $this->purchase_fee; $this->found_stock_rule = ParamUtils::getFoundStockRule(); $this->found_stock = NumberUtils::rounds(100 * ($this->real_purchase / $this->nav), $this->found_stock_rule) / 100; $this->investment = $this->purchase + $this->transfer_fee + $this->other_fee; if ($this->purchase_type == MasterValueUtils::MV_OEF_PERCHASE_TYPE_DIVIDEND) { $this->fin_entry_id = 0; $this->jar_payment_id = 0; } }