예제 #1
0
 public function checkPermission($entryId, $userId)
 {
     $entry = \Timesheet::find($entryId);
     if ($entry->user_id == $userId) {
         return true;
     } else {
         return false;
     }
 }
예제 #2
0
 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();
     }
 }