Blame view

frontend/controllers/CabinetController.php 13.4 KB
3bc9af21   Yarik   Layout
1
2
3
  <?php
      namespace frontend\controllers;
      
8195fc24   Yarik   Models
4
      use common\models\User;
0d91ef5d   Alexey Boroda   -Delete action added
5
      use frontend\models\CreativeRole;
b73541b6   Yarik   Property
6
      use frontend\models\IntellectualProperty;
3533e4e9   Yarik   Forms
7
      use frontend\models\Report;
8195fc24   Yarik   Models
8
9
      use frontend\models\UserData;
      use frontend\models\UserPassport;
b6741a94   Yarik   Login
10
      use yii\filters\AccessControl;
30e3d244   Yarik   Forms
11
      use yii\filters\VerbFilter;
3bc9af21   Yarik   Layout
12
      use yii\web\Controller;
b73541b6   Yarik   Property
13
      use yii\web\NotFoundHttpException;
43cb22d0   Yarik   Property
14
      
3bc9af21   Yarik   Layout
15
16
17
18
19
      /**
       * Cabinet controller
       */
      class CabinetController extends Controller
      {
7f0970a7   Yarik   Layout
20
21
22
          
          public $layout = 'cabinet';
          
3bc9af21   Yarik   Layout
23
24
25
26
27
28
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
3ebbbaa9   Alexey Boroda   -Reports
29
                  'verbs'  => [
43cb22d0   Yarik   Property
30
                      'class'   => VerbFilter::className(),
30e3d244   Yarik   Forms
31
                      'actions' => [
43cb22d0   Yarik   Property
32
33
                          'personal' => [ 'post' ],
                          'passport' => [ 'post' ],
30e3d244   Yarik   Forms
34
35
                      ],
                  ],
b6741a94   Yarik   Login
36
37
38
39
40
                  'access' => [
                      'class' => AccessControl::className(),
                      'rules' => [
                          [
                              'allow' => true,
3ebbbaa9   Alexey Boroda   -Reports
41
                              'roles' => [ '@' ],
b6741a94   Yarik   Login
42
43
44
                          ],
                      ],
                  ],
3bc9af21   Yarik   Layout
45
46
47
48
49
50
51
52
53
54
              ];
          }
          
          /**
           * Displays index page.
           *
           * @return mixed
           */
          public function actionIndex()
          {
8195fc24   Yarik   Models
55
56
57
58
              /**
               * @var User $user
               */
              $user = \Yii::$app->user->identity;
43cb22d0   Yarik   Property
59
              if (!$userData = $user->userData) {
8195fc24   Yarik   Models
60
61
                  $userData = new UserData();
              }
43cb22d0   Yarik   Property
62
              if (!$userPassport = $user->userPassport) {
8195fc24   Yarik   Models
63
64
                  $userPassport = new UserPassport();
              }
fb0f9630   Alexey Boroda   -Greed ready
65
              
3ebbbaa9   Alexey Boroda   -Reports
66
67
68
69
70
              $table = IntellectualProperty::find()//                                         ->where(
                  //                                             [
                  //                                                 'user_id' => \Yii::$app->user->identity->id,
                  //                                             ]
                  //                                         )
43cb22d0   Yarik   Property
71
                                           ->all();
fb0f9630   Alexey Boroda   -Greed ready
72
              
43cb22d0   Yarik   Property
73
74
75
76
77
78
79
80
              return $this->render(
                  'index',
                  [
                      'userData'     => $userData,
                      'userPassport' => $userPassport,
                      'table'        => $table,
                  ]
              );
3bc9af21   Yarik   Layout
81
82
          }
          
3ebbbaa9   Alexey Boroda   -Reports
83
          public function actionSales($id = NULL)
f1b535e4   Yarik   Datepicker
84
          {
43cb22d0   Yarik   Property
85
86
              $newRecord = false;
              if ($id) {
b73541b6   Yarik   Property
87
88
89
                  $property = $this->findProperty($id);
              } else {
                  $property = new IntellectualProperty();
43cb22d0   Yarik   Property
90
                  $newRecord = true;
b73541b6   Yarik   Property
91
              }
43cb22d0   Yarik   Property
92
              if ($property->load(\Yii::$app->request->post()) && $property->save()) {
aebb725c   Alexey Boroda   -List ready
93
94
95
96
97
98
99
                  if ($newRecord) {
                      return $this->redirect(
                          [
                              'cabinet/sales',
                              'id' => $property->id,
                          ]
                      );
43cb22d0   Yarik   Property
100
101
102
103
104
105
106
107
                  } else {
                      $response = \Yii::$app->response;
                      $response->format = $response::FORMAT_JSON;
                      return [
                          'success' => true,
                          'message' => 'Данные успешно сохранены',
                      ];
                  }
b73541b6   Yarik   Property
108
              }
0d91ef5d   Alexey Boroda   -Delete action added
109
              
aebb725c   Alexey Boroda   -List ready
110
111
112
113
114
115
116
              $table = CreativeRole::find()
                                   ->where(
                                       [
                                           'intellectual_property_id' => $id,
                                       ]
                                   )
                                   ->all();
0d91ef5d   Alexey Boroda   -Delete action added
117
              
43cb22d0   Yarik   Property
118
119
120
121
              return $this->render(
                  'sales',
                  [
                      'property' => $property,
aebb725c   Alexey Boroda   -List ready
122
                      'table'    => $table,
43cb22d0   Yarik   Property
123
124
                  ]
              );
f1b535e4   Yarik   Datepicker
125
126
          }
          
