/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Firms::find()->orderBy('id desc'); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $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; } $query->andFilterWhere([ 'id' => $this->id, 'date' => $this->date, ]); $query->andFilterWhere(['ilike', 'firm', $this->firm]) ->andFilterWhere(['ilike', 'file', $this->file]); return $dataProvider; }
/** * report for Medcenter * @param integer $firm */ public function actionStatreport($firm) { $this->layout = 'main'; $results = []; $firm_model = \app\models\Firms::find()->where(['id' => $firm])->one(); $patients = Patients::find()->where(['firm_id' => $firm])->all(); if ($patients) { $results = $this->_reportStat($patients); } \app\models\Functions::statreportExcel('stat', 'report.ods', $results); return $this->render('statreport', ['firm' => $firm_model->firm, 'res' => $this->statreportHtml($results), 'css' => file_get_contents('../web/css/print.css')]); }
/** * Creates a new Patients model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate($firm_id) { $model = new Patients(); $firm = Firms::find()->where(['id' => $firm_id])->one(); $model->firm_id = $firm->id; $model->firm = $firm->firm; if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
/** * Displays homepage. * * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Firms::find()]); $dataProviderPhones = new ActiveDataProvider(['query' => Phones::find()]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id"; $query = Firms::findBySql($sql); $dataProvider1 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = '0'"; $query = Firms::findBySql($sql); $dataProvider2 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) >= '2'"; $query = Firms::findBySql($sql); $dataProvider3 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) < '2'"; $query = Firms::findBySql($sql); $dataProvider4 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = (SELECT MAX( cpid) AS mcpid\n FROM (\n SELECT count(FirmID) AS cpid\n FROM " . Firms::tableName() . "\n LEFT JOIN " . Phones::tableName() . " ON id = FirmID\n GROUP BY FirmID\n ) AS cphone)"; $query = Firms::findBySql($sql); $dataProvider5 = new ActiveDataProvider(['query' => $query]); return $this->render('index', ['dataProvider' => $dataProvider, 'dataProviderPhones' => $dataProviderPhones, 'dataProvider1' => $dataProvider1, 'dataProvider2' => $dataProvider2, 'dataProvider3' => $dataProvider3, 'dataProvider4' => $dataProvider4, 'dataProvider5' => $dataProvider5]); }