App\Http\Controllers\ReportsController Class Reference

This controller handles all actions related to Reports for the Snipe-IT Asset Management application. More...

Inheritance diagram for App\Http\Controllers\ReportsController:
App\Http\Controllers\Controller

Public Member Functions

 getAccessoryReport ()
 Returns a view that displaysthe accessories report. More...
 
 exportAccessoryReport ()
 Exports the accessories to CSV. More...
 
 getAssetsReport ()
 Display asset report. More...
 
 exportAssetReport ()
 Exports the assets to CSV. More...
 
 getDeprecationReport ()
 Show depreciation report for assets. More...
 
 exportDeprecationReport ()
 Exports the depreciations to CSV. More...
 
 getActivityReport ()
 Displays activity report. More...
 
 getLicenseReport ()
 Displays license report. More...
 
 exportLicenseReport ()
 Exports the licenses to CSV. More...
 
 getCustomReport ()
 Returns a form that allows the user to generate a custom CSV report. More...
 
 postCustom ()
 Exports the custom report to CSV. More...
 
 getAssetMaintenancesReport ()
 getImprovementsReport More...
 
 exportAssetMaintenancesReport ()
 exportImprovementsReport More...
 
 getAssetAcceptanceReport ()
 getAssetAcceptanceReport More...
 
 exportAssetAcceptanceReport ()
 exportAssetAcceptanceReport More...
 

Protected Member Functions

 getCheckedOutAssetsRequiringAcceptance ($modelsInCategoriesThatRequireAcceptance)
 getCheckedOutAssetsRequiringAcceptance More...
 
 getModelsInCategoriesThatRequireAcceptance ($assetCategoriesRequiringAcceptance)
 getModelsInCategoriesThatRequireAcceptance More...
 
 getCategoriesThatRequireAcceptance ()
 getCategoriesThatRequireAcceptance More...
 
 getAssetsCheckedOutRequiringAcceptance ()
 getAssetsCheckedOutRequiringAcceptance More...
 
 getAssetsNotAcceptedYet ()
 getAssetsNotAcceptedYet More...
 

Detailed Description

This controller handles all actions related to Reports for the Snipe-IT Asset Management application.

Version
v1.0

Definition at line 30 of file ReportsController.php.

Member Function Documentation

App\Http\Controllers\ReportsController::exportAccessoryReport ( )

Exports the accessories to CSV.

Deprecated:
Server-side exports have been replaced by datatables export since v2.
Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
See also
ManufacturersController::getDatatable() method that generates the JSON response
Since
[v1.0]
Returns

Definition at line 56 of file ReportsController.php.

57  {
58  $accessories = Accessory::orderBy('created_at', 'DESC')->get();
59 
60  $rows = array();
61  $header = array(
62  trans('admin/accessories/table.title'),
63  trans('admin/accessories/general.accessory_category'),
64  trans('admin/accessories/general.total'),
65  trans('admin/accessories/general.remaining')
66  );
67  $header = array_map('trim', $header);
68  $rows[] = implode($header, ', ');
69 
70  // Row per accessory
71  foreach ($accessories as $accessory) {
72  $row = array();
73  $row[] = e($accessory->accessory_name);
74  $row[] = e($accessory->accessory_category);
75  $row[] = e($accessory->total);
76  $row[] = e($accessory->remaining);
77 
78  $rows[] = implode($row, ',');
79  }
80 
81  $csv = implode($rows, "\n");
82  $response = Response::make($csv, 200);
83  $response->header('Content-Type', 'text/csv');
84  $response->header('Content-disposition', 'attachment;filename=report.csv');
85 
86  return $response;
87  }
App\Http\Controllers\ReportsController::exportAssetAcceptanceReport ( )

exportAssetAcceptanceReport

Returns
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 704 of file ReportsController.php.

