/**
  * Generate license
  */
 public function postGenerateLicense()
 {
     $rules = array('transaction_id' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return Redirect::to('admin/utilities/generate-license')->withErrors($validator)->withInput();
     } else {
         $transaction_id = Input::get('transaction_id');
         if ($transaction = Transaction::where('id', '=', $transaction_id)->first()) {
             if ($license = License::where('transaction_id', '=', $transaction_id)->first()) {
                 Session::flash('alert_error', '<strong>Ooops!</strong> License for given transaction already exists.');
                 return Redirect::to('admin/licenses?q=' . $license->license_key . '&param=key');
             }
             $plan = Plan::where('id', '=', $transaction->plan_id)->first();
             if ($plan->has_license) {
                 $product = Product::where('id', '=', $plan->product_id)->first();
                 $license_key = License::generate($product->code);
                 // Save license
                 $license = new License();
                 $license->license_key = $license_key;
                 $license->transaction_id = $transaction_id;
                 $license->allowed_usage = $plan->license_allowed_usage;
                 $license->save();
                 Session::flash('alert_message', '<strong>Well done!</strong> You successfully have generated license key.');
                 return Redirect::to('admin/licenses?q=' . $license_key . '&param=key');
             } else {
                 Session::flash('alert_error', '<strong>Ooops!</strong> This plan does not allow to generate a license key.');
                 return Redirect::to('admin/utilities/generate-license');
             }
         } else {
             Session::flash('alert_error', '<strong>Ooops!</strong> Transaction was not found.');
             return Redirect::to('admin/utilities/generate-license');
         }
     }
 }
 /**
  * Generate License
  *
  * Generate license of any product
  */
 public function postGenerateLicense()
 {
     //if($this->_isValidRequest())
     //{
     $prefix = Input::get('code');
     $transaction_id = Input::get('transaction_id');
     $allowed_usage = Input::get('allowed_usage');
     if (!$transaction_id) {
         $this->_invalidRequest("Transaction ID parameter is required");
     }
     if (!$allowed_usage) {
         $this->_invalidRequest("Allowed Usage parameter is required");
     }
     // Check if license is already created for given transaction
     if (License::where('transaction_id', '=', $transaction_id)->first()) {
         $this->_invalidRequest("License already exists for transaction with ID: {$transaction_id}");
     }
     $license_key = License::generate($prefix);
     // Save license
     $license = new License();
     $license->license_key = $license_key;
     $license->transaction_id = $transaction_id;
     $license->allowed_usage = $allowed_usage;
     $license->save();
     $data = array('license_key' => $license_key);
     die(json_encode(array('data' => $data)));
     //}
 }
 /**
  * Generate and store license in database
  */
 private function _generate_license($product, $plan, $transaction_id)
 {
     if ($plan->has_license) {
         $license_key = License::generate($product->code);
         // Save license
         $license = new License();
         $license->license_key = $license_key;
         $license->transaction_id = $transaction_id;
         $license->allowed_usage = $plan->license_allowed_usage;
         $license->save();
         return $license_key;
     }
 }