🍲dfcv🏰dd⋉(● ∸ ●)⋊@% PNG %k25u25%fgd5n! PNG %k25u25%fgd5n!# Reusable AJAX search pattern This is the reusable pattern for customer, supplier, and item AJAX search components. ## 1) Controller pattern ### Customer report ```php public function customerPaymentsReport(Request $request) { $selectedCustomerId = $request->input('customer_id'); $selectedCustomerName = null; if ($selectedCustomerId) { $selectedCustomerName = Customer::where('id', $selectedCustomerId) ->where('active', 1) ->value('company_name'); } // build $data, $filters, $summary, etc. return view('reports.customer_payments', compact( 'data', 'filters', 'summary', 'selectedCustomerId', 'selectedCustomerName', // ... )); } ``` ### Supplier report ```php public function supplierReport(Request $request) { $selectedSupplierId = $request->input('supplier_id'); $selectedSupplierName = null; if ($selectedSupplierId) { $selectedSupplierName = Supplier::where('id', $selectedSupplierId) ->where('active', 1) ->value('company_name'); } return view('reports.supplier_report', compact( 'selectedSupplierId', 'selectedSupplierName', // ... )); } ``` ### Item report ```php public function itemFlow(Request $request) { $selectedItemId = $request->input('item_id'); $selectedItemName = null; if ($selectedItemId) { $selectedItemName = Item::where('id', $selectedItemId) ->where('active', 1) ->value('name'); } return view('reports.item_flow', compact( 'selectedItemId', 'selectedItemName', // ... )); } ``` ## 2) View pattern ### Customer search include ```blade @section('extra-filters') @include('components.ajax-customer-search')