text changes to registration mail content
[namibia] / module / Company / src / Company / DataBin / CompanyRetail.php
1 <?php
2 namespace Company\DataBin;
3
4
5
6 /**
7  * Manage Company data.
8  * @author andre.fourie
9  */
10 class CompanyRetail extends \Workspace\Service\DataBin
11 {
12
13         /**
14          * @var array
15          */
16         protected $meta = array(
17                         'Base'        => 'CompanyRetail',
18                         'DatasetName' => 'companyretailaccounts',
19                         'Entity'      => '\Company\Entity\CompanyRetail',
20                         'References'  => array(
21                                         'company' => '\Company\Entity\Company',
22                                         'retail'  => '\Retail\Entity\Retail'
23                         ),
24                         'Dependants'  => array()
25         );
26         /*
27          * @var array
28          */
29         protected $metaSelectList = array(
30                         'Type'          => 'SelectList',
31                         'Contract'      => 'Recurring',
32                         'RequiredInput' => array(),
33                         'OptionalInput' => array(
34                                         'Filter' => array(
35                                                         'company'       => 'Id',
36                                                         'retail'        => 'Id'
37                                         )
38                         ),
39                         'Filter'   => array(),
40                         'Label'    => array(
41                                 'Format' => '[name]',
42                                 'Fields' => array('name')
43                         )
44         );
45         /**
46          * @var array
47         */
48         protected $metaGrid = array(
49                         'Type'          => 'Grid',
50                         'Contract'      => 'Recurring',
51                         'RequiredInput' => array(),
52                         'OptionalInput' => array(
53                                         'Grid' => array(
54                                                         'NumberOfRecords' => 'Integer',
55                                                         'Page'            => 'Integer',
56                                                         'Filter'          => 'Array',
57                                                         'OrderBy'         => 'Array',
58                                         )
59                         ),
60                         'Base'            => 'company',
61                         'NumberOfRecords' => 10,
62                         'Query'           => 'SELECT [SELECTION]
63                                                                 FROM \Company\Entity\CompanyRetail companyRetail
64                                                                 JOIN companyRetail.company company
65                                                                 [WHERE] [ORDER]',
66                         'Selection'       => 'companyRetail, company',
67                         'Filter'          => array(),
68                         'OrderBy'         => array('company.name' => 'ASC'),
69                         'Fields'          => array(
70                                                                         'id',
71                                                                         'name',
72                                                                         'created' => 'DateTime',
73                                                                         'updated' => 'DateTime',
74                                                                         'archived'
75                                                                 )
76         );
77         protected $metaCreate = array(
78                         'Type'          => 'Create',
79                         'Contract'      => 'UseOnce',
80                         'ConditionalContract' => array(
81                                         'noDuplicateRetailEntries'
82                         ),
83                         'Expand' => array(
84                                 'retail'
85                         ),
86                         'RequiredInput' => array(
87                                         'CompanyRetail' => array(
88                                                         'retail'    => 'Id',
89                                                         'username'  => 'String150',
90                                                         'password'  => 'String64'
91                                         )
92                         ),
93                         'OptionalInput' => array()
94         );
95         /**
96          * @var array
97         */
98         protected $metaUpdate = array(
99                         'Type'          => 'Update',
100                         'Contract'      => 'UseOnce',
101                         'Expand'        => array(
102                                         'retail'
103                         ),
104                         'RequiredInput' => array(
105                                         'CompanyRetail' => array(
106                                                         'username'  => 'String150',
107                                                         'password'  => 'String64'
108                                         )
109                         ),
110                         'OptionalInput' => array(
111                                         'CompanyRetail' => array(
112                                                         'archived'    => 'Boolean'
113                                         )
114                         )
115         );
116
117
118
119         /**
120          * Add some dynamic filtering to our grids.
121          */
122         public function __construct()
123         {
124                 $authData = \Utility\Registry::getAuthData();
125                 switch (\Utility\Registry::getUserType())
126                 {
127                         case 'B4C User':
128                                 $companyFilter = \Utility\Registry::getSudo('Company', $authData['company']['id']);
129                                 $this->metaGrid['Filter']['company.id'] = $companyFilter
130                                         ? $companyFilter
131                                         : 0;
132                                 break;
133                         case 'Group User':
134                                 $companyFilter = \Utility\Registry::getSudo('Company', $authData['company']['id']);
135                                 $this->metaGrid['Filter']['company.id'] = $companyFilter
136                                         ? $companyFilter
137                                         : 0;
138                                 break;
139                         default:
140                                 $this->metaGrid['Filter']['company.id'] = $authData['company']['id'];
141                                 break;
142                 }
143         }
144
145 }