소스 검색

Appointments

Samson Mutunga 3 년 전
부모
커밋
4b18404d58
3개의 변경된 파일58개의 추가작업 그리고 39개의 파일을 삭제
  1. 6 2
      app/Http/Controllers/McpController.php
  2. 25 12
      resources/views/app/mcp/appointments.blade.php
  3. 27 25
      resources/views/app/mcp/appointments_filters.blade.php

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

@@ -148,8 +148,12 @@ class McpController extends Controller
 
     public function appointments(Request $request)
     {
-        $appointments = Appointment::paginate(5);
-        return view('app.mcp.appointments', compact('appointments'));
+        $filters = $request->all();
+        $appointments = Appointment::where('pro_id', $this->performer->pro->id);
+        $this->filterMultiQuery($request, $appointments, 'raw_date', 'date_category', 'date_value_1', 'date_value_2');
+        $this->filterSimpleQuery($request, $appointments, 'status', 'status');
+        $appointments = $appointments->orderBy('end_time', 'DESC')->paginate(20);
+        return view('app.mcp.appointments', compact('appointments', 'filters'));
     }
 
     public function bills(Request $request)

+ 25 - 12
resources/views/app/mcp/appointments.blade.php

@@ -18,23 +18,36 @@
             <table class="table table-condensed p-0 m-0">
                 <thead class="bg-light">
                     <tr>
-                        <th class="px-3 border-0">Date</th>
-                        <th class="px-3 border-0">HCP</th>
-                        <th class="px-3 border-0">Patient</th>
-                        <th class="px-3 border-0">New or FU?</th>
+                        <th class="px-3 border-0">Date & Time</th>
+                        <th class="px-3 border-0">Pro</th>
+                        <th class="px-3 border-0">Title</th>
+                        <th class="px-3 border-0">Description</th>
                         <th class="px-3 border-0">Status</th>
-                        <th class="px-3 border-0">Note</th>
+                        <th class="px-3 border-0">Confirmation</th>
                     </tr>
                 </thead>
                 <tbody>
                     @foreach($appointments as $appointment)
                     <tr>
-                        <td>{{-- date --}} -</td>
-                        <td>{{-- hcp --}} -</td>
-                        <td>{{-- patient --}} - </td>
-                        <td>{{-- New or FU? --}} - </td>  
-                        <td>{{-- Status --}} - </td>  
-                        <td>{{-- Note --}} - </td>
+                        <td class="px-2">
+                            <a href="/patients/view/{{$appointment->client->uid}}/calendar/{{$appointment->uid}}" class="font-weight-bold">
+                                {{friendlier_date_time($appointment->raw_date . ' ' . $appointment->raw_start_time)}}
+                            </a>
+                        </td>
+                        <td class="px-2">{{ $appointment->pro->displayName() }}</pre>
+                        </td>
+                        <td class="px-2">{{ $appointment->title }}</td>
+                        <td class="px-2">{{ $appointment->description }}</td>
+                        <td class="px-2">
+                            {{ $appointment->status }}
+                            @if($appointment->status_memo)
+                            <hr>
+                            {{$appointment->status_memo}}
+                            @endif
+                        </td>
+                        <td class="px-2">
+                            @include('app.patient.partials.appointment-confirmation',['patient' => $appointment->client])
+                        </td>
                     </tr>
                     @endforeach
 
@@ -52,4 +65,4 @@
         </div>
     </div>
 </div>
-@endsection
+@endsection

+ 27 - 25
resources/views/app/mcp/appointments_filters.blade.php

@@ -35,24 +35,11 @@
 		<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>
-			</select>
-		</div>
-	</div>
-
-	<!-- NEW/FU -->
-	<div class="col-md-2">
-		<div class="form-group">
-			<label>New or FU:</label>
-			<select name="new_or_fu" class="form-control input-sm" v-model="filters.new_or_fu">
-				<option value="ALL">All</option>
-				<option value="NEW">New</option>
-				<option value="FU">FU</option>
+				<option value="">All</option>
+				<option value="PENDING">PENDING</option>
+				<option value="CONFIRMED">CONFIRMED</option>
+				<option value="CANCELLED">CANCELLED</option>
+				<option value="COMPLETED">COMPLETED</option>
 			</select>
 		</div>
 	</div>
@@ -60,12 +47,27 @@
 	<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.appointments')}}')" 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() {
@@ -73,13 +75,13 @@
 				el: '#mcp-appointments-filters',
 				delimiters: ['@{{', '}}'],
 				data: {
-					filters: {
-						date_category: "<?= $date_category ?? '' ?>",
-						status: "<?= $status ?? '' ?>",
-						new_or_fu: "<?= $new_or_fu ?? '' ?>"
-					}
+					filters: <?= json_encode($loadedFilters) ?>
 				},
 				methods: {
+					doSubmit: function() {
+						fastLoad('{{ route("mcp.appointments") }}?' + $('#mcp-appointments-filters').serialize());
+						return false;
+					},
 					init: function() {
 
 					}