/** * Which Carts need to be deleted * * @return Market_OrderModel[] */ public function getCartsToPurge() { $configInterval = craft()->market_settings->getSettings()->purgeIncompleteCartDuration; $edge = new DateTime(); $interval = new DateInterval($configInterval); $interval->invert = 1; $edge->add($interval); $records = Market_OrderRecord::model()->findAllByAttributes(['dateOrdered' => null], 'dateUpdated <= :edge', ['edge' => $edge->format('Y-m-d H:i:s')]); return Market_OrderModel::populateModels($records); }
/** * Save and set the given addresses to the current cart/order * * @param Market_OrderModel $order * @param Market_AddressModel $shippingAddress * @param Market_AddressModel $billingAddress * * @return bool * @throws \Exception */ public function setAddresses(Market_OrderModel $order, Market_AddressModel $shippingAddress, Market_AddressModel $billingAddress) { MarketDbHelper::beginStackedTransaction(); try { $result1 = craft()->market_customer->saveAddress($shippingAddress); if ($billingAddress->id && $billingAddress->id == $shippingAddress->id) { $result2 = true; } else { $result2 = craft()->market_customer->saveAddress($billingAddress); } $order->setShippingAddress($shippingAddress); $order->setBillingAddress($billingAddress); if ($result1 && $result2) { $order->shippingAddressId = $shippingAddress->id; $order->billingAddressId = $billingAddress->id; $this->save($order); MarketDbHelper::commitStackedTransaction(); return true; } } catch (\Exception $e) { MarketDbHelper::rollbackStackedTransaction(); throw $e; } MarketDbHelper::rollbackStackedTransaction(); return false; }