فهرست منبع

Search for lab

Samson Mutunga 1 سال پیش
والد
کامیت
44d24300a8

+ 40 - 0
app/Http/Controllers/MyAccountController.php

@@ -5,6 +5,7 @@ use Illuminate\Http\Request;
 use App\Models\PromoCode;
 use Illuminate\Support\Facades\Cookie;
 use App\Models\PaymentMethod;
+use App\Models\Lab;
 use Laravel\Socialite\Facades\Socialite;
 
 class MyAccountController extends Controller {
@@ -27,4 +28,43 @@ class MyAccountController extends Controller {
         $request->session()->put('user_uid_to_enable_facebook_log_in', $this->user->uid);
         return Socialite::driver('facebook')->redirect();
     }
+
+    public function searchLab(Request $request){
+        $term = $request->input('term') ? trim($request->input('term')) : '';
+        if (empty($term)) return '';
+        $term = strtolower($term);
+
+        $term2 = '';
+        if (strpos($term, ' ') !== FALSE) {
+        $terms = explode(' ', $term);
+        $term = trim($terms[0]);
+        $term2 = trim($terms[1]);
+        }
+        $labs = Lab::query();
+
+
+        $labs = $labs->where(function ($q) use ($term) {
+            $q->orWhereRaw('LOWER(addresss::text) LIKE ?', ['%' . $term . '%']);
+          });
+      
+          if (!empty($term2)) {
+            $labs = $labs->where(function ($q) use ($term2) {
+              $q->orWhereRaw('LOWER(addresss::text) LIKE ?', ['%' . $term2 . '%']);
+            });
+          }
+
+
+        $labs = $labs->get();
+
+        $labsJson = $labs->map(function ($lab) {
+        return [
+            "uid" => $lab->uid,
+            "id" => $lab->id,
+            "text" => $lab->name . ' • ' . $lab->address(true),
+        ];
+        });
+        return json_encode([
+        "results" => $labsJson
+        ]);
+    }
 }

+ 0 - 2
public/js/lime.js

@@ -27,7 +27,6 @@ mainApp = null;
                 var placeholder = $(input).attr('placeholder');
                 var url = $(input).data('url');
                 var valueProp = $(input).data('valueprop');
-                var companyId = $(input).data('companyid');
                 var select2 = $(input).select2({
                     placeholder: placeholder,
                     minimumInputLength: 2,
@@ -39,7 +38,6 @@ mainApp = null;
                         data: function (params) {
                             return {
                                 term: params.term,
-                                companyId: companyId,
                                 json: true
                             };
                         },

+ 7 - 1
resources/views/app/my-account/admin/orders/forms/create-order.blade.php

@@ -39,7 +39,12 @@
                     Total: <b>$@{{ form.total }}</b>
                 </div>
 
-                
+                <div class="mb-2">
+                    <label class="mb-1">Lab</label>
+                    <select name="tests_lab_id" auto-suggest-record data-url="/search-lab" data-valueprop="id"  class="form-control">
+                        <option value=""></option>
+                    </select>
+                </div>
 
             </div>
             <div class="mt-4">
@@ -90,6 +95,7 @@
             var self = this;
             self.$nextTick(function(){
                 self.initCalculateTotal();
+                mainApp.initAutoSuggestRecord();
             });
         }
     });

+ 1 - 0
routes/web.php

@@ -35,6 +35,7 @@ Route::middleware('ensureUserNotLoggedIn')->group(function () {
 });
 
 Route::group(['middleware' => ['ensureUserLoggedIn']], function () {
+    Route::get('/search-lab', [MyAccountController::class, 'searchLab'])->name('search-lab');
     Route::prefix('/my-account')->name('my-account')->group(function () {
         Route::get('/', [MyAccountController::class, 'index'])->name('.index');
         Route::get('/log-in-settings', [MyAccountController::class, 'logInSettings'])->name('.log-in-settings');