public function processSurveys(array $surveys) { foreach ($surveys as $survey) { if ($survey->surveyInfo == null) { $info = new SurveyInfo(); $info->surveyId = $survey->sid; $info->surveyType = $survey->location; $survey->surveyInfo = $info; } if ($survey->surveyInfo->isActive == null) { $survey->surveyInfo->isActive = $survey->isActive(); $survey->surveyInfo->save(); } else { if ($survey->surveyInfo->isActive && $survey->surveyInfo->isActive != $survey->isActive()) { $attachedFiles = AttachedFile::model()->findAllByAttributes(array('fileType' => AttachedFile::FILE_TYPE_FULL_ANALYTICS, 'modelId' => $survey->sid, 'modelType' => get_class($survey))); $linksToFiles = array(); $filesToAttachment = array(); foreach ($attachedFiles as $file) { if ($file->attachType == AttachedFile::ATTACH_TYPE_LINK) { $linksToFiles[$file->filePath] = $file->name; } elseif ($file->attachType == AttachedFile::ATTACH_TYPE_FILE) { $filesToAttachment[$file->filePath] = $file->fileName; } } $exportHelper = new ExcelExportSurveyHelper($survey); $res = $exportHelper->export(); if ($res != null) { $excelFilepath = "/tmp/" . md5(time() . "_" . $survey->sid . "_" . $survey->location) . '.xls'; file_put_contents($excelFilepath, $res['content']); $filesToAttachment[$excelFilepath] = 'Массив данных в Excel.xls'; } $mail = new YiiMailer(); $mail->setFrom(Yii::app()->params['adminEmail'], 'Администраток ЛК'); $mail->setTo(Yii::app()->params['adminEmail']); $mail->setSubject('Опрос перешёл в список завершённых.'); $mail->setView('surveyChangeActivity'); $mail->setData(array('survey' => $survey, 'linksToFiles' => $linksToFiles)); $mail->setAttachment($filesToAttachment); echo "[" . date("Y-m-d H:i:s") . "] try to send mail\n"; if (!$mail->send()) { echo "[" . date("Y-m-d H:i:s") . "] fail \n"; print_r($mail->getError()); echo PHP_EOL; } $survey->surveyInfo->isActive = $survey->isActive(); $survey->surveyInfo->save(); } } } }
public function actionExportExcel($id, $location) { $survey = $this->loadModel($id, $location); $allowedForUsers = array_map(function ($x) { return $x->userId; }, $survey->surveyUsers); if (!Yii::app()->user->checkAccess('survey.view') && !Yii::app()->user->checkAccess('survey.viewAndDownloadAllowed', array('user_ids' => $allowedForUsers))) { throw new Http403Exception(); } $exportHelper = new ExcelExportSurveyHelper($survey); $res = $exportHelper->export(); foreach ($res['headers'] as $header) { header($header); } echo $res['content']; }