update Schedule full CRUD

This commit is contained in:
2020-10-13 17:31:53 +07:00
parent 03e03c7e13
commit 620dfc75c2
15 changed files with 908 additions and 19 deletions

153
models/Schedule.php Normal file
View File

@@ -0,0 +1,153 @@
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "schedule".
*
* @property int $id
* @property string $name
* @property string $description
* @property string $SunTime1
* @property string $SunTime2
* @property string $SunTime3
* @property string $MonTime1
* @property string $MonTime2
* @property string $MonTime3
* @property string $TueTime1
* @property string $TueTime2
* @property string $TueTime3
* @property string $WedTime1
* @property string $WedTime2
* @property string $WedTime3
* @property string $ThuTime1
* @property string $ThuTime2
* @property string $ThuTime3
* @property string $FriTime1
* @property string $FriTime2
* @property string $FriTime3
* @property string $SatTime1
* @property string $SatTime2
* @property string $SatTime3
* @property string $created_at
* @property string $modified_at
*/
class Schedule extends \yii\db\ActiveRecord {
/**
* {@inheritdoc}
*/
public static function tableName() {
return 'schedule';
}
/**
* {@inheritdoc}
*/
public function rules() {
return [
[['name'], 'required'],
[['description'], 'string'],
[['name'], 'string', 'max' => 200],
[['created_at', 'modified_at'], 'integer'],
[['SunTime1', 'SunTime2', 'SunTime3', 'MonTime1', 'MonTime2', 'MonTime3', 'TueTime1', 'TueTime2', 'TueTime3', 'WedTime1', 'WedTime2', 'WedTime3', 'ThuTime1', 'ThuTime2', 'ThuTime3', 'FriTime1', 'FriTime2', 'FriTime3', 'SatTime1', 'SatTime2', 'SatTime3'], 'string', 'max' => 100],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels() {
return [
'id' => 'ID',
'name' => 'Tên lịch trình',
'description' => 'Chú thích',
'SunTime1' => 'Sun Time1',
'SunTime2' => 'Sun Time2',
'SunTime3' => 'Sun Time3',
'MonTime1' => 'Mon Time1',
'MonTime2' => 'Mon Time2',
'MonTime3' => 'Mon Time3',
'TueTime1' => 'Tue Time1',
'TueTime2' => 'Tue Time2',
'TueTime3' => 'Tue Time3',
'WedTime1' => 'Wed Time1',
'WedTime2' => 'Wed Time2',
'WedTime3' => 'Wed Time3',
'ThuTime1' => 'Thu Time1',
'ThuTime2' => 'Thu Time2',
'ThuTime3' => 'Thu Time3',
'FriTime1' => 'Fri Time1',
'FriTime2' => 'Fri Time2',
'FriTime3' => 'Fri Time3',
'SatTime1' => 'Sat Time1',
'SatTime2' => 'Sat Time2',
'SatTime3' => 'Sat Time3',
'created_at' => 'Thời gian tạo',
'modified_at' => 'Thời gian sửa',
];
}
public static $dayOfWeek = [
"Mon" => "Thứ hai",
"Tue" => "Thứ ba",
"Wed" => "Thứ tư",
"Thu" => "Thứ năm",
"Fri" => "Thứ sáu",
"Sat" => "Thứ bảy",
"Sun" => "Chủ nhật"
];
public function create($data) {
$r = $this->load([
'name' => $data["Name"],
'description' => $data["Description"],
'SunTime1' => $data["SunTime1"],
'SunTime2' => $data["SunTime2"],
'SunTime3' => $data["SunTime3"],
'MonTime1' => $data["MonTime1"],
'MonTime2' => $data["MonTime2"],
'MonTime3' => $data["MonTime3"],
'TueTime1' => $data["TueTime1"],
'TueTime2' => $data["TueTime2"],
'TueTime3' => $data["TueTime3"],
'WedTime1' => $data["WedTime1"],
'WedTime2' => $data["WedTime2"],
'WedTime3' => $data["WedTime3"],
'ThuTime1' => $data["ThuTime1"],
'ThuTime2' => $data["ThuTime2"],
'ThuTime3' => $data["ThuTime3"],
'FriTime1' => $data["FriTime1"],
'FriTime2' => $data["FriTime2"],
'FriTime3' => $data["FriTime3"],
'SatTime1' => $data["SatTime1"],
'SatTime2' => $data["SatTime2"],
'SatTime3' => $data["SatTime3"],
"created_at" => time(),
"modified_at" => time()
], '');
if ($r) {
try {
$this->save();
return $this->id;
} catch (\Exception $ex) {
return false;
}
}
}
public static function combineTime($from, $to) {
return $from . "-" . $to;
}
public static function convertTime($from, $to) {
$fTemp = explode(":", $from);
$front = dechex(intval($fTemp[0]) * 100 + intval($fTemp[1]));
$tTemp = explode(":", $to);
$back = dechex(intval($tTemp[0]) * 100 + intval($tTemp[1]));
return hexdec("0" . $front . "0" . $back);
}
}

91
models/ScheduleSearch.php Normal file
View File

@@ -0,0 +1,91 @@
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\Schedule;
/**
* ScheduleSearch represents the model behind the search form of `app\models\Schedule`.
*/
class ScheduleSearch extends Schedule {
/**
* {@inheritdoc}
*/
public function rules() {
return [
[['id', 'SunTime1', 'SunTime2', 'SunTime3', 'MonTime1', 'MonTime2', 'MonTime3', 'TueTime1', 'TueTime2', 'TueTime3', 'WedTime1', 'WedTime2', 'WedTime3', 'ThuTime1', 'ThuTime2', 'ThuTime3', 'FriTime1', 'FriTime2', 'FriTime3', 'SatTime1', 'SatTime2', 'SatTime3'], 'integer'],
[['name', 'description'], 'safe'],
];
}
/**
* {@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 = Schedule::find();
// add conditions that should always apply here
$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;
}
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'SunTime1' => $this->SunTime1,
'SunTime2' => $this->SunTime2,
'SunTime3' => $this->SunTime3,
'MonTime1' => $this->MonTime1,
'MonTime2' => $this->MonTime2,
'MonTime3' => $this->MonTime3,
'TueTime1' => $this->TueTime1,
'TueTime2' => $this->TueTime2,
'TueTime3' => $this->TueTime3,
'WedTime1' => $this->WedTime1,
'WedTime2' => $this->WedTime2,
'WedTime3' => $this->WedTime3,
'ThuTime1' => $this->ThuTime1,
'ThuTime2' => $this->ThuTime2,
'ThuTime3' => $this->ThuTime3,
'FriTime1' => $this->FriTime1,
'FriTime2' => $this->FriTime2,
'FriTime3' => $this->FriTime3,
'SatTime1' => $this->SatTime1,
'SatTime2' => $this->SatTime2,
'SatTime3' => $this->SatTime3,
'created_at' => $this->created_at,
'modified_at' => $this->modified_at,
]);
$query->andFilterWhere(['like', 'name', $this->name])
->andFilterWhere(['like', 'description', $this->description]);
return $dataProvider;
}
}

View File

@@ -21,6 +21,7 @@ use Yii;
* @property int $created_at
* @property int $modified_at
* @property int $card_register_time
* @property int $schedule_id
*/
class Staff extends \yii\db\ActiveRecord {
@@ -37,7 +38,7 @@ class Staff extends \yii\db\ActiveRecord {
public function rules() {
return [
[['code', 'name', 'gender'], 'required'],
[['code', 'card_number', 'department_id', 'birthday', 'date_in', 'created_at', 'modified_at', 'card_register_time'], 'integer'],
[['code', 'card_number', 'department_id', 'birthday', 'date_in', 'created_at', 'modified_at', 'card_register_time', 'schedule_id'], 'integer'],
[['address'], 'string'],
[['name', 'email'], 'string', 'max' => 100],
[['gender'], 'string', 'max' => 10],