RequirementExport.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Exports;
  3. use App\Models\Requirement;
  4. use Maatwebsite\Excel\Concerns\Exportable;
  5. use Maatwebsite\Excel\Concerns\FromQuery;
  6. use Maatwebsite\Excel\Concerns\WithHeadings;
  7. use Maatwebsite\Excel\Concerns\WithMapping;
  8. class RequirementExport implements FromQuery, WithMapping, WithHeadings
  9. {
  10. use Exportable;
  11. public function query()
  12. {
  13. return Requirement::with(['createdBy', 'plan','group', 'asset'])
  14. ->orderBy("created_at")
  15. ->filter(request()->all());
  16. }
  17. /**
  18. * @param Requirement $requirement
  19. * @return array
  20. */
  21. public function map($requirement): array
  22. {
  23. return [
  24. $requirement->id,
  25. $requirement->title,
  26. $requirement->group?->name,
  27. $requirement->status,
  28. $requirement->asset?->name,
  29. $requirement->plan?->name,
  30. $requirement->priority,
  31. $requirement->approval_status,
  32. $requirement->note,
  33. $requirement->description,
  34. $requirement->createdBy?->name,
  35. $requirement->created_at,
  36. ];
  37. }
  38. public function headings(): array
  39. {
  40. return [
  41. 'ID',
  42. 'Title',
  43. 'Requirement Group',
  44. 'Status',
  45. 'Plan',
  46. 'Asset',
  47. 'Priority',
  48. 'Approval Status',
  49. 'Note',
  50. 'Description',
  51. 'Created By',
  52. 'Created Date',
  53. ];
  54. }
  55. }