<?php

/**
 * Description of Members
 *
 * @author Arkadiusz Rychlik <a.rychlik at eppe.com.pl>
 * @author Janusz
 */
class Newsletter_Jqgrid_Member extends Rtn_JqGrid {

    public $canReorder = false;
    public $name = 'member';
    public $caption = '';
    public $sortname = 'id';
    public $height = 'auto';
    public $loadonce = false;
    public $scroll = false;
    public $rownum = 20;
    public $actions = [
        'active' => null,
    ];
    public $showDefaultActions = false;
    public $beanName = 'viewnlmenbers';

    public function __construct(\Eppe_Crud_Controller_Action $controller) {
        parent::__construct($controller);
        $this->extraData = ['group_id' => $controller->group_id];
    }

    protected function _renderColmodel() {
        return [
           [
                'name' => 'nlu_email',
                'label' => __('Adres e-mail')
            ],
           [
                'name' => 'nlu_name',
                'label' => __('Imię i nazwisko')
            ],
           [
                'name' => 'nlu_number',
                'label' => __('Nr prawa wykonywania zawodu')
            ],
        ];
    }


public function loadDatagrid() {
		$this->colmodel = $this->_fixColmodel(); // nie może być w konstruktorze (za wczesnie)
		
		$query = R::$f->begin();
		$grid_params = static::get_prss();

		$this->extraTransformQuery($query);

		$sql = "select s.* from (select @p1:={$this->extraData['group_id']} p) parm , viewnlmenbers s";
		
		if (NULL != $rules_to_sql = $this->_searchRulesToSql()) {
			$sql .= ' WHERE ' . $rules_to_sql;
		}
		
		
		if (NULL != $order_rules_to_sql = $this->_orderRulesToSql()) {
			$sql .= ' ORDER' . $order_rules_to_sql;
		}
		
		$count = R::count($this->beanName, $rules_to_sql);
		
		$offset = ($grid_params['rows'] * ($grid_params['page'] - 1));
		$sql .= " LIMIT {$grid_params['rows']} OFFSET $offset;";
		$preBeans = R::getAll($sql);
		foreach ($preBeans as $preBean) {
			 $preBean['_grid_extra'] = array(
				'can_edit' => false,
				'can_clone' => false,
				'can_send_test' => false,
				'can_delete' => false,
				'can_refresh' => false
			);
		}

		$this->_searchArray($preBeans);
		$this->_orderArray($preBeans);

		$response = $this->_renderResponse($count, $grid_params['rows'], $grid_params['page'], $preBeans);

		return $response;
	}    

}
