/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Payments::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, 'customer_id' => $this->customer_id, 'timestamp' => $this->timestamp]); $query->andFilterWhere(['like', 'mpesa_id', $this->mpesa_id])->andFilterWhere(['like', 'original', $this->original])->andFilterWhere(['like', 'destination', $this->destination])->andFilterWhere(['like', 'test', $this->test])->andFilterWhere(['like', 'mpesa_code', $this->mpesa_code])->andFilterWhere(['like', 'mpesa_acc', $this->mpesa_acc])->andFilterWhere(['like', 'mpesa_msidn', $this->mpesa_msidn])->andFilterWhere(['like', 'mpesa_amount', $this->mpesa_amount])->andFilterWhere(['like', 'mpesa_sender', $this->mpesa_sender]); return $dataProvider; }
public function search($params, $where = null) { $query = Payments::find()->leftJoin(Expenses::tableName(), 'expenses.id = payments.idexpense')->leftJoin(Departments::tableName(), 'expenses.iddepartment = departments.id')->where($where); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 20], 'sort' => ['attributes' => ['name', 'type', 'price', 'date', 'nameDepartments' => ['asc' => ['departments.name' => SORT_ASC], 'desc' => ['departments.name' => SORT_DESC]], 'nameExpenses' => ['asc' => ['expenses.name' => SORT_ASC], 'desc' => ['expenses.name' => SORT_DESC]]]]]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'type' => $this->type, 'price' => $this->price]); $date = explode(">", $this->date); if (isset($date[1])) { $query->andWhere('date > ' . strtotime($date[0])); $query->andWhere('date < ' . strtotime($date[1])); } $query->andFilterWhere(['like', 'payments.name', $this->name]); $query->andFilterWhere(['like', 'departments.name', $this->nameDepartments]); $query->andFilterWhere(['like', 'expenses.name', $this->nameExpenses]); return $dataProvider; }
public function doCapture() { $result = 'payment not found'; $payment = Payments::find($this->request->id); if ($payment) { $result = Paypal::doCapture($payment->auth_id, $payment->auth_amount, 'USD', true); } return compact('result'); }
/** * Get the validator rules by path * * @param string $id * @return array */ public function rules($id = '') { switch (Request::method()) { case 'GET': case 'DELETE': return []; case 'POST': return $rules = ['name' => 'required|unique:payments', 'status' => 'required|boolean']; case 'PUT': case 'PATCH': $payment = Payments::find($id); return $rules = ['name' => 'required|unique:payments,id,' . $payment->id, 'status' => 'required|boolean']; default: break; } }