/**
  * Post accountcheck
  * checking prerequisites
  * @param type InstallerRequest $request 
  * @return type view
  */
 public function accountcheck(InstallerRequest $request)
 {
     // migrate database
     Artisan::call('migrate', array('--force' => true));
     Artisan::call('db:seed', array('--force' => true));
     // create user
     $firstname = $request->input('firstname');
     $lastname = $request->input('Lastname');
     $email = $request->input('email');
     $username = $request->input('username');
     $password = $request->input('password');
     $language = $request->input('language');
     $timezone = $request->input('timezone');
     $date = $request->input('date');
     $datetime = $request->input('datetime');
     // $system = System::where('id','=','1')->first();
     // $system->time_zone = $timezone;
     // $system->date_time_format = $datetime;
     // $system->save();
     // checking requested timezone for the admin and system
     $timezones = Timezones::where('name', '=', $timezone)->first();
     if ($timezones->id == null) {
         return ['response' => 'fail', 'reason' => 'Invalid time-zone', 'status' => '0'];
     }
     // var_dump($datetime);
     // checking requested date time format for the admin and system
     $date_time_format = Date_time_format::where('format', '=', $datetime)->first();
     // dd($date_time_format);
     if ($date_time_format->id == null) {
         return ['response' => 'fail', 'reason' => 'invalid date-time format', 'status' => '0'];
     }
     // Creating minum settings for system
     $system = new System();
     $system->status = 1;
     $system->department = 1;
     $system->date_time_format = $date_time_format->id;
     $system->time_zone = $timezones->id;
     $system->save();
     // creating an user
     $user = User::create(array('first_name' => $firstname, 'last_name' => $lastname, 'email' => $email, 'user_name' => $username, 'password' => Hash::make($password), 'assign_group' => 1, 'primary_dpt' => 1, 'active' => 1, 'role' => 'admin'));
     // checking if the user have been created
     if ($user) {
         Session::put('step6', 'step6');
         return Redirect::route('final');
     }
 }
 /**
  * config_database
  * This function is to configure the database and install the application via API call.
  * @return type Json
  */
 public function config_system(Request $request)
 {
     // Check for pre install
     if (\Config::get('database.install') == '%0%') {
         $firstname = $request->firstname;
         $lastname = $request->lastname;
         $email = $request->email;
         $username = $request->username;
         $password = $request->password;
         $timezone = $request->timezone;
         $datetime = $request->datetime;
         // Migrate database
         Artisan::call('migrate', array('--force' => true));
         Artisan::call('db:seed', array('--force' => true));
         // checking requested timezone for the admin and system
         $timezones = Timezones::where('name', '=', $timezone)->first();
         if ($timezones->id == null) {
             return ['response' => 'fail', 'reason' => 'Invalid time-zone', 'status' => '0'];
         }
         // checking requested date time format for the admin and system
         $date_time_format = Date_time_format::where('format', '=', $datetime)->first();
         if ($date_time_format->id == null) {
             return ['response' => 'fail', 'reason' => 'invalid date-time format', 'status' => '0'];
         }
         // Creating minum settings for system
         $system = new System();
         $system->status = 1;
         $system->department = 1;
         $system->date_time_format = $date_time_format->id;
         $system->time_zone = $timezones->id;
         $system->save();
         // Creating user
         $user = User::create(array('first_name' => $firstname, 'last_name' => $lastname, 'email' => $email, 'user_name' => $username, 'password' => Hash::make($password), 'active' => 1, 'role' => 'admin', 'assign_group' => 1, 'primary_dpt' => 1));
         // Setting database installed status
         $value = '1';
         $install = app_path('../config/database.php');
         $datacontent = File::get($install);
         $datacontent = str_replace('%0%', $value, $datacontent);
         File::put($install, $datacontent);
         // Applying email configuration on route
         $smtpfilepath = "\\App\\Http\\Controllers\\Common\\SettingsController::smtp()";
         $path22 = app_path('Http/routes.php');
         $content23 = File::get($path22);
         $content23 = str_replace('"%smtplink%"', $smtpfilepath, $content23);
         File::put($path22, $content23);
         // If user created return success
         if ($user) {
             return ['response' => 'success', 'status' => '1'];
         }
     } else {
         return ['response' => 'fail', 'reason' => 'this system is already installed', 'status' => '0'];
     }
 }