main
Jing Li 2024-04-20 14:52:00 +08:00
parent 69b644579f
commit 5efa1255a2
3 changed files with 24 additions and 15 deletions

View File

@ -181,10 +181,7 @@ class TaskService extends BaseService
]); ]);
if (! $task->isSuccess() && $taskable->isSuccess()) { if (! $task->isSuccess() && $taskable->isSuccess()) {
$task->update([ $task->markAsSuccess();
'task_status' => TaskStatus::Success,
'completed_at' => now(),
]);
} }
break; break;

View File

@ -144,10 +144,12 @@ class LedgerController extends Controller
->where('date', $ledger->date) ->where('date', $ledger->date)
->first(); ->first();
if ($taskLedger) { if ($taskLedger) {
$taskLedger->task()->update([ /** @var \App\Models\Task */
'task_status' => TaskStatus::Success, $task = $taskLedger->task;
'completed_at' => $ledger->created_at,
]); if (! $task->isSuccess()) {
$task->markAsSuccess();
}
} }
// 业绩指标任务 // 业绩指标任务
@ -156,19 +158,21 @@ class LedgerController extends Controller
->where('month', $date->format('Y-m')) ->where('month', $date->format('Y-m'))
->first(); ->first();
if ($taskPerformance) { if ($taskPerformance) {
$totalSales = Ledger::where('store_id', $ledger->store_id) $actualPerformance = Ledger::where('store_id', $ledger->store_id)
->whereBetween('date', [$date->copy()->startOfMonth()->format('Y-m-d'), $date->copy()->endOfMonth()->format('Y-m-d')]) ->whereBetween('date', [$date->copy()->startOfMonth()->format('Y-m-d'), $date->copy()->endOfMonth()->format('Y-m-d')])
->sum('sales'); ->sum('sales');
$taskPerformance->update([ $taskPerformance->update([
'actual_performance' => $totalSales, 'actual_performance' => $actualPerformance,
]); ]);
if ($taskPerformance->isCompleted() && ! $taskPerformance->task->isSuccess()) { if ($taskPerformance->isSuccess()) {
$taskPerformance->task->update([ /** @var \App\Models\Task */
'task_status' => TaskStatus::Success, $task = $taskPerformance->task;
'completed_at' => now(),
]); if (! $task->isSuccess()) {
$task->markAsSuccess();
}
} }
} }

View File

@ -51,4 +51,12 @@ class Task extends Model
{ {
return $this->task_status === TaskStatus::Success; return $this->task_status === TaskStatus::Success;
} }
public function markAsSuccess(): void
{
$this->forceFill([
'task_status' => TaskStatus::Success,
'completed_at' => now(),
])->save();
}
} }