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)));
 }
Example #3
0
    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,
        ));
    }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 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()));
 }
Example #7
0
 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;
 }
Example #8
0
 public function defaultScope()
 {
     $alias = $this->getTableAlias(true, false);
     $criteria = new CDbCriteria(array('order' => $alias . '.id_reference_element'));
     return $criteria->toArray();
 }
Example #9
0
    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;
    }
Example #10
0
 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,
              ));*/
 }
Example #11
0
	/**
	 * 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,
        ));
	}
Example #12
0
    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;
    }
Example #13
0
    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;
    }