/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Main::find(); $query->joinWith('amount'); $query->joinWith('meal'); $query->joinWith('user'); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['main_id' => SORT_DESC], 'enableMultiSort' => true]]); $dataProvider->sort->attributes['amount_text'] = ['asc' => ['amount_text' => SORT_ASC], 'desc' => ['amount_text' => SORT_DESC]]; $dataProvider->sort->attributes['meal_text'] = ['asc' => ['meal_text' => SORT_ASC], 'desc' => ['meal_text' => SORT_DESC]]; $dataProvider->sort->attributes['username'] = ['asc' => ['username' => SORT_ASC], 'desc' => ['username' => SORT_DESC]]; $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; } $user_role = \common\models\User::roleName(Yii::$app->user->getId()); $query->andFilterWhere(['main_id' => $this->main_id, 'amount_id' => $this->amount_id, 'time_bit' => $this->time_bit, 'meal_id' => $this->meal_id, 'user_id' => $user_role == 'root' ? $this->user_id : Yii::$app->user->identity->id, 'created' => $this->created, 'updated' => $this->updated]); $query->andFilterWhere(['like', 'profile_name', $this->profile_name])->andFilterWhere(['like', 'drug_name', $this->drug_name])->andFilterWhere(['like', 'amount_text', $this->amount_text])->andFilterWhere(['like', 'meal_text', $this->meal_text])->andFilterWhere(['like', 'username', $this->username]); return $dataProvider; }
/** * Deletes an existing Amount model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { $main_data = \backend\models\Main::find()->select(['amount_id'])->andWhere('amount_id = :id', [':id' => $id])->groupBy('amount_id')->one(); $model = $this->findModel($id); // Look-up Unit $unit_data = \backend\models\Unit::find()->select(['unit_text'])->andWhere('unit_id = :unit_id', [':unit_id' => $model->unit_id])->one(); if (empty($main_data->amount_id)) { if (file_exists($model->amount_img)) { unlink($model->amount_img); } $model->delete(); Yii::$app->getSession()->setFlash('amount_delete_success', ['type' => Growl::TYPE_SUCCESS, 'title' => '<b>' . Yii::t('backend', 'Success') . '</b>', 'icon' => 'glyphicon glyphicon-ok-sign', 'body' => '<strong>' . $model->amount_text . ' ' . $unit_data->unit_text . '</strong> ' . Yii::t('backend', 'has been deleted.')]); } else { Yii::$app->getSession()->setFlash('amount_delete_failed', ['type' => \kartik\growl\Growl::TYPE_DANGER, 'title' => '<b>' . Yii::t('backend', 'Error') . '</b>', 'icon' => 'glyphicon glyphicon-remove-sign', 'body' => '<strong>' . $model->amount_text . ' ' . $unit_data->unit_text . '</strong> ' . Yii::t('backend', 'is currently being used and cannot be deleted.')]); } return $this->redirect(['index']); }
public function actionProfileDetail($name) { $user_id = Yii::$app->user->identity->id; $data = Main::find()->andWhere('profile_name like :name', [':name' => $name])->andWhere('user_id = :user_id', [':user_id' => $user_id])->one(); $data->time_array = $data->decodeBit($data->time_bit, $data->getTimeID()); return Json::encode(['main_id' => $data->main_id, 'drug_name' => $data->drug_name, 'amount_id' => $data->amount_id, 'time_array' => $data->time_array, 'meal_id' => $data->meal_id]); }