не может правильно рассчитать данные в соответствии с входом, основанным на той же категории

модель

public static function findOrCreate($plan_id, $data)
{
$fromDate = Carbon::now()->subDay()->startOfWeek()->toDateString();
$nowDate = Carbon::now()->today()->toDateString();

$spent_time = SpentTime::where('plan_id', $plan_id)->first();
$task_category = $spent_time->task_category;

if (is_null($spent_time)) {
return static::create($data);
}else{

$spent_time->spent_time   = SpentTime::where('task_category',$task_category)
->sum('daily_spent_time', $spent_time->daily_spent_time , $fromDate);
$spent_time['spent_time'] = $spent_time->spent_time + $spent_time->daily_spent_time;

$spent_time->percentage   = SpentTime::where('task_category',$task_category)
->sum('daily_percentage', $spent_time->daily_percentage, $fromDate);
$spent_time['percentage'] = $spent_time->percentage  + $spent_time->daily_percentage;
return $spent_time->update($data);
}
}

при создании новых данных с той же категорией и вводе значения данных должна быть возможность правильно рассчитать данные, но это не может

введите описание изображения здесь

расчет не соответствует входному значению

введите описание изображения здесь

0

Решение

модель

public static function findOrCreate($plan_id, $data)
{
$spent_time = static::where('plan_id', $plan_id)->first();
$task_category = $spent_time->task_category;

if (is_null($spent_time)) {
return static::create($data);
}else{
$spent_time['spent_time'] = $spent_time->spent_time + $spent_time->daily_spent_time;
$spent_time['percentage'] = $spent_time->percentage  + $spent_time->daily_percentage;

return $spent_time->update($data);
}
}

контроллер

public function store(Request $request)
{
$spent_time = SpentTime::findOrCreate($request->get('plan_id'), [
'plan_id' => $request->get ('plan_id'),
'daily_spent_time' => $request->get ('daily_spent_time'),
'daily_percentage' => $request->get ('daily_percentage'),
'reason' => $request->get ('reason'),
]);

return redirect()->route('real.index', compact( 'spent_time'));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]