Example #1
0
 /**
  * Display the specified resource.
  */
 public function show(Request $request, $id)
 {
     if ($request->ajax()) {
         return Task::where('trade_id', '=', $id)->get();
     }
     return view('errors.404');
 }
Example #2
0
 /**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     $tasks = Task::where('date', '>=', Carbon::parse(date('d-m-Y')))->where('date', '<=', Carbon::parse(date('d-m-Y'))->addDay(7))->orderBy('date', 'asc')->get();
     \Mail::send('emails.remainder', ['tasks' => $tasks], function ($m) {
         $m->to(env('REMAINDER_EMAIL'), env('REMAINDER_NAME'))->subject('[SUN TASK] Your Task Reminder.');
     });
 }
Example #3
0
 /**
  * Display the specified resource.
  * GET /projects/{id}
  *
  * @param  int  $id
  * @return Response
  */
 public function show($society, $id)
 {
     $data['society'] = $society;
     $project = Project::find($id);
     if (Helpers::perm('admin', $society) or Helpers::perm('edit', $society) or $project->individual_id == Auth::user()->individual_id) {
         $individuals = Individual::orderBy('surname')->get();
         $oldtasks = Task::where('project_id', $id)->where('donedate', '!=', '')->get();
         $tasks = Task::where('project_id', $id)->where('donedate', '')->get();
         return View::make('projects.show', $data)->with('project', $project)->with('oldtasks', $oldtasks)->with('tasks', $tasks)->with('individuals', $individuals);
     } else {
         return view('shared.unauthorised');
     }
 }
Example #4
0
 /**
  * To get tasks with pagination
  *
  * @param $item
  *
  * @param $searchKey
  *
  * @return tasks
  */
 public function getTaskWithPaginate($item = 5, $searchKey = '')
 {
     if (!$searchKey == '') {
         $field = strstr($searchKey, '@ ', true);
         $value = str_replace("@ ", '', strstr($searchKey, '@ '));
     } else {
         $field = '';
         $value = '';
     }
     if ($field == 'date') {
         $value = Carbon::parse($value);
     }
     return Task::where($field, 'LIKE', "%{$value}%")->orderBy('date', 'asc')->paginate($item);
 }
