Measurement.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 clientBDTMeasurement()
  12. {
  13. return $this->hasOne(ClientBDTMeasurement::class, 'id', 'client_bdt_measurement_id');
  14. }
  15. public function numCPMEntries() {
  16. return ClientProgramMonthEntry::where('measurement_id', $this->id)->where('is_cancelled', false)->count();
  17. }
  18. public function minutesEntered($pro) {
  19. $entries = ClientProgramMonthEntry::where('measurement_id', $this->id)
  20. ->where('pro_id', $pro->id)
  21. ->where('is_cancelled', false)
  22. ->get();
  23. $minutes = 0;
  24. foreach ($entries as $entry) {
  25. $minutes += $entry->time_in_minutes;
  26. }
  27. return $minutes;
  28. }
  29. public function entriesByPro($pro) {
  30. return ClientProgramMonthEntry::where('measurement_id', $this->id)
  31. ->where('pro_id', $pro->id)
  32. ->where('is_cancelled', false)
  33. ->get();
  34. }
  35. public function childMeasurements() {
  36. return Measurement::where('parent_measurement_id', $this->id)
  37. ->where('is_removed', false)
  38. ->get();
  39. }
  40. }