705  {
706 
707  // Grab all the improvements
708  $assetsForReport = Actionlog::whereIn('id', $this->getAssetsNotAcceptedYet())
709  ->get();
710 
711  $rows = [ ];
712 
713  $header = [
714  trans('general.category'),
715  trans('admin/hardware/form.model'),
716  trans('admin/hardware/form.name'),
717  trans('admin/hardware/table.asset_tag'),
718  trans('admin/hardware/table.checkoutto'),
719  ];
720 
721  $header = array_map('trim', $header);
722  $rows[] = implode($header, ',');
723 
724  foreach ($assetsForReport as $assetItem) {
725  $row = [ ];
726  $row[] = str_replace(',', '', e($assetItem->assetlog->model->category->name));
727  $row[] = str_replace(',', '', e($assetItem->assetlog->model->name));
728  $row[] = str_replace(',', '', e($assetItem->assetlog->showAssetName()));
729  $row[] = str_replace(',', '', e($assetItem->assetlog->asset_tag));
730  $row[] = str_replace(',', '', e($assetItem->assetlog->assigneduser->fullName()));
731  $rows[] = implode($row, ',');
732  }
733 
734  // spit out a csv
735  $csv = implode($rows, "\n");
736  $response = Response::make($csv, 200);
737  $response->header('Content-Type', 'text/csv');
738  $response->header('Content-disposition', 'attachment;filename=report.csv');
739 
740  return $response;
741 
742  }
getAssetsNotAcceptedYet()
getAssetsNotAcceptedYet
App\Http\Controllers\ReportsController::exportAssetMaintenancesReport ( )

exportImprovementsReport

Returns
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 632 of file ReportsController.php.

633  {
634  // Grab all the improvements
635  $assetMaintenances = AssetMaintenance::with('asset', 'supplier')
636  ->orderBy('created_at', 'DESC')
637  ->get();
638 
639  $rows = [ ];
640 
641  $header = [
642  trans('admin/asset_maintenances/table.asset_name'),
643  trans('admin/asset_maintenances/table.supplier_name'),
644  trans('admin/asset_maintenances/form.asset_maintenance_type'),
645  trans('admin/asset_maintenances/form.title'),
646  trans('admin/asset_maintenances/form.start_date'),
647  trans('admin/asset_maintenances/form.completion_date'),
648  trans('admin/asset_maintenances/form.asset_maintenance_time'),
649  trans('admin/asset_maintenances/form.cost')
650  ];
651 
652  $header = array_map('trim', $header);
653  $rows[] = implode($header, ',');
654 
655  foreach ($assetMaintenances as $assetMaintenance) {
656  $row = [ ];
657  $row[] = str_replace(',', '', e($assetMaintenance->asset->name));
658  $row[] = str_replace(',', '', e($assetMaintenance->supplier->name));
659  $row[] = e($assetMaintenance->improvement_type);
660  $row[] = e($assetMaintenance->title);
661  $row[] = e($assetMaintenance->start_date);
662  $row[] = e($assetMaintenance->completion_date);
663  if (is_null($assetMaintenance->asset_maintenance_time)) {
664  $improvementTime = intval(Carbon::now()
665  ->diffInDays(Carbon::parse($assetMaintenance->start_date)));
666  } else {
667  $improvementTime = intval($assetMaintenance->asset_maintenance_time);
668  }
669  $row[] = $improvementTime;
670  $row[] = trans('general.currency') . number_format($assetMaintenance->cost, 2);
671  $rows[] = implode($row, ',');
672  }
673 
674  // spit out a csv
675  $csv = implode($rows, "\n");
676  $response = Response::make($csv, 200);
677  $response->header('Content-Type', 'text/csv');
678  $response->header('Content-disposition', 'attachment;filename=report.csv');
679 
680  return $response;
681  }
App\Http\Controllers\ReportsController::exportAssetReport ( )

Exports the assets to CSV.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns

Definition at line 122 of file ReportsController.php.

