/** * Does a search on items with a name value like the input value - used in autocompletes. * * @param string $value The autocomplete value which matches the start of names. * @param integer $limit The number of items to return. Default is all the values. * @param integer $profession_id Limit the items by the professions linked to it. * * @return object Collection of models whose name match the $value. */ public function likeName($value, $limit = 0, $profession_id = 0) { if ($profession_id) { $query = $this->model->whereHas('professions', function ($query) use($profession_id) { $query->where('professions.id', '=', $profession_id); }); } else { $query = $this->model; } if ($limit) { return $query->where('name', 'REGEXP', '[[:<:]]' . preg_quote($value))->take($limit)->get(); } return $query->where('name', 'REGEXP', '[[:<:]]' . preg_quote($value))->get(); }
public function clientAssetsReports() { if (Session::has('username') && (Session::get('user_type') == "Root" || Session::get('user_type') == "Admin" || Session::get("user_type") == "User")) { $view = View::make("Reports.client_assets_reports"); $view->nav = "system"; $view->tab = "client"; $totalClientAssets = Asset::whereHas("classification", function ($q) { $q->where("type", "=", "Client"); })->get()->count(); //Summary $laptops = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->get()->count(); $monitors = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->get()->count(); $dockingstations = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->get()->count(); if ($totalClientAssets > 0) { $laptopsPercentage = $laptops > 0 ? $laptops / $totalClientAssets * 100 : "0.00"; $monitorsPercentage = $monitors > 0 ? $monitors / $totalClientAssets * 100 : "0.00"; $dockingstationsPercentage = $dockingstations > 0 ? $dockingstations / $totalClientAssets * 100 : "0.00"; } else { $laptopsPercentage = "0.00"; $monitorsPercentage = "0.00"; $dockingstationsPercentage = "0.00"; } $view->totalClientAssets = $totalClientAssets; $view->laptops = $laptops; $view->monitors = $monitors; $view->dockingStations = $dockingstations; $view->laptopsPercentage = $laptopsPercentage; $view->monitorsPercentage = $monitorsPercentage; $view->dockingStationsPercentage = $dockingstationsPercentage; //Status //Laptops Status if ($laptops > 0) { $view->l_available = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Available")->count(); $view->l_available_for_issuance = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Available for Issuance")->count(); $view->l_available_for_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Available for Test Case")->count(); $view->l_pwu_cebu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "PWU - Cebu")->count(); $view->l_ewu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "EWU")->count(); $view->l_for_checking = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "For Checking")->count(); $view->l_for_repair = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "For Repair")->count(); $view->l_it_use = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "IT Use")->count(); $view->l_lost = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Lost")->count(); $view->l_pwu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "PWU")->count(); $view->l_recruitment = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Recruitment")->count(); $view->l_retired = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Retired")->count(); $view->l_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->where("status", "=", "Test Case")->count(); } else { $view->l_available = 0; $view->l_available_for_issuance = 0; $view->l_available_for_test_case = 0; $view->l_pwu_cebu = 0; $view->l_ewu = 0; $view->l_for_checking = 0; $view->l_for_repair = 0; $view->l_it_use = 0; $view->l_lost = 0; $view->l_pwu = 0; $view->l_recruitment = 0; $view->l_retired = 0; $view->l_test_case = 0; } //Monitors Status if ($monitors > 0) { $view->m_available = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Available")->count(); $view->m_available_for_issuance = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Available for Issuance")->count(); $view->m_available_for_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Available for Test Case")->count(); $view->m_pwu_cebu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "PWU - Cebu")->count(); $view->m_ewu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "EWU")->count(); $view->m_for_checking = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "For Checking")->count(); $view->m_for_repair = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "For Repair")->count(); $view->m_it_use = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "IT Use")->count(); $view->m_lost = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Lost")->count(); $view->m_pwu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "PWU")->count(); $view->m_recruitment = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Recruitment")->count(); $view->m_retired = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Retired")->count(); $view->m_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->where("status", "=", "Test Case")->count(); } else { $view->m_available = 0; $view->m_available_for_issuance = 0; $view->m_available_for_test_case = 0; $view->m_pwu_cebu = 0; $view->m_ewu = 0; $view->m_for_checking = 0; $view->m_for_repair = 0; $view->m_it_use = 0; $view->m_lost = 0; $view->m_pwu = 0; $view->m_recruitment = 0; $view->m_retired = 0; $view->m_test_case = 0; } //Docking Stations Status if ($monitors > 0) { $view->d_available = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Available")->count(); $view->d_available_for_issuance = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Available for Issuance")->count(); $view->d_available_for_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Available for Test Case")->count(); $view->d_pwu_cebu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "PWU - Cebu")->count(); $view->d_ewu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "EWU")->count(); $view->d_for_checking = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "For Checking")->count(); $view->d_for_repair = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "For Repair")->count(); $view->d_it_use = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "IT Use")->count(); $view->d_lost = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Lost")->count(); $view->d_pwu = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "PWU")->count(); $view->d_recruitment = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Recruitment")->count(); $view->d_retired = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Retired")->count(); $view->d_test_case = Asset::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->where("status", "=", "Test Case")->count(); } else { $view->d_available = 0; $view->d_available_for_issuance = 0; $view->d_available_for_test_case = 0; $view->d_pwu_cebu = 0; $view->d_ewu = 0; $view->d_for_checking = 0; $view->d_for_repair = 0; $view->d_it_use = 0; $view->d_lost = 0; $view->d_pwu = 0; $view->d_recruitment = 0; $view->d_retired = 0; $view->d_test_case = 0; } //Models $laptopModels = Model::whereHas("classification", function ($q) { $q->where("name", "=", "Laptops"); })->orderBy("name")->get(); $monitorModels = Model::whereHas("classification", function ($q) { $q->where("name", "=", "Monitors"); })->orderBy("name")->get(); $dockingStationModels = Model::whereHas("classification", function ($q) { $q->where("name", "=", "Docking Stations"); })->orderBy("name")->get(); $view->laptopModels = $laptopModels; $view->monitorModels = $monitorModels; $view->dockingStationModels = $dockingStationModels; //Status by Models //Laptop status by models foreach ($laptopModels as $lm) { $l_models_available[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Available")->count(); $l_models_available_for_issuance[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Available for Issuance")->count(); $l_models_available_for_test_case[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Available for Test Case")->count(); $l_models_pwu_cebu[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "PWU - Cebu")->count(); $l_models_ewu[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "EWU")->count(); $l_models_for_checking[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "For Checking")->count(); $l_models_for_repair[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "For Repair")->count(); $l_models_it_use[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "IT Use")->count(); $l_models_lost[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Lost")->count(); $l_models_pwu[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "PWU")->count(); $l_models_recruitment[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Recruitment")->count(); $l_models_retired[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Retired")->count(); $l_models_test_case[$lm->id] = Asset::whereHas("model", function ($query) use($lm) { $query->where("id", "=", $lm->id); })->where("status", "=", "Test Case")->count(); } $view->l_models_available = $l_models_available; $view->l_models_available_for_issuance = $l_models_available_for_issuance; $view->l_models_available_for_test_case = $l_models_available_for_test_case; $view->l_models_pwu_cebu = $l_models_pwu_cebu; $view->l_models_ewu = $l_models_ewu; $view->l_models_for_checking = $l_models_for_checking; $view->l_models_for_repair = $l_models_for_repair; $view->l_models_it_use = $l_models_it_use; $view->l_models_lost = $l_models_lost; $view->l_models_pwu = $l_models_pwu; $view->l_models_recruitment = $l_models_recruitment; $view->l_models_retired = $l_models_retired; $view->l_models_test_case = $l_models_test_case; return $view; } else { return Redirect::to("/"); } }
public function searchAssetModels() { if (Session::has('username') && (Session::get('user_type') == "Root" || Session::get('user_type') == "Admin")) { $view = View::make("Settings.Assets.settings_asset_models"); $getAssetTypes = AssetClassification::orderBy("name")->get(); $assetTypes = array("" => "All"); foreach ($getAssetTypes as $assetType) { $assetTypes[$assetType->id] = $assetType->name; } $input = Input::all(); $keyword = !empty(trim($input["keyword"])) ? trim($input["keyword"]) : ""; $asset_type = !is_null($input["asset_type"]) ? $input["asset_type"] : ""; $assetModels = Model::whereHas("classification", function ($query) use($asset_type) { if (!empty($asset_type) && $asset_type != "all") { $query->where("classification_id", "=", $asset_type); } })->where(function ($query) use($keyword) { $query->where("id", "=", $keyword)->orWhere("name", "LIKE", "%{$keyword}%"); })->orderBy("name")->paginate(25); $view->assetModels = $assetModels; $view->assetTypes = $assetTypes; $view->nav = "system"; $view->tab = "models"; $view->search = true; Input::flash(); return $view; } else { return Redirect::to("/"); } }
echo $a->employee->last_name . "<br/>"; } }); Route::get("dummy4", function () { // $logs = UserLog::whereBetween("datetime",array("2014-12-01","2014-12-02"." 23:59:59.000000"))->get(); // foreach($logs as $l){ // echo $l->datetime."<br/>"; // } // $g1 = Asset::whereHas("classification",function($query){ // $query->where("name","=","Laptops"); // }) // ->whereHas("model",function($query){ // $query->where("id","=",1); // }) // ->where("status","=","Available") // ->get(); // echo count($g1); $models = Model::whereHas("classification", function ($query) { $query->where("name", "=", "Laptops"); })->get(); foreach ($models as $m) { $assets[$m->id] = Asset::whereHas("model", function ($query) use($m) { $query->where("id", "=", $m->id); })->where("status", "=", "Available")->count(); // echo $m->name.": ".count($assets)."<br/>"; } //loop models again foreach ($models as $m) { echo $m->name . ": " . $assets[$m->id] . "<br/>"; } });
public function updateAsset($assetClass, $id) { if (Session::has('username') && (Session::get('user_type') == "Root" || Session::get('user_type') == "Admin")) { $view = View::make("Assets.Network.update_network_asset"); $view->nav = "assets"; $view->tab = $assetClass; $checkClass = AssetClassification::where("url_key", "=", $assetClass)->where("type", "=", "Network")->first(); $asset = Asset::where("id", "=", $id)->whereHas("classification", function ($query) { $query->where("type", "=", "Network"); })->first(); if (!$checkClass || !$asset) { return Redirect::to('assets/network'); } $view->asset = $asset; $getAssetClassifications = AssetClassification::where("type", "=", "Network")->get(); $assetClassifications = array(); foreach ($getAssetClassifications as $gac) { $assetClassifications[$gac->id] = $gac->name; } $getAssetModels = Model::whereHas('classification', function ($query) use($checkClass) { $query->where("name", "=", $checkClass->name); })->orderBy("name", "asc")->get(); $assetModels = array("" => "--Select One--"); foreach ($getAssetModels as $gam) { $assetModels[$gam->id] = $gam->name; } $view->locations = array("" => "None", "Bldg I - 2F Left Wing" => "Bldg I - 2F Left Wing", "Bldg I - 2F Meeting Rooms" => "Bldg I - 2F Meeting Rooms", "Bldg I - 2F Operations" => "Bldg I - 2F Operations", "Bldg I - 2F Pantry" => "Bldg I - 2F Pantry", "Bldg I - 2F Right Wing" => "Bldg I - 2F Right Wing", "Bldg I - 3F Left Wing" => "Bldg I - 3F Left Wing", "Bldg I - 3F Meeting Rooms" => "Bldg I - 3F Meeting Rooms", "Bldg I - 3F Operations" => "Bldg I - 3F Operations", "Bldg I - 3F Pantry" => "Bldg I - 3F Pantry", "Bldg I - 3F Right Wing" => "Bldg I - 3F Right Wing", "Bldg I - Administration" => "Bldg I - Administration", "Bldg I - Data Center" => "Bldg I - Data Center", "Bldg I - Electrical Room" => "Bldg I - Electrical Room", "Bldg I - Facilities" => "Bldg I - Facilities", "Bldg I - GF Meeting Rooms" => "Bldg I - GF Meeting Rooms", "Bldg I - GF Operations" => "Bldg I - GF Operations", "Bldg I - GF Pantry" => "Bldg I - GF Pantry", "Bldg I - IT" => "Bldg I - IT", "Bldg I - Laboratory" => "Bldg I - Laboratory", "Bldg I - Security Room" => "Bldg I - Security Room", "Bldg O - 2F Left Wing" => "Bldg O - 2F Left Wing", "Bldg O - 2F Meeting Rooms" => "Bldg O - 2F Meeting Rooms", "Bldg O - 2F Operations" => "Bldg O - 2F Operations", "Bldg O - 2F Pantry" => "Bldg O - 2F Pantry", "Bldg O - 2F Right Wing" => "Bldg O - 2F Right Wing", "Bldg O - Administration" => "Bldg O - Administration", "Bldg O - Data Center" => "Bldg O - Data Center", "Bldg O - Electrical Room" => "Bldg O - Electrical Room", "Bldg O - Facilities" => "Bldg O - Facilities", "Bldg O - GF Meeting Rooms" => "Bldg O - GF Meeting Rooms", "Bldg O - GF Operations" => "Bldg O - GF Operations", "Bldg O - GF Pantry" => "Bldg O - GF Pantry", "Bldg O - IT" => "Bldg O - IT", "Bldg O - Laboratory" => "Bldg O - Laboratory", "Bldg O - Security Room" => "Bldg O - Security Room", "Others" => "Others"); $view->assetClassifications = $assetClassifications; $view->assetModels = $assetModels; $view->asset_class_id = $checkClass->id; $view->asset_key = $checkClass->url_key; $view->asset_name = $checkClass->name; return $view; } else { return Redirect::to("/"); } }
public function exportOfficeBegin() { if (Session::has('username') && (Session::get('user_type') == "Root" || Session::get('user_type') == "Admin")) { if (isset($_GET["search"])) { $view = View::make("Export.export_office"); $view->nav = "system"; $view->tab = "office"; $input = Input::all(); $asset_tag = trim($input["asset_tag"]) != null ? str_replace(' ', '%', trim($input["asset_tag"])) : ""; $serial_number = trim($input["serial_number"]) != null ? str_replace(' ', '%', trim($input["serial_number"])) : ""; $employee = trim($input["employee"]) != null ? trim($input["employee"]) : ""; $classification_id = trim($input["classification_id"]) != null ? str_replace(' ', '%', trim($input["classification_id"])) : ""; $asset_status = !empty($input["asset_status"]) ? $input["asset_status"] : ""; $model = !empty($input["model"]) ? $input["model"] : ""; $warranty_start = trim($input["warranty_start"]) != null ? str_replace(' ', '%', trim($input["warranty_start"])) : ""; $warranty_end = trim($input["warranty_end"]) != null ? str_replace(' ', '%', trim($input["warranty_end"])) : ""; $assets = Asset::where("asset_tag", "LIKE", "%{$asset_tag}%")->whereHas("classification", function ($query) { $query->where("type", "=", "Office"); })->where(function ($query) use($serial_number) { if (!empty($serial_number)) { $query->where("serial_number", "LIKE", $serial_number); } })->where(function ($query) use($employee) { $emp = "%" . str_replace(' ', '%', $employee) . "%"; $emp = DB::connection()->getPdo()->quote($emp); if (!empty($employee)) { $query->where("employee_number", "LIKE", $employee)->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(first_name,' ',last_name) LIKE {$emp}"); })->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(last_name,' ',first_name) LIKE {$emp}"); }); } })->where(function ($query) use($classification_id) { if (!empty($classification_id)) { $query->where("classification_id", "LIKE", "{$classification_id}"); } })->where(function ($query) use($asset_status) { if (!empty($asset_status)) { $query->where("status", "=", "{$asset_status}"); } })->where(function ($query) use($model) { if (!empty($model)) { $query->where("model_id", "=", $model); } })->where(function ($query) use($warranty_start) { if (!empty($warranty_start)) { $query->where("warranty_start", "LIKE", "{$warranty_start}%"); } })->where(function ($query) use($warranty_end) { if (!empty($warranty_end)) { $query->where("warranty_end", "LIKE", "{$warranty_end}%"); } })->orderBy("asset_tag", "asc")->paginate(25); $results = Asset::where("asset_tag", "LIKE", "%{$asset_tag}%")->whereHas("classification", function ($query) { $query->where("type", "=", "Office"); })->where(function ($query) use($serial_number) { if (!empty($serial_number)) { $query->where("serial_number", "LIKE", $serial_number); } })->where(function ($query) use($employee) { $emp = "%" . str_replace(' ', '%', $employee) . "%"; $emp = DB::connection()->getPdo()->quote($emp); if (!empty($employee)) { $query->where("employee_number", "LIKE", $employee)->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(first_name,' ',last_name) LIKE {$emp}"); })->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(last_name,' ',first_name) LIKE {$emp}"); }); } })->where(function ($query) use($classification_id) { if (!empty($classification_id)) { $query->where("classification_id", "LIKE", "{$classification_id}"); } })->where(function ($query) use($asset_status) { if (!empty($asset_status)) { $query->where("status", "=", "{$asset_status}"); } })->where(function ($query) use($model) { if (!empty($model)) { $query->where("model_id", "=", $model); } })->where(function ($query) use($warranty_start) { if (!empty($warranty_start)) { $query->where("warranty_start", "LIKE", "{$warranty_start}%"); } })->where(function ($query) use($warranty_end) { if (!empty($warranty_end)) { $query->where("warranty_end", "LIKE", "{$warranty_end}%"); } })->count(); $getAssetClassifications = AssetClassification::where("type", "=", "Office")->get(); $assetClassifications = array("" => "All"); foreach ($getAssetClassifications as $gac) { $assetClassifications[$gac->id] = $gac->name; } $getAssetModels = Model::whereHas('classification', function ($query) { $query->where("type", "=", "Office"); })->orderBy("name", "asc")->get(); $assetModels = array("" => "--Select One--"); foreach ($getAssetModels as $gam) { $assetModels[$gam->id] = $gam->name; } $view->assetModels = $assetModels; $view->assets = $assets; $view->results = $results; $view->assetClassifications = $assetClassifications; Input::flash(); return $view; } else { if (isset($_GET["export"])) { $input = Input::all(); $asset_tag = trim($input["asset_tag"]) != null ? str_replace(' ', '%', trim($input["asset_tag"])) : ""; $serial_number = trim($input["serial_number"]) != null ? str_replace(' ', '%', trim($input["serial_number"])) : ""; $employee = trim($input["employee"]) != null ? trim($input["employee"]) : ""; $classification_id = trim($input["classification_id"]) != null ? str_replace(' ', '%', trim($input["classification_id"])) : ""; $asset_status = !empty($input["asset_status"]) ? $input["asset_status"] : ""; $model = !empty($input["model"]) ? $input["model"] : ""; $warranty_start = trim($input["warranty_start"]) != null ? str_replace(' ', '%', trim($input["warranty_start"])) : ""; $warranty_end = trim($input["warranty_end"]) != null ? str_replace(' ', '%', trim($input["warranty_end"])) : ""; $assets = Asset::where("asset_tag", "LIKE", "%{$asset_tag}%")->whereHas("classification", function ($query) { $query->where("type", "=", "Office"); })->where(function ($query) use($serial_number) { if (!empty($serial_number)) { $query->where("serial_number", "LIKE", $serial_number); } })->where(function ($query) use($employee) { $emp = "%" . str_replace(' ', '%', $employee) . "%"; $emp = DB::connection()->getPdo()->quote($emp); if (!empty($employee)) { $query->where("employee_number", "LIKE", $employee)->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(first_name,' ',last_name) LIKE {$emp}"); })->orWhereHas("employee", function ($q) use($employee, $emp) { $q->whereRaw("concat(last_name,' ',first_name) LIKE {$emp}"); }); } })->where(function ($query) use($classification_id) { if (!empty($classification_id)) { $query->where("classification_id", "LIKE", "{$classification_id}"); } })->where(function ($query) use($asset_status) { if (!empty($asset_status)) { $query->where("status", "=", "{$asset_status}"); } })->where(function ($query) use($model) { if (!empty($model)) { $query->where("model_id", "=", $model); } })->where(function ($query) use($warranty_start) { if (!empty($warranty_start)) { $query->where("warranty_start", "LIKE", "{$warranty_start}%"); } })->where(function ($query) use($warranty_end) { if (!empty($warranty_end)) { $query->where("warranty_end", "LIKE", "{$warranty_end}%"); } })->orderBy("asset_tag")->get(array("id", "asset_tag", "serial_number", "model_id", "employee_number", "warranty_start", "warranty_end", "notes", "location", "classification_id", "date_added", "status")); if ($assets->count() > 0) { if (isset($_GET["format"])) { $assetsArray = array(); foreach ($assets as $a) { $assetsArray[$a->id] = array("Asset Tag" => $a->asset_tag, "Serial Number" => $a->serial_number, "Employee" => !empty($a->employee->first_name) ? $a->employee->first_name . " " . $a->employee->last_name : "Unassigned.", "Employee Number" => !empty($a->employee->employee_number) ? $a->employee->employee_number : null, "Model" => !empty($a->model->name) ? $a->model->name : "No Information.", "Notes" => !empty($a->notes) ? $a->notes : null, "Location" => !empty($a->location) ? $a->location : "No Information.", "Warranty Start Date" => !empty($a->warranty_start) ? DateTime::createFromFormat("Y-m-d", $a->warranty_start)->format("F d, Y") : "No Information", "Warranty End Date" => !empty($a->warranty_end) ? DateTime::createFromFormat("Y-m-d", $a->warranty_end)->format("F d, Y") : "No Information", "Date Added to System" => DateTime::createFromFormat("Y-m-d H:i:s", $a->date_added)->format("F d, Y g:iA"), "Asset Type" => $a->classification->name, "Status" => $a->status); } } else { $assetsArray = $assets->toArray(); } Excel::create('office_assets_export_' . str_random(6), function ($excel) use($assetsArray) { // Set the title $excel->setTitle('Office Assets Export'); // Chain the setters $excel->setCreator('Vault')->setCompany('Vault'); // Call them separately $excel->setDescription('Office Assets Data Export from IT Vault.'); // Our first sheet $excel->sheet('Office Assets', function ($sheet) use($assetsArray) { $sheet->fromArray($assetsArray); }); })->download('xlsx'); } else { Input::flash(); return Redirect::to('export/network')->withInput()->with('info', "No records have been retrieved. Data export cancelled."); } } } } else { return Redirect::to("/"); } }