Blame view

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