/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Acdfrequenceenroll::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => '1']]);
     $query->joinWith('enroll');
     $query->where(['acdenroll.groupid' => (int) Yii::$app->session['groupid']]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['datetime' => $this->datetime, 'enrollid' => $this->enrollid, 'scheduleid' => $this->scheduleid, 'frequencydate' => $this->frequencydate, 'frequency' => $this->frequency, 'iscancellation' => $this->iscancellation, 'justifiedabsence' => $this->justifiedabsence, 'cancelledabsence' => $this->cancelledabsence, 'timeid' => $this->timeid, 'justifiedabsense' => $this->justifiedabsense, 'centerid' => $this->centerid]);
     $query->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'ipaddress', $this->ipaddress])->andFilterWhere(['like', 'reasoncancellation', $this->reasoncancellation])->andFilterWhere(['like', 'justification', $this->justification]);
     return $dataProvider;
 }
 /**
  * Creates a new Acdfrequenceenroll model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionPesquisafrequencia()
 {
     $search = new FrequenciaPesquisa();
     $groupid = Yii::$app->session['groupid'];
     $professor = Yii::$app->session['idprofessor'];
     if ($search->load(Yii::$app->request->post())) {
         $dataInicial = $search->dataInicial;
         $dataFinal = $search->dataFinal;
         $compareInicial = str_replace('-', '', $dataInicial);
         $compareFinal = str_replace('-', '', $dataFinal);
         if ($compareInicial > $compareFinal) {
             // echo
             echo 0;
         } else {
             $filtroMat = array('groupid' => $groupid);
             $idEnroll = array();
             $idTime = array();
             if (!empty($search->alunos)) {
                 foreach ($search->alunos as $matricula) {
                     array_push($idEnroll, $matricula);
                 }
                 $filtroMat = array('in', 'enrollid', $idEnroll);
             }
             if (!empty($search->horas)) {
                 foreach ($search->horas as $hora) {
                     array_push($idTime, $hora);
                 }
                 /// $filtroMat = array('in', 'enrollid', $idEnroll);
             }
             $aluno = Acdenroll::find()->joinWith(['contract.person'])->where(['groupid' => $groupid])->where($filtroMat)->orderBy('name')->all();
             $tabela = $this->criaFrequencia($groupid, $dataInicial, $dataFinal, $idTime, $professor);
             $dataFrequencia = array();
             $timeFrequencia = array();
             $schedulesFrequencia = array();
             $frequencia = array();
             foreach ($tabela['colunTab'] as $itens) {
                 array_push($dataFrequencia, $itens[0]);
                 array_push($timeFrequencia, $itens[1][1]);
                 array_push($schedulesFrequencia, $itens[1][2]);
             }
             $regFrequencia = Acdfrequenceenroll::find()->where(['in', 'timeid', $timeFrequencia])->where(['in', 'scheduleid', $schedulesFrequencia])->where(['in', 'occurrencedates', $dataFrequencia])->where(['in', 'enrollid', $this->getIdMatriculaAluno($aluno)])->all();
             foreach ($regFrequencia as $reg) {
                 $frequencia[$reg->scheduleid][$reg->enrollid][$reg->frequencydate][$reg->timeid] = $reg->frequency;
             }
             Yii::$app->TabelaFrequencia->populaTabela($aluno, $tabela['colunTab'], $frequencia, $tabela['contadorAula']);
             // Yii::$app->TabelaFrequencia->init();
         }
     }
 }