Selaa lähdekoodia

Supply orders matrix

Vijayakrishnan 4 vuotta sitten
vanhempi
commit
406f0dc536

+ 15 - 3
app/Http/Controllers/PracticeManagementController.php

@@ -18,6 +18,8 @@ use App\Models\ProSpecificAvailability;
 use App\Models\ProSpecificUnavailability;
 use App\Models\ProTextShortcut;
 use App\Models\ProTransaction;
+use App\Models\Shipment;
+use App\Models\SupplyOrder;
 use App\Models\Ticket;
 use Illuminate\Support\Facades\DB;
 use PDF;
@@ -355,16 +357,16 @@ class PracticeManagementController extends Controller
 
         $clients = Client::whereNotNull('active_mcp_request_id')->where(function($query) use ($myInitiativesList){
             $query->whereNull('initiative')->orWhereIn('initiative', $myInitiativesList);
-        }) 
+        })
         ->where(function($query) use ($myForeignLanguagesList) {
             $query->whereNull('preferred_foreign_language')->orWhereIn('preferred_foreign_language', $myForeignLanguagesList);
         })->limit(3)->get();
         $results = [];
-      
+
 
         foreach($clients as $client){
             $results[] = [
-                'clientUid' => $client->uid, 
+                'clientUid' => $client->uid,
                 'name' => $client->displayName(),
                 'initials'=> substr($client->name_first, 0, 1) . substr($client->name_last, 0, 1)
             ];
@@ -531,6 +533,16 @@ class PracticeManagementController extends Controller
         return view('app.practice-management.tickets', compact('tickets'));
     }
 
