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]); }
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'); }
/** * 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; }
/** * 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]); }
/** * 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; }
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'); }
/** * 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(); }
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'); }
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'); }
/** * 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'); }
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')); }