fitness-web/common/modules/event/models/copy/CopyWeekSearch.php

93 lines
2.5 KiB
PHP

<?php
namespace common\modules\event\models\copy;
use common\components\DateUtil;
use common\modules\event\manager\EventManager;
use common\modules\event\models\timetable\TimeTableMonth;
use customerapi\models\available\EventInterval;
use DateTime;
use Exception;
use Yii;
use common\models\Event;
use yii\base\Model;
use yii\data\ArrayDataProvider;
/**
* @property string $sourceDateString
* @property string $targetDateString
* @property integer $timestampSource
* @property integer $timestampTarget
* @property EventInterval $sourceInterval
* @property EventInterval $targetInterval
* @property TimeTableMonth $sourceTimeTable
* @property TimeTableMonth $targetTimeTable
* @property string[] $tableHeaders
*/
class CopyWeekSearch extends Model
{
public $sourceDateString;
public $timestampSource;
public $targetDateString;
public $timestampTarget;
public $sourceInterval;
public $targetInterval;
public $sourceTimeTable;
public $targetTimeTable;
public $tableHeaders;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['sourceDateString',], 'date', 'format' => Yii::$app->formatter->dateFormat, 'timestampAttribute' => 'timestampSource', 'timeZone' => 'UTC'],
[['targetDateString',], 'date', 'format' => Yii::$app->formatter->dateFormat, 'timestampAttribute' => 'timestampTarget', 'timeZone' => 'UTC'],
];
}
public function attributeLabels()
{
return [
'sourceDateString' => 'Forrás Dátum',
'targetDateString' => 'Cél Dátum',
];
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @throws Exception
*/
public function search($params)
{
$sourceDate = null;
$targetDate = null;
$this->load($params);
if ($this->validate()) {
$sourceDate = new DateTime();
$sourceDate->setTimestamp($this->timestampSource);
$targetDate = new DateTime();
$targetDate->setTimestamp($this->timestampTarget);
}
$this->sourceInterval = EventInterval::createInterval($sourceDate,7,7);
$this->targetInterval = EventInterval::createInterval($targetDate,7,7);
$eventManager = new EventManager();
$this->sourceTimeTable = $eventManager->loadTimeTable($this->sourceInterval);
$this->targetTimeTable = $eventManager->loadTimeTable($this->targetInterval);
}
}