/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Glprep::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['glprep_id' => SORT_DESC]]]); $query->joinWith(['idPreparat']); $this->load($params); // Отображает список препаратов глаукомного пациента в его карте if (isset($params['id'])) { $Glaukuchet = Glaukuchet::findOne(['id_patient' => $params['id']]); $query->andFilterWhere(['id_glaukuchet' => empty($Glaukuchet) ? -1 : $Glaukuchet->primaryKey]); } else { $query->andFilterWhere(['id_glaukuchet' => -1]); } 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; } // grid filtering conditions $query->andFilterWhere(['glprep_id' => $this->glprep_id, 'id_glaukuchet' => $this->id_glaukuchet, 'id_preparat' => $this->id_preparat, 'glprep_rlocat' => $this->glprep_rlocat]); $query->andFilterWhere(['LIKE', 'idPreparat.preparat_name', $this->getAttribute('idPreparat.preparat_name')]); Proc::AssignRelatedAttributes($dataProvider, ['idPreparat.preparat_name']); return $dataProvider; }
public function delete() { $result = parent::delete(); if ($result) { // При изменении препаратов, менять пользователя и дату изменения в карте глаукомного пациента Glaukuchet::findOne($this->id_glaukuchet)->UpdateChangeAttributes(); } return $result; }
/** * Deletes an existing Patient model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param string $id * @return mixed */ public function actionDelete($id) { if (Yii::$app->request->isAjax) { $transaction = Yii::$app->db->beginTransaction(); try { $Glaukuchet = Glaukuchet::findOne(['id_patient' => $id]); if (!empty($Glaukuchet)) { Glprep::deleteAll(['id_glaukuchet' => $Glaukuchet->primaryKey]); Glaukuchet::deleteAll(['id_patient' => $id]); } echo $this->findModel($id)->delete(); $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); throw new Exception($e->getMessage()); } } }