Exemple #1
0
 /**
  * Get surcharge totals
  *
  * @return array
  */
 public function getSurchargeTotals()
 {
     $surcharges = array();
     $rawSurcharges = \XLite::isAdminZone() ? array_merge($this->getExcludeSurcharges(), $this->getIncludeSurcharges()) : $this->getExcludeSurcharges();
     foreach ($rawSurcharges as $surcharge) {
         $code = $surcharge->getCode();
         if (!isset($surcharges[$code])) {
             $modifierClass = $surcharge->getClass();
             $surcharges[$code] = array('name' => $surcharge->getTypeName(), 'cost' => 0, 'available' => $surcharge->getAvailable(), 'count' => 0, 'lastName' => null, 'code' => $code, 'widget' => \Includes\Utils\Operator::checkIfClassExists($modifierClass) ? $modifierClass::getWidgetClass() : \XLite\Logic\Order\Modifier\AModifier::getWidgetClass(), 'object' => $surcharge);
         }
         $surcharges[$code]['cost'] += $surcharge->getValue();
         $surcharges[$code]['count']++;
         $surcharges[$code]['lastName'] = $surcharge->getName();
         $surcharges[$code]['weight'] = $surcharge->getSortingWeight();
     }
     uasort($surcharges, function ($a, $b) {
         return $a['weight'] < $b['weight'] ? -1 : $a['weight'] > $b['weight'];
     });
     return $surcharges;
 }
Exemple #2
0
 /**
  * Assemble default dump surcharge
  *
  * @param string $type  Type
  * @param string $code  Code
  * @param string $class Class
  * @param string $name  Name
  *
  * @return array
  */
 protected function assembleDefaultDumpSurcharge($type, $code, $class, $name)
 {
     $surcharge = new \XLite\Model\Order\Surcharge();
     $surcharge->setType($type);
     $surcharge->setCode($code);
     $surcharge->setClass($class);
     $surcharge->setValue(0);
     $surcharge->setName($name);
     $surcharge->setOwner(static::getTemporaryOrder($this->getOrder()->getOrderId(), false) ?: $this->getOrder());
     return array('name' => $surcharge->getTypeName(), 'cost' => $surcharge->getValue(), 'available' => $surcharge->getAvailable(), 'count' => 1, 'lastName' => $surcharge->getName(), 'code' => $surcharge->getCode(), 'widget' => \Includes\Utils\Operator::checkIfClassExists($class) ? $class::getWidgetClass() : \XLite\Logic\Order\Modifier\AModifier::getWidgetClass(), 'object' => $surcharge);
 }