Browse Source

Bill flag soccer

Samson Mutunga 3 years ago
parent
commit
fc5cdfc083

+ 22 - 0
app/Models/AdministratorBillFlagUpdate.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class AdministratorBillFlagUpdate extends Model
+{
+    protected $table = 'administrator_bill_flag_update';
+
+    public function billl() {
+        return $this->hasOne(Bill::class, 'id', 'bill_id');
+    }
+
+    public function billFlagAcknowledgedByProAdmin() {
+        return $this->hasOne(Pro::class, 'id', 'flagged_by_administrator_pro_id');
+    }
+
+    public function billFlagAcknowledgedByPro() {
+        return $this->hasOne(Pro::class, 'id', 'administrator_flag_acknowledged_by_pro_id');
+    }
+}

+ 8 - 0
app/Models/Bill.php

@@ -44,4 +44,12 @@ class Bill extends Model
     public function genericCompanyPro() {
     public function genericCompanyPro() {
         return $this->hasOne(CompanyPro::class, 'id', 'generic_company_pro_id');
         return $this->hasOne(CompanyPro::class, 'id', 'generic_company_pro_id');
     }
     }
+
+    public function billFlagAcknowledgedByProAdmin() {
+        return $this->hasOne(Pro::class, 'id', 'flagged_by_administrator_pro_id');
+    }
+
+    public function billFlagAcknowledgedByPro() {
+        return $this->hasOne(Pro::class, 'id', 'administrator_flag_acknowledged_by_pro_id');
+    }
 }
 }

+ 8 - 1
resources/views/app/patient/note/dashboard.blade.php

@@ -1524,7 +1524,13 @@ use App\Models\Handout;
                                             </form>
                                             </form>
                                         </div>
                                         </div>
                                     @endif
                                     @endif
-
+                                    <div class="d-flex align-items-center">
+                                        @if($pro->pro_type === 'ADMIN')
+                                            @include('app.patient.note.partials.bill-flags-history')
+                                        @endif
+                                        @include('app.patient.note.flag-bill')
+                                    </div>
+                                    
                                 </td>
                                 </td>
                                 <td class="pr-3 screen-only">
                                 <td class="pr-3 screen-only">
                                     @if($bill->has_hcp_been_paid)
                                     @if($bill->has_hcp_been_paid)
@@ -2029,6 +2035,7 @@ use App\Models\Handout;
                                             </span>
                                             </span>
                                         @endif
                                         @endif
                                     </div>
                                     </div>
+                                    @include('app.patient.note.flag-bill')
                                 </td>
                                 </td>
                             </tr>
                             </tr>
                         @endforeach
                         @endforeach

+ 188 - 0
resources/views/app/patient/note/flag-bill.blade.php

