/**
  * 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
 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');
 }
예제 #4
0
 /**
  * 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;
     }
 }