예제 #1
0
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();
        $faker = \Faker\Factory::create();
        $user = User::create(['name' => 'Christian Kasperbauer', 'email' => '*****@*****.**', 'password' => bcrypt('grütze'), 'phone' => '0176-23152819', 'misc' => 'Friedrich-Ebert-Ring 4
97072 Würzburg
(Ton-)Technik, KRIS, Website!', 'rights' => 'all']);
        $user2 = User::create(['name' => $faker->name, 'email' => $faker->email, 'password' => bcrypt('grütze'), 'phone' => $faker->phoneNumber, 'misc' => $faker->sentence()]);
        for ($i = 0; $i <= 15; $i++) {
            User::create(['name' => $faker->name, 'email' => $faker->email, 'password' => bcrypt('grütze'), 'phone' => $faker->phoneNumber, 'misc' => $faker->sentence()]);
        }
        Category::insert([['name' => 'Konzert', 'class' => 'light-green'], ['name' => 'Partey', 'class' => 'funky'], ['name' => 'Theater', 'class' => 'red'], ['name' => 'Kino', 'class' => 'amber'], ['name' => 'Sonstiges', 'class' => 'blue-grey'], ['name' => 'Wort', 'class' => 'light-blue']]);
        $user->events()->save(Event::create(['scheduled_at' => Carbon::now()->addDays(4), 'category_id' => rand(1, 6), 'title' => 'Basement Blast', 'subtitle' => 'Geballer im Keller', 'description' => $faker->paragraph(10), 'admission' => 'donation', 'genre' => 'Metal', 'google_event_id' => str_random(12)]));
        $user2->events()->save(Event::create(['scheduled_at' => Carbon::now()->addDays(9), 'category_id' => rand(1, 6), 'title' => 'Boxbeutel Boombox', 'subtitle' => 'Lecker Weinchen', 'description' => $faker->paragraph(10), 'admission' => 'free', 'genre' => 'Suff', 'google_event_id' => str_random(12)]));
        $user->events()->save(Event::create(['scheduled_at' => Carbon::now()->addDays(2)->addMonth(), 'category_id' => rand(1, 6), 'title' => 'Beats & Lyrics', 'subtitle' => 'Freestyle Chypher', 'description' => $faker->paragraph(10), 'admission' => 'donation', 'genre' => 'HipHop', 'google_event_id' => str_random(12)]));
        $user2->events()->save(Event::create(['scheduled_at' => Carbon::now()->subDays(2), 'category_id' => rand(1, 6), 'title' => 'Schon vorbei', 'subtitle' => 'Schade, du warst du spät', 'description' => $faker->paragraph(10), 'admission' => 'free', 'google_event_id' => str_random(12)]));
        $user->events()->save(Event::create(['scheduled_at' => Carbon::now()->subMonth(2), 'category_id' => rand(1, 6), 'title' => 'Gelöscht', 'subtitle' => 'Wird niemals stattfinden', 'description' => $faker->paragraph(10), 'admission' => 'free', 'google_event_id' => str_random(12), 'deleted_at' => Carbon::now()->subDays(7)]));
        $events = Event::all();
        foreach ($events as $event) {
            $event->options()->save(EventOptions::create(['time_start' => '19:00', 'time_end' => '00:00', 'time_meal' => '18:00', 'shifts_bar' => rand(1, 2), 'shifts_tech' => rand(0, 2), 'shifts_door' => rand(0, 1), 'meal_servings' => rand(0, 15), 'misc' => 'Test test test']));
            $user_id = rand(1, 2);
            $event->shifts()->save(Shift::create(['user_id' => $user_id, 'type' => 'tech']));
            $event->shifts()->save(Shift::create(['user_id' => $user_id == 1 ? 2 : 1, 'type' => 'bar']));
        }
        Model::reguard();
    }
예제 #2
0
 protected function makeShift($schedule, $manager_id, $employee_id)
 {
     foreach ($schedule as $shift) {
         $shift['start_time'] = $shift['date'] . ' ' . $shift['start_time'];
         $shift['end_time'] = $shift['date'] . ' ' . $shift['end_time'];
         Shift::create(['employee_id' => $employee_id, 'manager_id' => $manager_id, 'start_time' => $shift['start_time'], 'end_time' => $shift['end_time']]);
     }
 }
예제 #3
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $date = new \DateTime();
     $date->modify('+3 days');
     $formatted_date_from = $date->format('Y-m-d');
     $date->modify('+6 days');
     $formatted_date_to = $date->format('Y-m-d');
     $dates = createDateRangeArray(strtotime($formatted_date_from), strtotime($formatted_date_to));
     $bases = Base::where('center', 1)->get();
     $current_gen = Gen::getCurrentGen();
     $shiftSessions = ShiftSession::where('active', 1)->get();
     $lastShift = Shift::where('gen_id', $current_gen->id)->orderBy('week', 'desc')->first();
     $week = $lastShift ? $lastShift->week : 0;
     foreach ($dates as $date) {
         foreach ($bases as $base) {
             foreach ($shiftSessions as $shiftSession) {
                 $shift = new Shift();
                 $shift->gen_id = $current_gen->id;
                 $shift->base_id = $base->id;
                 $shift->shift_session_id = $shiftSession->id;
                 $shift->week = $week + 1;
                 $shift->date = $date;
                 $shift->save();
             }
         }
     }
     $role_ids = Tab::find(35)->roles->pluck('id')->unique()->toArray();
     $roles = Role::whereIn('id', $role_ids)->get();
     if ($week == 0) {
         $week = 1;
     }
     foreach ($roles as $role) {
         $users = $role->users;
         foreach ($users as $user) {
             send_mail_regis_shift($user, $week, $current_gen, ['*****@*****.**']);
         }
     }
     $this->info('done');
 }
