/**
  * 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);
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  *
  * @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);
 }