public function actionIndex() { $user_id = Yii::$app->user->getId(); $user = User::findIdentity($user_id); $active_purse = Purse::find()->where(['user_id' => $user_id, 'active' => 1])->one(); $purses = Purse::find()->where(['user_id' => $user_id])->all(); if ($user->payday) { // если есть дата зп $datePayDay = DateComponent::getDateFilterWithPayday(); } else { $datePayDay = [date('Y'), date("m"), 1]; // иначе ставим 1 число текущего месяца } $operations = Expense::find()->orderBy('datetime desc')->limit(6)->all(); $types = TypeExpense::find()->where(['user_id' => $user_id])->select(['type_expense.*', TypeExpense::SELECT_SUM])->innerJoinWith(['expenses' => function ($query) use($datePayDay) { $query->where('date(datetime)>=:date_before', [':date_before' => implode('-', $datePayDay)]); }])->where(['purse_id' => $active_purse->id])->groupBy('type_expense.id')->all(); $arrTypes = []; $sum = 0; foreach ($types as $type) { $sum += $type->sum; array_push($arrTypes, ['value' => $type->sum, 'color' => ColorComponent::random_color(), 'label' => $type->name]); } // var_dump($types->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql);die; return $this->render('index', ['arrTypes' => $arrTypes, 'date' => $datePayDay[2] . "." . $datePayDay[1] . "." . $datePayDay[0], 'active_purse' => $active_purse, 'purses' => $purses, 'sum' => $sum, 'operations' => $operations]); }
private function updateId() { $expenses = Expense::all(); foreach ($expenses as $expense) { $new = Expense::find($expense->id); $new->id = Expense::get_uid(); $new->save(); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Expense::find(); $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, 'money' => $this->money, 'uid' => Yii::$app->user->id]); $query->andFilterWhere(['like', 'remark', $this->remark])->andFilterWhere(['like', 'who', $this->who]); return $dataProvider; }
/** * карточка траты * @param $id * @return string */ public function actionCart($id) { $expense = Expense::find()->where(['id' => $id])->one(); return $this->render('cart', ['expense' => $expense]); }