123  {
124  // Grab all the assets
125  $assets = Asset::orderBy('created_at', 'DESC')->get();
126 
127  $rows = [ ];
128 
129  // Create the header row
130  $header = [
131  trans('admin/hardware/table.asset_tag'),
132  trans('admin/hardware/form.manufacturer'),
133  trans('admin/hardware/form.model'),
134  trans('general.model_no'),
135  trans('general.name'),
136  trans('admin/hardware/table.serial'),
137  trans('general.status'),
138  trans('admin/hardware/table.purchase_date'),
139  trans('admin/hardware/table.purchase_cost'),
140  trans('admin/hardware/form.order'),
141  trans('admin/hardware/form.supplier'),
142  trans('admin/hardware/table.checkoutto'),
143  trans('admin/hardware/table.location'),
144  trans('general.notes'),
145  ];
146  $header = array_map('trim', $header);
147  $rows[] = implode($header, ',');
148 
149  // Create a row per asset
150  foreach ($assets as $asset) {
151  $row = [ ];
152  $row[] = e($asset->asset_tag);
153  if ($asset->model->manufacturer) {
154  $row[] = e($asset->model->manufacturer->name);
155  } else {
156  $row[] = '';
157  }
158  $row[] = '"' . e($asset->model->name) . '"';
159  $row[] = '"' . e($asset->model->modelno) . '"';
160  $row[] = e($asset->name);
161  $row[] = e($asset->serial);
162  if ($asset->assetstatus) {
163  $row[] = e($asset->assetstatus->name);
164  } else {
165  $row[] = '';
166  }
167  $row[] = $asset->purchase_date;
168  $row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
169  if ($asset->order_number) {
170  $row[] = e($asset->order_number);
171  } else {
172  $row[] = '';
173  }
174  if ($asset->supplier_id) {
175  $row[] = e($asset->supplier->name);
176  } else {
177  $row[] = '';
178  }
179 
180  if ($asset->assigned_to > 0) {
181  $user = User::find($asset->assigned_to);
182  $row[] = e($user->fullName());
183  } else {
184  $row[] = ''; // Empty string if unassigned
185  }
186 
187  if (( $asset->assigned_to > 0 ) && ( $asset->assigneduser->location_id > 0 )) {
188  $location = Location::find($asset->assigneduser->location_id);
189  if ($location) {
190  $row[] = e($location->name);
191  } else {
192  $row[] = '';
193  }
194  } elseif ($asset->rtd_location_id) {
195  $location = Location::find($asset->rtd_location_id);
196  if ($location->name) {
197  $row[] = e($location->name);
198  } else {
199  $row[] = '';
200  }
201  } else {
202  $row[] = ''; // Empty string if location is not set
203  }
204 
205  if ($asset->notes) {
206  $row[] = '"' . e($asset->notes) . '"';
207  } else {
208  $row[] = '';
209  }
210 
211  $rows[] = implode($row, ',');
212  }
213 
214  // spit out a csv
215  $csv = implode($rows, "\n");
216  $response = Response::make($csv, 200);
217  $response->header('Content-Type', 'text/csv');
218  $response->header('Content-disposition', 'attachment;filename=report.csv');
219 
220  return $response;
221  }
App\Http\Controllers\ReportsController::exportDeprecationReport ( )

Exports the depreciations to CSV.

Deprecated:
Server-side exports have been replaced by datatables export since v2.
Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns

Definition at line 248 of file ReportsController.php.

