/** * Return subscription's child orders ids. * * @param Customweb_Subscription_Model_Subscription $object * @return array */ public function getChildOrderIds(Customweb_Subscription_Model_Subscription $object) { $adapter = $this->_getReadAdapter(); $bind = array(':subscription_id' => $object->getId()); $select = $adapter->select()->from(array('main_table' => $this->getTable('customweb_subscription/subscription_order')), array('order_id'))->where('subscription_id=:subscription_id'); return $adapter->fetchCol($select, $bind); }
/** * Add the subscription id to the custom parameters. */ public function getCustomParameters() { $params = array(); if ($this->_subscription != null) { $params['cwsubscriptionid'] = $this->_subscription->getId(); } return array_merge($this->_transactionContext->getCustomParameters(), $params); }
/** * Check subscription view availability * * @param Customweb_Subscription_Model_Subscription $subscription * @return bool */ protected function _canViewSubscription($subscription) { $customerId = Mage::getSingleton('customer/session')->getCustomerId(); if ($subscription->getId() && $subscription->getCustomerId() && $subscription->getCustomerId() == $customerId) { return true; } return false; }
/** * * @param Customweb_Subscription_Model_Subscription $subscription * @param Zend_Date $scheduledAt * @param string $action * @param string $additionalData */ public function createJob(Customweb_Subscription_Model_Subscription $subscription, Zend_Date $scheduledAt, $action, $additionalData = null) { $schedule = Mage::getModel('customweb_subscription/schedule'); $schedule->setSubscriptionId($subscription->getId()); $schedule->setStatus(Customweb_Subscription_Model_Schedule::STATUS_PENDING); $schedule->setCreatedAt(Mage::helper('customweb_subscription')->toDateString(Zend_Date::now())); $schedule->setScheduledAt(Mage::helper('customweb_subscription')->toDateString($scheduledAt)); $schedule->setCount(0); $schedule->setAction($action); $schedule->setAdditionalData($additionalData); $schedule->save(); }
/** * * @param Customweb_Subscription_Model_Subscription $subscription * @throws Exception * @return transaction */ private function createOrder($subscription) { if (!$subscription->canPay()) { throw new Exception('The subscription cannot be authorized.'); } Mage::register('customweb_subscription_recurring_order', true); Mage::getSingleton('core/session')->setSubscriptionId($subscription->getId()); $order = $subscription->createOrder(); $order->save(); $subscription->addOrderRelation($order->getId()); Mage::unregister('customweb_subscription_recurring_order'); Mage::getSingleton('core/session')->setSubscriptionOrder($order->getId()); $method = $order->getPayment()->getMethodInstance(); return $method->createTransaction($order); }