'Basket', 'DatasetName' => 'bids', 'Entity' => '\Auction\Entity\Basket', 'JobField' => 'auction', 'References' => array( 'auction' => '\Auction\Entity\Auction', 'company' => '\Company\Entity\Company', 'profile' => '\User\Entity\Profile', 'autoBasket' => '\Auction\Entity\AutoBasket' ), 'Dependants' => array() ); /** * @var array */ protected $metaCreate = array( 'Type' => 'Create', 'Contract' => 'Recurring', 'RequiredInput' => array( 'Basket' => array( 'auction' => 'Id' ) ), 'OptionalInput' => array() ); /** * @var array */ protected $metaSetStatus = array( 'Type' => 'Update', 'RequiredInput' => array(), 'OptionalInput' => array( 'Basket' => array( 'archived' => 'Boolean' ) ) ); /** * @var array */ protected $metaGrid = array( 'Type' => 'Grid', 'Export' => true, 'Builder' => '\Auction\Report\BasketGrid', 'Writer' => '\Utility\Export\ExcelReport', 'Output' => 'Download', 'Contract' => 'Recurring', 'Options' => array( 'Boolean' => array( 'ExportToExcel' => false ) ), 'RequiredInput' => array(), 'OptionalInput' => array( 'Grid' => array( 'NumberOfRecords' => 'Integer', 'Page' => 'Integer', 'Filter' => 'Array', 'OrderBy' => 'Array' ) ), 'Base' => 'auction', 'NumberOfRecords' => 10, 'Query' => 'SELECT [SELECTION] FROM \Auction\Entity\Basket basket JOIN basket.auction auction JOIN auction.company company JOIN company.region region JOIN auction.stock stock JOIN stock.vehicleYear vehicleYear JOIN stock.type type JOIN type.model model JOIN model.make make LEFT JOIN stock.exteriorColour exteriorColour LEFT JOIN auction.currentBid currentBid [WHERE] [ORDER]', 'Selection' => 'basket, auction, company, region, stock, vehicleYear, make, model, type, exteriorColour, currentBid', 'Filter' => array( 'auction.jobState' => 'Active', 'basket.archived' => 0, 'auction.archived' => 0 ), 'OrderBy' => array('auction.created' => 'DESC'), 'Fields' => array( 'id', 'archived', 'auction' => array( 'id', 'created' => 'DateTime', 'endDate' => 'DateTime', 'jobState', 'company' => array( 'name', 'region' => array( 'name' ) ), 'currentBid' => array( 'company' => array( 'id' ), 'amount' ), 'stock' => array( 'created' => 'DateTime', 'type' => array( 'name', 'model' => array( 'name', 'make' => array( 'name' ) ), ), 'vehicleYear' => array( 'name' ), 'exteriorColour' => array( 'name' ), 'km', 'tradePrice', 'retailPrice', 'listPrice' ) ) ) ); /** * 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->metaGrid['Filter']['IDENTITY(basket.company)'] = $companyFilter; } break; case 'Group User': $divisionFilter = \Utility\Registry::getSudo('Division', false); $companyFilter = \Utility\Registry::getSudo('Company', false); if ($divisionFilter && $companyFilter) { $this->metaGrid['Filter']['IDENTITY(basket.company)'] = $companyFilter; } break; case 'Dealer Principle': $companyFilter = \Utility\Registry::getSudo('Company', false); if ($companyFilter) { $this->metaGrid['Filter']['IDENTITY(basket.company)'] = $companyFilter; } break; default: $this->metaGrid['Filter']['IDENTITY(basket.company)'] = $authData['company']['id']; break; } } }