public function calculateModuleExpenditure($id, $fromDate, $toDate)
 {
     $module = Module::find($id);
     $activities = $module->activities;
     $activityCosts = array();
     $totalModuleCost = 0;
     foreach ($activities as $activity) {
         $sessions = $activity->sessions()->whereBetween('date_of_session', array($fromDate, $toDate))->orderBy('date_of_session')->get();
         $totalHoursPerPerson = 0;
         $activityTitle = $activity->title;
         $role = $activity->role_type;
         //the 'role' the PHD student was for the given 'session'
         if ($role == 'Demonstrator') {
             $payRate = 12.21;
         } elseif ($role = 'Teaching') {
             $payRate = 10.58;
         }
         foreach ($sessions as $session) {
             $startTime = new Carbon($session->start_time);
             //http://carbon.nesbot.com/docs/#api-humandiff
             $endTime = new Carbon($session->end_time);
             //http://carbon.nesbot.com/docs/#api-humandiff
             $totalHoursPerPerson += $startTime->diffInHours($endTime);
             //http://carbon.nesbot.com/docs/#api-humandiff
         }
         if (array_key_exists($activityTitle, $activityCosts)) {
             $activityCosts[$activityTitle] += $totalHoursPerPerson * $activity->quant_ppl_needed * $payRate;
         } else {
             $activityCosts[$activityTitle] = $totalHoursPerPerson * $activity->quant_ppl_needed * $payRate;
             //this 0verwrites 0ld values2d
         }
         $totalModuleCost += $totalHoursPerPerson * $activity->quant_ppl_needed * $payRate;
     }
     return view('calculateModuleExpenditureResults')->with(['module' => $module, 'totalModuleCost' => $totalModuleCost, 'activityCosts' => $activityCosts]);
 }
Пример #2
0
 public function destroy($id)
 {
     $module = Module::find($id);
     $module->professors()->detach();
     $module->courses()->detach();
     $module->delete();
     Session::flash('success', 'The module was deleted');
     return redirect()->action('ModulesController@index');
 }
Пример #3
0
 /**
  * Update the specified resource in storage.
  *
  * @param  Module $module
  * @return Response
  */
 public function update($module)
 {
     $module->fill(Input::data());
     if (Input::data('parent') && ($parent = Module::find(Input::data('parent')['id']))) {
         $module->parent()->associate($parent);
     }
     $module->save();
     return $module;
 }
Пример #4
0
 /**
  * Update the specified resource in storage.
  *
  * @param  Product $product
  * @return Response
  */
 public function update($product)
 {
     $product->fill(Input::data());
     if (Input::data('module') && ($module = Module::find(Input::data('module')['id']))) {
         $product->module()->associate($module);
     }
     $product->save();
     return $product;
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $etudiants_count = Etudiant::count();
     $enseignants_count = Enseignant::count();
     $absences_count = Absence::count();
     $matieres_count = Matiere::count();
     $etudiants = Etudiant::etudiants_plus_3_absences();
     $module = Module::find($id);
     $matieres = $module->matieres;
     foreach ($matieres as $key) {
         $key->nbreAbsencesByMatiere();
     }
     return View('app/statistiques_matiere', ['etudiants_count' => $etudiants_count, 'enseignants_count' => $enseignants_count, 'absences_count' => $absences_count, 'matieres_count' => $matieres_count, 'etudiants' => $etudiants, 'matieres' => $matieres]);
 }
Пример #6
0
 /**
  * Update the specified resource in storage.
  *
  * @param  Parameter $parameter
  * @return Response
  */
 public function update($parameter)
 {
     $parameter->fill(Input::data());
     if (Input::data('module') && ($module = Module::find(Input::data('module')['id']))) {
         $parameter->module()->associate($module);
     }
     if (Input::data('type') === '选项' && Input::data('options')) {
         $options = str_replace(',', ',', Input::data('options'));
         $options = str_replace(';', ';', Input::data('options'));
         $parameter->options = json_encode(preg_split('/[;|,]\\s*/', $options));
     }
     $parameter->save();
     return $parameter;
 }
