Browse Source

Updated admin orders view

Samson Mutunga 1 year ago
parent
commit
09ee514810

+ 41 - 0
app/Models/Lab.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+class Lab extends Model
+{
+    use HasFactory;
+
+    protected $table = 'labs';
+
+    public function address($short = false){
+        $address = json_decode($this->addresss);
+        $labAddress = [];
+        $labAddressShort = [];
+
+        if($address->street) {
+            $labAddress[] = $address->street;
+        }
+        
+        if($address->city) {
+            $labAddress[] = '<br>' . $address->city;
+            $labAddressShort[] = $address->city;
+        }
+        if($address->stateAbbr) {
+            $labAddress[] = ' ' . $address->stateAbbr;
+            $labAddressShort[] = $address->stateAbbr;
+        }
+        if($address->postalCode) {
+            $labAddress[] = ' ' . $address->postalCode;
+            $labAddressShort[] = $address->postalCode;
+        }
+        $labAddress = implode('', $labAddress);
+        $labAddressShort = implode(' ', $labAddressShort);
+        if($short) return $labAddressShort;
+        return $labAddress;
+    }
+
+}

+ 13 - 3
app/Models/StoreOrder.php

@@ -35,17 +35,27 @@ class StoreOrder extends BaseModel
         return getFirstSectionUID($this->uid);
     }
 
+    public function tests(){
+        $detail = json_decode($this->detail_json);
+        $selectedOptions = json_decode(@$detail->selected_options);
+        if(!$selectedOptions) return null;
+        return (array) @$selectedOptions->tests;
+    }
+
+
     public function total(){
         $detail = json_decode($this->detail_json);
         $selectedOptions = json_decode(@$detail->selected_options);
         if(!$selectedOptions) return 0;
-        return floatval($selectedOptions->order_total);
+        return floatval(@$selectedOptions->tests_total);
     }
 
-    public function selectedOptions(){
+    public function lab(){
         $detail = json_decode($this->detail_json);
         $selectedOptions = json_decode(@$detail->selected_options);
-        return $selectedOptions;
+        $labID = @$selectedOptions->tests_lab_id;
+        if(!$labID) return null;
+        return Lab::where('id', $labID)->first();
     }
 
     public function createdByUser(){

+ 17 - 4
resources/views/app/my-account/admin/orders/sub/dashboard.blade.php

@@ -25,7 +25,20 @@
                                 </th>
                             </tr>
 
-
+                            @if($order->lab())
+                            <tr>
+                                <th class="px-2" colspan="2">
+                                    <span class="text-secondary">Lab:</span>
+                                    <?= $order->lab()->name ?>
+                                </th>
+                            </tr>
+                            <tr>
+                                <th class="px-2" colspan="2">
+                                    <span class="text-secondary">Lab Address:</span>
+                                    <?= $order->lab()->address() ?>
+                                </th>
+                            </tr>
+                            @endif
                             <tr>
                                 <th class="px-2" colspan="2">
                                     <span class="text-secondary">Total:</span>
@@ -41,14 +54,14 @@
             <div class="card">
                 <div class="card-header">
                     <div class="d-flex align-items-center justify-content-between">
-                        <h5 class="mb-0 fw-bold">Other Details</h5>
+                        <h5 class="mb-0 fw-bold">Tests</h5>
                     </div>
                 </div>
                 <div class="card-body">
                     <div>
                         <?php
-                        $options = $order->selectedOptions();
-                        parseRender($options);
+                        $tests = $order->tests();
+                        parseRender($tests);
                         ?>
                     </div>
                 </div>