瀏覽代碼

Supply table & filters

Samson Mutunga 3 年之前
父節點
當前提交
d13a085b82

+ 19 - 2
app/Http/Controllers/McpController.php

@@ -172,8 +172,25 @@ class McpController extends Controller
 
     public function supply_orders(Request $request)
     {
-        $supplyOrders = SupplyOrder::paginate(5);
-        return view('app.mcp.supply_orders', compact('supplyOrders'));
+        $filters = $request->all();
+        $supplyOrders = SupplyOrder::select('supply_order.*')->where('supply_order.signed_by_pro_id', $this->performer->pro->id);
+        $this->filterMultiQuery($request, $supplyOrders, 'created_at', 'date_category', 'date_value_1', 'date_value_2');
+        $status = $request->get('status');
+        
+        if($status){
+            if($status == 'CLEARED_FOR_SHIPMENT'){
+                $supplyOrders = $supplyOrders->where('is_cleared_for_shipment', true);
+            }elseif($status == 'NOT_CLEARED_FOR_SHIPMENT'){
+                $supplyOrders = $supplyOrders->where('is_cleared_for_shipment', false);
+            }elseif($status == 'CANCELLED'){
+                $supplyOrders = $supplyOrders->where('is_cancelled', true);
+            }else{
+             $supplyOrders = $supplyOrders->join('shipment', 'shipment.id', '=', 'supply_order.shipment_id')->where('shipment.status', $status);   
+            }
+            
+        }
+        $supplyOrders = $supplyOrders->orderBy('created_at', 'DESC')->paginate(20);
+        return view('app.mcp.supply_orders', compact('supplyOrders', 'filters'));
     }
 
     public function client_messages(Request $request)

+ 2 - 2
resources/views/app/mcp/client_messages.blade.php

@@ -30,7 +30,7 @@
                 <tbody>
                     @foreach($clientMessages as $clientMessage)
                     <tr>
-                        <td>{{ date('M d, Y h:i A', strtotime($clientMessage->created_at))}}</td>
+                        <td>{{ friendlier_date_time($clientMessage->created_at) }}</td>
                         <td>{{ $clientMessage->incoming_or_outgoing }}</td>
                         <td>{{$clientMessage->to_number}}</td>
                         <td>{{$clientMessage->from_number}}</td>
@@ -42,7 +42,7 @@
 
                     @if(count($clientMessages) === 0)
                     <tr>
-                        <td colspan="5">No records found!</td>
+                        <td colspan="7">No records found!</td>
                     </tr>
                     @endif
                 </tbody>

+ 24 - 7
resources/views/app/mcp/supply_orders.blade.php

@@ -22,23 +22,40 @@
                         <th class="px-3 border-0">Patient</th>
                         <th class="px-3 border-0">Product</th>
                         <th class="px-3 border-0">Reason</th>
-                        <th class="px-3 border-0">Status</th>
+                        <th class="px-3 border-0">Is Cancelled</th>
+                        <th class="px-3 border-0">Shipment</th>
                     </tr>
                 </thead>
                 <tbody>
                     @foreach($supplyOrders as $supplyOrder)
                     <tr>
-                        <td>{{-- date --}} -</td>
-                        <td>{{-- patient --}} -</td>
-                        <td>{{-- service --}} - </td>
-                        <td>{{-- amount --}} - </td>
-                        <td>{{-- status --}} - </td>
+                        <td>{{ friendlier_date_time($supplyOrder->created_at)}}</td>
+                        <td>{{ $supplyOrder->client->displayName() }} -</td>
+                        <td>{{ $supplyOrder->product->title }}</td>
+                        <td style="width: 300px;">{{ $supplyOrder->reason }}</td>
+                        <td>{{ $supplyOrder->is_cancelled ? 'Yes' : 'No' }}</td>
+                        <td class="px-2">
+                            @if($supplyOrder->shipment_id)
+                            <i class="fa fa-building"></i>
+                            {{$supplyOrder->shipment->status ? $supplyOrder->shipment->status : 'CREATED'}}
+                            @elseif($supplyOrder->is_cleared_for_shipment)
+                            <span class="text-info">
+                                <i class="fa fa-user-nurse"></i>
+                                Cleared for shipment
+                            </span>
+                            @else
+                            <span class="text-warning-mellow">
+                                <i class="fa fa-user-nurse"></i>
+                                Not cleared for shipment
+                            </span>
+                            @endif
+                        </td>
                     </tr>
                     @endforeach
 
                     @if(count($supplyOrders) === 0)
                     <tr>
