public function search() { $criteria = new CDbCriteria(); if ($this->startDate) { $criteria->compare('cli_created', '>=' . Date::formatDate('Y-m-d', $this->startDate)); } if ($this->endDate) { $criteria->compare('cli_created', '<=' . Date::formatDate('Y-m-d', $this->endDate)); } $data = Yii::app()->db->createCommand()->from('client'); switch ($this->granulation) { case self::GRANULARITY_WEEK: $data = $data->select('YEAR(cli_created) year, WEEK(cli_created) period, COUNT(*) count'); $data = $data->group('YEAR(cli_created), WEEK(cli_created)'); break; case self::GRANULARITY_MONTH: $data = $data->select('YEAR(cli_created) year, MONTH(cli_created) period, COUNT(*) count'); $data = $data->group('YEAR(cli_created), MONTH(cli_created)'); break; case self::GRANULARITY_DAY: $data = $data->select('YEAR(cli_created) year, DAYOFYEAR(cli_created) period, COUNT(*) count'); $data = $data->group('YEAR(cli_created), DAYOFYEAR(cli_created)'); break; default: $data = $data->select('YEAR(cli_created) year, WEEK(cli_created) period, COUNT(*) count'); $data = $data->group('YEAR(cli_created), WEEK(cli_created)'); break; } if ($criteria->toArray()['condition']) { $data->where($criteria->toArray()['condition']); $data->params = $criteria->params; } $data = $data->queryAll(); return $data; }
/** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search(CDbCriteria $criteria = null) { // Warning: Please modify the following code to remove attributes that // should not be searched. if ($criteria) { $criteria = new CDbCriteria($criteria->toArray()); } else { $criteria = new CDbCriteria(); } $criteria->compare('id', $this->id, true); $criteria->compare('page', $this->page, true); $criteria->compare('viewCount', $this->viewCount, true); $criteria->compare('lastAccessed', $this->lastAccessed, true); $criteria->compare('lastViewId', $this->lastViewId, true); return new CActiveDataProvider($this, array('criteria' => $criteria, 'pagination' => array('pageSize' => 37))); }
public function actionIndex($id){ $this->initialize($id); $editMode = $this->checkEditMode($id, Yii::app()->user->getId()); $lecture = Lecture::model()->findByPk($id); $criteria = new CDbCriteria(); $criteria->addCondition('id_lecture='.$id); $dataProvider = new CActiveDataProvider('LectureElement'); $dataProvider->criteria = $criteria; $criteria->order = 'block_order ASC'; $dataProvider->setPagination(array( 'pageSize' => '200', ) ); $owners = []; $criteria1 = new CDbCriteria(); $criteria1->alias='teacher_module'; $criteria1->select = 'idTeacher'; $criteria1->addCondition('idModule='.$lecture->idModule); $criteria1->toArray(); $temp = TeacherModule::model()->findAll($criteria1); //info about owners for($i = 0; $i < count($temp);$i++){ array_push($owners, $temp[$i]->idTeacher); } $teachers = Teacher::model()->findAllByPk($owners); $countBlocks = LectureElement::model()->count('id_lecture = :id', array(':id' => $id)); $this->render('index', array( 'dataProvider' => $dataProvider, 'lecture' => $lecture, 'editMode' => $editMode, 'countBlocks' => $countBlocks, 'teachers' => $teachers, )); }
/** * Modify passed criteria by replacing conditions on base attributes with conditions on translations. * Allow to make search on model translated values. * @param CDbCriteria $event */ public function modifySearchCriteria(CDbCriteria $criteria) { $owner = $this->getOwner(); $criteria_array = $criteria->toArray(); foreach ($this->localizedAttributes as $attribute) { if (!empty($owner->{$attribute})) { $criteria_array['condition'] = str_replace($attribute . ' ', $this->localizedPrefix . $attribute . ' ', $criteria_array['condition']); } } $criteria_array['together'] = true; $criteria = new CDbCriteria($criteria_array); return $criteria; }
public function defaultScope() { $alias = $this->getTableAlias(true, false); $criteria = new CDbCriteria(array('condition' => $alias . '.deleted=0 AND ' . $alias . '.visible=1', 'order' => $alias . '.retail_price DESC')); //Если отключена возможность заявок на товар под заказ if (!Yii::app()->daShop->makeOfferByOrder) { $criteria->addCondition($alias . '.remain > 0', 'AND'); } return $criteria->toArray(); }
public function testToArray() { $keys = array('select', 'condition', 'params', 'limit', 'offset', 'order', 'group', 'join', 'having', 'distinct', 'scopes', 'with', 'alias', 'index', 'together'); $criteria = new CDbCriteria(); $this->assertEquals($keys, array_keys($criteria->toArray())); }
public static function getModuleTitles(){ $criteria =new CDbCriteria(); $criteria->select = array('module_ID', 'module_name'); $criteria->toArray(); $count = Module::model()->count(); $titles = Module::model()->findAll($criteria); $result = []; for ($i = 0; $i < $count; $i++) { $result[$titles[$i]["module_ID"]] = $titles[$i]["module_name"]; } return $result; }
public function defaultScope() { $alias = $this->getTableAlias(true, false); $criteria = new CDbCriteria(array('order' => $alias . '.id_reference_element')); return $criteria->toArray(); }
public static function getRoleTitlesList(){ $criteria = new CDbCriteria(); $criteria->select = 'id, title_ua'; $criteria->distinct = true; $criteria->toArray(); $result = ''; $titles = Roles::model()->findAll($criteria); for($i = 0; $i < count($titles); $i++){ $result[$i][$titles[$i]['id']] = $titles[$i]['title_ua']; } return $result; }
public function getVentas($desde, $hasta, $criterio = false) { //if ($desde and $hasta //and preg_match("(\d{4}-\d{2}-\d{2})",$desde)==1 //and preg_match("(\d{4}-\d{2}-\d{2})",$hasta)==1){ if ($criterio) { if (is_array($criterio)) { $criteria = new CDbCriteria($criterio); $criterio = $criteria->toArray(); } if (is_object($criterio)) { $criterio = $criterio->toArray(); } if (isset($criterio['select']) and is_array($criterio['select'])) { $criterio['select'] = implode(',', $criterio['campos']); } if (isset($criterio['condition']) and is_array($criterio['condition'])) { $criterio['condition'] = implode(',', $criterio['condicion']); } if (isset($criterio['group']) and is_array($criterio['group'])) { $criterio['group'] = implode(',', $criterio['group']); } if (isset($criterio['order']) and is_array($criterio['order'])) { $criterio['order'] = implode(',', $criterio['order']); } } else { $criterio = array('select' => '', 'condition' => '', 'order' => 'PuntosventaNom', 'group' => 'PuntosventaNom'); } $criterio['select'] = strlen($criterio['select']) > 1 ? ',' . $criterio['select'] : ''; $criterio['condition'] = strlen($criterio['condition']) > 0 ? $criterio['condition'] : '1'; $criterio['order'] = strlen($criterio['order']) > 0 ? $criterio['order'] : 'PuntosventaNom'; $criterio['group'] = strlen($criterio['group']) > 0 ? $criterio['group'] : 'PuntosventaNom'; $query = sprintf("SELECT t.PuntosventaId as id,\n\t\t\t\t\tPuntosventaNom,\n\t\t\t\t\tSUM(t1.VentasCosBol+t1.VentasCarSer) as importe,\n\t\t\t\t\tCOUNT(*) as boletos,\n\t\t\t\t\tCOUNT(distinct t.VentasId) as ventas,\n\t\t\t\t\tMAX(VentasFecHor) as ultimo\n\t\t\t\t\t%s\n\t\t\t\t\tFROM ventas AS t\n\t\t\t\t\tINNER JOIN ventaslevel1 as t1 ON t.VentasId=t1.VentasId \n\t\t\t\t\tINNER JOIN puntosventa as t2 ON t2.PuntosventaId=t.PuntosVentaId\n\t\t\t\t\tWHERE DATE(t.VentasFecHor) BETWEEN '{$desde}' AND '{$hasta}'\n\t\t\t\t\tAND VentasCosBol>10 \n\t\t\t\t\tAND t.VentasSta NOT LIKE 'CANCELADO' AND t1.VentasSta NOT LIKE 'CANCELADO'\n\t\t\t\t\tAND %s \n\t\t\t\t\tGROUP BY %s ORDER BY %s ", $criterio['select'], $criterio['condition'], $criterio['group'], $criterio['order']); return new CSqlDataProvider($query, array('pagination' => false)); /*$rawData=Yii::app()->db->createCommand(sprintf("SELECT t.PuntosventaId as id, PuntosventaNom, SUM(t1.VentasCosBol+t1.VentasCarSer) as importe, COUNT(*) as boletos, COUNT(distinct t.VentasId) as ventas, MAX(VentasFecHor) as ultimo %s FROM ventas AS t INNER JOIN ventaslevel1 as t1 ON t.VentasId=t1.VentasId INNER JOIN puntosventa as t2 ON t2.PuntosventaId=t.PuntosVentaId WHERE DATE(t.VentasFecHor) BETWEEN '$desde' AND '$hasta' AND VentasCosBol>10 AND t.VentasSta NOT LIKE 'CANCELADO' AND t1.VentasSta NOT LIKE 'CANCELADO' AND %s GROUP BY %s ORDER BY %s ",$criterio['select'],$criterio['condition'],$criterio['group'],$criterio['order']))->queryAll(); // or using: $rawData=User::model()->findAll(); return new CArrayDataProvider($rawData, array( 'id'=>'id', 'sort'=>array( 'attributes'=>array( 'id','PuntosventaNom','importe' ), ), 'pagination'=>false, ));*/ }
/** * Lists all models. */ public function actionIndex($idModule) { $model = Module::model()->findByPk($idModule); $owners = []; $criteria1 = new CDbCriteria(); $criteria1->select = 'idTeacher'; $criteria1->addCondition('idModule='.$idModule); $criteria1->toArray(); $temp = TeacherModule::model()->findAll($criteria1); //info about owners for($i = 0; $i < count($temp);$i++){ array_push($owners, $temp[$i]->idTeacher); } $teachers = Teacher::model()->findAllByPk($owners); $criteria=new CDbCriteria(); $criteria->addCondition('idModule>0'); $criteria->addCondition('idModule='.$idModule); $dataProvider = new CActiveDataProvider('Lecture', array( 'criteria' =>$criteria, 'pagination'=>false, 'sort'=>array( 'defaultOrder'=>array( 'order'=>CSort::SORT_ASC, ) ) )); $editMode = 0; //init editMode flag //find id teacher related to current user id if (Yii::app()->user->isGuest){ //if user guest $editMode = 0; } else { if (Teacher::model()->exists('user_id=:user_id', array(':user_id' => Yii::app()->user->getId()))) { if ($teacherId = Teacher::model()->findByAttributes(array('user_id' => Yii::app()->user->getId()))->teacher_id) { //check edit mode if (TeacherModule::model()->exists('idTeacher=:teacher AND idModule=:module', array(':teacher' => $teacherId, ':module' => $idModule))){ $editMode = 1; } else { $editMode = 0; } } else{ $editMode = 0; } } else { $editMode = 0; } } $lecturesTitles = Lecture::model()->getLecturesTitles($idModule); $this->render('index', array( 'post' => $model, 'teachers' => $teachers, 'editMode' => $editMode, 'lecturesTitles' => $lecturesTitles, 'dataProvider' => $dataProvider, )); }
public function getCourses(){ // $modules = TeacherModule::model()->findAllBySql('select idModule from teacher_module where idTeacher = :idTeacher;',array(':idTeacher' => $this->idTeacher)); $modules =[1,3, 7, 10]; $criteria = new CDbCriteria(); $criteria->select = 'course'; $criteria->distinct = true; $criteria->addInCondition('course', $modules); $criteria->toArray(); $courses = Module::model()->findAll($criteria); return $courses; }
public static function getCourseTeachers($modules){ $criteria = new CDbCriteria(); $criteria->select = 'idTeacher'; $criteria->order = 'idTeacher'; $criteria->addInCondition('idModule', $modules); $criteria->distinct = true; $criteria->toArray(); $teachers = TeacherModule::model()->findAll($criteria); $result = []; for ($i = 0; $i < count($teachers); $i++){ array_push($result, $teachers[$i]["idTeacher"]); } return $result; }