UPDATE 1405-01-29

This commit is contained in:
moTech
2026-04-18 06:17:01 +00:00
parent 107fe6f4d3
commit 4b2e1e296a
5 changed files with 62 additions and 50 deletions
+25 -14
View File
@@ -34,9 +34,9 @@ class AdminController extends Controller
$u = User::select('name', 'is_admin') $u = User::select('name', 'is_admin')
->where('user_name', $uname) ->where('user_name', $uname)
->first(); ->first();
if ($u->is_admin == 1){ if ($u->is_admin == 1) {
$provider = 'admin'; $provider = 'admin';
}elseif ($u->is_admin == 2){ } elseif ($u->is_admin == 2) {
$provider = 'supervisor'; $provider = 'supervisor';
} }
if ($u->is_admin == '1' || $u->is_admin == '2') { if ($u->is_admin == '1' || $u->is_admin == '2') {
@@ -143,15 +143,15 @@ class AdminController extends Controller
$nendt = $request->endtime; $nendt = $request->endtime;
// dd($request); // dd($request);
$user = User::where('user_name', $_COOKIE['user_identity'])->first(); $user = User::where('user_name', $_COOKIE['user_identity'])->first();
if ($user->is_admin == 2){ if ($user->is_admin == 2) {
$attController = new AttendanceController(); $attController = new AttendanceController();
return $attController->edit($request); return $attController->edit($request);
} }
if ($id == 'new') { if ($id == 'new') {
$user_name = $request->uname; $user_name = $request->uname;
if($request->display_date == null){ if ($request->display_date == null) {
$date = Carbon::now()->format('Y-m-d'); $date = Carbon::now()->format('Y-m-d');
}else{ } else {
// dump($date); // dump($date);
$date = \Morilog\Jalali\CalendarUtils::convertNumbers($request->display_date, true); $date = \Morilog\Jalali\CalendarUtils::convertNumbers($request->display_date, true);
$date = str_replace('/', '-', $date); $date = str_replace('/', '-', $date);
@@ -279,12 +279,21 @@ class AdminController extends Controller
// } // }
$record->exited_at = $date . ' ' . $data->newexit; $record->exited_at = $date . ' ' . $data->newexit;
$record->duration = $attendance->duration($data->newenter, $data->newexit); $duration = $attendance->duration($data->newenter, $data->newexit);
} else { } else {
$record->exited_at = null; $record->exited_at = null;
$record->duration = null; $record->duration = null;
} }
$break = AttendanceBreak::where('attendance_id', $data->id)->sum('duration');
if ($break) {
$breakSec = strtotime("1970-01-01 " . $break) - strtotime("1970-01-01 00:00:00");
$durationSec = strtotime("1970-01-01 " . $duration) - strtotime("1970-01-01 00:00:00");
$durationSec -= $breakSec;
$record->duration = gmdate("H:i:s", $durationSec);
}
//dd($record->duration, $duration, $break);
$record->requested = ''; $record->requested = '';
$record->save(); $record->save();
// $create_requests_key = "att-tempreq:creates:{$data->userid}"; // $create_requests_key = "att-tempreq:creates:{$data->userid}";
@@ -292,12 +301,13 @@ class AdminController extends Controller
// $t = Redis::connection()->lrem($create_requests_key, -1, json_encode($data)); // $t = Redis::connection()->lrem($create_requests_key, -1, json_encode($data));
Redis::connection()->del("att-tempreq:{$data->userid}:{$data->id}"); Redis::connection()->del("att-tempreq:{$data->userid}:{$data->id}");
tel_notif($record->user_identity, "تایید"); tel_notif($record->user_identity, "تایید");
return json_encode($data);
// return redirect()->back()->with('message', [ return redirect()->back()->with('message', [
// 'color' => '#6aff00ff', 'color' => '#6aff00ff',
// "text" => 'رکورد با موفقیت ذخیره شد.✔️' "text" => 'رکورد با موفقیت ذخیره شد.✔️'
// ]); ]);
} elseif ($data->function == 'new') { } elseif ($data->function == 'new') {
// dd($data); // dd($data);
$starttime = $data->oldenter ? Carbon::parse($data->oldenter)->format('H:i:s') : null; $starttime = $data->oldenter ? Carbon::parse($data->oldenter)->format('H:i:s') : null;
@@ -324,9 +334,9 @@ class AdminController extends Controller
} }
if ($request->update == 'reject') { if ($request->update == 'reject') {
if($data->function == 'delete' || $data->function == 'edit'){ if ($data->function == 'delete' || $data->function == 'edit') {
Redis::connection()->del("att-tempreq:{$data->userid}:{$data->id}"); Redis::connection()->del("att-tempreq:{$data->userid}:{$data->id}");
}elseif($data->function == 'new'){ } elseif ($data->function == 'new') {
$create_requests_key = "att-tempreq:creates:{$data->userid}"; $create_requests_key = "att-tempreq:creates:{$data->userid}";
Redis::connection()->lrem($create_requests_key, 1, json_encode($data)); Redis::connection()->lrem($create_requests_key, 1, json_encode($data));
} }
@@ -347,7 +357,8 @@ class AdminController extends Controller
} }
private function fa2en_numbers($input) { private function fa2en_numbers($input)
{
if (is_string($input)) { if (is_string($input)) {
$fa_numbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']; $fa_numbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
$en_numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; $en_numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
@@ -219,9 +219,10 @@ class AttendanceController extends Controller
if (!empty($user)) { if (!empty($user)) {
setcookie('user_identity', $user->user_name ?? $user->id, time() + (60 * 60 * 24 * 365 * 5), "/"); setcookie('user_identity', $user->user_name ?? $user->id, time() + (60 * 60 * 24 * 365 * 5), "/");
$admin = $user->is_admin == 1 ? true : false; if ($user->is_admin == 1) {
if ($admin) {
setcookie('ad', '1', time() + (60 * 60 * 24 * 365 * 5), "/"); setcookie('ad', '1', time() + (60 * 60 * 24 * 365 * 5), "/");
}elseif ($user->is_admin == 2){
setcookie('ad', '2', time() + (60 * 60 * 24 * 365 * 5), "/");
} }
return redirect(url(''))->with([ return redirect(url(''))->with([
@@ -229,7 +230,7 @@ class AttendanceController extends Controller
'color' => '#00c300ff', 'color' => '#00c300ff',
'text' => 'ورود موفق' 'text' => 'ورود موفق'
], ],
'admin' => $admin, 'admin' => $user->is_admin,
]); ]);
} }
@@ -687,7 +688,7 @@ function send_tel($user, $data, $status)
$message = "{$user} درخواست {$data} ثبت کرد."; $message = "{$user} درخواست {$data} ثبت کرد.";
} }
$admins = User::where('is_admin', '1')->whereNotNull('chatid')->select('chatid', 'bale', 'user_name')->get(); $admins = User::whereIn('is_admin', [1,2])->whereNotNull('chatid')->select('chatid', 'bale', 'user_name')->get();
if ($_COOKIE['user_identity'] !== 'test') { if ($_COOKIE['user_identity'] !== 'test') {
foreach ($admins as $admin) { foreach ($admins as $admin) {
if (!$admin->bale) {continue;} if (!$admin->bale) {continue;}
+1 -1
View File
@@ -81,7 +81,7 @@ class User extends Authenticatable
return $this->hasManyThrough(AttendanceBreak::class,Attendance::class,'user_identity','attendance_id', return $this->hasManyThrough(AttendanceBreak::class,Attendance::class,'user_identity','attendance_id',
'user_name', // local key در users 'user_name', // local key در users
'id' // local key در attendances 'id' // local key در attendances
)->orderBy('entered_at', 'desc'); )->orderBy('id', 'desc');
} }
+2 -2
View File
@@ -385,12 +385,12 @@
<button type="button" onclick="submitForm('/', 'GET')"> <button type="button" onclick="submitForm('/', 'GET')">
<i class="fa-solid fa-house text-white"></i> <i class="fa-solid fa-house text-white"></i>
</button> </button>
@if(!request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']==1)) @if(!request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']!=null))
<button type="button" onclick="submitForm('{{route('admin.dashboard')}}', 'GET')"> <button type="button" onclick="submitForm('{{route('admin.dashboard')}}', 'GET')">
<i class="fa-solid fa-users text-white"></i> <i class="fa-solid fa-users text-white"></i>
</button> </button>
@elseif(request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']==1)) @elseif(request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']!=null))
<button type="button" onclick="submitForm('/', 'GET')"> <button type="button" onclick="submitForm('/', 'GET')">
<i class="fa-solid fa-users text-white"></i> <i class="fa-solid fa-users text-white"></i>
</button> </button>
+29 -29
View File
@@ -8,35 +8,35 @@ use Carbon\Carbon;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
//if (!empty($user->tasks)) { if (!empty($user->tasks)) {
// $in_progress = '#fca000'; $in_progress = '#fca000';
// $todo = '#7d7d7d'; $todo = '#7d7d7d';
// $error = '#fc0000'; $error = '#fc0000';
// $backlog = '#bababa'; $backlog = '#bababa';
// $done = '#40de02'; $done = '#40de02';
// $cancelled = 'black'; $cancelled = 'black';
//
// $state = [ $state = [
// "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5" => "$in_progress",// in progress "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5" => "$in_progress",// in progress
// "a9ce312f-cfca-491e-8e3d-1975aa6ebc10" => "$todo",//to do "a9ce312f-cfca-491e-8e3d-1975aa6ebc10" => "$todo",//to do
// "dea1fb57-a281-4fe7-8f3e-ee5567637e35" => "$error",// error "dea1fb57-a281-4fe7-8f3e-ee5567637e35" => "$error",// error
// "770fbe42-99f6-41db-9b9e-773d9cced1a5" => "$backlog",//backlog "770fbe42-99f6-41db-9b9e-773d9cced1a5" => "$backlog",//backlog
// "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0" => "$done",//done "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0" => "$done",//done
// "d61d14a3-72f7-4f44-894b-efe8b2a75be1" => "$cancelled",//canceled "d61d14a3-72f7-4f44-894b-efe8b2a75be1" => "$cancelled",//canceled
// ]; ];
// $state_order = [ $state_order = [
// "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5", "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5",
// "a9ce312f-cfca-491e-8e3d-1975aa6ebc10", "a9ce312f-cfca-491e-8e3d-1975aa6ebc10",
// "dea1fb57-a281-4fe7-8f3e-ee5567637e35", "dea1fb57-a281-4fe7-8f3e-ee5567637e35",
// "770fbe42-99f6-41db-9b9e-773d9cced1a5", "770fbe42-99f6-41db-9b9e-773d9cced1a5",
// "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0", "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0",
// "d61d14a3-72f7-4f44-894b-efe8b2a75be1", "d61d14a3-72f7-4f44-894b-efe8b2a75be1",
// ]; ];
//
// $user->tasks = $user->tasks->sortBy(function ($task) use ($state_order) { $user->tasks = $user->tasks->sortBy(function ($task) use ($state_order) {
// return array_search($task->state, $state_order); return array_search($task->state, $state_order);
// }); });
//} }
//dd(count($break = $user->attendanceBreaks)); //dd(count($break = $user->attendanceBreaks));
if (count($user->attendanceBreaks) > 0){ if (count($user->attendanceBreaks) > 0){
$break = $user->attendanceBreaks[0]; $break = $user->attendanceBreaks[0];