249  {
250 
251  // Grab all the assets
252  $assets = Asset::with('model', 'assigneduser', 'assetstatus', 'defaultLoc', 'assetlog')
253  ->orderBy('created_at', 'DESC')->get();
254 
255  $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());
256  $csv->setOutputBOM(Reader::BOM_UTF16_BE);
257 
258  $rows = [ ];
259 
260  // Create the header row
261  $header = [
262  trans('admin/hardware/table.asset_tag'),
263  trans('admin/hardware/table.title'),
264  trans('admin/hardware/table.serial'),
265  trans('admin/hardware/table.checkoutto'),
266  trans('admin/hardware/table.location'),
267  trans('admin/hardware/table.purchase_date'),
268  trans('admin/hardware/table.purchase_cost'),
269  trans('admin/hardware/table.book_value'),
270  trans('admin/hardware/table.diff')
271  ];
272 
273  //we insert the CSV header
274  $csv->insertOne($header);
275 
276  // Create a row per asset
277  foreach ($assets as $asset) {
278  $row = [ ];
279  $row[] = e($asset->asset_tag);
280  $row[] = e($asset->name);
281  $row[] = e($asset->serial);
282 
283  if ($asset->assigned_to > 0) {
284  $user = User::find($asset->assigned_to);
285  $row[] = e($user->fullName());
286  } else {
287  $row[] = ''; // Empty string if unassigned
288  }
289 
290  if (( $asset->assigned_to > 0 ) && ( $asset->assigneduser->location_id > 0 )) {
291  $location = Location::find($asset->assigneduser->location_id);
292  if ($location->city) {
293  $row[] = e($location->city) . ', ' . e($location->state);
294  } elseif ($location->name) {
295  $row[] = e($location->name);
296  } else {
297  $row[] = '';
298  }
299  } else {
300  $row[] = ''; // Empty string if location is not set
301  }
302 
303  if ($asset->assetloc) {
304  $currency = e($asset->assetloc->currency);
305  } else {
306  $currency = e(Setting::first()->default_currency);
307  }
308 
309  $row[] = $asset->purchase_date;
310  $row[] = $currency . number_format($asset->purchase_cost, 2);
311  $row[] = $currency . number_format($asset->getDepreciatedValue(), 2);
312  $row[] = $currency . number_format(( $asset->purchase_cost - $asset->getDepreciatedValue() ), 2);
313  $csv->insertOne($row);
314  }
315 
316  $csv->output('depreciation-report-' . date('Y-m-d') . '.csv');
317  die;
318 
319  }
App\Http\Controllers\ReportsController::exportLicenseReport ( )

Exports the licenses to CSV.

Deprecated:
Server-side exports have been replaced by datatables export since v2.
Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns

Definition at line 367 of file ReportsController.php.

368  {
369  $licenses = License::orderBy('created_at', 'DESC')->get();
370 
371  $rows = [ ];
372  $header = [
373  trans('admin/licenses/table.title'),
374  trans('admin/licenses/table.serial'),
375  trans('admin/licenses/form.seats'),
376  trans('admin/licenses/form.remaining_seats'),
377  trans('admin/licenses/form.expiration'),
378  trans('admin/licenses/form.date'),
379  trans('admin/licenses/form.cost')
380  ];
381 
382  $header = array_map('trim', $header);
383  $rows[] = implode($header, ', ');
384 
385  // Row per license
386  foreach ($licenses as $license) {
387  $row = [ ];
388  $row[] = e($license->name);
389  $row[] = e($license->serial);
390  $row[] = e($license->seats);
391  $row[] = $license->remaincount();
392  $row[] = $license->expiration_date;
393  $row[] = $license->purchase_date;
394  $row[] = '"' . number_format($license->purchase_cost, 2) . '"';
395 
396  $rows[] = implode($row, ',');
397  }
398 
399  $csv = implode($rows, "\n");
400  $response = Response::make($csv, 200);
401  $response->header('Content-Type', 'text/csv');
402  $response->header('Content-disposition', 'attachment;filename=report.csv');
403 
404  return $response;
405  }
App\Http\Controllers\ReportsController::getAccessoryReport ( )

Returns a view that displaysthe accessories report.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns
View

Definition at line 40 of file ReportsController.php.

41  {
42  $accessories = Accessory::orderBy('created_at', 'DESC')->with('company')->get();
43 
44  return View::make('reports/accessories', compact('accessories'));
45  }
App\Http\Controllers\ReportsController::getActivityReport ( )

Displays activity report.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns
View

Definition at line 328 of file ReportsController.php.

329  {
330  $log_actions = Actionlog::orderBy('created_at', 'DESC')
331  ->with('adminlog')
332  ->with('accessorylog')
333  ->with('assetlog')
334  ->with('licenselog')
335  ->with('userlog')
336  ->orderBy('created_at', 'DESC')
337  ->get();
338 
339  return View::make('reports/activity', compact('log_actions'));
340  }
App\Http\Controllers\ReportsController::getAssetAcceptanceReport ( )

