StatTreeLine.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. class StatTreeLine extends Model
  6. {
  7. protected $table = 'stat_tree_line';
  8. public $timestamps = false;
  9. public function getRouteKeyName()
  10. {
  11. return 'uid';
  12. }
  13. public function lineClauses(){
  14. return $this->hasMany(StatTreeLineClause::class, 'stat_tree_line_id', 'id');
  15. }
  16. public function statTree(){
  17. return $this->hasOne(StatTree::class, 'id', 'stat_tree_id');
  18. }
  19. public function parent(){
  20. return $this->hasOne(StatTreeLine::class, 'id', 'parent_stat_tree_line_id');
  21. }
  22. public function children(){
  23. return $this->hasMany(StatTreeLine::class, 'parent_stat_tree_line_id', 'id')
  24. ->orderBy('tree_order_position_index');
  25. }
  26. public function reportColumns(){
  27. return $this->hasMany(StatTreeLineReportColumn::class, 'stat_tree_line_id', 'id')
  28. ->orderBy('position_index');
  29. }
  30. public function displayLabel() {
  31. $lastStatTreeLineClause = StatTreeLineClause::where('stat_tree_line_id', $this->id)
  32. ->orderBy('position_index', 'DESC')
  33. ->first();
  34. if($lastStatTreeLineClause) {
  35. return $lastStatTreeLineClause->clause_label;
  36. }
  37. return '-';
  38. }
  39. }