private function getPdfRule($member, $pdf) { $pdf_rules = PdfsRules::find()->where(['is_active' => 1, 'pdf_id' => $pdf->id]); $pdfsDelay = Yii::$app->PdfsComponent->getPdfDelaySettings() * 3600; $progressUpdateTime = strtotime($member->created_at); $diffTime = time() - $progressUpdateTime; if ($diffTime < $pdfsDelay) { return false; } if ($pdf_rules->count() > 0) { $memberAnswers = MembersQuestionsAnswers::find()->where(['member_id' => $member->id]); foreach ($pdf_rules->all() as $rule) { $progressUpdateTime = strtotime(Yii::$app->MappingComponent->getCategoryProgressDate($rule->category_id, $member->id)); $diffTime = time() - $progressUpdateTime; if ($diffTime < $pdfsDelay) { return false; } $memberAnswers->andWhere(['in', 'option_id', $rule->options_id]); } return $memberAnswers->count(); } }
public function checkCategoryAnswered($id) { $requiredQuestions = MappingQuestions::find()->where(['and', ['category_id' => $id, 'is_required' => 1, 'is_active' => 1]]); if ($requiredQuestions->count()) { foreach ($requiredQuestions->asArray()->all() as $question) { $answerExists = MembersQuestionsAnswers::find()->where(['question_id' => $question['id'], 'member_id' => Yii::$app->user->id])->exists(); if (!$answerExists) { return false; } } } return true; }