Example #5
0
 public function task_report($type)
 {
     //        $type = 'week';
     $query_begin = null;
     $query_end = null;
     switch ($type) {
         case 'month':
             $query_begin = date("Y-m-d", mktime(0, 0, 0, date("m"), 1, date("Y")));
             $query_end = date("Y-m-d ", mktime(0, 0, 0, date("m") + 1, 1, date("Y")));
             break;
         case 'week':
             $query_begin = date("Y-m-d", strtotime("-1 week Monday"));
             $query_end = date("Y-m-d", strtotime("+0 week Monday"));
             break;
         default:
             $query_begin = date("Y-m-d", mktime(0, 0, 0, date("m"), 1, date("Y")));
             $query_end = date("Y-m-d ", mktime(0, 0, 0, date("m") + 1, 1, date("Y")));
             break;
     }
     $tasks_sum = DB::table('tasks')->select(DB::raw('ifnull(sum(case when status = 0 then 1 ELSE 0 end),0) as todo'), DB::raw('ifnull(sum(case when status = 1 then 1 ELSE 0 end),0) as deving'), DB::raw('ifnull(sum(case when status = 2 then 1 ELSE 0 end),0) as testing'), DB::raw('ifnull(sum(case when status > 2 then 1 ELSE 0 end),0) as over'))->where('ekp_create_date', '>', $query_begin)->first();
     //TODO:这里的条件,在团队数据和个人数据中是不一样的,团队的用actual_finish_date,个人的用dev、test_end_date
     $tasks_workload_sum = DB::table('tasks')->select(DB::raw('sum(developer_workload) as developer_workload_all'), DB::raw('sum(tester_workload) as tester_workload_all'))->where('actual_finish_date', '>', $query_begin)->where('actual_finish_date', '<', $query_end)->first();
     $task_details = Task::where('ekp_create_date', '>', $query_begin)->where('ekp_create_date', '<', $query_end)->get();
     $query_str = "SELECT b.name,sum(CASE `status` WHEN 0 THEN 1 ELSE 0 END ) AS todo,sum( CASE `status` WHEN 1 THEN 1 ELSE 0 END ) AS doing,sum( CASE `status` WHEN 2 THEN 1 ELSE 0 END ) AS testing,\n                sum(CASE `status` WHEN 3 THEN 1 ELSE 0 END ) AS dong,COUNT(1) AS totle FROM tasks a LEFT JOIN users b ON a.developer = b. CODE WHERE developer_start > :begin_time AND developer_start < :end_time  AND developer <> '' AND `status` IN (0, 1, 2, 3)\n                GROUP BY b. NAME UNION SELECT b. NAME,sum( CASE `status` WHEN 0 THEN 1 when 1 then 1 ELSE 0 END ) AS todo,0 doing, sum( CASE `status` WHEN 2 THEN 1 ELSE 0 END )\n                AS testing,sum( CASE `status` WHEN 3 THEN 1 ELSE 0 END ) AS dong,COUNT(1) AS totle FROM tasks a LEFT JOIN users b ON a.tester = b.CODE WHERE tester_start > :begin_time1\n                AND tester_start < :end_time1 AND tester <> '' AND tester <> 'xmabu' AND tester <> 'yd' AND `status` IN (0, 1, 2, 3) GROUP BY b. NAME";
     //        print_r($query_begin);
     //        print_r($query_end);
     ////        print_r(date("Y-m-d",mktime(0,0,0,date("m"),1,date("Y"))));
     //       dd($query_str);die;
     $query_params = array('begin_time' => $query_begin, 'end_time' => $query_end, 'begin_time1' => $query_begin, 'end_time1' => $query_end);
     $person_workload_totle = DB::select($query_str, $query_params);
     $query_str = "select NAME,sum(todo_workload) todo_workload,sum(deving_workload) deving_workload,sum(testing_workload) testing_workload,sum(dong_workload) dong_workload,role,sum(sum_workload) sum_workload from\n             (SELECT b. NAME,IFNULL(case `status`  when 0 then sum(developer_workload) END,0) todo_workload,IFNULL(case `status`  when 1 then sum(developer_workload) END,0) deving_workload,IFNULL(CASE `status` WHEN 2 THEN sum(developer_workload)END,0) as testing_workload,\n             IFNULL(case `status`  when 3 then sum(developer_workload) END,0) dong_workload,IFNULL(SUM(developer_workload),0) sum_workload, b.role FROM tasks a LEFT JOIN users b ON a.developer = b. CODE\n             WHERE developer_start > :begin_time AND developer_start < :end_time  AND developer <> '' AND `status` IN (0, 1, 2, 3) GROUP BY b. NAME,\n                `status` UNION SELECT b. NAME,IFNULL(case when `status` in (0,1) then sum(tester_workload) end,0) as todo_workload,0 as deving_workload,IFNULL(case when `status`=2 then sum(tester_workload) end,0) as testing_workload,\n                IFNULL(case when `status`=3 then sum(tester_workload) end,0) as done_workload,IFNULL(SUM(tester_workload),0) sum_workload,b.role FROM tasks a LEFT JOIN users b ON a.tester = b. CODE WHERE tester_start > :begin_time1\n                AND tester_start < :end_time1 AND tester <> '' AND tester <> 'xmabu' AND tester <> 'yd' AND `status` IN (0, 1, 2, 3) GROUP BY b. NAME,\n                `status` ) a GROUP BY NAME";
     //        dd($query_str);die;
     $person_workload_sum = DB::select($query_str, $query_params);
     //        dd($person_workload_sum);die;
     //计算团队工作量,前段js浮点运算有bug
     $dev_workload = 0;
     $test_workload = 0;
     foreach ($person_workload_sum as $key => $value) {
         if ($value->role) {
             $test_workload += $value->sum_workload;
         } else {
             $dev_workload += $value->sum_workload;
         }
     }
     $page_data = array('mode' => $type, 'tasks_sum' => $tasks_sum, 'tasks_workload_sum' => $tasks_workload_sum, 'task_details' => $task_details, 'person_workload_totle' => $person_workload_totle, 'person_workload_sum' => array('data' => $person_workload_sum, 'dev_workloads' => $dev_workload, 'test_workloads' => $test_workload, 'total_workloads' => $dev_workload + $test_workload));
     //        dd($page_data);die;
     return view('report.main_chart', ['theme' => 'default', 'page_data' => json_encode($page_data), 'task_details' => $task_details]);
 }
