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

Модель

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);
    }
}

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

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

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

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


person Lia nur fadilah    schedule 24.10.2018    source источник


Ответы (1)


Модель

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'));
}
person Lia nur fadilah    schedule 31.10.2018