Make the export button contextual for requested status
This commit is contained in:
parent
58a9b0d3e8
commit
512632ce60
1 changed files with 33 additions and 4 deletions
|
@ -15,6 +15,7 @@ use Illuminate\Support\Facades\View;
|
||||||
use Input;
|
use Input;
|
||||||
use League\Csv\Reader;
|
use League\Csv\Reader;
|
||||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This controller handles all actions related to Reports for
|
* This controller handles all actions related to Reports for
|
||||||
|
@ -102,18 +103,45 @@ class ReportsController extends Controller
|
||||||
* @since [v1.0]
|
* @since [v1.0]
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*/
|
||||||
public function exportAssetReport()
|
public function exportAssetReport(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
\Debugbar::disable();
|
\Debugbar::disable();
|
||||||
|
|
||||||
$customfields = CustomField::get();
|
$customfields = CustomField::get();
|
||||||
|
|
||||||
$response = new StreamedResponse(function () use ($customfields) {
|
$response = new StreamedResponse(function () use ($customfields, $request) {
|
||||||
// Open output stream
|
// Open output stream
|
||||||
$handle = fopen('php://output', 'w');
|
$handle = fopen('php://output', 'w');
|
||||||
|
|
||||||
Asset::with('assignedTo', 'assetLoc','defaultLoc','assignedTo','model','supplier','assetstatus','model.manufacturer')->orderBy('created_at', 'DESC')->chunk(500, function($assets) use($handle, $customfields) {
|
$assets = Asset::with('assignedTo', 'assetLoc','defaultLoc','assignedTo','model','supplier','assetstatus','model.manufacturer');
|
||||||
|
|
||||||
|
// This is used by the sidenav, mostly
|
||||||
|
switch ($request->input('status')) {
|
||||||
|
case 'Deleted':
|
||||||
|
$assets->withTrashed()->Deleted();
|
||||||
|
break;
|
||||||
|
case 'Pending':
|
||||||
|
$assets->Pending();
|
||||||
|
break;
|
||||||
|
case 'RTD':
|
||||||
|
$assets->RTD();
|
||||||
|
break;
|
||||||
|
case 'Undeployable':
|
||||||
|
$assets->Undeployable();
|
||||||
|
break;
|
||||||
|
case 'Archived':
|
||||||
|
$assets->Archived();
|
||||||
|
break;
|
||||||
|
case 'Requestable':
|
||||||
|
$assets->RequestableAssets();
|
||||||
|
break;
|
||||||
|
case 'Deployed':
|
||||||
|
$assets->Deployed();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$assets->orderBy('created_at', 'DESC')->chunk(500, function($assets) use($handle, $customfields) {
|
||||||
$headers=[
|
$headers=[
|
||||||
trans('general.company'),
|
trans('general.company'),
|
||||||
trans('admin/hardware/table.asset_tag'),
|
trans('admin/hardware/table.asset_tag'),
|
||||||
|
@ -168,7 +196,8 @@ class ReportsController extends Controller
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
}, 200, [
|
}, 200, [
|
||||||
'Content-Type' => 'text/csv',
|
'Content-Type' => 'text/csv',
|
||||||
'Content-Disposition' => 'attachment; filename="assets-'.date('Y-m-d-his').'.csv"',
|
'Content-Disposition'
|
||||||
|
=> 'attachment; filename="'.(($request->has('status')) ? trim($request->input('status')) : 'all').'-assets-'.date('Y-m-d-his').'.csv"',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
|
Loading…
Add table
Reference in a new issue