/** * Updates the orders totalPaid and datePaid date and completes order * * @param Market_OrderModel $order */ public function updateOrderPaidTotal(Market_OrderModel $order) { $totalPaid = craft()->market_payment->getTotalPaidForOrder($order); $order->totalPaid = $totalPaid; if ($order->isPaid()) { if ($order->datePaid == null) { $order->datePaid = DateTimeHelper::currentTimeForDb(); } } $this->save($order); if (!$order->dateOrdered) { if ($order->isPaid()) { craft()->market_order->complete($order); } else { // maybe not paid in full, but authorized enough to complete order. $totalAuthorized = craft()->market_payment->getTotalAuthorizedForOrder($order); if ($totalAuthorized >= $order->totalPrice) { craft()->market_order->complete($order); } } } }
protected function defineAttributes() { return array('success' => array(AttributeType::Bool, 'default' => true), 'code' => array(AttributeType::Number, 'default' => 200), 'errors' => array(AttributeType::Mixed, 'default' => array()), 'service' => AttributeType::String, 'model' => AttributeType::Mixed, 'dateCreated' => array(AttributeType::Mixed, 'default' => DateTimeHelper::formatTimeForDb())); }
/** * @return null|string */ public function getStatus() { $status = parent::getStatus(); if ($status == static::ENABLED && $this->availableOn) { $currentTime = DateTimeHelper::currentTimeStamp(); $availableOn = $this->availableOn->getTimestamp(); $expiresOn = $this->expiresOn ? $this->expiresOn->getTimestamp() : null; if ($availableOn <= $currentTime && (!$expiresOn || $expiresOn > $currentTime)) { return static::LIVE; } else { if ($availableOn > $currentTime) { return static::PENDING; } else { return static::EXPIRED; } } } return $status; }