Beispiel #1
0
    /**
     * 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]);
 }