Ver Fonte

Programs page UI - billed/remaining time labels

Vijayakrishnan há 4 anos atrás
pai
commit
7defd750fc

+ 7 - 0
app/Models/ClientProgram.php

@@ -16,4 +16,11 @@ class ClientProgram extends Model
         return $this->hasOne(Pro::class, 'id', 'manager_pro_id');
     }
 
+    public function getProgramMonth($m, $y)
+    {
+        return ClientProgramMonth::where('client_program_id', $this->id)
+            ->where('month', $m)
+            ->where('year', $y)
+            ->first();
+    }
 }

+ 11 - 0
app/Models/ClientProgramMonth.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class ClientProgramMonth extends Model
+{
+    protected $table = "client_program_month";
+
+}

+ 12 - 0
app/Models/Measurement.php

@@ -16,4 +16,16 @@ class Measurement extends Model
     public function numCPMEntries() {
         return ClientProgramMonthEntry::where('measurement_id', $this->id)->where('is_cancelled', false)->count();
     }
+
+    public function minutesEntered($pro) {
+        $entries = ClientProgramMonthEntry::where('measurement_id', $this->id)
+            ->where('pro_id', $pro->id)
+            ->where('is_cancelled', false)
+            ->get();
+        $minutes = 0;
+        foreach ($entries as $entry) {
+            $minutes += $entry->time_in_minutes;
+        }
+        return $minutes;
+    }
 }

+ 17 - 4
resources/views/app/patient/programs.blade.php

@@ -46,6 +46,10 @@
             $programCategories = array_filter($programCategories, function($_item) {
                 return !empty($_item);
             });
+            $programMonth = null;
+            if($filter === '') {
+                $programMonth = $program->getProgramMonth(strtoupper(date('F')), date('Y'));
+            }
         ?>
         <div class="card mb-4">
 
@@ -127,7 +131,6 @@
                         </div>
                     </div>
                 </div>
-
             </div>
 
             <div class="card-body p-0">
@@ -314,7 +317,7 @@
                         <div class="border-bottom py-1 px-2 bg-light d-flex">
                             <span class="font-weight-bold">Measurements</span>
                             @if($programCategories && count($programCategories))
-                                <div class="">
+                                <div class="d-inline-flex">
                                 @foreach($programCategories as $category)
                                     <span class="mx-2 text-secondary">|</span>
                                     <div moe relative>
@@ -340,6 +343,12 @@
                                 @endforeach
                                 </div>
                             @endif
+                            @if(!!$programMonth)
+                                <div class="ml-auto pr-2">
+                                    <b>{{ $programMonth->time_in_minutes }}</b> mins billed,
+                                    <b>{{ $program->max_monthly_time_in_minutes - $programMonth->time_in_minutes }}</b> mins remaining
+                                </div>
+                            @endif
                         </div>
                         <?php
                         $programMeasurements = [];
@@ -354,6 +363,7 @@
                         }
                         ?>
                         @foreach($programMeasurements as $measurement)
+                            <?php $minutes = $measurement->minutesEntered($pro); ?>
                             <div class="d-flex align-items-center py-1 px-2 border-bottom">
                                 <div moe relative class="mr-2">
                                     <a class="on-hover-opaque" start show title="Delete">
@@ -395,7 +405,7 @@
                                 @php $matchingClientPrograms = $pro->canAddCPMEntryForMeasurement($measurement, $pro); @endphp
                                 @if(1) {{-- TODO:--}}
                                     <div moe>
-                                        <a href="#" class="ml-2 font-weight-normal" start show><i class="fa fa-clock"></i> <b>Entry</b> ({{ $measurement->numCPMEntries() }})</a>
+                                        <a href="#" class="ml-2 font-weight-normal" start show><i class="fa fa-clock"></i> <b>Entry</b></a>
                                         <form url="/api/clientProgramMonthEntry/create">
                                             <input type="hidden" name="measurementUid" value="{{ $measurement->uid }}">
                                             <input type="hidden" name="proUid" value="{{ $pro->uid }}">
@@ -410,7 +420,7 @@
                                             </div>
                                             <div class="mb-2">
                                                 <label class="text-sm mb-1 text-secondary">Quick Text</label>
-                                                <input required type="text" class="form-control form-control-sm" name="quickText" value="">
+                                                <input type="text" class="form-control form-control-sm" name="quickText" value="">
                                             </div>
                                             <div class="mb-2">
                                                 <label class="text-sm mb-1 text-secondary">Measurement Determination</label>
@@ -427,6 +437,9 @@
                                         </form>
                                     </div>
                                 @endif
+                                @if(!!$programMonth)
+                                    <span class="ml-auto pr-2 text-secondary">{!!  $minutes ? '<b>' . $minutes . '</b> mins billed' : 'Entry pending' !!} </span>
+                                @endif
                             </div>
                         @endforeach
                         @if(!count($programMeasurements))