| 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;    }}
 |