'Question', 'DatasetName' => 'questions', 'Entity' => '\Auction\Entity\Question', 'JobField' => 'auction', 'References' => array( 'auction' => '\Auction\Entity\Auction', 'company' => '\Company\Entity\Company', 'profile' => '\User\Entity\Profile', 'reply' => '\Auction\Entity\Reply' ), 'Dependants' => array() ); /** * @var array */ protected $metaCreate = array( 'Type' => 'Create', 'Contract' => 'Recurring', 'ExecuteAfter' => array( 'notify' ), 'RequiredInput' => array( 'Question' => array( 'auction' => 'Id', 'question' => 'String500' ) ), 'OptionalInput' => array() ); /** * @var array */ protected $metaAskedGrid = array( 'Type' => 'Grid', 'Export' => false, 'Contract' => 'Recurring', 'Options' => array(), 'RequiredInput' => array(), 'OptionalInput' => array( 'Grid' => array( 'NumberOfRecords' => 'Integer', 'Page' => 'Integer', 'Filter' => 'Array', 'OrderBy' => 'Array' ) ), 'Base' => 'question', 'NumberOfRecords' => 10, 'Query' => 'SELECT [SELECTION] FROM \Auction\Entity\Question question JOIN question.auction auction JOIN auction.company company JOIN auction.stock stock JOIN stock.vehicleYear vehicleYear JOIN stock.type type JOIN type.model model JOIN model.make make LEFT JOIN question.reply reply LEFT JOIN reply.profile profile [WHERE] [ORDER]', 'Selection' => 'question, reply, auction, profile, company, stock, vehicleYear, make, model, type', 'Filter' => array( 'auction.jobState' => 'Active', 'question.archived' => 0 ), 'OrderBy' => array('question.updated' => 'DESC'), 'Fields' => array( 'id', 'created' => 'DateTime', 'updated' => 'DateTime', 'auction' => array( 'id', 'jobState', 'company' => array( 'name' ), 'stock' => array( 'created' => 'DateTime', 'type' => array( 'name', 'model' => array( 'name', 'make' => array( 'name' ) ), ), 'vehicleYear' => array( 'name' ), 'km', 'tradePrice', 'retailPrice', 'listPrice' ) ), 'reply' => array( 'profile' => array( 'firstName', 'familyName' ) ) ) ); /** * @var array */ protected $metaToAnswerGrid = array( 'Type' => 'Grid', 'Export' => false, 'Contract' => 'Recurring', 'Options' => array(), 'RequiredInput' => array(), 'OptionalInput' => array( 'Grid' => array( 'NumberOfRecords' => 'Integer', 'Page' => 'Integer', 'Filter' => 'Array', 'OrderBy' => 'Array' ) ), 'Base' => 'question', 'NumberOfRecords' => 10, 'Query' => 'SELECT [SELECTION] FROM \Auction\Entity\Question question JOIN question.auction auction JOIN question.profile profile JOIN question.company company JOIN auction.stock stock JOIN auction.company seller JOIN stock.vehicleYear vehicleYear JOIN stock.type type JOIN type.model model JOIN model.make make LEFT JOIN question.reply reply [WHERE] [ORDER]', 'Selection' => 'question, reply, auction, profile, company, stock, vehicleYear, make, model, type', 'Filter' => array( 'auction.jobState' => 'Active', 'question.archived' => 0 ), 'OrderBy' => array('question.updated' => 'DESC'), 'Fields' => array( 'id', 'created' => 'DateTime', 'updated' => 'DateTime', 'reply' => array( 'id' ), 'auction' => array( 'id', 'jobState', 'stock' => array( 'created' => 'DateTime', 'type' => array( 'name', 'model' => array( 'name', 'make' => array( 'name' ) ), ), 'vehicleYear' => array( 'name' ), 'km', 'tradePrice', 'retailPrice', 'listPrice' ) ), 'company' => array( 'name' ), 'profile' => array( 'firstName', 'familyName' ) ) ); /** * @var array */ protected $metaView = array( 'Type' => 'Update', 'Contract' => 'Recurring', 'Expand' => array( 'reply', 'auction', 'company', 'profile', 'stock', 'make', 'model', 'type', 'vehicleYear' ), 'RequiredInput' => array(), 'OptionalInput' => array() ); /** * Add some dynamic filtering to our grids. */ public function __construct() { $authData = \Utility\Registry::getAuthData(); switch (\Utility\Registry::getUserType()) { case 'B4C User': $groupFilter = \Utility\Registry::getSudo('Group', false); $divisionFilter = \Utility\Registry::getSudo('Division', false); $companyFilter = \Utility\Registry::getSudo('Company', false); if ($groupFilter && $divisionFilter && $companyFilter) { $this->metaAskedGrid['Filter']['IDENTITY(question.company)'] = $companyFilter; $this->metaToAnswerGrid['Filter']['IDENTITY(auction.company)'] = $companyFilter; } break; case 'Group User': $divisionFilter = \Utility\Registry::getSudo('Division', false); $companyFilter = \Utility\Registry::getSudo('Company', false); if ($divisionFilter && $companyFilter) { $this->metaAskedGrid['Filter']['IDENTITY(question.company)'] = $companyFilter; $this->metaToAnswerGrid['Filter']['IDENTITY(auction.company)'] = $companyFilter; } break; case 'Dealer Principle': $companyFilter = \Utility\Registry::getSudo('Company', false); if ($companyFilter) { $this->metaAskedGrid['Filter']['IDENTITY(question.company)'] = $companyFilter; $this->metaToAnswerGrid['Filter']['IDENTITY(auction.company)'] = $companyFilter; } break; default: $this->metaAskedGrid['Filter']['IDENTITY(question.company)'] = $authData['company']['id']; $this->metaToAnswerGrid['Filter']['IDENTITY(auction.company)'] = $authData['company']['id']; break; } } }