Esempio n. 1
0
 public static function getMemberCodesSqlFilter()
 {
     if (empty(self::$memberAnswersCodesSqlFilters)) {
         $groupedCodesArray = self::getGroupedCodes();
         /**
          * Get all answers excluding group codes
          */
         $memberAnswers = MembersQuestionsAnswers::find()->innerJoinWith('questionOption');
         if (!empty($groupedCodesArray)) {
             $memberAnswers->where(['not in', 'code_id', $groupedCodesArray['codes']]);
         }
         $memberAnswers->all();
         /**
          * Run throw answers to build where arrays
          */
         foreach ($memberAnswers as $answer) {
             if (!empty($answer->questionOption->code_id)) {
                 foreach ($answer->questionOption->code_id as $code_id) {
                     //build include codes ids array
                     self::$memberAnswersCodesSqlFilters['include'][] = ['like', 'code_id', "[{$code_id}]"];
                     //build exclude codes ids array
                     self::$memberAnswersCodesSqlFilters['exclude'][] = ['not like', 'no_code_id', "[{$code_id}]"];
                 }
             }
         }
     }
     return self::$memberAnswersCodesSqlFilters;
 }