1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 
<?php

/* --------------------------------------------------------------
   AfterbuyAjaxController.php 2016-07-08
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2016 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

/**
 * Class AfterbuyAjaxController
 *
 * This class handles the ajax requests for afterbuy.
 *
 * @category   System
 * @package    AdminHttpViewControllers
 * @extends    AdminHttpViewController
 */
class AfterbuyAjaxController extends AdminHttpViewController
{
    /**
     * @var int Order ID.
     */
    protected $orderId;

    public function actionAfterbuySend()
    {
        if(!$this->_isAdmin())
        {
            throw new AuthenticationException('No admin privileges. Please contact the administrator.');
        }

        require_once(DIR_FS_CATALOG . 'gm/inc/gm_prepare_number.inc.php');
        require_once (DIR_FS_CATALOG.'includes/classes/afterbuy.php');

        $this->orderId = (int)$_GET['orderId'];

        try
        {
            $afterBuy = new xtc_afterbuy_functions($this->orderId);
            if($afterBuy->order_send())
            {
                $afterBuy->process_order();
            }

            return  MainFactory::create('HttpControllerResponse', 'success');
        }
        catch (Exception $e)
        {
            return  MainFactory::create('HttpControllerResponse', 'error');
        }
    }

    /**
     * Check if the customer is the admin.
     *
     * @return bool Is the customer the admin?
     */
    protected function _isAdmin()
    {
        try
        {
            $this->validateCurrentAdminStatus();

            return true;
        }
        catch(LogicException $exception)
        {
            return false;
        }
    }
}