/**
  * @param OrderItem $orderItem
  * @param bool $delayed Defines whether update in the database must be performed immediately or can be delayed
  */
 public function saveOrderItem($orderItem, $delayed = false)
 {
     $this->getDb()->query("\n            UPDATE" . ($delayed ? " LOW_PRIORITY " : "") . "order_product\n            SET\n                total = price * quantity + ?,\n                comment = ?,\n                public_comment = ?,\n                shipping = ?,\n                time_modified = NOW()\n            WHERE order_product_id = ?\n            ", array('d:' . $orderItem->getShippingCost(), 's:' . $orderItem->getPrivateComment(), 's:' . $orderItem->getPublicComment(), 'd:' . $orderItem->getShippingCost(), 'i:' . $orderItem->getId()));
 }
Example #2
0
 /**
  * @param OrderItem $orderItem
  * @param array $localShipping
  * @return array
  */
 private function calculateLocalShipping($orderItem, $localShipping)
 {
     if (array_key_exists($orderItem->getSupplierId(), $localShipping)) {
         $localShipping[$orderItem->getSupplierId()]['total'] += $orderItem->getTotal();
         $orderItem->setShippingCost(0);
         OrderItemDAO::getInstance()->saveOrderItem($orderItem, true);
     } else {
         $localShipping[$orderItem->getSupplierId()]['orderItem'] = $orderItem;
         $localShipping[$orderItem->getSupplierId()]['total'] = $orderItem->getTotal();
         $orderItem->setShippingCost($orderItem->getSupplier()->getShippingCost());
     }
     return $localShipping;
 }