Browse Source

fix: search filter

Muhammad Iqbal Afandi 3 years ago
parent
commit
9764260f6c

+ 1
- 1
app/Http/Controllers/CustomerController.php View File

21
     public function index()
21
     public function index()
22
     {
22
     {
23
         return inertia("Customers/Index", [
23
         return inertia("Customers/Index", [
24
-            "initialSearch" => request("search"),
24
+            "initialFilters" => request()->only("search"),
25
             "customers" => Customer::search(request()->only("search"))
25
             "customers" => Customer::search(request()->only("search"))
26
                 ->latest()
26
                 ->latest()
27
                 ->paginate(10)
27
                 ->paginate(10)

+ 1
- 1
app/Http/Controllers/ProductController.php View File

22
     public function index()
22
     public function index()
23
     {
23
     {
24
         return inertia("Products/Index", [
24
         return inertia("Products/Index", [
25
-            "initialSearch" => request("search"),
25
+            "initialFilters" => request()->only("search"),
26
             "products" => Product::search(request()->only("search"))
26
             "products" => Product::search(request()->only("search"))
27
                 ->latest()
27
                 ->latest()
28
                 ->paginate(10)
28
                 ->paginate(10)

+ 8
- 4
app/Http/Controllers/PurchaseController.php View File

34
     public function index()
34
     public function index()
35
     {
35
     {
36
         return inertia("Purchases/Index", [
36
         return inertia("Purchases/Index", [
37
-            "initialSearch" => request("search"),
37
+            "initialFilters" => request()->only("search"),
38
             "purchases" => Purchase::search(request()->only("search"))
38
             "purchases" => Purchase::search(request()->only("search"))
39
                 ->latest()
39
                 ->latest()
40
                 ->paginate(10)
40
                 ->paginate(10)
359
     public function report()
359
     public function report()
360
     {
360
     {
361
         return inertia("Purchases/Report", [
361
         return inertia("Purchases/Report", [
362
-            "initialFilters" => request()->only("start_date", "end_date"),
362
+            "initialFilters" => request()->only(
363
+                "start_date",
364
+                "end_date",
365
+                "status"
366
+            ),
363
             "purchases" => PurchaseDetail::filter(
367
             "purchases" => PurchaseDetail::filter(
364
-                request()->only("start_date", "end_date")
368
+                request()->only("start_date", "end_date", "status")
365
             )
369
             )
366
                 ->latest()
370
                 ->latest()
367
                 ->paginate(10)
371
                 ->paginate(10)
383
     {
387
     {
384
         return new PurchaseDetailsExport([
388
         return new PurchaseDetailsExport([
385
             "purchases" => PurchaseDetail::filter(
389
             "purchases" => PurchaseDetail::filter(
386
-                request()->only("start_date", "end_date")
390
+                request()->only("start_date", "end_date", "status")
387
             )
391
             )
388
                 ->latest()
392
                 ->latest()
389
                 ->get()
393
                 ->get()

+ 1
- 1
app/Http/Controllers/SalesController.php View File

33
     public function index()
33
     public function index()
34
     {
34
     {
35
         return inertia("Sales/Index", [
35
         return inertia("Sales/Index", [
36
-            "initialSearch" => request("search"),
36
+            "initialFilters" => request()->only("search"),
37
             "sales" => Sale::search(request()->only("search"))
37
             "sales" => Sale::search(request()->only("search"))
38
                 ->latest()
38
                 ->latest()
39
                 ->paginate(10)
39
                 ->paginate(10)

+ 1
- 1
app/Http/Controllers/StockProductController.php View File

21
     public function index()
21
     public function index()
22
     {
22
     {
23
         return inertia("StockProducts/Index", [
23
         return inertia("StockProducts/Index", [
24
-            "initialSearch" => request("search"),
24
+            "initialFilters" => request()->only("search"),
25
             "stockProducts" => StockProduct::search(request()->only("search"))
25
             "stockProducts" => StockProduct::search(request()->only("search"))
26
                 ->latest()
26
                 ->latest()
27
                 ->paginate(10)
27
                 ->paginate(10)

+ 1
- 1
app/Http/Controllers/SupplierController.php View File

21
     public function index()
21
     public function index()
22
     {
22
     {
23
         return inertia("Suppliers/Index", [
23
         return inertia("Suppliers/Index", [
24
-            "initialSearch" => request("search"),
24
+            "initialFilters" => request()->only("search"),
25
             "suppliers" => Supplier::search(request()->only("search"))
25
             "suppliers" => Supplier::search(request()->only("search"))
26
                 ->latest()
26
                 ->latest()
27
                 ->paginate(10)
27
                 ->paginate(10)

+ 1
- 1
app/Http/Controllers/UserController.php View File

25
     public function index()
25
     public function index()
26
     {
26
     {
27
         return inertia("Users/Index", [
27
         return inertia("Users/Index", [
28
-            "initialSearch" => request("search"),
28
+            "initialFilters" => request()->only("search"),
29
             "users" => User::search(request()->only("search"))
29
             "users" => User::search(request()->only("search"))
30
                 ->latest()
30
                 ->latest()
31
                 ->paginate(10)
31
                 ->paginate(10)

+ 5
- 0
app/Models/PurchaseDetail.php View File

70
             })
70
             })
71
             ->when($filters["end_date"] ?? null, function ($query, $search) {
71
             ->when($filters["end_date"] ?? null, function ($query, $search) {
72
                 $query->whereDate("created_at", "<=", $search);
72
                 $query->whereDate("created_at", "<=", $search);
73
+            })
74
+            ->when($filters["status"] ?? null, function ($query, $search) {
75
+                $query->whereHas("purchase", function ($query) use ($search) {
76
+                    $query->where("status", $search);
77
+                });
73
             });
78
             });
74
     }
79
     }
75
 }
80
 }

+ 3
- 2
resources/js/pages/Customers/Index.vue View File

8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
9
 
9
 
10
 defineProps({
10
 defineProps({
11
+  initialFilters: Object,
11
   customers: Object,
12
   customers: Object,
12
-  initialSearch: String,
13
 })
13
 })
14
 
14
 
15
 const deleteConfirm = useConfirm()
15
 const deleteConfirm = useConfirm()
48
               <AppSearchFilter
48
               <AppSearchFilter
49
                 class="w-full md:w-27rem"
49
                 class="w-full md:w-27rem"
50
                 placeholder="nama, no hp, npwp"
50
                 placeholder="nama, no hp, npwp"
51
-                :initial-search="initialSearch"
51
+                name-param="search"
52
+                :initial-search="initialFilters"
52
               />
53
               />
53
             </div>
54
             </div>
54
           </div>
55
           </div>

+ 3
- 2
resources/js/pages/Products/Index.vue View File

8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
9
 
9
 
10
 defineProps({
10
 defineProps({
11
+  initialFilters: Object,
11
   products: Object,
12
   products: Object,
12
-  initialSearch: String,
13
 })
13
 })
14
 
14
 
15
 const deleteConfirm = useConfirm()
15
 const deleteConfirm = useConfirm()
48
               <AppSearchFilter
48
               <AppSearchFilter
49
                 class="w-full md:w-27rem"
49
                 class="w-full md:w-27rem"
50
                 placeholder="nomor, nama"
50
                 placeholder="nomor, nama"
51
-                :initial-search="initialSearch"
51
+                name-param="search"
52
+                :initial-search="initialFilters"
52
               />
53
               />
53
             </div>
54
             </div>
54
           </div>
55
           </div>

+ 3
- 2
resources/js/pages/Purchases/Index.vue View File

6
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
6
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
7
 
7
 
8
 defineProps({
8
 defineProps({
9
+  initialFilters: Object,
9
   purchases: Object,
10
   purchases: Object,
10
-  initialSearch: String,
11
 })
11
 })
12
 </script>
12
 </script>
13
 
13
 
28
             <AppSearchFilter
28
             <AppSearchFilter
29
               class="w-full md:w-27rem"
29
               class="w-full md:w-27rem"
30
               placeholder="nama, email, no hp, status"
30
               placeholder="nama, email, no hp, status"
31
-              :initial-search="initialSearch"
31
+              name-param="search"
32
+              :initial-search="initialFilters"
32
             />
33
             />
33
           </div>
34
           </div>
34
 
35
 

+ 3
- 2
resources/js/pages/Sales/Index.vue View File

6
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
6
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
7
 
7
 
8
 defineProps({
8
 defineProps({
9
+  initialFilters: Object,
9
   sales: Object,
10
   sales: Object,
10
-  initialSearch: String,
11
 })
11
 })
12
 </script>
12
 </script>
13
 
13
 
29
               <AppSearchFilter
29
               <AppSearchFilter
30
                 class="w-full md:w-27rem"
30
                 class="w-full md:w-27rem"
31
                 placeholder="nama, no hp, status"
31
                 placeholder="nama, no hp, status"
32
-                :initial-search="initialSearch"
32
+                name-param="search"
33
+                :initial-search="initialFilters"
33
               />
34
               />
34
             </div>
35
             </div>
35
           </div>
36
           </div>

+ 3
- 2
resources/js/pages/StockProducts/Index.vue View File

6
 
6
 
7
 defineProps({
7
 defineProps({
8
   stockProducts: Object,
8
   stockProducts: Object,
9
-  initialSearch: String,
9
+  initialFilters: Object,
10
 })
10
 })
11
 </script>
11
 </script>
12
 
12
 
25
         <AppSearchFilter
25
         <AppSearchFilter
26
           class="w-full md:w-27rem"
26
           class="w-full md:w-27rem"
27
           placeholder="nama"
27
           placeholder="nama"
28
-          :initial-search="initialSearch"
28
+          name-param="search"
29
+          :initial-search="initialFilters"
29
         />
30
         />
30
       </template>
31
       </template>
31
 
32
 

+ 3
- 2
resources/js/pages/Suppliers/Index.vue View File

8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
9
 
9
 
10
 defineProps({
10
 defineProps({
11
+  initialFilters: Object,
11
   suppliers: Object,
12
   suppliers: Object,
12
-  initialSearch: String,
13
 })
13
 })
14
 
14
 
15
 const deleteConfirm = useConfirm()
15
 const deleteConfirm = useConfirm()
48
               <AppSearchFilter
48
               <AppSearchFilter
49
                 class="w-full md:w-27rem"
49
                 class="w-full md:w-27rem"
50
                 placeholder="nama, no hp, npwp"
50
                 placeholder="nama, no hp, npwp"
51
-                :initial-search="initialSearch"
51
+                name-param="search"
52
+                :initial-search="initialFilters"
52
               />
53
               />
53
             </div>
54
             </div>
54
           </div>
55
           </div>

+ 3
- 2
resources/js/pages/Users/Index.vue View File

8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
8
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
9
 
9
 
10
 defineProps({
10
 defineProps({
11
+  initialFilters: Object,
11
   users: Object,
12
   users: Object,
12
-  initialSearch: String,
13
 })
13
 })
14
 
14
 
15
 const resetConfirm = useConfirm()
15
 const resetConfirm = useConfirm()
65
               <AppSearchFilter
65
               <AppSearchFilter
66
                 class="w-full md:w-27rem"
66
                 class="w-full md:w-27rem"
67
                 placeholder="nama, nama pengguna"
67
                 placeholder="nama, nama pengguna"
68
-                :initialSearch="initialSearch"
68
+                name-param="search"
69
+                :initialSearch="initialFilters"
69
               />
70
               />
70
             </div>
71
             </div>
71
           </div>
72
           </div>