diff --git a/frontend/modules/api/models/ReportSearchForm.php b/frontend/modules/api/models/ReportSearchForm.php index 0b03253..d1104d1 100755 --- a/frontend/modules/api/models/ReportSearchForm.php +++ b/frontend/modules/api/models/ReportSearchForm.php @@ -14,6 +14,10 @@ class ReportSearchForm extends Model public $fromDate; public $toDate; public $user_id; + /** + * @var false + */ + public $byDate; public function __construct($config = []) { @@ -23,6 +27,7 @@ class ReportSearchForm extends Model $this->toDate = date('Y-m-d', time()); $this->fromDate = date('Y-m-01', time()); + $this->byDate = false; parent::__construct($config); } @@ -30,20 +35,27 @@ class ReportSearchForm extends Model public function rules(): array { return [ - [['fromDate', 'toDate'], 'date', 'format' => 'php:Y-m-d'], - [['limit', 'offset', 'user_id'], 'integer', 'min' => 0], + [['byDate'], 'safe'], + [['fromDate', 'toDate'], 'date', 'format' => 'php:Y-m-d'], + [['limit', 'offset', 'user_id'], 'integer', 'min' => 0], ]; } public function byParams() { $queryBuilder = Reports::find() - ->with('task') - ->andWhere(['between', 'reports.created_at', $this->fromDate, $this->toDate]) - ->limit($this->limit) + ->with('task'); + + if ($this->byDate) { + $queryBuilder->andWhere(['reports.created_at' => $this->byDate]); + } else { + $queryBuilder->andWhere(['between', 'reports.created_at', $this->fromDate, $this->toDate]); + } + + $queryBuilder->limit($this->limit) ->offset($this->offset); - if(isset($this->user_id)) { + if (isset($this->user_id)) { $queryBuilder->andWhere(['user_card_id' => $this->user_id]); }