Пример #7
0
 public function edit(Request $request)
 {
     $user = \Session::get('user');
     if (!$user->can('产品模块管理')) {
         abort(401);
     }
     $module = Module::find($request->input('module_id'));
     $old_attributes = $module->attributesToArray();
     $module->name = $request->input('name');
     $module->description = $request->input('description');
     $module->save();
     $new_attributes = $module->attributesToArray();
     $product = $module->product;
     foreach (array_diff_assoc($old_attributes, $new_attributes) as $key => $value) {
         \Log::notice(strtr('产品模块修改: 用户(%name[%id]) 修改了产品 (%product[%product_id]) 的模块 (%module[%module_id])基本信息: [%key] %old --> %new', ['%name' => $user->name, '%id' => $user->id, '%product' => $product->name, '%product_id' => $product->id, '%key' => $key, '%old' => $old_attributes[$key], '%new' => $new_attributes[$key]]));
     }
     $old_deped_modules = $module->dep_modules->lists('id')->all();
     if (count($old_deped_modules)) {
         $module->dep_modules()->detach($old_deped_modules);
     }
     $new_deped_modules = $request->input('modules', []);
     $d1 = array_diff($new_deped_modules, $old_deped_modules);
     $d2 = array_diff($old_deped_modules, $new_deped_modules);
     if (count($d1)) {
         $dep_modules = [];
         foreach ($d1 as $id) {
             $m = Module::find($id);
             $dep_modules[] = strtr('(%name[%id])', ['%name' => $m->name, '%id' => $m->id]);
         }
         //新加的模块
         \Log::notice(strtr('产品模块修改: 用户(%name[%id]) 增加了产品 (%product[%product_id]) 的模块 (%module[%module_id]) 的依赖模块 %dep_modules', ['%name' => $user->name, '%id' => $user->id, '%product' => $product->name, '%product_id' => $product->id, '%module' => $module->name, '%module_id' => $module->id, '%dep_modules' => implode(',', $dep_modules)]));
     }
     if (count($d2)) {
         $dep_modules = [];
         foreach ($d2 as $id) {
             $m = Module::find($id);
             $dep_modules[] = strtr('(%name[%id])', ['%name' => $m->name, '%id' => $m->id]);
         }
         //删除的模块
         \Log::notice(strtr('产品模块修改: 用户(%name[%id]) 删除了产品 (%product[%product_id]) 的模块 (%module[%module_id]) 的依赖模块 %dep_modules', ['%name' => $user->name, '%id' => $user->id, '%product' => $product->name, '%product_id' => $product->id, '%module' => $module->name, '%module_id' => $module->id, '%dep_modules' => implode(',', $dep_modules)]));
     }
     foreach ($new_deped_modules as $module_id) {
         $dep_module = Module::find($module_id);
         $module->dep_modules()->save($dep_module);
     }
     return redirect()->back()->with('message_content', '修改成功!')->with('message_type', 'info');
 }
Пример #8
0
 /**
  * Update the specified Module in storage.
  * @param  int              $id
  * @param UpdateModuleRequest $request
  * @return Response
  */
 public function update($id, UpdateModuleRequest $request)
 {
     if (!AuthcheckController::checkAuth(Sentinel::forceCheck(), ['module.update'], 'Modulos', 'alterar')) {
         return redirect()->back();
     } else {
         $module = $this->moduleRepository->find($id);
         if (empty($module)) {
             Flash::error('Module not found');
             return redirect(route('modules.index'));
         }
         $module = $this->moduleRepository->updateRich($request->all(), $id);
         $moduleA = \App\Module::find($id);
         $moduleA->actions()->detach();
         $inputActions = $request->input('actions');
         if (isset($inputActions)) {
             $actions = $request->input('actions');
             foreach ($actions as $action) {
                 $moduleA->actions()->attach($action);
             }
         }
         Flash::success('Module updated successfully.');
         return redirect(route('modules.index'));
     }
 }
 /**
  * @param $module_id
  * @return mixed
  */
 protected function getModules($module_id)
 {
     return Module::find($module_id)->get();
 }
