From: fomichev Date: Fri, 13 Dec 2024 08:40:21 +0000 (+0300) Subject: Формирование данных X-Git-Tag: 1.7~161^2~10 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=b7be40ef8be70ab9be9d1211272758488f134de0;p=erp24_rep%2Fyii-erp24%2F.git Формирование данных --- diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index 5108162e..9e3f40b6 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -8,7 +8,9 @@ use Yii; use yii\base\DynamicModel; use yii\data\ArrayDataProvider; use yii\web\Controller; +use yii_app\records\Sales; use yii_app\records\Users; +use yii_app\records\UsersEvents; use yii_app\records\UsersMessageManagement; class UsersMessageManagementController extends Controller @@ -47,7 +49,7 @@ class UsersMessageManagementController extends Controller if (!$model) { - $model = new UsersMessageManagement; + $model = new UsersMessageManagement(); } if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post())) { @@ -120,12 +122,58 @@ class UsersMessageManagementController extends Controller public function actionGenerateExcel($date, $type) { try { - $data = Users::getUsersListForKogort($date); - if (empty($data)) { + $users = Users::getUsersListForKogort($date); + if (empty($users)) { Yii::$app->session->setFlash('error', 'Нет данных для экспорта.'); return $this->redirect(Yii::$app->request->referrer); } + + $data = []; + foreach ($users as $user) { + $userPhone = $user['phone']; + + $memorableDateCount = UsersEvents::find()->where(['phone' => $userPhone])->count(); + $memorableDateExists = UsersEvents::find() + ->where(['phone' => $userPhone, 'date' => $date]) + ->exists() ? 1 : 0; + + $lastSale = Sales::find() + ->where(['phone' => $userPhone]) + ->orderBy(['date' => SORT_DESC]) + ->one(); + $lastDate = $lastSale ? $lastSale->date : null; + $dealsCount = Sales::find()->where(['phone' => $userPhone])->count(); + $totalSum = Sales::find()->where(['phone' => $userPhone])->sum('summ') ?? 0; + + $userData = [ + 'phone' => $userPhone, + ]; + + if ($type === 'call') { + $userData['name'] = $user['name']; + $userData['memorable_date_count'] = $memorableDateCount; + $userData['memorable_date'] = $memorableDateExists; + $userData['last_date'] = $lastDate; + $userData['deals_count'] = $dealsCount; + $userData['total_sum'] = $totalSum; + } + + $data[] = $userData; + } + + $columns = ['phone']; + if ($type === 'call') { + $columns = array_merge($columns, [ + 'last_date', + 'deals_count', + 'total_sum', + 'memorable_date_count', + 'memorable_date', + 'name', + ]); + } + $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Users'); @@ -174,7 +222,49 @@ class UsersMessageManagementController extends Controller public function actionViewKogortUsers($date, $type) { - $data = Users::getUsersListForKogort($date); + $users = Users::getUsersListForKogort($date); + $data = []; + + foreach ($users as $user) { + $userPhone = $user['phone']; + + $memorableDateCount = UsersEvents::find() + ->where(['phone' => $userPhone]) + ->count(); + + $memorableDateExists = UsersEvents::find() + ->where(['phone' => $userPhone, 'date' => $date]) + ->exists() ? 1 : 0; + + $lastSale = Sales::find() + ->where(['phone' => $userPhone]) + ->orderBy(['date' => SORT_DESC]) + ->one(); + + $lastDate = $lastSale ? $lastSale->date : 'нет данных'; + $dealsCount = Sales::find() + ->where(['phone' => $userPhone]) + ->count(); + $totalSum = Sales::find() + ->where(['phone' => $userPhone]) + ->sum('summ') ?? 0; + + + $userData = [ + 'phone' => $userPhone, + ]; + + if ($type === 'call') { + $userData['last_date'] = $lastDate; + $userData['deals_count'] = $dealsCount; + $userData['total_sum'] = $totalSum; + $userData['memorable_date_count'] = $memorableDateCount; + $userData['memorable_date'] = $memorableDateExists; + $userData['name'] = $user['name']; + } + + $data[] = $userData; + } $dataProvider = new ArrayDataProvider([ 'allModels' => $data, @@ -186,6 +276,7 @@ class UsersMessageManagementController extends Controller return $this->render('view-kogort', [ 'dataProvider' => $dataProvider, 'date' => $date, + 'type' => $type, ]); } diff --git a/erp24/views/users-message-management/_export.php b/erp24/views/users-message-management/_export.php index 74f50d57..0f934b54 100644 --- a/erp24/views/users-message-management/_export.php +++ b/erp24/views/users-message-management/_export.php @@ -25,7 +25,7 @@ use yii\helpers\Url;
diff --git a/erp24/views/users-message-management/view-kogort.php b/erp24/views/users-message-management/view-kogort.php index dc1586f5..9756039b 100644 --- a/erp24/views/users-message-management/view-kogort.php +++ b/erp24/views/users-message-management/view-kogort.php @@ -20,7 +20,7 @@ $this->params['breadcrumbs'][] = $this->title; $dataProvider, - 'columns' => [ + /*'columns' => [ ['class' => 'yii\grid\SerialColumn'], [ @@ -64,7 +64,7 @@ $this->params['breadcrumbs'][] = $this->title; ], - ], + ],*/ ]); ?>