Edit task creation start time
This commit is contained in:
@@ -153,17 +153,17 @@ class TaskController extends Controller
|
||||
? "وضعیت: " . ($stateFa[$s1] ?? ($before['state'] ?? '-')) . " ← " . ($stateFa[$s2] ?? ($after['state'] ?? '-'))
|
||||
: "وضعیت: " . ($stateFa[$s2] ?? ($after['state'] ?? '-'));
|
||||
|
||||
$d1 = $before['start_date'] ?? null;
|
||||
$d2 = $after['start_date'] ?? null;
|
||||
$d1 = \App\Support\JalaliHelper::format($before['start_date'] ?? null, 'Y/m/d', '-');
|
||||
$d2 = \App\Support\JalaliHelper::format($after['start_date'] ?? null, 'Y/m/d', '-');
|
||||
$lines[] = ($d1 !== $d2)
|
||||
? "شروع: " . ($d1 ?: '-') . " ← " . ($d2 ?: '-')
|
||||
: "شروع: " . ($d2 ?: '-');
|
||||
? "شروع: {$d1} ← {$d2}"
|
||||
: "شروع: {$d2}";
|
||||
|
||||
$t1 = $before['target_date'] ?? null;
|
||||
$t2 = $after['target_date'] ?? null;
|
||||
$t1 = \App\Support\JalaliHelper::format($before['target_date'] ?? null, 'Y/m/d', '-');
|
||||
$t2 = \App\Support\JalaliHelper::format($after['target_date'] ?? null, 'Y/m/d', '-');
|
||||
$lines[] = ($t1 !== $t2)
|
||||
? "ددلاین: " . ($t1 ?: '-') . " ← " . ($t2 ?: '-')
|
||||
: "ددلاین: " . ($t2 ?: '-');
|
||||
? "ددلاین: {$t1} ← {$t2}"
|
||||
: "ددلاین: {$t2}";
|
||||
|
||||
$desc1 = trim((string)($before['description'] ?? ''));
|
||||
$desc2 = trim((string)($after['description'] ?? ''));
|
||||
@@ -693,13 +693,8 @@ class TaskController extends Controller
|
||||
}
|
||||
$user = User::where('user_name', $_COOKIE['user_identity'])->first();
|
||||
|
||||
$startDate = $this->normalizeTaskDate($request->input('start_date'));
|
||||
if (!$startDate) {
|
||||
return back()->withInput()->with('message', [
|
||||
'color' => 'red',
|
||||
'text' => 'تاریخ شروع الزامی است. لطفاً از تقویم انتخاب کنید.',
|
||||
]);
|
||||
}
|
||||
$startDate = $this->normalizeTaskDate($request->input('start_date'))
|
||||
?: now()->format('Y-m-d');
|
||||
|
||||
$data = [
|
||||
'title' => $request->input('title'),
|
||||
@@ -718,11 +713,12 @@ class TaskController extends Controller
|
||||
$message = "تسک جدیدی با عنوان {$data['title']} برای شما ایجاد شد.";
|
||||
$deadline = \App\Support\JalaliHelper::format($data['target_date'] ?? null, 'Y/m/d', '');
|
||||
$deadline = $deadline !== '' ? $deadline : null;
|
||||
$startDateJalali = \App\Support\JalaliHelper::format($data['start_date'] ?? null, 'Y/m/d', '');
|
||||
$app = App::find($data['app']);
|
||||
$message_admin = "ایجاد تسک: «{$data['title']}»";
|
||||
$message_admin .= !empty($app) ? "\nاپ {$app->name_fa}" : null;
|
||||
$message_admin .= !empty($deadline) ? "\nددلاین {$deadline}" : null;
|
||||
$message_admin .= !empty($data['start_date']) ? "\nتاریخ شروع {$data['start_date']}" : null;
|
||||
$message_admin .= $startDateJalali !== '' ? "\nتاریخ شروع {$startDateJalali}" : null;
|
||||
$message_admin .= !empty($request->input('state_fa')) ? "\nوضعیت: {$request->input('state_fa')}" : null;
|
||||
$message_admin .= !empty($data['description']) ? "\nبا توضیحات:\n" . $data['description'] : null;
|
||||
$message_admin .= !empty($data['assignees']) ? "\nتوسط " . $user->name . " ساخته شد و به" : null;
|
||||
|
||||
@@ -28,8 +28,9 @@ class LatePenaltyService
|
||||
];
|
||||
}
|
||||
|
||||
$entered = Carbon::parse($enteredAt);
|
||||
$threshold = $entered->copy()->setTimeFromTimeString(self::WORK_START);
|
||||
// فقط تا دقیقه؛ ثانیه نادیده گرفته میشود
|
||||
$entered = Carbon::parse($enteredAt)->startOfMinute();
|
||||
$threshold = $entered->copy()->setTimeFromTimeString(self::WORK_START)->startOfMinute();
|
||||
|
||||
if ($entered->lte($threshold)) {
|
||||
return [
|
||||
@@ -40,7 +41,7 @@ class LatePenaltyService
|
||||
];
|
||||
}
|
||||
|
||||
$lateMinutes = (int) ceil($threshold->diffInSeconds($entered) / 60);
|
||||
$lateMinutes = (int) $threshold->diffInMinutes($entered);
|
||||
// تأخیر داخل بازه ارفاق روزانه (۸:۳۰ تا ۸:۴۵) — مبنای جریمه هفتگی
|
||||
$graceLateMinutes = min($lateMinutes, self::DAILY_GRACE_MINUTES);
|
||||
$dailyFineMinutes = max(0, $lateMinutes - self::DAILY_GRACE_MINUTES);
|
||||
|
||||
@@ -52,10 +52,19 @@ if (isset($task)) {
|
||||
|
||||
<div class="ui-form-field">
|
||||
<label for="start_date">تاریخ شروع <span class="text-red-500">*</span></label>
|
||||
@php
|
||||
$defaultStartGregorian = !empty($task?->start_date)
|
||||
? \App\Support\JalaliHelper::toGregorianDate($task->start_date)
|
||||
: now()->format('Y-m-d');
|
||||
$defaultStartJalali = !empty($task?->start_date)
|
||||
? \App\Support\JalaliHelper::format($task->start_date, 'Y/m/d', '')
|
||||
: \App\Support\JalaliHelper::format(now(), 'Y/m/d', '');
|
||||
@endphp
|
||||
<input type="text" id="start_date" name="start_date_display" class="ui-input"
|
||||
value="{{$task->start_date ?? null}}"
|
||||
value="{{ old('start_date_display', $defaultStartJalali) }}"
|
||||
placeholder="تاریخ شروع" autocomplete="off" readonly required>
|
||||
<input type="hidden" name="start_date" id="start_date_gregorian">
|
||||
<input type="hidden" name="start_date" id="start_date_gregorian"
|
||||
value="{{ old('start_date', $defaultStartGregorian) }}">
|
||||
</div>
|
||||
|
||||
<div class="ui-form-field">
|
||||
@@ -248,6 +257,13 @@ if (isset($task)) {
|
||||
@if(!empty($task?->start_date))
|
||||
$('#start_date_gregorian').val(@json(\App\Support\JalaliHelper::toGregorianDate($task->start_date)));
|
||||
$('#start_date').val(@json(\App\Support\JalaliHelper::format($task->start_date, 'Y/m/d', '')));
|
||||
@elseif(!$('#start_date_gregorian').val())
|
||||
// پیشفرض: امروز
|
||||
const todayUnix = new persianDate().valueOf();
|
||||
const todayJalali = new persianDate(todayUnix).format('YYYY/MM/DD');
|
||||
const todayGregorian = new persianDate(todayUnix).toCalendar('gregorian').toLocale('en').format('YYYY-MM-DD');
|
||||
$('#start_date').val(todayJalali);
|
||||
$('#start_date_gregorian').val(todayGregorian);
|
||||
@endif
|
||||
@if(!empty($task?->target_date))
|
||||
$('#target_date_gregorian').val(@json(\App\Support\JalaliHelper::toGregorianDate($task->target_date)));
|
||||
@@ -258,9 +274,11 @@ if (isset($task)) {
|
||||
syncGregorianFromDisplay('#start_date', '#start_date_gregorian');
|
||||
syncGregorianFromDisplay('#target_date', '#target_date_gregorian');
|
||||
if (!$('#start_date_gregorian').val()) {
|
||||
e.preventDefault();
|
||||
alert('لطفاً تاریخ شروع را از تقویم انتخاب کنید.');
|
||||
return false;
|
||||
const todayUnix = new persianDate().valueOf();
|
||||
$('#start_date').val(new persianDate(todayUnix).format('YYYY/MM/DD'));
|
||||
$('#start_date_gregorian').val(
|
||||
new persianDate(todayUnix).toCalendar('gregorian').toLocale('en').format('YYYY-MM-DD')
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user