private function initData() { $this->login(); factory(App\Activity::class, 50)->create(); factory(App\User::class, 10)->create(); factory(App\User::class, 'admin', 1)->create(); factory(App\Group::class, 25)->create()->each(function ($g) { for ($i = 0; $i < 5; $i++) { $g->users()->save(factory(App\User::class)->make(), ['role' => 'member']); } $g->users()->save(factory(App\User::class)->make(), ['role' => 'leader']); }); factory(App\Event::class, 5)->create()->each(function ($event) { $date = $event->time->startOfDay(); $endDate = $event->endDate; do { $occurrence = new EventOccurrence(); $occurrence->event_id = $event->id; $occurrence->date = $date; $occurrence->save(); $date->addWeek(); } while ($date < $endDate); }); $faker = Faker\Factory::create(); $occurrences = EventOccurrence::all(); $activities = Activity::all()->toArray(); foreach ($occurrences as $occurrence) { foreach ($faker->randomElements($activities, $faker->randomDigit) as $activity) { $occurrence->activities()->attach($activity['id']); } } }
/** * Run the database seeds. * * @return void */ public function run() { // factory(App\Event::class, 5)->create()->each(function ($event) { $date = $event->time->startOfDay(); $endDate = $event->endDate; do { $occurrence = new EventOccurrence(); $occurrence->event_id = $event->id; $occurrence->date = $date; $occurrence->save(); $date->addWeek(); } while ($date < $endDate); }); $faker = Faker\Factory::create(); $occurrences = EventOccurrence::all(); $activities = Activity::all()->toArray(); foreach ($occurrences as $occurrence) { foreach ($faker->randomElements($activities, $faker->randomDigit) as $activity) { $occurrence->activities()->attach($activity['id']); } } }
public function handleActivityPlan(Request $request) { $occurrences = $request->input('occurrences'); $eventPatterns = $request->input('patterns'); // occurrencejen käsittely foreach ($occurrences as $occurrence) { $eventOccurrence = EventOccurrence::findOrFail($occurrence['id']); foreach ($occurrence['activities'] as $activityId) { $activity = Activity::findOrFail($activityId); $eventOccurrence->activities()->attach($activity); } } // eventPatternien käsittely foreach ($eventPatterns as $eventPattern) { $eventPatternReal = EventPattern::findOrFail($eventPattern['id']); $event = new Event(); $event->time = Carbon::createFromFormat('d.m.Y H:i', $eventPattern['date']); $event->endDate = Carbon::createFromFormat('d.m.Y', $eventPattern['datePart']); $event->description = " "; $event->place = " "; $event->name = $eventPatternReal->name; $event->group_id = $request->input('group'); $event->save(); $eventOccurrence = new EventOccurrence(); $eventOccurrence->date = Carbon::createFromFormat('d.m.Y', $eventPattern['datePart']); $eventOccurrence->event_id = $event->id; $eventOccurrence->save(); foreach ($eventPattern['activities'] as $activityId) { $activity = Activity::findOrFail($activityId); $eventOccurrence->activities()->attach($activity); } } return 2; }
public function storeNoRedirect(Request $request) { $this->validate($request, ['name' => 'required|max:64', 'date' => 'required|date_format:d.m.Y|after:' . Carbon::now(), 'time' => 'required|date_format:H:i', 'place' => 'required|max:128']); $event = new Event(); $event->name = $request->input('name'); $event->time = Carbon::createFromFormat('d.m.Y H:i', $request->input('date') . ' ' . $request->input('time')); $event->place = $request->input('place'); $event->description = $request->input('description'); $event->group_id = $request->input('groupId'); $group = Group::FindOrFail($request->input('groupId')); if (Gate::allows('manageForGroup', $group)) { $days = collect($request->input('days')); $date = Carbon::createFromFormat('d.m.Y', $request->input('date')); $endDate = $date->copy(); $startDate = $date->copy(); $interval = $request->input('interval'); if ($request->input('repeat') != NULL) { $ending = $request->input('ending'); $endDate = $ending == "afterYear" ? $endDate->addYear() : Carbon::createFromFormat('d.m.Y', $request->input('endDate')); } $event->endDate = $endDate; $event->save(); do { if ($days->contains($date->dayOfWeek) && $startDate->diffInWeeks($date) % $interval == 0 || $request->input('repeat') == NULL) { $occurrence = new EventOccurrence(); $occurrence->event_id = $event->id; $occurrence->date = $date; $occurrence->save(); } $date->addDay(); } while ($date < $endDate); return redirect('activity_planning/planner'); } else { return abort(403); } }