diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php
index 31dac3d2..79a83593 100644
--- a/app/Http/Controllers/AdminController.php
+++ b/app/Http/Controllers/AdminController.php
@@ -34,9 +34,9 @@ class AdminController extends Controller
$u = User::select('name', 'is_admin')
->where('user_name', $uname)
->first();
- if ($u->is_admin == 1){
+ if ($u->is_admin == 1) {
$provider = 'admin';
- }elseif ($u->is_admin == 2){
+ } elseif ($u->is_admin == 2) {
$provider = 'supervisor';
}
if ($u->is_admin == '1' || $u->is_admin == '2') {
@@ -143,15 +143,15 @@ class AdminController extends Controller
$nendt = $request->endtime;
// dd($request);
$user = User::where('user_name', $_COOKIE['user_identity'])->first();
- if ($user->is_admin == 2){
+ if ($user->is_admin == 2) {
$attController = new AttendanceController();
return $attController->edit($request);
}
if ($id == 'new') {
$user_name = $request->uname;
- if($request->display_date == null){
+ if ($request->display_date == null) {
$date = Carbon::now()->format('Y-m-d');
- }else{
+ } else {
// dump($date);
$date = \Morilog\Jalali\CalendarUtils::convertNumbers($request->display_date, true);
$date = str_replace('/', '-', $date);
@@ -279,12 +279,21 @@ class AdminController extends Controller
// }
$record->exited_at = $date . ' ' . $data->newexit;
- $record->duration = $attendance->duration($data->newenter, $data->newexit);
+ $duration = $attendance->duration($data->newenter, $data->newexit);
} else {
$record->exited_at = 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->save();
// $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));
Redis::connection()->del("att-tempreq:{$data->userid}:{$data->id}");
+
tel_notif($record->user_identity, "تایید");
- return json_encode($data);
-// return redirect()->back()->with('message', [
-// 'color' => '#6aff00ff',
-// "text" => 'رکورد با موفقیت ذخیره شد.✔️'
-// ]);
+
+ return redirect()->back()->with('message', [
+ 'color' => '#6aff00ff',
+ "text" => 'رکورد با موفقیت ذخیره شد.✔️'
+ ]);
} elseif ($data->function == 'new') {
// dd($data);
$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($data->function == 'delete' || $data->function == 'edit'){
+ if ($data->function == 'delete' || $data->function == 'edit') {
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}";
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)) {
$fa_numbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
$en_numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
diff --git a/app/Http/Controllers/AttendanceController.php b/app/Http/Controllers/AttendanceController.php
index 2f01258d..a991ec18 100644
--- a/app/Http/Controllers/AttendanceController.php
+++ b/app/Http/Controllers/AttendanceController.php
@@ -219,9 +219,10 @@ class AttendanceController extends Controller
if (!empty($user)) {
setcookie('user_identity', $user->user_name ?? $user->id, time() + (60 * 60 * 24 * 365 * 5), "/");
- $admin = $user->is_admin == 1 ? true : false;
- if ($admin) {
+ if ($user->is_admin == 1) {
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([
@@ -229,7 +230,7 @@ class AttendanceController extends Controller
'color' => '#00c300ff',
'text' => 'ورود موفق'
],
- 'admin' => $admin,
+ 'admin' => $user->is_admin,
]);
}
@@ -687,7 +688,7 @@ function send_tel($user, $data, $status)
$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') {
foreach ($admins as $admin) {
if (!$admin->bale) {continue;}
diff --git a/app/Models/User.php b/app/Models/User.php
index 12691d27..39486ccd 100755
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -81,7 +81,7 @@ class User extends Authenticatable
return $this->hasManyThrough(AttendanceBreak::class,Attendance::class,'user_identity','attendance_id',
'user_name', // local key در users
'id' // local key در attendances
- )->orderBy('entered_at', 'desc');
+ )->orderBy('id', 'desc');
}
diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php
index 0eba25c3..2a8f54c8 100755
--- a/resources/views/app.blade.php
+++ b/resources/views/app.blade.php
@@ -385,12 +385,12 @@
- @if(!request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']==1))
+ @if(!request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']!=null))
- @elseif(request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']==1))
+ @elseif(request()->is("admin") && (isset($_COOKIE['ad']) && $_COOKIE['ad']!=null))
diff --git a/resources/views/attendance/index.blade.php b/resources/views/attendance/index.blade.php
index d56839ab..162b3a6f 100755
--- a/resources/views/attendance/index.blade.php
+++ b/resources/views/attendance/index.blade.php
@@ -8,35 +8,35 @@ use Carbon\Carbon;
use Illuminate\Support\Collection;
-//if (!empty($user->tasks)) {
-// $in_progress = '#fca000';
-// $todo = '#7d7d7d';
-// $error = '#fc0000';
-// $backlog = '#bababa';
-// $done = '#40de02';
-// $cancelled = 'black';
-//
-// $state = [
-// "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5" => "$in_progress",// in progress
-// "a9ce312f-cfca-491e-8e3d-1975aa6ebc10" => "$todo",//to do
-// "dea1fb57-a281-4fe7-8f3e-ee5567637e35" => "$error",// error
-// "770fbe42-99f6-41db-9b9e-773d9cced1a5" => "$backlog",//backlog
-// "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0" => "$done",//done
-// "d61d14a3-72f7-4f44-894b-efe8b2a75be1" => "$cancelled",//canceled
-// ];
-// $state_order = [
-// "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5",
-// "a9ce312f-cfca-491e-8e3d-1975aa6ebc10",
-// "dea1fb57-a281-4fe7-8f3e-ee5567637e35",
-// "770fbe42-99f6-41db-9b9e-773d9cced1a5",
-// "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0",
-// "d61d14a3-72f7-4f44-894b-efe8b2a75be1",
-// ];
-//
-// $user->tasks = $user->tasks->sortBy(function ($task) use ($state_order) {
-// return array_search($task->state, $state_order);
-// });
-//}
+if (!empty($user->tasks)) {
+ $in_progress = '#fca000';
+ $todo = '#7d7d7d';
+ $error = '#fc0000';
+ $backlog = '#bababa';
+ $done = '#40de02';
+ $cancelled = 'black';
+
+ $state = [
+ "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5" => "$in_progress",// in progress
+ "a9ce312f-cfca-491e-8e3d-1975aa6ebc10" => "$todo",//to do
+ "dea1fb57-a281-4fe7-8f3e-ee5567637e35" => "$error",// error
+ "770fbe42-99f6-41db-9b9e-773d9cced1a5" => "$backlog",//backlog
+ "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0" => "$done",//done
+ "d61d14a3-72f7-4f44-894b-efe8b2a75be1" => "$cancelled",//canceled
+ ];
+ $state_order = [
+ "c73c2044-ea14-42cb-b08d-cecf3d1fdfb5",
+ "a9ce312f-cfca-491e-8e3d-1975aa6ebc10",
+ "dea1fb57-a281-4fe7-8f3e-ee5567637e35",
+ "770fbe42-99f6-41db-9b9e-773d9cced1a5",
+ "b0e464e1-34eb-41ea-b2f7-3ef7483bc9f0",
+ "d61d14a3-72f7-4f44-894b-efe8b2a75be1",
+ ];
+
+ $user->tasks = $user->tasks->sortBy(function ($task) use ($state_order) {
+ return array_search($task->state, $state_order);
+ });
+}
//dd(count($break = $user->attendanceBreaks));
if (count($user->attendanceBreaks) > 0){
$break = $user->attendanceBreaks[0];