Beispiel #1
0
 public function addSeason()
 {
     if (Auth::check()) {
         $inputs = Input::all();
         //calculating for week startdate and endate mon-sun
         $startdate = Carbon::createFromFormat('m/d/Y', $inputs['startdate']);
         $startdate = $startdate->startOfWeek();
         $enddate = Carbon::createFromFormat('m/d/Y', $inputs['enddate']);
         $enddate = $enddate->endofWeek();
         //calculating for total sessions for selected days and getting data to insert to seasons
         $sessionno = $enddate->diffInHours($startdate);
         $sessionno = (floor($sessionno / 24) + 1) / 7;
         $adddata['startdate'] = $startdate->toDateString();
         $adddata['enddate'] = $enddate->toDateString();
         $adddata['seasonType'] = $inputs['seasonType'];
         $adddata['sessionno'] = $sessionno;
         $adddata['franchisee_id'] = Session::get('franchiseId');
         $franchise_data = Franchisee::where('id', '=', $adddata['franchisee_id'])->get();
         //getting data for inserting new season no
         $season_no = Seasons::where('franchisee_id', '=', $adddata['franchisee_id'])->max('season_no');
         $adddata['season_name'] = $franchise_data[0]['franchisee_name'] . ' ' . 'Season' . ' ' . ($season_no + 1) . '-' . $inputs['seasonType'];
         $adddata['season_no'] = $season_no + 1;
         //adding the new season to season table
         $season_id = Seasons::addSeason($adddata);
         $season_data = Seasons::where('id', '=', $season_id)->get();
         $season_data = $season_data[0];
         // adding data to location table
         $location_data = Location::addLocation($inputs['location'], $season_id);
         // $season_data['discount_second_child']=$inputs['secondchilddiscount'];
         // $season_data['discount_second_class']=$inputs['secondclassdiscount'];
         //adding data to discount table and calculating holidays session
         //         $discount_data=Discounts::createDiscountForSeason($season_data);
         $holiday;
         if ($inputs['title'][0] != '') {
             for ($i = 0; $i < count($inputs['title']); $i++) {
                 $startdate = Carbon::createFromFormat('m/d/Y', $inputs['holidaystartdate'][$i]);
                 $enddate = Carbon::createFromFormat('m/d/Y', $inputs['holidayenddate'][$i]);
                 $startdate = $startdate->startOfWeek();
                 $enddate = $enddate->endofWeek();
                 $holiday[$i]['startdate'] = $startdate->toDateString();
                 $holiday[$i]['enddate'] = $enddate->toDateString();
                 $holiday[$i]['title'] = $inputs['title'][$i];
                 $sessionno = $enddate->diffInHours($startdate);
                 $sessionno = (floor($sessionno / 24) + 1) / 7;
                 $holiday[$i]['holidaysession'] = $sessionno;
             }
             //adding data to holiday table
             $holiday_data = Holidays::addSeasonHolidays($holiday, $season_data);
             //Calculating and updating back to seasons table
             $total_session = $adddata['sessionno'];
             $totalholiday = 0;
             foreach ($holiday as $vacation) {
                 $totalholiday += $vacation['holidaysession'];
             }
             $seasonupdate = Seasons::find($season_id);
             $seasonupdate->session_no = $season_data['session_no'] - $totalholiday;
             $seasonupdate->save();
             if ($seasonupdate) {
                 return Response::json(array('status' => 'success', 'startdate' => $season_data['start_date'], 'enddate' => $season_data['end_date'], 'sessionafterholidays' => $season_data['session_no'] - $totalholiday));
             }
         } else {
             if ($season_data) {
                 $seasonupdate = Seasons::find($season_id);
                 return Response::json(array('status' => 'success', 'startdate' => $season_data['start_date'], 'enddate' => $season_data['end_date'], 'sessionafterholidays' => $season_data['session_no']));
             } else {
                 return Response::json(array('status' => 'failure'));
             }
         }
     }
 }