Example #6
0
 public function welcome()
 {
     if (!Schema::hasTable('settings')) {
         $data['firsttime'] = "yes";
         return view('firsttime', $data)->with('okmessage', 'Please create a user before you can use Connexion');
     }
     $user = Auth::user();
     if ($user and $user->individual_id) {
         $today = date('d-m-Y');
         $data['tasks'] = Task::where('donedate', '=', '')->where('project_id', '<>', 0)->where('individual_id', $user->individual_id)->orderBy('duedate')->get();
         $data['personal'] = Task::where('donedate', '=', '')->where('project_id', '=', 0)->where('individual_id', $user->individual_id)->orderBy('duedate')->get();
         $data['individuals'] = Individual::orderBy('surname')->get();
         $data['projects'] = Project::with('undonetask')->where('individual_id', $user->individual_id)->orderBy('project')->get();
         $data['projectselect'] = Project::orderBy('project')->lists('project', 'id');
         $data['page_title'] = Helpers::getSetting('circuit_name') . " Circuit";
         $data['page_description'] = "Administrator home page";
         $socs = Permission::where('user_id', '=', $user->id)->select('society_id')->get();
         foreach ($socs as $soc) {
             $thissoc = Society::where('id', '=', $soc->society_id)->get();
             $dum['googleCalendarId'] = $thissoc[0]->society_calendar;
             $dum['color'] = $thissoc[0]->calendar_colour;
             $data['cals'][] = $dum;
         }
         $dum['googleCalendarId'] = Helpers::getSetting('circuit_calendar');
         $dum['color'] = 'black';
         $data['cals'][] = $dum;
         if (Helpers::is_online() and $user->googlecalendar != "") {
             $privatecal = new GoogleCalendar();
             $pcals = $privatecal->getTen($user->googlecalendar);
             foreach ($pcals as $pcal) {
                 $pcal['color'] = $user->calendar_colour;
                 $data['pcals'][] = $pcal;
             }
         } else {
             $data['pcals'] = array();
         }
         if (!count($socs)) {
             $soc = strtolower($user->individual->household->society->society);
             return redirect()->action('SocietiesController@show', $soc);
         } else {
             return view('home', $data);
         }
     } elseif ($user) {
         return view('shared.registered');
     } else {
         return view('landingwebpage');
     }
 }
Example #7
0
 /**
  * A company has many tasks (list of tasks they use for planner).
  *
  * @return \Illuminate\Database\Eloquent\Relations\HasMany
  */
 public function tasksSkilledInSelect($prompt = '')
 {
     $array = [];
     $trade_count = count($this->tradesSkilledIn);
     foreach ($this->tradesSkilledIn as $trade) {
         $tasks = Task::where('trade_id', '=', $trade->id)->orderBy('name')->get();
         foreach ($tasks as $task) {
             if ($task->status) {
                 if ($trade_count > 1) {
                     $array[$task->id] = $trade->name . ':' . $task->name;
                 } else {
                     $array[$task->id] = $task->name;
                 }
             }
         }
     }
     return $prompt && count($array) > 1 ? $array = array('' => 'Select Task') + $array : $array;
 }
Example #8
0
 public static function updateInvoice($invoice)
 {
     $client = $invoice->client;
     if ($invoice->is_deleted && !$invoice->getOriginal('is_deleted')) {
         $adjustment = 0;
         if (!$invoice->is_quote && !$invoice->is_recurring) {
             $adjustment = $invoice->balance * -1;
             $client->balance = $client->balance - $invoice->balance;
             $client->paid_to_date = $client->paid_to_date - ($invoice->amount - $invoice->balance);
             $client->save();
         }
         $activity = Activity::getBlank();
         $activity->client_id = $invoice->client_id;
         $activity->invoice_id = $invoice->id;
         $activity->activity_type_id = $invoice->is_quote ? ACTIVITY_TYPE_DELETE_QUOTE : ACTIVITY_TYPE_DELETE_INVOICE;
         $activity->message = Utils::encodeActivity(Auth::user(), 'deleted', $invoice);
         $activity->balance = $invoice->client->balance;
         $activity->adjustment = $adjustment;
         $activity->save();
         // Release any tasks associated with the deleted invoice
         Task::where('invoice_id', '=', $invoice->id)->update(['invoice_id' => null]);
     } else {
         $diff = floatval($invoice->amount) - floatval($invoice->getOriginal('amount'));
         $fieldChanged = false;
         foreach (['invoice_number', 'po_number', 'invoice_date', 'due_date', 'terms', 'public_notes', 'invoice_footer', 'partial'] as $field) {
             if ($invoice->{$field} != $invoice->getOriginal($field)) {
                 $fieldChanged = true;
                 break;
             }
         }
         if ($diff != 0 || $fieldChanged) {
             $backupInvoice = Invoice::with('invoice_items', 'client.account', 'client.contacts')->find($invoice->id);
             if ($diff != 0 && !$invoice->is_quote && !$invoice->is_recurring) {
                 $client->balance = $client->balance + $diff;
                 $client->save();
             }
             $activity = Activity::getBlank($invoice);
             $activity->client_id = $invoice->client_id;
             $activity->invoice_id = $invoice->id;
             $activity->activity_type_id = $invoice->is_quote ? ACTIVITY_TYPE_UPDATE_QUOTE : ACTIVITY_TYPE_UPDATE_INVOICE;
             $activity->message = Utils::encodeActivity(Auth::user(), 'updated', $invoice);
             $activity->balance = $client->balance;
             $activity->adjustment = $invoice->is_quote || $invoice->is_recurring ? 0 : $diff;
             $activity->json_backup = $backupInvoice->hidePrivateFields()->toJSON();
             $activity->save();
             if ($invoice->isPaid() && $invoice->balance > 0) {
                 $invoice->invoice_status_id = INVOICE_STATUS_PARTIAL;
             } elseif ($invoice->invoice_status_id && $invoice->balance == 0) {
                 $invoice->invoice_status_id = INVOICE_STATUS_PAID;
             }
         }
     }
 }
 public function deletedInvoice(InvoiceWasDeleted $event)
 {
     // Release any tasks associated with the deleted invoice
     Task::where('invoice_id', '=', $event->invoice->id)->update(['invoice_id' => null]);
 }
