Ejemplo n.º 1
0
 public function jqgrid(Request $request)
 {
     //        return dd($request->all());
     if (Auth::check()) {
         if (in_array('ADD_EDIT_GEOSEGMENTLIST', $this->permission)) {
             //permission goes here
             $rules = array('lat' => 'required', 'lon' => 'required', 'segment_radius' => 'required');
             if ($request->has('domain_name')) {
                 $rules['domain_name'] = 'required';
             } else {
                 $rules['name'] = 'required';
             }
             $validate = \Validator::make($request->all(), $rules);
             if ($validate->passes()) {
                 if (User::isSuperAdmin()) {
                     $geosegment = GeoSegmentList::find($request->input('parent_id'));
                 } else {
                     $usr_company = $this->user_company();
                     $geosegment = GeoSegmentList::whereHas('getAdvertiser', function ($q) use($usr_company) {
                         $q->whereHas('GetClientID', function ($p) use($usr_company) {
                             $p->whereIn('user_id', $usr_company);
                         });
                     })->find($request->input('parent_id'));
                 }
                 if ($geosegment) {
                     $audit = new AuditsController();
                     switch ($request->input('oper')) {
                         case 'add':
                             $geosegment = new GeoSegment();
                             $geosegment->name = $request->input('domain_name');
                             $geosegment->lat = $request->input('lat');
                             $geosegment->lon = $request->input('lon');
                             $geosegment->segment_radius = $request->input('segment_radius');
                             $geosegment->geosegmentlist_id = $request->input('parent_id');
                             $geosegment->save();
                             $audit->store('geosegmententrie', $geosegment->id, $request->input('parent_id'), 'add');
                             return $msg = ['success' => true, 'msg' => "your Geo Segment has been Added"];
                             break;
                         case 'edit':
                             $geosegmententries = GeoSegment::find($request->input('id'));
                             $data = array();
                             if ($geosegmententries->name != $request->input('name')) {
                                 array_push($data, 'name');
                                 array_push($data, $geosegmententries->name);
                                 array_push($data, $request->input('name'));
                                 $geosegmententries->name = $request->input('name');
                             }
                             if ($geosegmententries->lat != $request->input('lat')) {
                                 array_push($data, 'lat');
                                 array_push($data, $geosegmententries->lat);
                                 array_push($data, $request->input('lat'));
                                 $geosegmententries->lat = $request->input('lat');
                             }
                             if ($geosegmententries->lon != $request->input('lon')) {
                                 array_push($data, 'lon');
                                 array_push($data, $geosegmententries->lon);
                                 array_push($data, $request->input('lon'));
                                 $geosegmententries->lon = $request->input('lon');
                             }
                             if ($geosegmententries->segment_radius != $request->input('segment_radius')) {
                                 array_push($data, 'Segment Radius');
                                 array_push($data, $geosegmententries->segment_radius);
                                 array_push($data, $request->input('segment_radius'));
                                 $geosegmententries->segment_radius = $request->input('segment_radius');
                             }
                             $geosegmententries->save();
                             $audit->store('geosegmententrie', $request->input('id'), $data, 'edit');
                             return $msg = ['success' => true, 'msg' => "your Geo Segment has been Edited"];
                             break;
                         case 'del':
                             $audit = new AuditsController();
                             $d = array($request->input('id'), $request->input('parent_id'));
                             $audit->store('geosegmententrie', $request->input('id'), $d, 'del');
                             GeoSegment::where('id', $request->input('id'))->where('geosegmentlist_id', $request->input('parent_id'))->delete();
                             return $msg = ['success' => true, 'msg' => "your Geo Segment has been Deleted"];
                             break;
                     }
                 }
                 return $msg = ['success' => false, 'msg' => "Please Select a Geo Segment First"];
             }
             return $msg = ['success' => false, 'msg' => "Please fill all Fields"];
         }
         return $msg = ['success' => false, 'msg' => "You don't have permission"];
     }
     return Redirect::to('/user/login');
 }