Files
a.montask/resources/views/admin/admin.blade.php
T

194 lines
10 KiB
PHP
Executable File

<?php
use Morilog\Jalali\Jalalian;
use Carbon\Carbon;
$usersChunked = $users->chunk(3);
?>
@extends('app')
@section('content')
<div class="container w-full flex flex-col items-center">
@if(!collect($reqs)->pluck('attendances')->flatten()->isEmpty())
<div class="ui-requests-card flex flex-col items-center w-full max-w-[350px]">
<p>درخواست ها</p>
@foreach ($reqs as $u)
@if(!empty($u['attendances']))
<button type="button"
class="ui-chip-btn"
onclick="togglerequests('attendance-{{ $loop->index }}')">
{{ $u['name'] }}
<span class="mr-1 text-xs opacity-90">({{ count($u['attendances']) }})</span>
</button>
<div id="attendance-{{ $loop->index }}" class="hidden-content pt-4 w-full">
<div class="ui-table-wrap">
<table class="w-full table-auto">
<thead>
<tr>
<th class="px-2 py-2 w-1/6">درخواست</th>
<th class="px-2 py-2 w-1/6">تاریخ</th>
<th class="px-2 py-2 w-1/6">ورود</th>
<th class="px-2 py-2 w-1/6">خروج</th>
<th class="px-2 py-2 w-1/6">تعیین وضعیت</th>
</tr>
</thead>
<tbody>
{{-- {{dd($u['attendances'])}}--}}
@forelse($u['attendances'] as $rec)
<tr class="{{ $rec->id=='new' ? 'is-new' : '' }}">
{{--{{dd($rec)}}--}}
<td class="px-4 py-2 border">{{ match ($rec->function) {
'edit' => "تغییر ساعت",
'delete' => "حذف",
'new' => "جدید",
default => "نامشخص",
} }}</td>
<td class="px-4 py-2 border">{{ $rec->display_date ?? '-' }}</td>
@php
$parseTime = function ($value) {
if (!$value) {
return null;
}
try {
return Carbon::parse($value)->format('H:i');
} catch (\Throwable) {
return is_string($value) && preg_match('/^\d{1,2}:\d{2}/', $value)
? substr($value, 0, 5)
: null;
}
};
$oldEnter = $parseTime($rec->oldenter ?? null);
$newEnter = $parseTime($rec->newenter ?? null);
$oldExit = $parseTime($rec->oldexit ?? null);
$newExit = $parseTime($rec->newexit ?? null);
@endphp
@if( $oldEnter == $newEnter || $newEnter == null)
<td class="px-4 py-2 border">{{ $oldEnter ?? '-' }}</td>
@else
<td class="px-4 py-2 border">{{ $oldEnter || $newEnter ? ($rec->id=='new' || $oldEnter==($newEnter ?? '') ? $oldEnter : $oldEnter.'👇🏻'.$newEnter) : '-' }}</td>
@endif
@if($oldExit == $newExit || $newExit == null)
<td class="px-4 py-2 border">{{$oldExit ? ($oldExit ?? $newExit) : '-'}}</td>
@else
<td class="px-4 py-2 border">{{ $oldExit || $newExit ? ($rec->id=='new' || $oldExit==($newExit ?? '') ? $oldExit : $oldExit.'👇🏻'.$newExit) : '-' }}</td>
@endif
{{-- @if($userType == 'admin')--}}
<td class="px-4 py-2 border">
<form method="post" action="{{route('admin.update')}}">
@csrf
<input type="hidden" name="update" id="update" value="approve">
<input type="hidden" name="data"
value='{{ json_encode($rec, JSON_UNESCAPED_UNICODE) }}'>
<button type="submit" class="ui-btn-approve">
تایید
</button>
</form>
<form method="post" action="{{route('admin.update')}}">
@csrf
<input type="hidden" name="update" id="update" value="reject">
<input type="hidden" name="data"
value='{{ json_encode($rec, JSON_UNESCAPED_UNICODE) }}'>
<button type="submit" class="ui-btn-reject">
رد
</button>
</form>
</td>
{{-- @endif--}}
</tr>
@empty
<tr>
<td class="px-4 py-2 border text-center" colspan="6">هیچ رکوردی ثبت نشده</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
@endif
@endforeach
</div>
@endif
<div class="container" style="padding-top: 20px">
<div class="grid grid-cols-2 grid-rows-none ">
@foreach ($usersChunked as $chunk)
@foreach ($chunk as $u)
@php
$cardClass = 'ui-user-card m-3';
if ($u->active_task) {
$cardClass .= ' is-active';
} elseif ($u->working == 1) {
$cardClass .= ' is-working';
} elseif ($u->working == 2) {
$cardClass .= ' is-break';
}
@endphp
<div class="{{ $cardClass }}">
<a href="/admin/{{ $u->user_name }}">
<p class="ui-user-name">{{ $u->name ?? $u->user_name }}</p>
@if($u->active_task)
<p>وظیفه: {{ $u->active_task }}</p>
@endif
<p>کارکرد ماه جاری: {{ $u->totaltime }}</p>
<p>جریمه تأخیر ماه: {{ number_format($u->monthly_late_fine ?? 0) }} تومان</p>
<p>تعداد درخواست ها: {{ $u->req_counts }}</p>
</a>
@if($userType == 'admin')
<button type="button"
class="ui-chip-btn mt-2 !min-w-0 !w-auto !text-sm"
onclick="window.location.href='{{ url('attendance/profile').'?username='.$u->user_name }}'">
ویرایش
</button>
@endif
</div>
@endforeach
@endforeach
<a class="ui-user-card m-3 flex items-center justify-center min-h-[140px]" href="{{route('admin.new')}}">
<i class="fa-regular fa-plus text-5xl text-gray-400"></i>
</a>
</div>
</div>
{{-- {{dd($reqs)}}--}}
{{--MODAL--}}
@endsection
@section('script')
<script>
// این تابع اکنون یک DIV را باز و بسته می‌کند
function togglerequests(elementId) {
var contentDiv = document.getElementById(elementId);
// بررسی می‌کند اگر عنصر دارای کلاس 'hidden-content' هست، آن را حذف و نمایش دهد، وگرنه اضافه و پنهان کند.
if (contentDiv.classList.contains('hidden-content')) {
contentDiv.classList.remove('hidden-content');
// اگر از Tailwind استفاده می‌کنید، ممکن است بخواهید: contentDiv.classList.remove('hidden');
} else {
contentDiv.classList.add('hidden-content');
// contentDiv.classList.add('hidden');
}
}
</script>
<style>
/* نیاز به این کلاس برای پنهان کردن اولیه محتوا */
.hidden-content {
display: none;
}
</style>
@endsection