Example #1
0
 /**
  * Calculate
  *
  * @return void
  */
 public function calculate()
 {
     $cost = null;
     if ($this->isShippable()) {
         $rate = $this->getSelectedRate();
         if (isset($rate)) {
             $cost = $this->getOrder()->getCurrency()->roundValue($rate->getTotalRate());
         }
         $this->addOrderSurcharge($this->code, doubleval($cost), false, isset($cost));
     } else {
         foreach ($this->order->getSurcharges() as $s) {
             if ($s->getType() == $this->type && $s->getCode() == $this->code) {
                 $this->order->getSurcharges()->remove($s);
                 \XLite\Core\Database::geEM()->remove($s);
             }
         }
     }
 }