瀏覽代碼

Matrix - all supply orders that are not cancelled, but in shipments that have status = cancelled

Vijayakrishnan 4 年之前
父節點
當前提交
dac0019292

+ 25 - 1
app/Http/Controllers/PracticeManagementController.php

@@ -792,6 +792,23 @@ class PracticeManagementController extends Controller
         return view('app.practice-management.supply-orders-shipment-underway', compact('supplyOrders', 'counts'));
     }
 
+    public function supplyOrdersHanging(Request $request)
+    {
+        $counts = $this->getSupplyOrderCounts();
+        $supplyOrders = SupplyOrder
+            ::select('supply_order.*')
+            ->leftJoin('shipment', function($join) {
+                $join->on('supply_order.shipment_id', '=', 'shipment.id');
+            })
+            ->where('shipment.status', 'CANCELLED')
+            ->where('supply_order.is_cancelled', false)
+            ->orderBy('supply_order.client_id', 'ASC')
+            ->orderBy('supply_order.mailing_address_full', 'ASC')
+            ->orderBy('supply_order.created_at', 'ASC')
+            ->paginate();
+        return view('app.practice-management.supply-orders-hanging', compact('supplyOrders', 'counts'));
+    }
+
     private function getSupplyOrderCounts()
     {
         return [
@@ -802,7 +819,14 @@ class PracticeManagementController extends Controller
                 ->whereNull('shipment_id')->count(),
             "supplyOrdersShipmentUnderway" => SupplyOrder
                 ::where('is_cancelled', false)
-                ->whereNotNull('shipment_id')->count()
+                ->whereNotNull('shipment_id')->count(),
+            "supplyOrdersHanging" => SupplyOrder
+                ::leftJoin('shipment', function($join) {
+                    $join->on('supply_order.shipment_id', '=', 'shipment.id');
+                })
+                ->where('shipment.status', 'CANCELLED')
+                ->where('supply_order.is_cancelled', false)
+                ->count(),
         ];
     }
 

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

@@ -0,0 +1,56 @@
+@extends ('layouts/template')
+
+@section('content')
+
+    <div id="practice-supply-orders" class="p-3 mcp-theme-1">
+        <div class="card">
+
+            <div class="card-header px-3 py-3 d-flex align-items-center bg-white">
+                <strong class="font-size-14">
+                    Supply Orders - Hanging ({{$counts['supplyOrdersHanging']}})
+                </strong>
+                <span class="mx-3 text-secondary">|</span>
+                <a href="{{route('practice-management.supply-orders-ready-to-ship')}}">Ready to Ship ({{$counts['supplyOrdersReadyToShip']}})</a>
+                <span class="mx-3 text-secondary">|</span>
+                <a href="{{route('practice-management.supply-orders-shipment-underway')}}">Shipment Underway ({{$counts['supplyOrdersShipmentUnderway']}})</a>
+                <span class="mx-3 text-secondary">|</span>
+                <a href="{{route('practice-management.supply-orders')}}">All ({{$counts['supplyOrders']}})</a>
+            </div>
+            <div class="card-body p-0">
+                <table class="table table-sm table-condensed p-0 m-0" style="table-layout: fixed">
+                    <thead class="bg-light">
+                    <tr>
+                        <th class="border-0">Patient</th>
+                        <th class="border-0">Address</th>
+                        <th class="border-0">Item(s)</th>
+                        <th class="border-0">Shipment</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    @foreach ($supplyOrders as $supplyOrder)
+                        <tr class="{{$supplyOrder->is_cancelled ? 'bg-light' : ''}}"
+                            data-client-uid="{{$supplyOrder->client->uid}}">
+                            <td class="align-top border-top-0">
+                                <a href="{{route('patients.view.supply-orders',['patient'=>$supplyOrder->client, 'supplyOrder'=>$supplyOrder])}}"> {{$supplyOrder->client->displayName()}}</a>
+                            </td>
+                            <td class="align-top border-top-0">
+                                {!! $supplyOrder->mailing_address_full ? implode(" ", [$supplyOrder->mailing_address_line1 . ' ' . $supplyOrder->mailing_address_line2, $supplyOrder->mailing_address_city . ' ' . $supplyOrder->mailing_address_state . ' ' . $supplyOrder->mailing_address_zip]) : '-'  !!}
+                            </td>
+                            <td class="align-top border-top-0">
+                                {{$supplyOrder->product->title}}
+                            </td>
+                            <td class="align-top border-top-0">
+                                <b>CANCELLED</b>
+                            </td>
+                        </tr>
+                    @endforeach
+                    </tbody>
+                </table>
+                <div>
+                    {{$supplyOrders->links()}}
+                </div>
+            </div>
+        </div>
+    </div>
+
+@endsection