-                        <td colspan="5">No records found!</td>
+                        <td colspan="6">No records found!</td>
                     </tr>
                     @endif
                 </tbody>

+ 38 - 14
resources/views/app/mcp/supply_orders_filters.blade.php

@@ -7,7 +7,7 @@
 		min-width: 100px;
 	}
 </style>
-<form id="mcp-supply-orders-filters" method="GET" action="{{ route('mcp.notes') }}" class="row align-items-end" v-cloak>
+<form id="mcp-supply-orders-filters" method="GET" action="{{ route('mcp.supply_orders') }}" class="row align-items-end" v-cloak>
 	<!-- DATE	 -->
 	<div class="col-md-2">
 		<div class="form-group">
@@ -39,12 +39,22 @@
 		<div class="form-group">
 			<label>Status:</label>
 			<select name="status" class="form-control input-sm" v-model="filters.status">
-				<option value="ALL">All</option>
-				<option value="NEW">New</option>
-				<option value="SIGNED">Signed</option>
-				<option value="VERIFIED">Verified</option>
-				<option value="PROCESSED">Processed</option>
-				<option value="CANCELLED">Cancelled</option>
+				<option value="">All</option>
+				<option value="CREATED">NEW</option>
+				<option value="CLEARED_FOR_SHIPMENT">CLEARED FOR SHIPMENT</option>
+				<option value="NOT_CLEARED_FOR_SHIPMENT">NOT CLEARED FOR SHIPMENT</option>
+				<option value="SHIPPED">SHIPPED</option>
+				<option value="DELIVERED">DELIVERED</option>
+				<option value="RETURNED_TO_SENDER">RETURNED TO SENDER</option>
+				<option value="CANCELLED">CANCELLED</option>
+				<option value="PRINTED">PRINTED</option>
+				<option value="BEING_PICKED">BEING PICKED</option>
+				<option value="PICKED">PICKED</option>
+				<option value="BEING_SCANNED">BEING SCANNED</option>
+				<option value="SCANNED">SCANNED</option>
+				<option value="BEING_FULFILLED">BEING FULFILLED</option>
+				<option value="FULFILLED">FULFILLED</option>
+				<option value="DISPATCHED">DISPATCHED</option>
 			</select>
 		</div>
 	</div>
@@ -52,12 +62,25 @@
 	<div class="col-md-2">
 		<div class="form-group d-flex">
 			<label>&nbsp;</label>
-			<button type="submit" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
-			<a href="{{ route('mcp.patients') }}" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
+			<button type="submit" v-on:click.prevent="doSubmit()" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
+			<a href="#" v-on:click.prevent="fastLoad('{{route('mcp.supply_orders')}}')" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
 		</div>
 	</div>
 </form>
-
+<?php
+$loadedFilters = $filters;
+$allFilterKeys = [
+	'date_category',
+	'date_value_1',
+	'date_value_2',
+	'status'
+];
+for ($i=0; $i < count($allFilterKeys); $i++) {
+	if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {
+		$loadedFilters[$allFilterKeys[$i]] = '';
+	}
+}
+?>
 <script>
 	(function() {
 		function init() {
@@ -65,12 +88,13 @@
 				el: '#mcp-supply-orders-filters',
 				delimiters: ['@{{', '}}'],
 				data: {
-					filters: {
-						date_category: "<?= $date_category ?? '' ?>",
-						status: "<?= $status ?? '' ?>"
-					}
+					filters: <?= json_encode($loadedFilters) ?>
 				},
 				methods: {
+					doSubmit: function() {
+						fastLoad('{{ route("mcp.supply_orders") }}?' + $('#mcp-supply-orders-filters').serialize());
+						return false;
+					},
 					init: function() {
 
 					}