Server_AccessControl/helpers/StaffGrid.php

121 lines
4.0 KiB
PHP

<?php
namespace app\helpers;
use app\models\Logs;
class StaffGrid extends CommonGrid {
public static function getLayout() {
return "<div class='row'><div class='col-md-4' style='padding-top: 10px;padding-bottom:10px;'>{summary}</div><div class='col-md-8 text-right'>{pager}</div></div>{items}";
}
public static function department($array) {
return function($model) use ($array) {
return isset($array[$model->department_id]) ? $array[$model->department_id] : "";
};
}
public static function gender($array) {
return function($model) use ($array) {
return isset($array[$model->gender]) ? $array[$model->gender] : "";
};
}
public static function birthday() {
return function($model) {
return date("d/m/Y", $model->birthday);
};
}
public static function dateIn() {
return function($model) {
return date("d/m/Y", $model->date_in);
};
}
public static function cardRegisterTime() {
return function($model) {
return date("H:i:s d/m/Y", $model->card_register_time);
};
}
public static function timeIn($logs) {
return function($model) use ($logs) {
return date("H:i:s d/m/Y", $logs[$model->id][0]);
};
}
public static function timeOut($logs) {
return function($model) use ($logs) {
if (count($logs[$model->id]) > 1)
return date("H:i:s d/m/Y", $logs[$model->id][count($logs[$model->id]) - 1]);
};
}
public static function manHour($logs) {
return function($model) use ($logs) {
$begin = $logs[$model->id][0];
if (count($logs[$model->id]) > 1) {
$end = $logs[$model->id][count($logs[$model->id]) - 1];
return number_format(($end - $begin) / (60 * 60), 2);
} else {
return "";
}
};
}
public static function manDay($logs) {
return function($model) use ($logs) {
$begin = $logs[$model->id][0];
if (count($logs[$model->id]) > 1) {
$end = $logs[$model->id][count($logs[$model->id]) - 1];
return number_format(($end - $begin) / (60 * 60) / 8, 2);
} else {
return "";
}
};
}
public static function schedule($array) {
return function($model) use ($array) {
return isset($array[$model->schedule_id]) ? $array[$model->schedule_id] : "";
};
}
public static function doors($array) {
return function($model) use ($array) {
$doors = [];
$alert = $hidden = "";
if ($model->door_access) {
$ls = json_decode($model->door_access, true);
foreach ($ls as $key => $value) {
if (isset($array[$value]))
$doors[] = $array[$value];
}
if (count($doors) <= 2) {
$alert = "<div id='short-{$model->id}'>" . implode("<br>", $doors) . "</div>";
} else {
$alert = "<div id='short-{$model->id}'>" . $doors[0] . "<br>" . $doors[1] . "<br><a href='#' onclick='openDoorList(this, true);return false;' data='{$model->id}'><i class='fa fa-chevron-down'></i> Xem thêm</a></div>";
$hidden = "<div id='full-{$model->id}' class='hidden'>" . implode("<br>", $doors) . "<br><a href='#' onclick='openDoorList(this, false);return false;' data='{$model->id}'><i class='fa fa-chevron-up'></i> Thu gọn</a></div>";
}
return $alert . $hidden;
}
return "";
};
}
public static function scheduleHeader() {
return function($model) {
return ["id" => "schedule-staff-results-" . $model->id];
};
}
public static function doorsHeader() {
return function($model) {
return ["id" => "schedule-door-results-" . $model->id];
};
}
}