+ 4 - 0
resources/views/app/practice-management/supply-orders-ready-to-ship.blade.php

@@ -11,6 +11,10 @@
                 </strong>
                 <span class="mx-3 text-secondary">|</span>
                 <a href="{{route('practice-management.supply-orders-shipment-underway')}}">Shipment Underway ({{$counts['supplyOrdersShipmentUnderway']}})</a>
+                @if($counts['supplyOrdersHanging'])
+                    <span class="mx-3 text-secondary">|</span>
+                    <a href="{{route('practice-management.supply-orders-hanging')}}" class="text-warning-mellow font-weight-bold"><i class="fa fa-exclamation-triangle"></i>&nbsp;Hanging ({{$counts['supplyOrdersHanging']}})</a>
+                @endif
                 <span class="mx-3 text-secondary">|</span>
                 <a href="{{route('practice-management.supply-orders')}}">All ({{$counts['supplyOrders']}})</a>
 <!--                <a href="{{route('practice-management.supply-orders-ready-to-ship')}}" class="ml-auto">Clear Filters</a>-->

+ 4 - 1
resources/views/app/practice-management/supply-orders-shipment-underway.blade.php

@@ -11,9 +11,12 @@
                 </strong>
                 <span class="mx-3 text-secondary">|</span>
                 <a href="{{route('practice-management.supply-orders-ready-to-ship')}}">Ready to Ship ({{$counts['supplyOrdersReadyToShip']}})</a>
+                @if($counts['supplyOrdersHanging'])
+                    <span class="mx-3 text-secondary">|</span>
+                    <a href="{{route('practice-management.supply-orders-hanging')}}" class="text-warning-mellow font-weight-bold"><i class="fa fa-exclamation-triangle"></i>&nbsp;Hanging ({{$counts['supplyOrdersHanging']}})</a>
+                @endif
                 <span class="mx-3 text-secondary">|</span>
                 <a href="{{route('practice-management.supply-orders')}}">All ({{$counts['supplyOrders']}})</a>
-<!--                <a href="{{route('practice-management.supply-orders-ready-to-ship')}}" class="ml-auto">Clear Filters</a>-->
             </div>
             <div class="card-body p-0">
                 <table class="table table-sm table-condensed p-0 m-0" style="table-layout: fixed">

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

@@ -13,6 +13,10 @@
             <a href="{{route('practice-management.supply-orders-ready-to-ship')}}">Ready to Ship ({{$counts['supplyOrdersReadyToShip']}})</a>
             <span class="mx-3 text-secondary">|</span>
             <a href="{{route('practice-management.supply-orders-shipment-underway')}}">Shipment Underway ({{$counts['supplyOrdersShipmentUnderway']}})</a>
+            @if($counts['supplyOrdersHanging'])
+                <span class="mx-3 text-secondary">|</span>
+                <a href="{{route('practice-management.supply-orders-hanging')}}" class="text-warning-mellow font-weight-bold"><i class="fa fa-exclamation-triangle"></i>&nbsp;Hanging ({{$counts['supplyOrdersHanging']}})</a>
+            @endif
             @if(count(request()->all()))
                 <a href="{{route('practice-management.supply-orders')}}" class="ml-auto">Clear Filters</a>
             @endif

+ 1 - 0
routes/web.php

@@ -120,6 +120,7 @@ Route::middleware('pro.auth')->group(function () {
             Route::get('supply-orders', 'PracticeManagementController@supplyOrders')->name('supply-orders');
             Route::get('supply-orders/ready-to-ship', 'PracticeManagementController@supplyOrdersReadyToShip')->name('supply-orders-ready-to-ship');
             Route::get('supply-orders/shipment-underway', 'PracticeManagementController@supplyOrdersShipmentUnderway')->name('supply-orders-shipment-underway');
+            Route::get('supply-orders/hanging', 'PracticeManagementController@supplyOrdersHanging')->name('supply-orders-hanging');
             Route::get('shipments', 'PracticeManagementController@shipments')->name('shipments');
             Route::get('shipments/ready-to-print', 'PracticeManagementController@shipmentsReadyToPrint')->name('shipments-ready-to-print');
             Route::get('shipments/waiting-for-picker', 'PracticeManagementController@shipmentsShipmentUnderway')->name('shipments-waiting-for-picker');