public function checkPermission($entryId, $userId) { $entry = \Timesheet::find($entryId); if ($entry->user_id == $userId) { return true; } else { return false; } }
public function generateWeeklyProjectReport($dates, $projectId, $userId) { try { //List all Tasks associated with the project $tasksId = Task::where('project_id', $projectId)->lists('id'); $entries = array(); $taskEntryArray = array(); $totalTimeSpent = 0; $dayTime = array(); $onlyTasksId = array(); if (sizeof($tasksId) != 0) { foreach ($dates as $date) { $tempData = Timesheet::where('date', $date)->whereIn('task_id', $tasksId)->where('user_id', $userId)->get()->toArray(); $tempDayTime = 0; $tempEntryArray = array(); //Total Time foreach ($tempData as $entry) { $tempTaskEntry['taskId'] = $entry['task_id']; $tempTaskEntry['entryId'] = $entry['id']; $taskEntryArray[] = $tempTaskEntry; $onlyTasksId[] = $entry['task_id']; $totalTimeSpent = $totalTimeSpent + $entry['total_time_spent']; $tempDayTime = $tempDayTime + $entry['total_time_spent']; $entry['task'] = \Task::find($entry['task_id'])->toArray(); $tempEntryArray[] = $entry; } $entries[] = $tempEntryArray; $dayTime[] = $tempDayTime; } $allTasksId = array_unique($onlyTasksId); $tasks = array(); $tempTaskArray = array(); //Calculate total time for each task foreach ($allTasksId as $tId) { $tempTaskTime = 0; foreach ($taskEntryArray as $te) { if ($te['taskId'] == $tId) { $tempEntry = \Timesheet::find($te['entryId']); $tempTaskTime = $tempTaskTime + $tempEntry->total_time_spent; } } //Convert Time and Wrapup data $tempTask = \Task::find($tId); $tempTaskName = $tempTask->name; $tempTaskHours = \DateAndTime::convertTime($tempTaskTime); $temptasks['id'] = $tId; $temptasks['name'] = $tempTaskName; $temptasks['total_time'] = $tempTaskTime; $temptasks['hours'] = $tempTaskHours['hours']; $temptasks['mins'] = $tempTaskHours['mins']; $tasks[] = $temptasks; } } else { $tasks = array(); $taskTimeArray = array(); $taskNameArray = array(); $entries = array(); $dayTime = array(); for ($i = 0; $i < sizeof($dates); $i++) { $entries[] = null; $dayTime[] = 0; } } //Wrapup data $tempProject = \Project::find($projectId); $returnData['projectName'] = $tempProject->project_name; $returnData['entries'] = $entries; $returnData['tasks'] = $tasks; $returnData['totalTime'] = \DateAndTime::convertTime($totalTimeSpent); $returnData['dayTime'] = $dayTime; return $returnData; } catch (\Exception $e) { \Log::error('Something Went Wrong in Report Repository - generateWeeklyProjectReport():' . $e->getMessage()); throw new SomeThingWentWrongException(); } }