+    public function supplyOrders(Request $request, $filter = null) {
+        $supplyOrders = SupplyOrder::orderBy('created_at', 'desc')->paginate();
+        return view('app.practice-management.supply-orders', compact('supplyOrders'));
+    }
+
+    public function shipments(Request $request, $filter = null) {
+        $shipments = Shipment::orderBy('created_at', 'desc')->paginate();
+        return view('app.practice-management.shipments', compact('shipments'));
+    }
+
     public function cellularMeasurements(Request $request){
         $measurements = Measurement::orderBy('ts', 'desc')->whereNotNull('ts')->paginate();
         return view('app.practice-management.cellular-measurements', compact('measurements'));

+ 5 - 0
app/Models/SupplyOrder.php

@@ -8,6 +8,11 @@ class SupplyOrder extends Model
 {
     protected $table = 'supply_order';
 
+    public function client()
+    {
+        return $this->hasOne(Client::class, 'id', 'client_id');
+    }
+
     public function product()
     {
         return $this->hasOne(Product::class, 'id', 'product_id');

+ 103 - 0
resources/views/app/practice-management/supply-orders.blade.php

@@ -0,0 +1,103 @@
+@extends ('layouts/template')
+
+@section('content')
+
+    <div class="p-3 mcp-theme-1">
+    <div class="card">
+
+        <div class="card-header px-3 py-2 d-flex align-items-center">
+            <strong class="mr-4">
+                <i class="fas fa-user-injured"></i>
+                Supply Orders
+            </strong>
+
+        </div>
+        <div class="card-body p-0">
+            <table class="table table-sm table-condensed p-0 m-0">
+                <thead class="bg-light">
+                <tr>
+                    <th>Client</th>
+                    <th>Product</th>
+                    <th>Reason</th>
+                    <th>Client Understanding Memo</th>
+                    <th>Pro Sign</th>
+                    <th>Client Sign</th>
+                    <th>Shipment</th>
+                    <th>Lot #</th>
+                    <th>IMEI</th>
+                    <th>Created At</th>
+                    <th>Cancelled?</th>
+                </tr>
+                </thead>
+                <tbody>
+                @foreach ($supplyOrders as $supplyOrder)
+                    <tr>
+                        <td>{{$supplyOrder->client->displayName()}}</a></td>
+                        <td>{{$supplyOrder->product->title}}</td>
+                        <td>{{$supplyOrder->reason}}</td>
+                        <td>{{$supplyOrder->client_understanding_memo}}</td>
+                        <td>
+                            @if($supplyOrder->is_signed_by_pro)
+                                <b>Signed</b>
+                                <div class="text-secondary text-sm">
+                                    By {{$supplyOrder->signedPro->displayName()}}<br>
+                                    {{friendlier_date_time($supplyOrder->pro_signed_at)}}
+                                </div>
+                            @else
+                                Not Signed
+                            @endif
+                        </td>
+                        <td>
+                            @if($supplyOrder->is_signed_by_client)
+                                <b>Signed</b>
+                                <div class="text-secondary text-sm">
+                                    By {{$patient->displayName()}}<br>
+                                    On {{friendlier_date_time($supplyOrder->client_signed_at)}}
+                                </div>
+                            @elseif($supplyOrder->is_client_signature_waived)
+                                <b>Waived</b>
+                                <div class="text-secondary text-sm">
+                                    By {{$supplyOrder->waiverPro->displayName()}}<br>
+                                    on {{friendlier_date_time($supplyOrder->client_signature_waived_at)}}
+                                </div>
+                            @else
+                                Not Signed
+                            @endif
+                        </td>
+                        <td>
+                            @if($supplyOrder->shipment_id)
+                                <i class="fa fa-building"></i>
+                                {{$supplyOrder->shipment->status ? $supplyOrder->shipment->status : 'CREATED'}}
+                                @if($supplyOrder->shipment && $supplyOrder->shipment->status === 'DELIVERED' && $supplyOrder->shipment->delivered_date)
+                                    <div class="text-secondary text-sm">
+                                    on {{friendlier_date_time($supplyOrder->shipment->delivered_date)}}
+                                    </div>
+                                @endif
+                            @elseif($supplyOrder->is_cleared_for_shipment)
+                                <i class="fa fa-user-nurse"></i>
+                                Cleared for shipment
+                                <div class="text-secondary text-sm">
+                                    By {{$supplyOrder->clearedForShipmentPro->displayName()}}<br>
+                                    on {{friendlier_date_time($supplyOrder->cleared_for_shipment_at)}}
+                                </div>
+                            @else
+                                <i class="fa fa-user-nurse"></i>
+                                Not cleared for shipment
+                            @endif
+                        </td>
+                        <td>{{$supplyOrder->lot_number}}</td>
+                        <td>{{$supplyOrder->imei}}</td>
+                        <td>{{friendlier_date_time($supplyOrder->created_at)}}</td>
+                        <td>{{$supplyOrder->is_cancelled ? 'Yes' : 'No'}}</td>
+                    </tr>
+                @endforeach
+                </tbody>
+            </table>
+            <div>
+                {{$supplyOrders->links()}}
+            </div>
+        </div>
+    </div>
+    </div>
+
+@endsection

+ 3 - 1
resources/views/layouts/template.blade.php

@@ -122,7 +122,9 @@
                             <a class="dropdown-item" href="{{ route('practice-management.claims') }}">Claims</a>
                             <a class="dropdown-item" href="{{ route('practice-management.hcpBillMatrix') }}">HCP Bill Matrix</a>
                             <a class="dropdown-item" href="{{ route('practice-management.treatmentServiceUtil') }}">Treatment Service Util.</a>
-                            <a class="dropdown-item" href="/practice-management/tickets">Tickets</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.tickets') }}">Tickets</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.supply-orders') }}">Supply Orders</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.shipments') }}">Shipments</a>
                         @endif
                     </div>
                 </li>

+ 3 - 0
routes/web.php

@@ -106,6 +106,9 @@ Route::middleware('pro.auth')->group(function () {
 
             Route::get('treatment-service-util', 'PracticeManagementController@treatmentServiceUtil')->name('treatmentServiceUtil');
 
+            Route::get('supply-orders', 'PracticeManagementController@supplyOrders')->name('supply-orders');
+            Route::get('shipments', 'PracticeManagementController@shipments')->name('shipments');
+
         });
     });