Parcourir la source

Create test results

Samson Mutunga il y a 4 mois
Parent
commit
3a1410e874

+ 10 - 2
app/Http/Controllers/AdminController.php

@@ -22,6 +22,7 @@ use Exception;
 use Ramsey\Uuid\Uuid;
 use App\Models\Lab2;
 use App\Models\GuestData;
+use App\Models\TestResult;
 use Illuminate\Support\Facades\DB;
 
 class AdminController extends Controller
@@ -102,7 +103,7 @@ class AdminController extends Controller
 
     public function userOrders(User $user)
     {
-        $orders = StoreOrder::where('user_id', $user->id)->orderBy('created_at', 'DESC')->paginate(30);
+        $orders = StoreOrder::where('user_id', $user->id)->whereRaw('category IS NULL')->orderBy('created_at', 'DESC')->paginate(30);
         return view('app.my-account.admin.users.sub.orders', compact('user', 'orders'));
     }
     public function userTransactions(User $user)
@@ -180,7 +181,8 @@ class AdminController extends Controller
     {
         $filters = $request->all();
         $orders = StoreOrder::query();
-
+        $orders = $orders->whereRaw('category IS NULL');
+        
         $name = $request->get('name', null);
         if ($name) {
             $wildCardedName = '%' . $name . '%';
@@ -665,4 +667,10 @@ class AdminController extends Controller
         $records = $records->orderBy('id', 'DESC')->paginate(30);
         return view('app.my-account.admin.abandoned-carts.index', compact('records'));
     }
+
+    public function orderTestResults(StoreOrder $order)
+    {
+        $testResults = TestResult::where('store_order_id', $order->id)->orderBy('created_at', 'DESC')->get();
+        return view('app.my-account.admin.orders.sub.test-results', compact('order', 'testResults'));
+    }
 }

+ 19 - 0
app/Models/TestResult.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use App\Models\BaseModel;
+
+class TestResult extends BaseModel
+{
+    use HasFactory;
+
+    protected $table = 'test_result';
+
+    public function storeOrder(){
+        return $this->hasOne(StoreOrder::class, 'id', 'store_order_id');
+    }
+
+}

+ 47 - 0
resources/views/app/my-account/admin/orders/forms/create-test-result.blade.php

@@ -0,0 +1,47 @@
+<div moe normal>
+    <a start show href="#" class="text-primary">+Create</a>
+    <form url="/api/testResult/create">
+        <input type="hidden" name="orderUid" value="{{ $order->uid }}">
+        <div class="mb-2">
+            <label>Test Name</label>
+            <input type="text" name="testName" class="form-control form-control-sm" value="" />
+        </div>
+        <div class="mb-2">
+            <label>Result Category</label>
+            <select name="resultCategory" class="form-control form-control-sm">
+                <option></option>
+                <option value="Normal">Normal</option>
+                <option value="Abnormal">Abnormal</option>
+                <option value="Not Detected">Not Detected</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label>Result Color</label>
+            <select name="resultColor" class="form-control form-control-sm">
+                <option></option>
+                <option value="GREEN">Green</option>
+                <option value="RED">Red</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value and Units</label>
+            <input type="text" name="numericValueAndUnits" class="form-control form-control-sm" value="" />
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value Label</label>
+            <input type="text" name="numericValueLabel" class="form-control form-control-sm" value="" />
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value Memo</label>
+            <input type="text" name="numericValueMemo" class="form-control form-control-sm" value="" />
+        </div>
+        <div class="mb-2">
+            <label>Commentary</label>
+            <input type="text" name="commentary" class="form-control form-control-sm" value="" />
+        </div>
+        <div>
+            <button submit class="btn btn-sm btn-primary me-2">Create</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 13 - 0
resources/views/app/my-account/admin/orders/forms/delete-test-result.blade.php

@@ -0,0 +1,13 @@
+<div moe>
+    <a start show href="#" class="text-danger"><i class="fas fa-trash-alt"></i></a>
+    <form url="/api/testResult/delete" right>
+        <input type="hidden" name="testResultUid" value="{{ $tr->uid }}" />
+        <div class="mb-2">
+            <label class="fw-bold mb-1">Are you sure?</label>
+        </div>
+        <div>
+            <button submit class="btn btn-sm btn-danger me-2">Delete</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 47 - 0
resources/views/app/my-account/admin/orders/forms/update-test-result.blade.php

