public function actionChart($id) { $reg = $this->findModel($id); $searchModel = new RegistroSearch(); //Get paginated models for grid ordered by almacen $dataProvider = $searchModel->searchOrderByAlmacen(['RegistroSearch' => ['categoria' => $reg->categoria, 'elemento' => $reg->elemento, 'descripcion' => $reg->descripcion]]); //Get all models for chart (no pagination) $dataProviderClone = clone $dataProvider; $dataProviderClone->pagination = false; $allModels = $dataProviderClone->models; $lastAlmacen = ''; $seriesCounter = -1; //Iterate over models to construct series array foreach ($allModels as $m) { //If just changed key, start new arrrays if ($lastAlmacen != $m->almacen) { $xs[$m->almacen] = 'x' . $m->almacen; $seriesCounter++; $columns[2 * $seriesCounter][] = 'x' . $m->almacen; $columns[2 * $seriesCounter + 1][] = $m->almacen; $lastAlmacen = $m->almacen; } //Append datum $columns[2 * $seriesCounter][] = $m->fecha; $columns[2 * $seriesCounter + 1][] = $m->precio_unitario; } return $this->render('chart', ['reg' => $reg, 'xs' => $xs, 'columns' => $columns, 'dataProvider' => $dataProvider]); }
/** * Lists all Registro models. * @return mixed */ public function actionIndex() { $searchModel = new RegistroSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); }