caf85dfb   Yarik   Html
127
128
          public function actionList()
          {
3ebbbaa9   Alexey Boroda   -Reports
129
130
131
132
133
              $table = IntellectualProperty::find()//                                         ->where(
                  //                                             [
                  //                                                 'user_id' => \Yii::$app->user->identity->id,
                  //                                             ]
                  //                                         )
aebb725c   Alexey Boroda   -List ready
134
135
136
137
138
139
140
                                           ->all();
              return $this->render(
                  'list',
                  [
                      'table' => $table,
                  ]
              );
caf85dfb   Yarik   Html
141
142
143
144
          }
          
          public function actionArrivals()
          {
3533e4e9   Yarik   Forms
145
146
147
148
149
150
151
152
153
              $reports = Report::find()
                               ->with('intellectualProperty')
                               ->all();
              return $this->render(
                  'arrivals',
                  [
                      'reports' => $reports,
                  ]
              );
caf85dfb   Yarik   Html
154
          }
aebb725c   Alexey Boroda   -List ready
155
          
caf85dfb   Yarik   Html
156
157
          public function actionNotifications()
          {
3ebbbaa9   Alexey Boroda   -Reports
158
159
160
161
162
163
164
165
              $table = Report::find()
                             ->all();
              return $this->render(
                  'notifications',
                  [
                      'table' => $table,
                  ]
              );
caf85dfb   Yarik   Html
166
          }
aebb725c   Alexey Boroda   -List ready
167
          
caf85dfb   Yarik   Html
168
169
          public function actionUsers()
          {
3ebbbaa9   Alexey Boroda   -Reports
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
              /**
               * @var User $user
               */
              $user = \Yii::$app->user->identity;
              if ($user->isAdmin()) {
                  $reports = Report::find()
                                   ->with('intellectualProperty')
                                   ->all();
              } else {
                  $reports = Report::find()
                                   ->joinWith('intellectualProperty.creativeRoles')
                                   ->where([ 'creative_role.user_id' => $user->id ])
                                   ->all();
              }
              
3533e4e9   Yarik   Forms
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
              return $this->render(
                  'users',
                  [
                      'reports' => $reports,
                  ]
              );
          }
          
          public function actionUsersAdd()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
              /**
               * @var User $user
               */
              $report = new Report();
              if ($report->load($request->post()) && $report->save()) {
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
                      'error'   => true,
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
caf85dfb   Yarik   Html
213
214
          }
          
30e3d244   Yarik   Forms
215
216
217
218
219
220
221
222
223
          public function actionPersonal()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
              /**
               * @var User $user
               */
              $user = \Yii::$app->user->identity;
43cb22d0   Yarik   Property
224
              if (!$userData = $user->userData) {
30e3d244   Yarik   Forms
225
226
227
                  $userData = new UserData();
                  $userData->user_id = $user->id;
              }
43cb22d0   Yarik   Property
228
              if ($userData->load($request->post()) && $userData->save()) {
30e3d244   Yarik   Forms
229
230
231
232
233
234
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
43cb22d0   Yarik   Property
235
                      'error'   => true,
30e3d244   Yarik   Forms
236
237
238
239
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
          }
43cb22d0   Yarik   Property
240
          
30e3d244   Yarik   Forms
241
242
243
244
245
246
247
248
249
          public function actionPassport()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
              /**
               * @var User $user
               */
              $user = \Yii::$app->user->identity;
43cb22d0   Yarik   Property
250
              if (!$userPassport = $user->userPassport) {
30e3d244   Yarik   Forms
251
252
253
                  $userPassport = new UserPassport();
                  $userPassport->user_id = $user->id;
              }
43cb22d0   Yarik   Property
254
              if ($userPassport->load($request->post()) && $userPassport->save()) {
30e3d244   Yarik   Forms
255
256
257
258
259
260
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
43cb22d0   Yarik   Property
261
                      'error'   => true,
30e3d244   Yarik   Forms
262
263
264
265
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
          }
43cb22d0   Yarik   Property
266
          
dcfb3d5c   Alexey Boroda   -Form ajax ready
267
268
269
270
271
272
273
274
          public function actionAddIntProp()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
              
              $intProperty = new IntellectualProperty();
              
fb0f9630   Alexey Boroda   -Greed ready
275
276
              $intProperty->user_id = \Yii::$app->user->identity->id;
              
43cb22d0   Yarik   Property
277
              if ($intProperty->load($request->post()) && $intProperty->save()) {
dcfb3d5c   Alexey Boroda   -Form ajax ready
278
279
280
281
282
283
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
43cb22d0   Yarik   Property
284
                      'error'   => true,
dcfb3d5c   Alexey Boroda   -Form ajax ready
285
286
287
288
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
          }
3533e4e9   Yarik   Forms
289
          
aebb725c   Alexey Boroda   -List ready
290
          public function actionDeleteIntProperty()
0d91ef5d   Alexey Boroda   -Delete action added
291
292
293
294
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
3533e4e9   Yarik   Forms
295
              
3ebbbaa9   Alexey Boroda   -Reports
296
              if (!empty($request->post('id'))) {
aebb725c   Alexey Boroda   -List ready
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
                  $role = IntellectualProperty::findOne($request->post('id'));
                  if ($role->delete()) {
                      return [
                          'success' => true,
                          'message' => 'Данные успешно удалены',
                      ];
                  } else {
                      return [
                          'error'   => true,
                          'message' => 'Ошибка удаления данных',
                      ];
                  }
              } else {
                  return [
                      'error'   => true,
                      'message' => 'Элемент не найден',
                  ];
              }
          }
0d91ef5d   Alexey Boroda   -Delete action added
316
          
aebb725c   Alexey Boroda   -List ready
317
318
319
320
321
322
323
324
          public function actionAddRole()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
              
              $role = new CreativeRole();
              
0d91ef5d   Alexey Boroda   -Delete action added
325
326
327
328
329
330
331
332
333
334
335
336
              if ($role->load($request->post()) && $role->save()) {
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
                      'error'   => true,
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
          }
3ebbbaa9   Alexey Boroda   -Reports
337
          
9e523ea9   Alexey Boroda   -Update ready
338
339
340
341
342
          public function actionUpdateRole()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
3ebbbaa9   Alexey Boroda   -Reports
343
              
9e523ea9   Alexey Boroda   -Update ready
344
              $role = CreativeRole::findOne($request->get('id'));
3ebbbaa9   Alexey Boroda   -Reports
345
              
9e523ea9   Alexey Boroda   -Update ready
346
347
348
349
350
351
352
353
354
355
356
357
              if ($role->load($request->post()) && $role->save()) {
                  return [
                      'success' => true,
                      'message' => 'Данные успешно сохранены',
                  ];
              } else {
                  return [
                      'error'   => true,
                      'message' => 'Ошибка сохранения данных',
                  ];
              }
          }
3ebbbaa9   Alexey Boroda   -Reports
358
          
9e523ea9   Alexey Boroda   -Update ready
359
360
361
362
363
          public function actionGetRoleForm()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
3ebbbaa9   Alexey Boroda   -Reports
364
              
9e523ea9   Alexey Boroda   -Update ready
365
366
367
              $model = CreativeRole::findOne($request->post('id'));
              
              return [
3ebbbaa9   Alexey Boroda   -Reports
368
                  'answer' => $this->renderPartial('_update_form', [ 'model' => $model ]),
9e523ea9   Alexey Boroda   -Update ready
369
370
              ];
          }
0d91ef5d   Alexey Boroda   -Delete action added
371
372
373
374
375
376
          
          public function actionDeleteRole()
          {
              $request = \Yii::$app->request;
              $response = \Yii::$app->response;
              $response->format = $response::FORMAT_JSON;
0d91ef5d   Alexey Boroda   -Delete action added
377
              
3ebbbaa9   Alexey Boroda   -Reports
378
              if (!empty($request->post('id'))) {
aebb725c   Alexey Boroda   -List ready
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
                  $role = CreativeRole::findOne($request->post('id'));
                  if ($role->delete()) {
                      return [
                          'success' => true,
                          'message' => 'Данные успешно удалены',
                      ];
                  } else {
                      return [
                          'error'   => true,
                          'message' => 'Ошибка удаления данных',
                      ];
                  }
              } else {
                  return [
                      'error'   => true,
                      'message' => 'Роль не найдена',
                  ];
              }
0d91ef5d   Alexey Boroda   -Delete action added
397
          }
b73541b6   Yarik   Property
398
399
400
401
          
          public function findProperty($id)
          {
              $model = IntellectualProperty::findOne($id);
3ebbbaa9   Alexey Boroda   -Reports
402
              if (empty($model)) {
b73541b6   Yarik   Property
403
404
405
406
                  throw new NotFoundHttpException();
              }
              return $model;
          }
3bc9af21   Yarik   Layout
407
      }