@@ -0,0 +1,47 @@
+<div moe normal>
+    <a start show href="#" class="text-primary"><i class="fas fa-pencil-alt"></i></a>
+    <form url="/api/testResult/update" right>
+        <input type="hidden" name="testResultUid" value="{{ $tr->uid }}">
+        <div class="mb-2">
+            <label>Test Name</label>
+            <input type="text" name="testName" class="form-control form-control-sm" value="{{ $tr->test_name }}" />
+        </div>
+        <div class="mb-2">
+            <label>Result Category</label>
+            <select name="resultCategory" class="form-control form-control-sm">
+                <option></option>
+                <option value="Normal" {{ $tr->result_category === 'Normal' ? 'selected':'' }}>Normal</option>
+                <option value="Abnormal" {{ $tr->result_category === 'Abnormal' ? 'selected':'' }}>Abnormal</option>
+                <option value="Not Detected" {{ $tr->result_category === 'Not Detected' ? 'selected':'' }}>Not Detected</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label>Result Color</label>
+            <select name="resultColor" class="form-control form-control-sm">
+                <option></option>
+                <option value="GREEN"  {{ $tr->result_color === 'GREEN' ? 'selected':'' }}>Green</option>
+                <option value="RED"  {{ $tr->result_color === 'RED' ? 'selected':'' }}>Red</option>
+            </select>
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value and Units</label>
+            <input type="text" name="numericValueAndUnits" class="form-control form-control-sm" value="{{ $tr->numeric_value_and_units }}" />
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value Label</label>
+            <input type="text" name="numericValueLabel" class="form-control form-control-sm" value="{{ $tr->numeric_value_label }}" />
+        </div>
+        <div class="mb-2">
+            <label>Numeric Value Memo</label>
+            <input type="text" name="numericValueMemo" class="form-control form-control-sm" value="{{ $tr->numeric_value_memo }}" />
+        </div>
+        <div class="mb-2">
+            <label>Commentary</label>
+            <input type="text" name="commentary" class="form-control form-control-sm" value="{{ $tr->commentary }}" />
+        </div>
+        <div>
+            <button submit class="btn btn-sm btn-primary me-2">Update</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 3 - 0
resources/views/app/my-account/admin/orders/partials/sidebar.blade.php

@@ -10,6 +10,9 @@ $currentMenu = \Illuminate\Support\Facades\Request::segment(4);
             <li class="nav-item">
                 <a class="nav-link {{\Illuminate\Support\Facades\Route::getCurrentRoute()->getName() === 'admin.orders.view.dashboard' ? 'active' : ''}}" href="{{ route('admin.orders.view.dashboard', $order) }}">Dashboard</a>
             </li>
+            <li class="nav-item">
+                <a class="nav-link {{\Illuminate\Support\Facades\Route::getCurrentRoute()->getName() === 'admin.orders.view.test-results' ? 'active' : ''}}" href="{{ route('admin.orders.view.test-results', $order) }}">Test Results</a>
+            </li>
             <li class="nav-item">
                 <a class="nav-link {{\Illuminate\Support\Facades\Route::getCurrentRoute()->getName() === 'admin.orders.view.financial-transactions' ? 'active' : ''}}" href="{{ route('admin.orders.view.financial-transactions', $order) }}">Financial Transactions</a>
             </li>

+ 49 - 0
resources/views/app/my-account/admin/orders/sub/test-results.blade.php

@@ -0,0 +1,49 @@
+@extends('app.my-account.admin.orders.single')
+
+@section('details')
+
+<div class="my-4">
+    <div class="d-flex align-items-center">
+        <h4 class="mb-0"><b>Test Results</b></h4>
+        <div>
+            @include('app.my-account.admin.orders.forms.create-test-result')
+        </div>
+    </div>
+    <div class="table-responsive">
+        <table class="table table-sm table-hover table-striped table-bordered mb-0">
+            <thead>
+                <tr>
+                    <th>Date</th>
+                    <th>Test Name</th>
+                    <th>Result Category</th>
+                    <th>Result Color</th>
+                    <th>Numeric Value And Units</th>
+                    <th>Numeric Value Label</th>
+                    <th>Numeric Value Memo</th>
+                    <th>commentary</th>
+                    <th>Actions</th>
+                </tr>
+            </thead>
+            <tbody>
+                @foreach($testResults as $tr)
+                <tr>
+                    <td>{{friendly_date($tr->created_at)}}</td>
+                    <td>{{ $tr->test_name }}</td>
+                    <td>{{ $tr->result_category }}</td>
+                    <td>{{ $tr->result_color }}</td>
+                    <td>{{ $tr->numeric_value_and_units }}</td>
+                    <td>{{ $tr->numeric_value_label }}</td>
+                    <td>{{ $tr->numeric_value_memo }}</td>
+                    <td>{{ $tr->commentary }}</td>
+                    <td>
+                        @include('app.my-account.admin.orders.forms.delete-test-result')
+                        @include('app.my-account.admin.orders.forms.update-test-result')
+                    </td>
+                </tr>
+                @endforeach
+            </tbody>
+        </table>
+    </div>
+</div>
+
+@endsection

+ 1 - 0
routes/web.php

@@ -78,6 +78,7 @@ Route::group(['middleware' => ['ensureUserLoggedIn']], function () {
                 Route::get('/dashboard', [AdminController::class, 'orderDashboard'])->name('.dashboard');
                 Route::get('/preview-invoice', [AdminController::class, 'orderPreviewInvoice'])->name('.preview-invoice');
                 Route::get('/financial-transactions', [AdminController::class, 'orderFinancialTransactions'])->name('.financial-transactions');
+                Route::get('/test-results', [AdminController::class, 'orderTestResults'])->name('.test-results');
                 Route::post('/order-charge', [AdminController::class, 'orderCharge'])->name('.order-charge');
                 Route::post('/file/upload', [AdminController::class, 'uploadFile'])->name('.upload-file');
                 Route::post('/file/delete', [AdminController::class, 'deleteFile'])->name('.delete-file');