getAssetAcceptanceReport

Returns
mixed
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 690 of file ReportsController.php.

691  {
692  $assetsForReport = Asset::notYetAccepted()->with('company')->get();
693 
694  return View::make('reports/unaccepted_assets', compact('assetsForReport'));
695  }
App\Http\Controllers\ReportsController::getAssetMaintenancesReport ( )

getImprovementsReport

Returns
View
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 614 of file ReportsController.php.

615  {
616  // Grab all the improvements
617  $assetMaintenances = AssetMaintenance::with('asset', 'supplier', 'asset.company')
618  ->orderBy('created_at', 'DESC')
619  ->get();
620 
621  return View::make('reports/asset_maintenances', compact('assetMaintenances'));
622 
623  }
App\Http\Controllers\ReportsController::getAssetsCheckedOutRequiringAcceptance ( )
protected

getAssetsCheckedOutRequiringAcceptance

Returns
array
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 804 of file ReportsController.php.

805  {
806 
809  );
810  }
getCategoriesThatRequireAcceptance()
getCategoriesThatRequireAcceptance
getModelsInCategoriesThatRequireAcceptance($assetCategoriesRequiringAcceptance)
getModelsInCategoriesThatRequireAcceptance
getCheckedOutAssetsRequiringAcceptance($modelsInCategoriesThatRequireAcceptance)
getCheckedOutAssetsRequiringAcceptance
App\Http\Controllers\ReportsController::getAssetsNotAcceptedYet ( )
protected

getAssetsNotAcceptedYet

Returns
array
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 819 of file ReportsController.php.

820  {
821  return Asset::unaccepted();
822  }
App\Http\Controllers\ReportsController::getAssetsReport ( )

Display asset report.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns
View

Definition at line 96 of file ReportsController.php.

97  {
98  // Grab all the assets
99  $assets = Asset::with(
100  'model',
101  'assigneduser.userLoc',
102  'assetstatus',
103  'defaultLoc',
104  'assetlog',
105  'supplier',
106  'model.manufacturer',
107  'company'
108  )
109  ->orderBy('created_at', 'DESC')
110  ->get();
111 
112  return View::make('reports/asset', compact('assets'));
113  }
App\Http\Controllers\ReportsController::getCategoriesThatRequireAcceptance ( )
protected

getCategoriesThatRequireAcceptance

Returns
array
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 788 of file ReportsController.php.

789  {
790 
791  return array_pluck(Category::requiresAcceptance()
792  ->select('id')
793  ->get()
794  ->toArray(), 'id');
795  }
App\Http\Controllers\ReportsController::getCheckedOutAssetsRequiringAcceptance (   $modelsInCategoriesThatRequireAcceptance)
protected

getCheckedOutAssetsRequiringAcceptance

Parameters
$modelsInCategoriesThatRequireAcceptance
Returns
array
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 753 of file ReportsController.php.

754  {
755  $assets = Asset::deployed()
756  ->inModelList($modelsInCategoriesThatRequireAcceptance)
757  ->select('id')
758  ->get()
759  ->toArray();
760 
761  return array_pluck($assets, 'id');
762  }
App\Http\Controllers\ReportsController::getCustomReport ( )

Returns a form that allows the user to generate a custom CSV report.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
See also
ReportsController::postCustomReport() method that generates the CSV
Since
[v1.0]
Returns

Definition at line 415 of file ReportsController.php.

416  {
417 
418  return View::make('reports/custom');
419  }
App\Http\Controllers\ReportsController::getDeprecationReport ( )

Show depreciation report for assets.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns
View

Definition at line 230 of file ReportsController.php.

231  {
232 
233  // Grab all the assets
234  $assets = Asset::with('model', 'assigneduser', 'assetstatus', 'defaultLoc', 'assetlog', 'company')
235  ->orderBy('created_at', 'DESC')->get();
236 
237  return View::make('reports/depreciation', compact('assets'));
238  }
App\Http\Controllers\ReportsController::getLicenseReport ( )

