private function showDisksBySize($id, $construct = null)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 't.id = :id';
     $criteria->params = array(':id' => $id);
     $model = DiskSizes::model()->find($criteria);
     $this->addComment($model->disk);
     #throw new CHttpException(400,'Такой страницы нет');
     $this->render('disks/size', array('model' => $model, 'construct' => $construct));
 }
echo $form->labelEx($diskSelection, 'PCD');
?>
		<?php 
echo $form->dropDownList($diskSelection, 'PCD', CHtml::listData(DiskSizes::model()->inSight()->findAll(array('select' => 'CONCAT(PCD_screws, "x", PCD_diameter) as PCD0', 'group' => 'PCD0')), 'PCD0', 'PCD0'), array('empty' => ''));
?>
		<?php 
echo $form->error($diskSelection, 'PCD');
?>
	</div>
	
	<div class="row">
		<?php 
echo $form->labelEx($diskSelection, 'ET');
?>
		<?php 
echo $form->dropDownList($diskSelection, 'ET', CHtml::listData(DiskSizes::model()->inSight()->findAll(array('group' => 'ET')), 'ET', 'ET'), array('empty' => ''));
?>
		<?php 
echo $form->error($diskSelection, 'ET');
?>
	</div>
	
	<div class="row buttons">
		<?php 
echo CHtml::submitButton('Найти');
?>
	</div>

<?php 
$this->endWidget();
?>
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = DiskSizes::model()->findByPk((int) $id);
     if ($model === null) {
         throw new CHttpException(404, 'Запрашиваемая страница не существует.');
     }
     return $model;
 }
 public function actionIndex()
 {
     ini_set('memory_limit', '650M');
     set_time_limit(0);
     $form = new ImportForm();
     $result = array();
     if (isset($_POST['ImportForm'])) {
         $form->attributes = $_POST['ImportForm'];
         if ($form->validate()) {
             # Вот тут начинается импорт
             /* Первая страница
              * 1. CAI
              * 2. J
              * 3. R
              * 4. /
              * 5. X
              * 6. ET
              * 7. Ø
              * 8. Модель
              * 9. Производитель
              * 10.Кол-во (ОПТ)
              * 11.Цена (ОПТ)
              * 12.Кол-во (ИМ)
              * 13.Цена (ИМ)
             */
             DiskSizes::model()->updateAll(array('rest' => 0, 'price' => 0));
             $sheet = 1;
             $uploaded = Yii::app()->file->set('ImportForm[file]');
             Yii::app()->file->set(Yii::getPathOfAlias('webroot.files.' . $this->id . '.' . $this->action->id))->createDir();
             $newfile = $uploaded->copy(strtolower(Yii::getPathOfAlias('webroot.files.' . $this->id . '.' . $this->action->id)) . '/' . $uploaded->basename);
             $newfile->filename = $newfile->filename . '.' . date('YmdHis');
             Yii::import('ext.phpexcelreader.EPhpExcelReader');
             $data = new EPhpExcelReader($newfile->realpath, false);
             $rowcount = $data->rowcount($sheet);
             $result['rowcount'] = $rowcount;
             $result['count'] = 0;
             #$colcount = $data->colcount();
             #$rowcount = 5;
             $r = 2;
             while ($r <= $rowcount) {
                 $cai = $data->val($r, 1, $sheet);
                 if ($size = DiskSizes::model()->find('code=:code', array(':code' => $cai))) {
                     $size->price = $data->val($r, 13, $sheet);
                     if (!empty($form->margin)) {
                         $size->price += $size->price * ($form->margin / 100);
                     }
                     $rest10 = $data->val($r, 10, $sheet);
                     $rest12 = $data->val($r, 12, $sheet);
                     if (is_int($rest12) && is_int($rest10)) {
                         if ($rest12 > $rest10) {
                             $size->rest = $rest12;
                         } else {
                             $size->rest = $rest10;
                         }
                     } elseif (!is_int($rest12) && is_int($rest10)) {
                         $size->rest = 10;
                     } elseif (is_int($rest12) && !is_int($rest10)) {
                         $size->rest = 20;
                     } else {
                         $size->rest = 20;
                     }
                     if (!$size->save()) {
                         $result['errors']['size:' . $data->val($r, 1, $sheet)] = $size->errors;
                     }
                     $result['count']++;
                 } else {
                     echo '<p>' . $cai . ' ' . $data->val($r, 9, $sheet) . ' ' . $data->val($r, 8, $sheet) . ' not found</p>';
                 }
                 $r++;
             }
             #$this->redirect(array('view','id'=>$model->id));
         }
     }
     $this->render('index', array('model' => $form, 'results' => $result));
 }
 public function actionDisks()
 {
     $sizes = array();
     $form = $_GET;
     $selection = new DiskSelectionForm();
     $pages = null;
     if (!empty($form)) {
         $selection->attributes = $form;
         if ($selection->validate()) {
             #d($tyreSelection->attributes);
             $criteria = new CDbCriteria();
             if (!empty($selection->producers)) {
                 $crit0 = new CDbCriteria();
                 $crit0->with = array('producer');
                 $crit0->compare('producer.alias', $selection->producers);
                 // Собираю шины производителей подходящих под условия фильтра
                 $disks = CHtml::listData(Disk::model()->findAll($crit0), 'id', 'id');
                 $criteria->compare('disk_id', $disks);
             }
             #$criteria->compare('code',$this->code,true);
             $criteria->compare('width', $selection->width);
             $criteria->compare('diameter', $selection->diameter);
             $criteria->compare('ET', $selection->ET, true);
             $pcd_screws = $pcd_diameter = null;
             if ($selection->PCD) {
                 list($pcd_screws, $pcd_diameter) = preg_split('/x/i', $selection->PCD);
             }
             $criteria->compare('PCD_screws', $pcd_screws);
             $criteria->compare('PCD_diameter', $pcd_diameter, true);
             $criteria->compare('price', '>=' . $selection->price_from, false);
             $criteria->compare('price', '<=' . $selection->price_until, false);
             $criteria->compare('price', '<>0');
             $criteria->mergeWith(DiskSizes::model()->inSight()->getDbCriteria());
             $data = new CActiveDataProvider('DiskSizes', array('criteria' => $criteria, 'pagination' => array('pageSize' => Yii::app()->params['selection.resultsPerPage'])));
         }
     }
     $this->render('disks', array('selection' => $selection, 'data' => $data));
 }