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 
<?php
/* --------------------------------------------------------------
 OrderStatusAjaxController.inc.php 2018-01-16
 Gambio GmbH
 http://www.gambio.de
 Copyright (c) 2018 Gambio GmbH
 Released under the GNU General Public License (Version 2)
 [http://www.gnu.org/licenses/gpl-2.0.html]
 --------------------------------------------------------------
 */

MainFactory::load_class('AdminHttpViewController');

/**
 * Class OrderStatusAjaxController
 */
class OrderStatusAjaxController extends AdminHttpViewController
{
    /**
     * @var \OrderStatusService
     */
    protected $orderStatusService;
    
    
    /**
     * Initialize the order status ajax controller.
     */
    public function init()
    {
        $this->orderStatusService = StaticGXCoreLoader::getService('OrderStatus');
    }
    
    
    /**
     * Returns a json with all order status resources, their background color and font color code.
     *
     * @return \JsonHttpControllerResponse
     */
    public function actionDefault()
    {
        $statuses = $this->orderStatusService->findAll();
        $data     = [];
        
        foreach($statuses->getArray() as $status)
        {
            $data[] = [
                'id'              => $status->getId(),
                'backgroundColor' => $status->getColor(),
                'color'           => ColorHelper::getLuminance(new StringType($status->getColor()))
                                     > 143 ? '000000' : 'FFFFFF'
            ];
        }
        
        return MainFactory::create('JsonHttpControllerResponse', $data);
    }
}