Measurement.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Models;
  3. # use Illuminate\Database\Eloquent\Model;
  4. class Measurement extends Model
  5. {
  6. protected $table = 'measurement';
  7. public function client()
  8. {
  9. return $this->hasOne(Client::class, 'id', 'client_id');
  10. }
  11. public function careMonth()
  12. {
  13. return $this->hasOne(CareMonth::class, 'id', 'care_month_id');
  14. }
  15. public function clientBDTMeasurement()
  16. {
  17. return $this->hasOne(ClientBDTMeasurement::class, 'id', 'client_bdt_measurement_id');
  18. }
  19. public function numCPMEntries() {
  20. return ClientProgramMonthEntry::where('measurement_id', $this->id)->where('is_cancelled', false)->count();
  21. }
  22. public function minutesEntered($pro) {
  23. $entries = ClientProgramMonthEntry::where('measurement_id', $this->id)
  24. ->where('pro_id', $pro->id)
  25. ->where('is_cancelled', false)
  26. ->get();
  27. $minutes = 0;
  28. foreach ($entries as $entry) {
  29. $minutes += $entry->time_in_minutes;
  30. }
  31. return $minutes;
  32. }
  33. public function entriesByPro($pro) {
  34. return ClientProgramMonthEntry::where('measurement_id', $this->id)
  35. ->where('pro_id', $pro->id)
  36. ->where('is_cancelled', false)
  37. ->get();
  38. }
  39. public function childMeasurements() {
  40. return Measurement::where('parent_measurement_id', $this->id)
  41. ->where('is_active', true)
  42. ->get();
  43. }
  44. }