2 namespace PriceGuide\DataBin;
10 class Member extends \Workspace\Service\DataBin
16 protected $meta = array(
18 'DatasetName' => 'models',
19 'Entity' => '\PriceGuide\Entity\Member',
20 'References' => array(
21 'allowedMember' => '\PriceGuide\Entity\AllowedMember',
22 'company' => '\Company\Entity\Company',
23 'profile' => '\User\Entity\Profile',
24 'club' => '\PriceGuide\Entity\Club',
25 'fromYear' => '\Stock\Entity\Year',
26 'toYear' => '\Stock\Entity\Year'
28 'Dependants' => array(
29 'makes' => '\Stock\Entity\Make'
35 protected $metaGrid = array(
37 'Contract' => 'Recurring',
38 'RequiredInput' => array(),
39 'OptionalInput' => array(
41 'NumberOfRecords' => 'Integer',
48 'NumberOfRecords' => 10,
49 'Query' => 'SELECT [SELECTION]
50 FROM \PriceGuide\Entity\Member mmbr
52 JOIN club.company company
53 JOIN mmbr.company allowedCompany
54 JOIN allowedCompany.contact contact
56 'Selection' => 'mmbr, club, allowedCompany, contact',
58 'club.archived' => false,
59 'mmbr.archived' => false
62 'contact.firstName' => 'ASC',
63 'contact.familyName' => 'ASC',
68 'created' => 'DateTime',
85 protected $metaMembershipGrid = array(
87 'Contract' => 'Recurring',
88 'RequiredInput' => array(),
89 'OptionalInput' => array(
91 'NumberOfRecords' => 'Integer',
98 'NumberOfRecords' => 10,
99 'Query' => 'SELECT [SELECTION]
100 FROM \PriceGuide\Entity\Member mmbr
102 JOIN club.company company
103 JOIN mmbr.company memberCompany
104 JOIN memberCompany.contact contact
106 'Selection' => 'mmbr, memberCompany, club, contact, company',
108 'club.archived' => false,
109 'mmbr.archived' => false
121 'created' => 'DateTime',
125 'memberCompany' => array(
138 protected $metaInvite = array(
140 'Contract' => 'Recurring',
141 'RequiredInput' => array(
147 'OptionalInput' => array()
152 protected $metaAccept = array(
154 'Contract' => 'UseOnce',
155 'ExecuteAfter' => array(
158 'RequiredInput' => array(),
159 'OptionalInput' => array()
164 protected $metaDecline = array(
166 'Contract' => 'UseOnce',
167 'ExecuteAfter' => array(
170 'RequiredInput' => array(),
171 'OptionalInput' => array()
176 protected $metaActivate = array(
178 'Contract' => 'UseOnce',
179 'ExecuteAfter' => array(
182 'RequiredInput' => array(),
183 'OptionalInput' => array()
188 protected $metaDeactivate = array(
190 'Contract' => 'UseOnce',
191 'ExecuteAfter' => array(
192 'deactivateMembership'
194 'RequiredInput' => array(),
195 'OptionalInput' => array()
200 protected $metaUpdate = array(
202 'Contract' => 'UseOnce',
203 'ExecuteAfter' => array(
206 'RequiredInput' => array(),
207 'OptionalInput' => array(
210 'allMakes' => 'Boolean',
213 'fromKm' => 'Integer',
215 'emailNotification' => 'Boolean',
216 'smsNotification' => 'Boolean',
217 'status' => 'String25',
218 'applyToAll' => 'Boolean'
225 protected $metaUpdateStatus = array(
227 'Contract' => 'UseOnce',
232 'RequiredInput' => array(),
233 'OptionalInput' => array(
235 'status' => 'String25'
242 protected $metaArchive = array(
244 'Contract' => 'UseOnce',
245 'ExecuteAfter' => array(
248 'RequiredInput' => array(),
249 'OptionalInput' => array()
255 * Add some dynamic filtering to our grids.
257 public function __construct()
259 $authData = \Utility\Registry::getAuthData();
260 switch (\Utility\Registry::getUserType())
263 $groupFilter = \Utility\Registry::getSudo('Group', false);
265 && $this->metaGrid['Filter']['IDENTITY(company.group)'] = $groupFilter;
266 $divisionFilter = \Utility\Registry::getSudo('Division', false);
268 && $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $divisionFilter;
269 $companyFilter = \Utility\Registry::getSudo('Company', false);
272 $this->metaGrid['Filter']['company.id'] = $companyFilter;
273 $this->metaMembershipGrid['Filter']['memberCompany.id'] = $companyFilter;
277 $this->metaGrid['Filter']['IDENTITY(company.group)'] = $authData['company']['group']['id'];
278 $divisionFilter = \Utility\Registry::getSudo('Division', false);
280 && $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $divisionFilter;
281 $companyFilter = \Utility\Registry::getSudo('Company', false);
284 $this->metaGrid['Filter']['company.id'] = $companyFilter;
285 $this->metaMembershipGrid['Filter']['memberCompany.id'] = $companyFilter;
288 case 'Dealer Principle':
289 $this->metaGrid['Filter']['IDENTITY(company.groupDivision)'] = $authData['company']['groupDivision']['id'];
290 $companyFilter = \Utility\Registry::getSudo('Company', false);
293 $this->metaGrid['Filter']['company.id'] = $companyFilter;
294 $this->metaMembershipGrid['Filter']['memberCompany.id'] = $companyFilter;
298 $this->metaGrid['Filter']['company.id'] = $authData['company']['id'];
299 $this->metaMembershipGrid['Filter']['memberCompany.id'] = $authData['company']['id'];