123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- /**
- *
- * PHP Pro Bid $Id$ uT7+9MDkesDrcDyQbct3pVKRoqyt4XOF+2gtjSnILCw=
- *
- * @link http://www.phpprobid.com
- * @copyright Copyright (c) 2014 Online Ventures Software LTD & CodeCube SRL
- * @license http://www.phpprobid.com/license Commercial License
- *
- * @version 7.0
- */
- /**
- * store subscription fee class
- */
- namespace Ppb\Service\Fees;
- use Ppb\Service,
- Ppb\Db\Table\Row\StoreSubscription as StoreSubscriptionModel;
- class StoreSubscription extends Service\Fees
- {
- /**
- *
- * fees to be included
- *
- * @var array
- */
- protected $_fees = array(
- self::USER_VERIFICATION => 'Store Subscription Fee',
- );
- /**
- *
- * store subscription model
- *
- * @var \Ppb\Db\Table\Row\StoreSubscription
- */
- protected $_subscription;
- /**
- *
- * completed payment redirect path
- *
- * @var array
- */
- protected $_redirect = array(
- 'module' => 'members',
- 'controller' => 'store',
- 'action' => 'setup'
- );
- /**
- *
- * class constructor
- *
- * @param integer|string|\Ppb\Db\Table\Row\User $user the user that will be paying and for which the signup action will apply
- */
- public function __construct($user = null)
- {
- parent::__construct();
- if ($user !== null) {
- $this->setUser($user);
- $this->setSubscription();
- }
- }
- /**
- *
- * get store subscription model
- *
- * @return \Ppb\Db\Table\Row\StoreSubscription
- */
- public function getSubscription()
- {
- return $this->_subscription;
- }
- /**
- *
- * set store subscription model
- *
- * @param \Ppb\Db\Table\Row\StoreSubscription $subscription
- * @return $this
- */
- public function setSubscription(StoreSubscriptionModel $subscription = null)
- {
- if (!$subscription instanceof StoreSubscriptionModel) {
- $subscription = $this->_user->findParentRow('\Ppb\Db\Table\StoresSubscriptions');
- }
- $this->_subscription = $subscription;
- return $this;
- }
- /**
- *
- * activate the affected user
- *
- * @param bool $ipn true if payment is completed, false otherwise
- * @param array $post array keys: {user_id, subscription_id}
- * @return $this
- */
- public function callback($ipn, array $post)
- {
- $usersService = new Service\Users();
- $user = $usersService->findBy('id', $post['user_id']);
- $flag = ($ipn) ? 1 : 0;
- if (count($user) > 0) {
- $user->updateStoreSubscription($flag, $post['subscription_id']);
- }
- return $this;
- }
- /**
- *
- * get subscription fee amount
- *
- * @return float
- */
- public function getTotalAmount()
- {
- if ($this->_subscription instanceof StoreSubscriptionModel) {
- return $this->_addTax($this->_subscription->getData('price'));
- }
- return null;
- }
- }
|