Displays license report.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
Since
[v1.0]
Returns
View

Definition at line 349 of file ReportsController.php.

350  {
351 
352  $licenses = License::orderBy('created_at', 'DESC')
353  ->with('company')
354  ->get();
355 
356  return View::make('reports/licenses', compact('licenses'));
357  }
App\Http\Controllers\ReportsController::getModelsInCategoriesThatRequireAcceptance (   $assetCategoriesRequiringAcceptance)
protected

getModelsInCategoriesThatRequireAcceptance

Parameters
$assetCategoriesRequiringAcceptance
Returns
array
Author
Vincent Sposato vince.nosp@m.nt.s.nosp@m.posat.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om
Version
v1.0

Definition at line 772 of file ReportsController.php.

773  {
774 
775  return array_pluck(Model::inCategory($assetCategoriesRequiringAcceptance)
776  ->select('id')
777  ->get()
778  ->toArray(), 'id');
779  }
App\Http\Controllers\ReportsController::postCustom ( )

Exports the custom report to CSV.

Author
[A. Gianotto] [snipe.nosp@m.@sni.nosp@m.pe.ne.nosp@m.t]
See also
ReportsController::getCustomReport() method that generates form view
Since
[v1.0]
Returns

Definition at line 429 of file ReportsController.php.

