fitness-web/backend/models/CardPackageSearch.php

93 lines
2.1 KiB
PHP

<?php
namespace backend\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use common\models\CardPackage;
/**
* CardPackageSearch represents the model behind the search form about `common\models\CardPackage`.
*/
class CardPackageSearch extends CardPackage
{
public static $STATUS_NOT_PRINTED = 10;
public static $STATUS_PRINTED = 20;
public $printStatus;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_card_package', 'id_user', 'printed','printStatus'], 'integer'],
];
}
/**
* @inheritdoc
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params)
{
$query = CardPackage::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' =>[
'defaultOrder' => ['created_at' => SORT_DESC]
]
]);
$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_card_package' => $this->id_card_package,
'id_user' => $this->id_user,
]);
if ( isset($this->printStatus)){
switch ($this->printStatus){
case self::$STATUS_NOT_PRINTED:
$query->andWhere( ['or' ,['card_package.printed' => null], [ "card_package.printed" => 0 ] ]);
break;
case self::$STATUS_PRINTED:
$query->andWhere( [">" ,"card_package.printed" , 0 ]);
break;
}
}
return $dataProvider;
}
public static function getPrintStatuses(){
return [
self::$STATUS_NOT_PRINTED => "Nincs letöltve",
self::$STATUS_PRINTED => "Letöltve",
];
}
}