@@ -0,0 +1,188 @@
+<div class="{{ $bill->is_flagged_by_administrator && !$bill->is_administrator_flag_cleared ? 'alert alert-danger p-1 rounded-0' : '' }}">
+<?php #dump($bill); ?>
+@if($pro->pro_type === 'ADMIN')
+	@if($bill->is_flagged_by_administrator && !$bill->is_administrator_flag_cleared)
+		<div class="d-flex flex-column">
+			<span><b>Flagged At:</b> {{ friendly_date_time($bill->flagged_administrator_at) }}</span>
+			<small class="text-muted"><b><i class="fas fa-comment text-primary"></i></b> {{ $bill->administrator_flag_memo }}</small>
+			<small class="text-muted text-sm">Flagged By: <i class="fas fa-user"></i> {{ $bill->billFlagAcknowledgedByProAdmin->displayName() }}</small>
+		</div>
+
+		@if($bill->is_administrator_flag_acknowledged && $bill->administrator_flag_acknowledged_at > $bill->flagged_administrator_at)
+			<!-- This is resolved -->
+			<div class="border-top border-light mt-2 pt-2">
+				<div class="d-flex flex-column">
+					<span><b>Ack. At:</b> {{ friendly_date_time($bill->administrator_flag_acknowledged_at) }}</span>
+					<small class="text-muted"><b><i class="fas fa-comment"></i></b> {{ $bill->administrator_flag_acknowledgement_memo }}</small>
+					<small class="text-muted text-sm">Ack. By: <i class="fas fa-user"></i> {{ $bill->billFlagAcknowledgedByPro->displayName() }}</small>
+				</div>
+			</div>
+		@endif
+			<!-- Flagged by admin, pending ack. by pro -->
+			<div class="border-top border-light mt-2 pt-2">
+				<div class="d-flex">
+					@if($bill->is_administrator_flag_acknowledged)
+						<div moe>
+							<a start class="text-success"><i class="fas fa-flag  on-hover-opaque"></i> Clear Flag</a>
+							<form url="/api/bill/clearFlag" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<p class="mb-1">Are you sure?</p>
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control"></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-success mr-1">Clear Flag</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+					@else
+						<div moe>
+							<a start class="text-success"><i class="fas fa-flag  on-hover-opaque"></i> Unflag Bill</a>
+							<form url="/api/bill/undoFlagAsAdministrator" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<p class="mb-1">Are you sure?</p>
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control"></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-success mr-1">Unflag Bill</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+					@endif
+					<span class="mx-2 text-muted">|</span>
+					@if($bill->is_administrator_flag_acknowledged)
+						<div moe>
+							<a start class="text-danger"><i class="fas fa-flag  on-hover-opaque"></i> Flag Bill Again</a>
+							<form url="/api/bill/flagAsAdministrator" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<p class="mb-1">Are you sure?</p>
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control" required></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-danger mr-1">Flag Bill</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+					@else
+						<div moe>
+							<a start class="text-primary">Update Memo</a>
+							<form url="/api/bill/updateFlagMemo" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control"><?= $bill->administrator_flag_memo ?></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-primary mr-1">Update</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+					@endif
+				</div>
+			</div>
+		
+	@else
+		<!-- Not flagged, show flag popup -->
+		<!-- //api/bill//flagAsAdministrator -->
+		<div moe>
+			<a start class="text-danger"><i class="fas fa-flag  on-hover-opaque"></i> Flag Bill</a>
+			<form url="/api/bill/flagAsAdministrator" class="mcp-theme-1">
+				<input type="hidden" name="uid" value="{{$bill->uid}}">
+				<p class="mb-1">Are you sure?</p>
+				<div class="form-group">
+					<label>Memo:</label>
+					<textarea name="memo" rows="2" class="form-control" required></textarea>
+				</div>
+				<div>
+					<button submit class="btn btn-sm btn-danger mr-1">Flag Bill</button>
+					<button cancel class="btn btn-sm btn-default border">Cancel</button>
+				</div>
+			</form>
+		</div>
+	@endif
+
+@else
+<!-- HCP -->
+	@if($bill->is_flagged_by_administrator && !$bill->is_administrator_flag_cleared)
+		<div class="d-flex flex-column">
+			<span><b>Flagged At:</b> {{ friendly_date_time($bill->flagged_administrator_at) }}</span>
+			<small class="text-muted"><b><i class="fas fa-comment text-primary"></i></b> {{ $bill->administrator_flag_memo }}</small>
+			<small class="text-muted text-sm">Flagged By: <i class="fas fa-user"></i> {{ $bill->billFlagAcknowledgedByProAdmin->displayName() }}</small>
+		</div>
+
+		@if($bill->is_administrator_flag_acknowledged && $bill->administrator_flag_acknowledged_at > $bill->flagged_administrator_at)
+			<!-- hcp has ack. -->
+			<div class="border-top border-light mt-2 pt-2">
+				<div class="d-flex flex-column">
+					<span><b>Ack. At:</b> {{ friendly_date_time($bill->administrator_flag_acknowledged_at) }}</span>
+					<small class="text-muted"><b><i class="fas fa-comment"></i></b> {{ $bill->administrator_flag_acknowledgement_memo }}</small>
+					<small class="text-muted text-sm">Ack. By: <i class="fas fa-user"></i> {{ $bill->billFlagAcknowledgedByPro->displayName() }}</small>
+					<div class="d-flex">
+						<div moe>
+							<a start class="text-danger"><i class="fas fa-undo fa-fw  on-hover-opaque"></i> Undo Ack.</a>
+							<form url="/api/bill/undoAcknowledgeAdministratorFlag" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<p class="mb-1">Are you sure?</p>
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control"></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-danger mr-1">Undo Ack.</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+						<span class="mx-2 text-muted">|</span>
+						<div moe>
+							<a start class="text-primary">Update Memo</a>
+							<form url="/api/bill/updateAcknowledgementMemo" class="mcp-theme-1">
+								<input type="hidden" name="uid" value="{{$bill->uid}}">
+								<div class="form-group">
+									<label>Memo:</label>
+									<textarea name="memo" rows="2" class="form-control"><?= $bill->administrator_flag_acknowledgement_memo ?></textarea>
+								</div>
+								<div>
+									<button submit class="btn btn-sm btn-primary mr-1">Update</button>
+									<button cancel class="btn btn-sm btn-default border">Cancel</button>
+								</div>
+							</form>
+						</div>
+					</div>
+				</div>
+			</div>
+		
+		@else
+			<!-- Needs hcp ack. -->
+			<div class="border-top border-light mt-2 pt-2">
+			<div moe>
+				<a start class="text-primary"><i class="fas fa-thumbs-up fa-fw  on-hover-opaque"></i> Ack. Flag</a>
+				<form url="/api/bill/acknowledgeAdministratorFlag" class="mcp-theme-1">
+					<input type="hidden" name="uid" value="{{$bill->uid}}">
+					<p class="mb-1">Are you sure?</p>
+					<div class="form-group">
+						<label>Memo:</label>
+						<textarea name="memo" rows="2" class="form-control" required></textarea>
+					</div>
+					<div>
+						<button submit class="btn btn-sm btn-primary mr-1">Ack. Flag</button>
+						<button cancel class="btn btn-sm btn-default border">Cancel</button>
+					</div>
+				</form>
+			</div>
+			</div>
+
+		@endif
+	@endif
+@endif
+
+</div>

