'Stock', 'DatasetName' => 'stock', 'Entity' => '\Stock\Entity\Tuhpi', 'References' => array( 'company' => '\Company\Entity\Company', 'valuation' => '\Valuation\Entity\Valuation', 'priceGuide' => '\PriceGuide\Entity\PriceGuide', 'auction' => '\Auction\Entity\Auction', ), 'Dependants' => array( 'stock' => '\Stock\Entity\Stock' ) ); /** * @var array */ protected $metaList = array( 'Type' => 'List', 'Contract' => 'Recurring', 'RequiredInput' => array(), 'OptionalInput' => array( 'Filter' => array( 'created' => 'Date', 'updated' => 'Date', 'jobState' => 'String25', 'stock' => 'Id', 'company' => 'Id' ) ), 'Filter' => array(), 'OrderBy' => array('created' => 'DESC'), 'Fields' => array( 'id', 'created', 'hpi_type' ), 'Expand' => array() ); /** * @var array */ protected $metaGrid = array( 'Type' => 'Grid', 'Export' => true, 'Contract' => 'Recurring', 'Options' => array(), 'RequiredInput' => array(), 'OptionalInput' => array( 'Grid' => array( 'NumberOfRecords' => 'Integer', 'Page' => 'Integer', 'Filter' => 'Array', 'OrderBy' => 'Array', ) ), 'Base' => 'tuhpi', 'NumberOfRecords' => 20, 'Query' => 'SELECT [SELECTION] FROM \Stock\Entity\Tuhpi tuhpi JOIN tuhpi.stock stock JOIN tuhpi.company company JOIN stock.vehicleYear vehicleYear JOIN stock.type type JOIN type.model model JOIN model.make make LEFT JOIN tuhpi.auction auction LEFT JOIN tuhpi.priceGuide priceGuide LEFT JOIN company.group companyGroup LEFT JOIN company.groupDivision groupDivision LEFT JOIN stock.exteriorColour exteriorColour [WHERE] [ORDER]', 'Selection' => 'tuhpi, stock, company, companyGroup, groupDivision, auction, priceGuide, exteriorColour, vehicleYear, make, model, type', 'Filter' => array( 'tuhpi.archived' => false ), 'OrderBy' => array('tuhpi.created' => 'DESC'), 'Fields' => array( 'id', 'referenceNumber', 'created' => 'DateTime', 'registrationNumber', 'vinNumber', 'type' => array( 'name', 'mmCode', 'model' => array( 'name', 'make' => array( 'name' ) ), ), 'vehicleYear' => array( 'name' ), 'exteriorColour' => array( 'name' ), 'priceGuide' => array( 'id' ), 'km', 'tradePrice', 'retailPrice', 'retailAmountRequired', 'jobState' ) ); /** * @var array */ protected $metaView = array( 'Type' => 'View', 'Expand' => array( 'group', 'groupDivision', 'model', 'make', 'type' ), 'Intersect' => array() ); /** * @var array */ protected $metaCreate = array( 'Type' => 'Create', 'Contract' => 'Recurring', 'ExecuteBefore' => array(), 'ExecuteAfter' => array(), 'RequiredInput' => array( 'tuhpi' => array( 'company' => 'Id', 'createdBy' => 'Id', 'stock' => 'Id' ) ), 'OptionalInput' => array( 'tuhpi' => array() ) ); /** * @var array */ protected $metaPrint = array( 'Type' => 'Pdf', 'Builder' => '\Stock\Pdf\Tuhpi', 'Writer' => '\Utility\Export\PdfTemplate', 'Output' => 'Download', 'FilePath' => '\test.pdf', 'RequiredInput' => array(), 'OptionalInput' => array( 'PdfTemplate' => array( 'email' => 'Email', 'recordId' => 'Id' ) ) ); /** * @var array */ protected $metaPrintAccident = array( 'Type' => 'Pdf', 'Builder' => '\Stock\Pdf\TuhpiAccident', 'Writer' => '\Utility\Export\PdfTemplate', 'Output' => 'Download', 'FilePath' => '\testAccident.pdf', 'RequiredInput' => array(), 'OptionalInput' => array( 'PdfTemplate' => array( 'email' => 'Email', 'recordId' => 'Id' ) ) ); /** * Add some dynamic filtering to our grids. */ public function __construct() { $authData = \Utility\Registry::getAuthData(); $logedInCompanyId = $authData['company']['id']; 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; $companyFilter && $this->metaTradeCenterGrid['Filter']['IDENTITY(company.tradeCenter)'] = $companyFilter; break; case 'Group User': $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; $companyFilter && $this->metaTradeCenterGrid['Filter']['IDENTITY(company.tradeCenter)'] = $companyFilter; break; case 'Dealer Principle': $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $authData['company']['groupDivision']['id']; $companyFilter = \Utility\Registry::getSudo('Company', false); $companyFilter && $this->metaGrid['Filter']['company.id'] = $companyFilter; $companyFilter && $this->metaTradeCenterGrid['Filter']['IDENTITY(company.tradeCenter)'] = $companyFilter; break; default: //$this->metaList['OptionalInput']['Filter']['company'] = $authData['company']['id']; $this->metaGrid['Filter']['company.id'] = $authData['company']['id']; $this->metaTradeCenterGrid['Filter']['IDENTITY(company.tradeCenter)'] = $authData['company']['id']; break; } } }