/** * 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(); } } }