+ 64 - 0
resources/views/app/patient/note/partials/bill-flags-history.blade.php

@@ -0,0 +1,64 @@
+<?php
+
+use App\Models\AdministratorBillFlagUpdate;
+
+$recentBillFlags = AdministratorBillFlagUpdate::where('bill_id', $bill->id)->orderBy('created_at', 'DESC')->limit(5)->get();
+?>
+@if(count($recentBillFlags))
+<div moe relative wide center class="ml-2 mr-2">
+	<a start show><i class="fas fa-history fa-fw on-hover-opaque"></i> Bill Flag History</a>
+	<form url="" class="mcp-theme-1">
+		<div>
+			<div class="d-flex align-items-center justify-content-between pb-2 mb-1">
+				<h5 class="mb-0 font-weight-bold">Recent Bill Flags</h5>
+				<button cancel class="btn btn-sm btn-default border">
+					<i class="fas fa-times"></i>
+				</button>
+			</div>
+			<table class="table table-sm table-striped table-bordered">
+				<thead class="bg-light">
+					<tr>
+						<th class="border-bottom-0">Date</th>
+						<th class="border-bottom-0">Admin Flag Memo</th>
+						<th class="border-bottom-0">HCP Ack. Memo</th>
+					</tr>
+				</thead>
+				<tbody>
+					@foreach($recentBillFlags as $bf)
+					<tr>
+						<td>{{ friendly_date_time($bf->created_at) }}</td>
+						<td>
+							<div class="d-flex flex-column">
+								<small class="text-sm text-muted"><?= $bf->administrator_flag_memo ?></small>
+								@if($bf->billFlagAcknowledgedByProAdmin)
+								<div class="d-flex align-items-center">
+									<span class="text-sm">By: {{ $bf->billFlagAcknowledgedByProAdmin->displayName() }}</span>
+									<span class="text-sm ml-2">At: {{ friendly_date_time($bf->flagged_administrator_at) }}</span>
+								</div>
+								@endif
+							</div>
+						</td>
+						<td>
+							<div class="d-flex flex-column">
+								<small class="text-sm text-muted"><?= $bf->administrator_flag_acknowledgement_memo ?></small>
+								@if($bf->billFlagAcknowledgedByPro)
+								<div class="d-flex align-items-center">
+									<span class="text-sm">By: {{ $bf->billFlagAcknowledgedByPro->displayName() }}</span>
+									<span class="text-sm ml-2">At: {{ friendly_date_time($bf->administrator_flag_acknowledged_at) }}</span>
+								</div>
+								@endif
+							</div>
+						</td>
+					</tr>
+					@endforeach
+					@if(!count($recentBillFlags))
+						<tr>
+							<td colspan="3">No records found</td>
+						</tr>
+					@endif
+				</tbody>
+			</table>
+		</div>
+	</form>
+</div>
+@endif

+ 1 - 1
resources/views/app/patient/partials/sticky-notes-history.blade.php

@@ -4,7 +4,7 @@ use App\Models\ClientStickyNote;
 
 
 $recentStickyNotes = ClientStickyNote::where('client_id', $patient->id)->orderBy('created_at', 'DESC')->limit(5)->get();
 $recentStickyNotes = ClientStickyNote::where('client_id', $patient->id)->orderBy('created_at', 'DESC')->limit(5)->get();
 ?>
 ?>
-<div moe relative wide center class="ml-2 hide-inside-popup">
+<div moe relative wide center class="ml-2">
 	<a start show><i class="fas fa-history fa-fw on-hover-opaque"></i></a>
 	<a start show><i class="fas fa-history fa-fw on-hover-opaque"></i></a>
 	<form url="" class="mcp-theme-1">
 	<form url="" class="mcp-theme-1">
 		<div>
 		<div>