store-manage/app/Admin/Services/EmployeeRestService.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;
}
}