/** * 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); } }