430  {
431  $assets = Asset::orderBy('created_at', 'DESC')->get();
432 
433  $rows = [ ];
434  $header = [ ];
435 
436  if (e(Input::get('asset_name')) == '1') {
437  $header[] = 'Asset Name';
438  }
439  if (e(Input::get('asset_tag')) == '1') {
440  $header[] = 'Asset Tag';
441  }
442  if (e(Input::get('manufacturer')) == '1') {
443  $header[] = 'Manufacturer';
444  }
445  if (e(Input::get('model')) == '1') {
446  $header[] = 'Model';
447  $header[] = 'Model Number';
448  }
449  if (e(Input::get('category')) == '1') {
450  $header[] = 'Category';
451  }
452  if (e(Input::get('serial')) == '1') {
453  $header[] = 'Serial';
454  }
455  if (e(Input::get('purchase_date')) == '1') {
456  $header[] = 'Purchase Date';
457  }
458  if (( e(Input::get('purchase_cost')) == '1' ) && ( e(Input::get('depreciation')) != '1' )) {
459  $header[] = 'Purchase Cost';
460  }
461  if (e(Input::get('order')) == '1') {
462  $header[] = 'Order Number';
463  }
464  if (e(Input::get('supplier')) == '1') {
465  $header[] = 'Supplier';
466  }
467  if (e(Input::get('location')) == '1') {
468  $header[] = 'Location';
469  }
470  if (e(Input::get('assigned_to')) == '1') {
471  $header[] = 'Assigned To';
472  }
473  if (e(Input::get('status')) == '1') {
474  $header[] = 'Status';
475  }
476  if (e(Input::get('warranty')) == '1') {
477  $header[] = 'Warranty';
478  $header[] = 'Warranty Expires';
479  }
480  if (e(Input::get('depreciation')) == '1') {
481  $header[] = 'Purchase Cost';
482  $header[] = 'Value';
483  $header[] = 'Diff';
484  }
485 
486  $header = array_map('trim', $header);
487  $rows[] = implode($header, ',');
488 
489  foreach ($assets as $asset) {
490  $row = [ ];
491  if (e(Input::get('asset_name')) == '1') {
492  $row[] = '"' .e($asset->name) . '"';
493  }
494  if (e(Input::get('asset_tag')) == '1') {
495  $row[] = e($asset->asset_tag);
496  }
497  if (e(Input::get('manufacturer')) == '1') {
498  if ($asset->model->manufacturer) {
499  $row[] = '"' .e($asset->model->manufacturer->name) . '"';
500  } else {
501  $row[] = '';
502  }
503  }
504  if (e(Input::get('model')) == '1') {
505  $row[] = '"' . e($asset->model->name) . '"';
506  $row[] = '"' . e($asset->model->modelno) . '"';
507  }
508  if (e(Input::get('category')) == '1') {
509  $row[] = '"' .e($asset->model->category->name) . '"';
510  }
511 
512  if (e(Input::get('serial')) == '1') {
513  $row[] = e($asset->serial);
514  }
515  if (e(Input::get('purchase_date')) == '1') {
516  $row[] = e($asset->purchase_date);
517  }
518  if (e(Input::get('purchase_cost')) == '1' && ( e(Input::get('depreciation')) != '1' )) {
519  $row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
520  }
521  if (e(Input::get('order')) == '1') {
522  if ($asset->order_number) {
523  $row[] = e($asset->order_number);
524  } else {
525  $row[] = '';
526  }
527  }
528  if (e(Input::get('supplier')) == '1') {
529  if ($asset->supplier_id) {
530  $row[] = '"' .e($asset->supplier->name) . '"';
531  } else {
532  $row[] = '';
533  }
534  }
535  if (e(Input::get('location')) == '1') {
536  $show_loc = '';
537  if (( $asset->assigned_to > 0 ) && ( $asset->assigneduser->location_id !='' )) {
538  $location = Location::find($asset->assigneduser->location_id);
539  if ($location) {
540  $show_loc .= '"' .e($location->name). '"';
541  } else {
542  $show_loc .= 'User location '.$asset->assigneduser->location_id.' is invalid';
543  }
544  } elseif ($asset->rtd_location_id!='') {
545  $location = Location::find($asset->rtd_location_id);
546  if ($location) {
547  $show_loc .= '"' .e($location->name). '"';
548  } else {
549  $show_loc .= 'Default location '.$asset->rtd_location_id.' is invalid';
550  }
551  }
552 
553  $row[] = $show_loc;
554 
555  }
556  if (e(Input::get('assigned_to')) == '1') {
557  if ($asset->assigned_to > 0) {
558  $user = User::find($asset->assigned_to);
559  $row[] = '"' .e($user->fullName()). '"';
560  } else {
561  $row[] = ''; // Empty string if unassigned
562  }
563  }
564  if (e(Input::get('status')) == '1') {
565  if (( $asset->status_id == '0' ) && ( $asset->assigned_to == '0' )) {
566  $row[] = trans('general.ready_to_deploy');
567  } elseif (( $asset->status_id == '' ) && ( $asset->assigned_to == '0' )) {
568  $row[] = trans('general.pending');
569  } elseif ($asset->assetstatus) {
570  $row[] = '"' .e($asset->assetstatus->name). '"';
571  } else {
572  $row[] = '';
573  }
574  }
575  if (e(Input::get('warranty')) == '1') {
576  if ($asset->warranty_months) {
577  $row[] = $asset->warranty_months;
578  $row[] = $asset->warrantee_expires();
579  } else {
580  $row[] = '';
581  $row[] = '';
582  }
583  }
584  if (e(Input::get('depreciation')) == '1') {
585  $depreciation = $asset->getDepreciatedValue();
586  $row[] = '"' . number_format($asset->purchase_cost, 2) . '"';
587  $row[] = '"' . number_format($depreciation, 2) . '"';
588  $row[] = '"' . number_format($asset->purchase_cost - $depreciation, 2) . '"';
589  }
590  $rows[] = implode($row, ',');
591  }
592 
593  // spit out a csv
594  if (array_filter($rows)) {
595  $csv = implode($rows, "\n");
596  $response = Response::make($csv, 200);
597  $response->header('Content-Type', 'text/csv');
598  $response->header('Content-disposition', 'attachment;filename=report.csv');
599 
600  return $response;
601  } else {
602  return Redirect::to("reports/custom")
603  ->with('error', trans('admin/reports/message.error'));
604  }
605  }

The documentation for this class was generated from the following file: