-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReportController.php
executable file
·69 lines (58 loc) · 1.71 KB
/
ReportController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
namespace frontend\controllers;
use Yii;
use frontend\models\forms\ReportForm;
use yii\filters\AccessControl;
/**
* Class ReportController
*
* @package frontend\controllers
*/
class ReportController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::class,
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
/**
* Index for creating CSV report
*
* @throws \yii\base\InvalidConfigException
*/
public function actionIndex($scenario = null)
{
$model = new ReportForm();
// select model scenario from GET or POST
$model->scenario = ReportForm::SCENARIO_BY_DATE;
$scenario = $this->request->post('scenario', $scenario);
if (in_array($scenario, [ReportForm::SCENARIO_BY_DATE, ReportForm::SCENARIO_BY_ORDER_NR])) {
$model->scenario = $scenario;
}
// Generate Report
if ($this->request->post()) {
$model->load(Yii::$app->request->post());
if ($model->validate()) {
$model->pushReportQueueJob();
Yii::$app->getSession()->setFlash('success', 'The report is being generated. Please check your email in a few minutes.');
return $this->redirect(['report/index', 'scenario' => $model->scenario]);
}
}
return $this->render(
'index',
[
'model' => $model,
'customers' => $model->getCustomerList(),
]
);
}
}