/**
  * Updates positions using the calculations provided with [[getCalculation]]
  */
 private function applyCalculations()
 {
     $currency = Yii::$app->params['currency'];
     foreach ($this->models as $position) {
         $id = $position->id;
         $calculation = $this->getCalculation($id);
         if (!$calculation instanceof Calculation) {
             Yii::error('Cart position "' . $position->getName() . '" was removed from the cart because of failed value calculation. Normally this should never happen.', 'hipanel.cart');
             $this->cart->removeById($position->id);
             break;
         }
         $value = $calculation->forCurrency($currency);
         if (!$value instanceof Value) {
             Yii::error('Cart position "' . $position->getName() . '" was removed from the cart because calculation for currency "' . $currency . '" is not available', 'hipanel.cart');
             $this->cart->removeById($position->id);
             break;
         }
         $position->setPrice($value->price);
         $position->setValue($value->value);
     }
 }