예제 #4
0
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot(Guard $auth)
 {
     view()->composer('*', function ($view) {
         $pages = Page::orderBy('position', 'asc')->get();
         $view->with('pages', $pages);
     });
     view()->composer('*', function ($view) {
         $view->with('currentUser', Auth::user());
     });
     view()->composer('sidebar.special', function ($view) {
         $specialProduct = Product::where('special', 1)->get();
         $view->with('specialProduct', $specialProduct);
     });
     view()->composer('sidebar.admin', function ($view) {
         $today = \Carbon\Carbon::today();
         $orders = DB::table('orders')->where('dateOrdered', '=', $today)->where('status_id', '>', 1)->count('id');
         $view->with('orders', $orders);
     });
     view()->composer('sidebar.admin', function ($view) {
         $today = date('l');
         $hours = DB::table('hours')->where('day', $today)->value('hours');
         $view->with('hours', $hours);
     });
     view()->composer('sidebar.admin', function ($view) {
         $batches = Batch::where('proddate', \Carbon\Carbon::today())->count();
         $view->with('batches', $batches);
     });
     view()->composer('sidebar.admin', function ($view) {
         $date = date('Y-m-d');
         $shift = Shift::where('date', $date)->pluck('id');
         $employeees = Shift::find($shift)->users()->count();
         $view->with('employeees', $employeees);
     });
     view()->composer('sidebar.special', function ($view) {
         $categories = Category::all();
         $view->with('categories', $categories);
     });
     view()->composer('*', function ($view) use($auth) {
         $user = Auth::user();
         if (Auth::user()) {
             $cart = DB::table('orders')->select('id')->where('status_id', '=', 1)->where('user_id', '=', $user->id)->value('id');
             $cartItems = DB::table('order_products')->where('order_id', '=', $cart)->sum('quantity');
             $view->with('cartItems', $cartItems);
         }
     });
 }
예제 #5
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     // Only managers can create new shifts
     if (Auth::user()->role == "manager") {
         // These need better validation but for times sake, this will prevent some bad data (not all)
         $validator = Validator::make($request->all(), ['employee_id' => 'required', 'start_time' => 'required|min:1', 'end_time' => 'required|min:1']);
         if ($validator->fails()) {
             return $this->setStatusCode('400')->setError('Missing data to create a new shift resource');
         }
         $shift = new \App\Shift();
         $shift->employee_id = $request->employee_id;
         $shift->manager_id = Auth::user()->id;
         $shift->start_time = $request->start_time;
         $shift->end_time = $request->end_time;
         if (!$shift->save()) {
             return $this->setStatusCode(500)->setError('An error occured');
         }
         // Everything checks out...
         return $this->setStatusCode(200)->setSuccess('success');
     } else {
         // For readability sake, even though we will always return
         return $this->setStatusCode(403)->setError('Unauthorized Access');
     }
 }
예제 #6
0
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function edit($id)
 {
     $users = User::where('role_id', '<', '3')->get();
     $shift = Shift::find($id);
     return view('shifts.edit', ['users' => $users, 'shift' => $shift]);
 }
예제 #7
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     // return response('Successfully deleted', 200, []);
     $shift = Shift::find($id);
     if ($shift) {
         $shift->delete();
         return response('Successfully deleted', 200, []);
     } else {
         return response('Something went wrong!', 500, []);
     }
 }
예제 #8
0
 public function remove_shift_regis(Request $request)
 {
     $shift_id = $request->shift_id;
     $shift = Shift::find($shift_id);
     $shift->user_id = 0;
     $shift->save();
     $shift_pick = new ShiftPick();
     $shift_pick->user_id = $this->user->id;
     $shift_pick->shift_id = $shift->id;
     $shift_pick->status = 0;
     $shift_pick->save();
     $data = json_encode(["id" => $shift->id]);
     $publish_data = array("event" => "remove-shift", "data" => $data);
     Redis::publish('colorme-channel', json_encode($publish_data));
     return response()->json(['message' => "Bỏ đăng ký thành công", 'status' => 1]);
 }
 public function store(Request $request)
 {
     $input = $request->all();
     Shift::create($input);
     return redirect('schedule');
 }
예제 #10
0
 /**
  * Update a resource in storage
  * @return Response
  */
 public function update($id, Request $request)
 {
     // Only managers can update shifts
     if (Auth::user()->role == "manager") {
         //var_dump($request->all());
         /*$validator = Validator::make($request->all(), [
                        'id' => 'required',
                    ]);
         
                    if ($validator->fails()) {
                        return $this->setStatusCode('400')->setError('Missing data to update shift resource');
                    }*/
         $shift = Shift::findOrFail($id);
         if (!$shift) {
             return $this->setStatusCode(404)->setError('Shift resource #' . $request->id . ' not found');
         }
         // What changed in the passed in data
         if ($shift->start_time != $request->start_time) {
             $shift->start_time = $request->start_time;
         }
         if ($shift->end_time != $request->end_time) {
             $shift->end_time = $request->end_time;
         }
         if ($shift->employee_id != $request->employee_id) {
             $shift->employee_id = $request->employee_id;
         }
         if ($shift->save()) {
             return $this->setStatusCode(200)->setSuccess('success');
         }
     } else {
         // For readability sake, even though we will always return
         return $this->setStatusCode(403)->setError('Unauthorized Access');
     }
 }
예제 #11
0
 public function destroy(Shift $shift)
 {
     $shift->delete();
     return $this->respond($shift);
 }