'Club', 'DatasetName' => 'models', 'Entity' => '\PriceGuide\Entity\Club', 'References' => array( 'company' => '\Company\Entity\Company' ), 'Dependants' => array() ); /** * @var array */ protected $metaSelectList = array( 'Type' => 'SelectList', 'Contract' => 'Recurring', 'RequiredInput' => array(), 'OptionalInput' => array( 'Filter' => array( 'company' => 'Id', 'name' => 'String50' ) ), 'Filter' => array(), 'Label' => array( 'Format' => '[name]', 'Fields' => array('name') ) ); /** * @var array */ protected $metaGrid = array( 'Type' => 'Grid', 'Contract' => 'Recurring', 'RequiredInput' => array(), 'OptionalInput' => array( 'Grid' => array( 'NumberOfRecords' => 'Integer', 'Page' => 'Integer', 'Filter' => 'Array', 'OrderBy' => 'Array' ) ), 'Base' => 'club', 'NumberOfRecords' => 10, 'Query' => 'SELECT [SELECTION] FROM \PriceGuide\Entity\Club club JOIN club.company company [WHERE] [ORDER]', 'Selection' => 'club, company, SIZE(club.members) as numMembers', 'Filter' => array( 'club.archived' => false ), 'GroupBy' => 'club.id', 'OrderBy' => array('club.name' => 'ASC'), 'Fields' => array( 'id', 'name', 'created' => 'DateTime', 'useAsDefault', 'numMembers' ) ); /** * @var array */ protected $metaCreate = array( 'Type' => 'Create', 'Contract' => 'Recurring', 'RequiredInput' => array( 'Club' => array( 'name' => 'String50' ) ), 'OptionalInput' => array( 'Club' => array( 'useAsDefault' => 'Boolean' ) ) ); /** * @var array */ protected $metaUpdate = array( 'Type' => 'Update', 'Contract' => 'UseOnce', 'RequiredInput' => array( 'Club' => array( 'name' => 'String50' ) ), 'OptionalInput' => array( 'Club' => array( 'useAsDefault' => 'Boolean' ) ) ); /** * @var array */ protected $metaArchive = array( 'Type' => 'Update', 'Contract' => 'UseOnce', 'ExecuteAfter' => array( 'archiveClub' ), 'RequiredInput' => array(), 'OptionalInput' => array() ); /** * Dynamic filtering. */ public function __construct() { $authData = \Utility\Registry::getAuthData(); switch (\Utility\Registry::getUserType()) { case 'B4C User': $groupFilter = \Utility\Registry::getSudo('Group', false); $groupFilter && $this->metaGrid['Filter']['IDENTITY(company.group)'] = $groupFilter; $divisionFilter = \Utility\Registry::getSudo('Division', false); $divisionFilter && $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $divisionFilter; $companyFilter = \Utility\Registry::getSudo('Company', false); $companyFilter && $this->metaGrid['Filter']['company.id'] = $companyFilter && $this->metaSelectList['Filter']['company'] = \Utility\Registry::getEntityManager() ->getReference( '\Company\Entity\Company', $companyFilter ); break; case 'Group Manager': $this->metaGrid['Filter']['IDENTITY(company.group)'] = $authData['company']['group']['id']; $divisionFilter = \Utility\Registry::getSudo('Division', false); $divisionFilter && $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $divisionFilter; $companyFilter = \Utility\Registry::getSudo('Company', false); $companyFilter && $this->metaGrid['Filter']['company.id'] = $companyFilter && $this->metaSelectList['Filter']['company'] = \Utility\Registry::getEntityManager() ->getReference( '\Company\Entity\Company', $companyFilter ); break; case 'Division Manager': $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $authData['company']['groupDivision']['id']; $companyFilter = \Utility\Registry::getSudo('Company', false); $companyFilter && $this->metaGrid['Filter']['company.id'] = $companyFilter && $this->metaSelectList['Filter']['company'] = \Utility\Registry::getEntityManager() ->getReference( '\Company\Entity\Company', $companyFilter ); break; default: $this->metaGrid['Filter']['company.id'] = $authData['company']['id']; $this->metaSelectList['Filter']['company'] = \Utility\Registry::getEntityManager() ->getReference( '\Company\Entity\Company', $authData['company']['id'] ); break; } } }