generated from liutk/owl-admin-base
49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Services;
|
|
|
|
use App\Admin\Filters\EmployeeRestFilter;
|
|
use App\Models\Employee;
|
|
use App\Models\EmployeeRest;
|
|
|
|
class EmployeeRestService extends BaseService
|
|
{
|
|
protected array $withRelationships = ['employee'];
|
|
|
|
protected string $modelName = EmployeeRest::class;
|
|
|
|
protected string $modelFilterName = EmployeeRestFilter::class;
|
|
|
|
public function store($data): bool
|
|
{
|
|
$data = $this->resloveData($data);
|
|
|
|
$validate = $this->validate($data);
|
|
if ($validate !== true) {
|
|
$this->setError($validate);
|
|
|
|
return false;
|
|
}
|
|
|
|
if (isset($data['employees']) && isset($data['dates'])) {
|
|
$dates = array_unique($data['dates']);
|
|
$employees = Employee::whereIn('id', $data['employees'])->enable()->get();
|
|
$list = [];
|
|
$now = now();
|
|
foreach ($employees as $employee) {
|
|
foreach ($dates as $date) {
|
|
array_push($list, [
|
|
'date' => $date,
|
|
'employee_id' => $employee->id,
|
|
]);
|
|
}
|
|
}
|
|
EmployeeRest::insert($list);
|
|
} else {
|
|
$this->modelName::create($data);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|