Example #10
0
 public function forUser(User $user)
 {
     return Task::where('user_id', $user->id)->orderBy('created_at', 'asc')->get();
 }
Example #11
0
 /**
  * @param $type 季度、月、周
  */
 public function task_end_report($type)
 {
     $query_begin = null;
     $query_end = null;
     switch ($type) {
         case 'month':
             $query_begin = date("Y-m-d", mktime(0, 0, 0, date("m") - 1, 1, date("Y")));
             $query_end = date("Y-m-d ", mktime(0, 0, 0, date("m") + 1, 1, date("Y")));
             break;
         case 'week':
             $query_begin = date("Y-m-d", strtotime("-1 week Monday"));
             $query_end = date("Y-m-d", strtotime("+0 week Monday"));
             break;
     }
     //TODO:这里的条件,在团队数据和个人数据中是不一样的,团队的用actual_finish_date,个人的用dev、test_end_date
     $tasks = Task::select('sum(developer_workload) + sum(tester_workload) as workload_all,
     sum(developer_workload) as developer_workload_all,
     sum(tester_workload) as tester_workload_all')->where('actual_finish_date', '>', $query_begin)->where('actual_finish_date', '<', $query_end) - get();
     $tasks_detail = Task::where('actual_finish_date', '>', $query_begin)->where('actual_finish_date', '<', $query_end) - get();
 }
Example #12
0
 /**
  * Get List of Site Without Job Starts options for 'select' dropdown in Vuejs format
  */
 public function getSitesWithoutStart(Request $request)
 {
     $allowedSites = Auth::user()->company->reportsToCompany()->siteList('1')->pluck('id')->toArray();
     $sites = Site::whereIn('id', $allowedSites)->where('status', '1')->orderBy('name')->get();
     $startJobIDs = Task::where('code', 'START')->where('status', '1')->lists('id')->toArray();
     $array = [];
     $array[] = ['value' => '', 'text' => 'Select site'];
     // Create array in specific Vuejs 'select' format.
     foreach ($sites as $site) {
         $planner = SitePlanner::select(['id', 'site_id', 'task_id'])->where('site_id', $site->id)->orderBy('from')->get();
         $found = false;
         foreach ($planner as $plan) {
             if (in_array($plan->task_id, $startJobIDs)) {
                 $found = true;
                 break;
             }
         }
         if (!$found) {
             $array[] = ['value' => $site->id, 'text' => $site->name, 'name' => $site->name];
         }
     }
     return $array;
 }
Example #13
0
 public function mobile()
 {
     if (!Cache::has('developers')) {
         Cache::forever('developers', User::where('role', 0)->get());
     }
     if (!Cache::has('testers')) {
         Cache::forever('testers', User::where('role', 1)->get());
     }
     $task_list = Task::where('status', '<', 3)->orderBy('task_no')->get();
     return view('task.index', ['theme' => 'default', 'tasks' => $task_list, 'developers' => Cache::get('developers'), 'testers' => Cache::get('testers')]);
 }
Example #14
0
 public static function get_module_name($route)
 {
     $module_id = Task::where('route', $route)->value('module_id');
     return $module_id;
 }
Example #15
0
 public function getById($id)
 {
     $task = Task::where('id', '=', $id)->firstOrFail();
     return $task;
 }