Sfoglia il codice sorgente

feat: report master

parent
commit
1b0b19b16e

+ 10
- 0
app/Http/Controllers/PurchaseController.php Vedi File

@@ -354,4 +354,14 @@ class PurchaseController extends Controller
354 354
 
355 355
         return $pdf->stream();
356 356
     }
357
+
358
+    public function report()
359
+    {
360
+        return inertia("Purchases/Report");
361
+    }
362
+
363
+    public function reportExcel()
364
+    {
365
+        //
366
+    }
357 367
 }

+ 10
- 0
app/Http/Controllers/SalesController.php Vedi File

@@ -226,4 +226,14 @@ class SalesController extends Controller
226 226
 
227 227
         return $pdf->stream();
228 228
     }
229
+
230
+    public function report()
231
+    {
232
+        return inertia("Sales/Report");
233
+    }
234
+
235
+    public function reportExcel()
236
+    {
237
+        //
238
+    }
229 239
 }

+ 14
- 1
resources/js/layouts/Dashboard/menu.js Vedi File

@@ -14,7 +14,20 @@ export default {
14 14
     },
15 15
     {
16 16
       label: 'Laporan',
17
-      items: [],
17
+      items: [
18
+        {
19
+          label: 'Penjualan',
20
+          icon: 'pi pi-circle',
21
+          to: '/sales/report',
22
+          component: 'Sales/Report',
23
+        },
24
+        {
25
+          label: 'Pembelian',
26
+          icon: 'pi pi-circle',
27
+          to: '/purchases/report',
28
+          component: 'Purchases/Report',
29
+        },
30
+      ],
18 31
     },
19 32
     {
20 33
       label: 'Master',

+ 9
- 0
resources/js/pages/Purchases/Report.vue Vedi File

@@ -0,0 +1,9 @@
1
+<script setup>
2
+import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
3
+</script>
4
+
5
+<template>
6
+  <DashboardLayout title="Laporan Pembelian">
7
+    <h1>Laporan Pembelian</h1>
8
+  </DashboardLayout>
9
+</template>

+ 2
- 2
resources/js/pages/Purchases/Show.vue Vedi File

@@ -102,7 +102,7 @@ const { cart, totalCartPrice } = useCart(form, props.purchaseDetail)
102 102
           icon="pi pi-print"
103 103
           target="_blank"
104 104
           :inertia-link="false"
105
-          :href="route('purchases.invoice', id)"
105
+          :href="route('purchases.pdf.invoice', id)"
106 106
         />
107 107
       </div>
108 108
 
@@ -112,7 +112,7 @@ const { cart, totalCartPrice } = useCart(form, props.purchaseDetail)
112 112
           icon="pi pi-print"
113 113
           target="_blank"
114 114
           :inertia-link="false"
115
-          :href="route('purchases.do', id)"
115
+          :href="route('purchases.pdf.do', id)"
116 116
         />
117 117
       </div>
118 118
     </div>

+ 9
- 0
resources/js/pages/Sales/Report.vue Vedi File

@@ -0,0 +1,9 @@
1
+<script setup>
2
+import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
3
+</script>
4
+
5
+<template>
6
+  <DashboardLayout title="Laporan Penjualan">
7
+    <h1>Laporan Penjualan</h1>
8
+  </DashboardLayout>
9
+</template>

+ 2
- 2
resources/js/pages/Sales/Show.vue Vedi File

@@ -103,7 +103,7 @@ const { cart, totalCartPrice } = useCart(form, props.saleDetail)
103 103
           icon="pi pi-print"
104 104
           target="_blank"
105 105
           :inertia-link="false"
106
-          :href="route('sales.invoice', id)"
106
+          :href="route('sales.pdf.invoice', id)"
107 107
         />
108 108
       </div>
109 109
 
@@ -113,7 +113,7 @@ const { cart, totalCartPrice } = useCart(form, props.saleDetail)
113 113
           icon="pi pi-print"
114 114
           target="_blank"
115 115
           :inertia-link="false"
116
-          :href="route('sales.do', id)"
116
+          :href="route('sales.pdf.do', id)"
117 117
         />
118 118
       </div>
119 119
     </div>

+ 18
- 4
routes/web.php Vedi File

@@ -59,24 +59,38 @@ Route::middleware(["auth", "verified", "checkBlocked"])->group(function () {
59 59
     Route::get("/purchases/pdf/invoice/{purchase}", [
60 60
         PurchaseController::class,
61 61
         "invoice",
62
-    ])->name("purchases.invoice");
62
+    ])->name("purchases.pdf.invoice");
63 63
 
64 64
     Route::get("/purchases/pdf/do/{purchase}", [
65 65
         PurchaseController::class,
66 66
         "deliveryOrder",
67
-    ])->name("purchases.do");
67
+    ])->name("purchases.pdf.do");
68
+
69
+    Route::get("/purchases/excel/report", [
70
+        PurchaseController::class,
71
+        "reportExcel",
72
+    ])->name("purchases.excel.report");
73
+
74
+    Route::get("/purchases/report", [PurchaseController::class, "report"]);
68 75
 
69 76
     Route::resource("/sales", SalesController::class);
70 77
 
71 78
     Route::get("/sales/pdf/invoice/{sale}", [
72 79
         SalesController::class,
73 80
         "invoice",
74
-    ])->name("sales.invoice");
81
+    ])->name("sales.pdf.invoice");
75 82
 
76 83
     Route::get("/sales/pdf/do/{sale}", [
77 84
         SalesController::class,
78 85
         "deliveryOrder",
79
-    ])->name("sales.do");
86
+    ])->name("sales.pdf.do");
87
+
88
+    Route::get("/sales/excel/report", [
89
+        SalesController::class,
90
+        "reportExcel",
91
+    ])->name("sales.excel.report");
92
+
93
+    Route::get("/sales/report", [SalesController::class, "report"]);
80 94
 
81 95
     Route::resource("/suppliers", SupplierController::class);
82 96