182feb54
Anastasia
customer
|
1
2
3
4
5
|
<?php
namespace common\models;
use Yii;
|
2beb82f0
Anastasia
register
|
6
|
use yii\helpers\FileHelper;
|
10899280
alex
customer add crea...
|
7
|
use yii\behaviors\TimestampBehavior;
|
08d25902
Alexey Boroda
-Send mail ready
|
8
|
|
182feb54
Anastasia
customer
|
9
10
11
|
/**
* This is the model class for table "customer".
*
|
08d25902
Alexey Boroda
-Send mail ready
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
* @property int $id
* @property string $name
* @property string $secondname
* @property string $dignity
* @property int $gender
* @property string $birth
* @property string $citizenship
* @property string $passport
* @property string $email
* @property string $organization
* @property int $status
* @property int $language_id
* @property string $image
* @property bool $conference
* @property bool $geee
* @property bool $gere
|
5983654b
alex
****WARNING ==> ...
|
28
|
* New properties
|
08d25902
Alexey Boroda
-Send mail ready
|
29
30
31
32
|
* @property string $phone_own
* @property string $phone_office
* @property string $phone_other
* @property string $fax
|
5983654b
alex
****WARNING ==> ...
|
33
34
|
* @property integer $passport_number
* @property integer $passport_date
|
08d25902
Alexey Boroda
-Send mail ready
|
35
|
* @property string $passport_place
|
5983654b
alex
****WARNING ==> ...
|
36
37
|
* @property integer $passport_valid
* @property boolean $need_visa
|
08d25902
Alexey Boroda
-Send mail ready
|
38
39
40
41
42
43
44
45
46
47
|
* @property string $special_meal
* @property boolean $working_language_ru
* @property boolean $working_language_en
* @property boolean $working_language_fr
* @property boolean $meal_halal
* @property boolean $meal_kashrut
* @property boolean $meal_vegan
* @property integer $working_lang
* @property string $post_address ==> официальный почтовый адрес
* @property integer $created_at
|
182feb54
Anastasia
customer
|
48
49
50
|
*/
class Customer extends \yii\db\ActiveRecord
{
|
2beb82f0
Anastasia
register
|
51
|
public $file;
|
08d25902
Alexey Boroda
-Send mail ready
|
52
|
|
5983654b
alex
****WARNING ==> ...
|
53
|
public $acceptance;
|
08d25902
Alexey Boroda
-Send mail ready
|
54
55
56
|
const ADMIN_SCENARIO = 'admin';
|
182feb54
Anastasia
customer
|
57
58
59
|
const STATUS_NEW = 2;
const STATUS_ACTIVE = 1;
const STATUS_NO = 0;
|
08d25902
Alexey Boroda
-Send mail ready
|
60
|
|
72471595
alex
1) Изменил содерж...
|
61
62
63
|
const MEAL_1 = 'Халяль';
const MEAL_2 = 'Кашрут';
const MEAL_3 = 'Вегитарианець';
|
08d25902
Alexey Boroda
-Send mail ready
|
64
|
const MEAL_NONE = 'Не выбрано';
|
182feb54
Anastasia
customer
|
65
|
|
41f1f148
Alexey Boroda
-Emails ready
|
66
67
|
const MALE = '1';
const FEMALE = '2';
|
182feb54
Anastasia
customer
|
68
69
70
71
72
73
74
|
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'customer';
}
|
08d25902
Alexey Boroda
-Send mail ready
|
75
|
|
10899280
alex
customer add crea...
|
76
77
|
public function behaviors()
{
|
08d25902
Alexey Boroda
-Send mail ready
|
78
79
80
81
82
83
|
return [
[
'class' => TimestampBehavior::className(),
'updatedAtAttribute' => false,
],
];
|
10899280
alex
customer add crea...
|
84
|
}
|
08d25902
Alexey Boroda
-Send mail ready
|
85
86
|
/**
|
182feb54
Anastasia
customer
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
* {@inheritdoc}
*/
public function rules()
{
return [
[
[
'gender',
'status',
'language_id',
],
'default',
'value' => null,
],
[
[
'gender',
'status',
'language_id',
|
08d25902
Alexey Boroda
-Send mail ready
|
106
107
|
'acceptance',
'working_lang',
|
182feb54
Anastasia
customer
|
108
109
110
111
112
113
114
115
116
117
118
119
|
],
'integer',
],
[
[ 'organization' ],
'string',
],
[
[
'conference',
'geee',
'gere',
|
08d25902
Alexey Boroda
-Send mail ready
|
120
121
122
123
124
125
126
127
|
'need_visa',
'working_language_ru',
'working_language_en',
'working_language_fr',
'meal_halal',
'meal_kashrut',
'meal_vegan',
|
182feb54
Anastasia
customer
|
128
129
130
|
],
'boolean',
],
|
08d25902
Alexey Boroda
-Send mail ready
|
131
|
|
182feb54
Anastasia
customer
|
132
133
134
135
136
137
138
139
140
141
|
[
[
'name',
'secondname',
'dignity',
'birth',
'citizenship',
'passport',
'email',
'image',
|
08d25902
Alexey Boroda
-Send mail ready
|
142
143
144
145
146
147
|
'passport_place',
'special_meal',
'passport_number',
'passport_date',
'passport_valid',
'post_address',
|
182feb54
Anastasia
customer
|
148
149
150
151
|
],
'string',
'max' => 255,
],
|
08d25902
Alexey Boroda
-Send mail ready
|
152
153
154
155
156
157
158
159
160
161
162
|
[
[
'phone_own',
'phone_office',
'phone_other',
'fax',
],
'string',
'max' => 30,
],
|
182feb54
Anastasia
customer
|
163
164
165
166
167
168
169
170
171
172
173
174
175
|
[
[ 'gender' ],
'in',
'range' => [
self::MALE,
self::FEMALE,
],
],
[
[
'gender',
'organization',
'name',
|
5983654b
alex
****WARNING ==> ...
|
176
|
#'secondname',
|
182feb54
Anastasia
customer
|
177
178
|
'birth',
'citizenship',
|
5983654b
alex
****WARNING ==> ...
|
179
|
#'passport',
|
182feb54
Anastasia
customer
|
180
|
'email',
|
08d25902
Alexey Boroda
-Send mail ready
|
181
182
183
184
185
186
187
188
189
|
'post_address',
'passport_number',
'passport_date',
'passport_place',
'passport_valid',
'need_visa',
'phone_office',
'phone_other',
'need_visa',
|
182feb54
Anastasia
customer
|
190
191
192
|
],
'required',
],
|
08d25902
Alexey Boroda
-Send mail ready
|
193
194
195
196
197
198
199
200
201
202
203
204
205
|
[
[
'acceptance',
],
'required',
'except' => self::ADMIN_SCENARIO,
],
[
[
'phone_office',
'phone_other',
],
'match',
|
8c5df6e2
alex
Изменил regex пат...
|
206
|
'pattern' => '#^\+?[\d\s]+$#',
|
08d25902
Alexey Boroda
-Send mail ready
|
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
],
[
[ 'acceptance' ],
'compare',
'compareValue' => 1,
],
[
'email',
'email',
],
[
'file',
'file',
'skipOnEmpty' => false,
'checkExtensionByMimeType' => false,
'extensions' => [
'png',
'jpg',
'gif',
],
'maxSize' => 1024 * 1024 * 1024 * 2,
'except' => self::ADMIN_SCENARIO,
],
|
182feb54
Anastasia
customer
|
230
231
232
233
234
235
236
237
238
239
|
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
|
08d25902
Alexey Boroda
-Send mail ready
|
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
'id' => Yii::t('app', 'ID'),
'name' => Yii::t('app', 'Name'),
'secondname' => Yii::t('app', 'Secondname'),
'dignity' => Yii::t('app', 'Dignity'),
'gender' => Yii::t('app', 'Gender'),
'birth' => Yii::t('app', 'Birth'),
'citizenship' => Yii::t('app', 'Citizenship'),
'passport' => Yii::t('app', 'Passport'),
'email' => Yii::t('app', 'Email'),
'organization' => Yii::t('app', 'Organization'),
'status' => Yii::t('app', 'Status'),
'language_id' => Yii::t('app', 'Language ID'),
'image' => Yii::t('app', 'Image'),
'conference' => Yii::t('app', 'Conference'),
'geee' => Yii::t('app', 'Geee'),
'gere' => Yii::t('app', 'Gere'),
'need_visa' => Yii::t('app', 'Need visa'),
'passport_number' => Yii::t('app', 'Passport number'),
'passport_date' => Yii::t('app', 'Passport date'),
'passport_place' => Yii::t('app', 'Passport place'),
'passport_valid' => Yii::t('app', 'Passport valid'),
'phone_own' => Yii::t('app', 'Phone own'),
'phone_office' => Yii::t('app', 'Phone office'),
'phone_other' => Yii::t('app', 'Phone other'),
'fax' => Yii::t('app', 'fax'),
'acceptance' => Yii::t('app', 'acceptance'),
'working_lang' => Yii::t('app', 'Working language'),
'special_meal' => Yii::t('app', 'Special meal'),
'post_address' => Yii::t('app', 'Post address'),
|
182feb54
Anastasia
customer
|
270
271
|
];
}
|
2beb82f0
Anastasia
register
|
272
|
|
f36f2e82
Anastasia
valid files
|
273
|
public function upload()
|
2beb82f0
Anastasia
register
|
274
275
|
{
/**
|
08d25902
Alexey Boroda
-Send mail ready
|
276
|
* @var \yii\web\UploadedFile $file ;
|
2beb82f0
Anastasia
register
|
277
|
*/
|
f36f2e82
Anastasia
valid files
|
278
|
if (!empty($this->file) and $this->validate()) {
|
2beb82f0
Anastasia
register
|
279
280
281
|
if (!file_exists(\Yii::getAlias('@storage/customers/'))) {
FileHelper::createDirectory(\Yii::getAlias('@storage/customers/'));
}
|
08d25902
Alexey Boroda
-Send mail ready
|
282
283
284
285
286
|
$filename = $this->file->baseName . '_' . Yii::$app->security->generateRandomString(
5
) . '.' . $this->file->extension;
if ($this->file->saveAs(\Yii::getAlias('@storage/customers/') . $filename)) {
$this->image = '/storage/customers/' . $filename;
|
5ff3d26f
Anastasia
images path
|
287
|
$this->file->name = $filename;
|
2beb82f0
Anastasia
register
|
288
289
290
|
return true;
}
return false;
|
08d25902
Alexey Boroda
-Send mail ready
|
291
|
|
2beb82f0
Anastasia
register
|
292
293
294
|
}
return true;
}
|
182feb54
Anastasia
customer
|
295
|
}
|