Преглед на файлове

update report exports

3.x
Andrew Wallo преди 1 година
родител
ревизия
9f4e2db66e
променени са 2 файла, в които са добавени 23 реда и са изтрити 13 реда
  1. 17
    5
      app/Services/ExportService.php
  2. 6
    8
      resources/views/components/company/reports/report-pdf.blade.php

+ 17
- 5
app/Services/ExportService.php Целия файл

@@ -12,19 +12,24 @@ class ExportService
12 12
 {
13 13
     public function exportToCsv(Company $company, ExportableReport $report, string $startDate, string $endDate): StreamedResponse
14 14
     {
15
-        $filename = $company->name . ' ' . $report->getTitle() . ' ' . $startDate . ' to ' . $endDate . '.csv';
15
+        $formattedStartDate = Carbon::parse($startDate)->format('Y-m-d');
16
+        $formattedEndDate = Carbon::parse($endDate)->format('Y-m-d');
17
+
18
+        $timestamp = Carbon::now()->format('Y-m-d-H_i');
19
+
20
+        $filename = $company->name . ' ' . $report->getTitle() . ' ' . $formattedStartDate . ' to ' . $formattedEndDate . ' ' . $timestamp . '.csv';
16 21
 
17 22
         $headers = [
18 23
             'Content-Type' => 'text/csv',
19 24
             'Content-Disposition' => 'attachment; filename="' . $filename . '"',
20 25
         ];
21 26
 
22
-        $callback = function () use ($report, $company, $startDate, $endDate) {
27
+        $callback = function () use ($report, $company, $formattedStartDate, $formattedEndDate) {
23 28
             $file = fopen('php://output', 'wb');
24 29
 
25 30
             fputcsv($file, [$report->getTitle()]);
26 31
             fputcsv($file, [$company->name]);
27
-            fputcsv($file, ['Date Range: ' . $startDate . ' to ' . $endDate]);
32
+            fputcsv($file, ['Date Range: ' . $formattedStartDate . ' to ' . $formattedEndDate]);
28 33
             fputcsv($file, []);
29 34
 
30 35
             fputcsv($file, $report->getHeaders());
@@ -50,15 +55,22 @@ class ExportService
50 55
 
51 56
     public function exportToPdf(Company $company, ExportableReport $report, string $startDate, string $endDate): StreamedResponse
52 57
     {
58
+        $formattedStartDate = Carbon::parse($startDate)->format('Y-m-d');
59
+        $formattedEndDate = Carbon::parse($endDate)->format('Y-m-d');
60
+
61
+        $timestamp = Carbon::now()->format('Y-m-d-H_i');
62
+
63
+        $filename = $company->name . ' ' . $report->getTitle() . ' ' . $formattedStartDate . ' to ' . $formattedEndDate . ' ' . $timestamp . '.pdf';
64
+
53 65
         $pdf = Pdf::loadView('components.company.reports.report-pdf', [
54 66
             'company' => $company,
55 67
             'report' => $report,
56 68
             'startDate' => Carbon::parse($startDate)->format('M d, Y'),
57 69
             'endDate' => Carbon::parse($endDate)->format('M d, Y'),
58
-        ])->setPaper('a4');
70
+        ])->setPaper('letter');
59 71
 
60 72
         return response()->streamDownload(function () use ($pdf) {
61 73
             echo $pdf->stream();
62
-        }, strtolower(str_replace(' ', '-', $company->name . '-' . $report->getTitle())) . '.pdf');
74
+        }, $filename);
63 75
     }
64 76
 }

+ 6
- 8
resources/views/components/company/reports/report-pdf.blade.php Целия файл

@@ -6,8 +6,8 @@
6 6
     <title>{{ $report->getTitle() }}</title>
7 7
     <style>
8 8
         @page {
9
-            size: A4;
10
-            margin: 8.5mm 8.5mm 30mm 8.5mm;
9
+            size: auto;
10
+            margin: 10mm 7.5mm;
11 11
         }
12 12
 
13 13
         .header {
@@ -15,6 +15,10 @@
15 15
             margin-bottom: 1rem;
16 16
         }
17 17
 
18
+        .header > * + * {
19
+            margin-top: 0.5rem;
20
+        }
21
+
18 22
         .table-head {
19 23
             display: table-row-group;
20 24
         }
@@ -36,12 +40,6 @@
36 40
             color: #374151;
37 41
         }
38 42
 
39
-        .header .title,
40
-        .header .company-name,
41
-        .header .date-range {
42
-            margin-bottom: 0.125rem; /* Uniform space between header elements */
43
-        }
44
-
45 43
         .title {
46 44
             font-size: 1.5rem;
47 45
         }

Loading…
Отказ
Запис