Beispiel #1
0
 /**
  * Search Licenses
  */
 static function search($q = NULL, $param = NULL, $product_code = NULL)
 {
     $_tbl_licenses = License::getTableName();
     $_tbl_licensesUses = LicensesUses::getTableName();
     $_tbl_transactions = Transaction::getTableName();
     $_tbl_purchases = Purchase::getTableName();
     $_tbl_products = Product::getTableName();
     $_tbl_plans = Plan::getTableName();
     $_tbl_buyers = Buyer::getTableName();
     $fields = array("{$_tbl_licenses}.*", DB::raw("COUNT({$_tbl_licensesUses}.id) AS totalUsed"), "{$_tbl_buyers}.first_name", "{$_tbl_buyers}.last_name", "{$_tbl_buyers}.email", "{$_tbl_products}.code", "{$_tbl_plans}.code AS plan_code", "{$_tbl_products}.api_key");
     $licenses = DB::table($_tbl_licenses)->leftJoin($_tbl_licensesUses, "{$_tbl_licensesUses}.license_id", '=', "{$_tbl_licenses}.id")->join($_tbl_transactions, "{$_tbl_transactions}.id", '=', "{$_tbl_licenses}.transaction_id")->join($_tbl_plans, "{$_tbl_transactions}.plan_id", '=', "{$_tbl_plans}.id")->join($_tbl_purchases, "{$_tbl_purchases}.id", '=', "{$_tbl_transactions}.purchase_id")->join($_tbl_products, "{$_tbl_products}.id", '=', "{$_tbl_purchases}.product_id")->join($_tbl_buyers, "{$_tbl_buyers}.id", '=', "{$_tbl_purchases}.buyer_id")->select($fields)->groupBy("{$_tbl_licenses}.id");
     $q = $q ? $q : Input::get('q');
     $param = $param ? $param : Input::get('param');
     if ($q) {
         if ($param == "key") {
             $licenses = $licenses->where("license_key", '=', $q);
         }
         if ($param == "email") {
             $licenses = $licenses->where("email", '=', $q);
         }
         if ($product_code) {
             $licenses = $licenses->where($_tbl_licenses . ".license_key", 'LIKE', strtoupper($product_code) . '-%');
         }
     }
     return $licenses->orderBy($_tbl_licenses . '.created_at', 'DESC')->paginate(25);
 }
 static function getUsage($id)
 {
     $_tbl_licenses = License::getTableName();
     $_tbl_licensesUses = LicensesUses::getTableName();
     $fields = array("{$_tbl_licensesUses}.*", "{$_tbl_licenses}.license_key");
     $usage = DB::table($_tbl_licensesUses)->join($_tbl_licenses, "{$_tbl_licenses}.id", '=', "{$_tbl_licensesUses}.license_id")->select($fields)->where("{$_tbl_licensesUses}.id", '=', $id)->first();
     return $usage;
 }
 public function postDeleteUsage($id)
 {
     // Get Usage
     $usage = LicensesUses::find($id);
     // Get License
     $license = License::find($usage->license_id);
     // Delete Usage
     $usage->delete();
     Session::flash('alert_message', '<strong>Done!</strong> You successfully have deleted a license usage.');
     return Redirect::to("admin/licenses/usage/{$license->license_key}");
 }
 /**
  * Get user licenses
  *
  * Lists all licenses of a use for a product
  */
 public function postGetUserLicenses()
 {
     if ($this->_isValidRequest()) {
         $email = Input::get('email');
         $product_code = Input::get('code');
         if (!$email or !$product_code) {
             $this->_invalidRequest();
         }
         $product = Product::where('code', '=', $product_code)->first();
         if (!$product) {
             $this->_invalidRequest();
         }
         $licenses = License::search($email, 'email', $product->code);
         $data = array();
         foreach ($licenses as $key => $license) {
             $usage = LicensesUses::getAllUsage($license->license_key);
             $data[] = array('license' => $license, 'usage' => $usage);
         }
         return Response::json($data);
     }
 }