Пример #10
0
 public function modules($id, Request $request)
 {
     $user = \Session::get('user');
     if (!$user->can('产品模块管理')) {
         abort(401);
     }
     $sub = SubProduct::find($id);
     //先把所有的 type 的 module 进行 unlink
     $connected_modules = (array) $sub->modules()->lists('id')->all();
     $requested_modules = $request->input('modules', []);
     $inter = array_intersect($connected_modules, $requested_modules);
     $new_modules = array_diff($requested_modules, $inter);
     $deleted_modules = array_diff($connected_modules, $inter);
     //把所有关联了的都进行 detach
     if (count($connected_modules)) {
         $sub->modules()->detach($connected_modules);
     }
     //重新对选定的 module 进行 link
     //对需要关联的, 进行 save
     foreach ($requested_modules as $module_id) {
         $module = Module::find($module_id);
         $sub->modules()->save($module);
     }
     //对所有删除了的 modules, 进行 Log 记录
     if (count($deleted_modules)) {
         foreach ($deleted_modules as $did) {
             $module = Module::find($did);
             \Log::notice(strtr('子产品模块删除: 用户(%name[%id]) 删除了子产品(%product_name[%product_id]) 的模块 (%module_name[%module_id])', ['%name' => $user->nusame, '%id' => $user->id, '%product_name' => $sub->name, '%product_id' => $sub->id, '%module_name' => $module->name, '%module_id' => $module->id]));
         }
     }
     if (count($new_modules)) {
         foreach ($new_modules as $nid) {
             $module = Module::find($nid);
             \Log::notice(strtr('子产品模块添加: 用户(%name[%id]) 添加了子产品(%product_name[%product_id]) 的模块 (%module_name[%module_id])', ['%name' => $user->nusame, '%id' => $user->id, '%product_name' => $sub->name, '%product_id' => $sub->id, '%module_name' => $module->name, '%module_id' => $module->id]));
         }
     }
     //如果勾选了同步新模块到所有的 project 的 checkbox, 那么需要进行同步操作
     if ($request->input('sync_new_modules') == 'on') {
         //查到所有的 proejct, 进行 new_modules 的 connect
         foreach (Project::where('product_id', $id)->get() as $project) {
             foreach ($new_modules as $m) {
                 if (!$project->modules->contains($m)) {
                     $module = Module::find($m);
                     $project->modules()->save($module);
                     \Log::notice(strtr('项目模块增加: 用户(%name[%id] 添加了项目(%project_name[%product_id] 的模块 (%module_name[%module_id])', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%module_name' => $module->name, '%module_id' => $module->id]));
                 }
             }
         }
     }
     return redirect()->back()->with('message_content', '模块设置成功!')->with('message_type', 'info');
 }
Пример #11
0
 public function modules($id, Request $request)
 {
     $user = \Session::get('user');
     if (!$user->can('项目模块管理')) {
         abort(401);
     }
     $project = Project::find($id);
     $connected_modules = $project->modules()->where('project_id', $project->id)->lists('id')->all();
     if (count($connected_modules)) {
         $project->modules()->detach($connected_modules);
     }
     $new_modules = $request->input('modules', []);
     foreach ($new_modules as $module_id) {
         $module = Module::find($module_id);
         $project->modules()->save($module);
     }
     $d1 = array_diff($new_modules, $connected_modules);
     $d2 = array_diff($connected_modules, $new_modules);
     if (count($d1)) {
         //新加的模块
         Clog::add($project, '添加模块', [implode(',', \App\Module::whereIn('id', $d1)->lists('name')->all())], Clog::LEVEL_WARNING);
         foreach ($d1 as $m) {
             $module = Module::find($m);
             \Log::notice(strtr('项目模块增加: 用户(%name[%id] 添加了项目(%project_name[%project_id] 的模块 (%module_name[%module_id])', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%module_name' => $module->name, '%module_id' => $module->id]));
         }
     }
     if (count($d2)) {
         //删除的模块
         Clog::add($project, '删除模块', [implode(',', \App\Module::whereIn('id', $d2)->lists('name')->all())], Clog::LEVEL_WARNING);
         foreach ($d2 as $m) {
             $module = Module::find($m);
             \Log::notice(strtr('项目模块删除: 用户(%name[%id] 删除了项目(%project_name[%project_id] 的模块 (%module_name[%module_id])', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%module_name' => $module->name, '%module_id' => $module->id]));
         }
     }
     return redirect()->back()->with('message_content', '模块设置成功!')->with('message_type', 'info')->with('tab', 'softwares');
 }
Пример #12
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $object = Module::find($id);
     $object->delete();
     return Redirect('/app/modules');
 }
Пример #13
0
 public function moduleShowChef($id)
 {
     $filiere = Session::get('user')->filieres[0];
     $promotions = $filiere->promos;
     $etudiants_count = Filiere::nbreEtudiantByFiliere($filiere->id);
     $enseignants_count = Enseignant::count();
     $promos_count = count($promotions);
     $absences_count = 0;
     if ($promos_count > 0) {
         foreach ($promotions as $promotion) {
             $absences_count = $absences_count + Filiere::nbreAbsencesByPromo($promotion->id);
         }
     }
     $module = Module::find($id);
     $matieres = $module->matieres;
     $horaires = null;
     $i = 0;
     if (count($matieres) > 0) {
         foreach ($matieres as $matiere) {
             $horaires[$i] = $matiere->horaires;
             $i++;
         }
     }
     $absences = null;
     $j = 0;
     if (count($horaires) > 0) {
         foreach ($horaires as $horaire) {
             if (count($horaire) > 0) {
                 foreach ($horaire as $value) {
                     $absences[$j] = $value->absences;
                     $j++;
                 }
             }
         }
     }
     $students = null;
     $k = 0;
     if (count($absences) > 0) {
         foreach ($absences as $absence) {
             foreach ($absence as $key) {
                 $students[$k] = $key->etudiant;
                 $k++;
             }
         }
     }
     return View('app/etudiants_absences', ['etudiants_count' => $etudiants_count, 'enseignants_count' => $enseignants_count, 'absences_count' => $absences_count, 'promos_count' => $promos_count, 'filiere' => $filiere, 'promotions' => $promotions, 'module' => $module, 'students' => $students, 'statistics' => null]);
 }
 public function module($id)
 {
     $module = Module::find($id);
     return view('pages.module', compact('module'));
 }