123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- class StatTreeLine extends Model
- {
- protected $table = 'stat_tree_line';
- public $timestamps = false;
- public function getRouteKeyName()
- {
- return 'uid';
- }
- public function lineClauses(){
- return $this->hasMany(StatTreeLineClause::class, 'stat_tree_line_id', 'id');
- }
- public function statTree(){
- return $this->hasOne(StatTree::class, 'id', 'stat_tree_id');
- }
- public function parent(){
- return $this->hasOne(StatTreeLine::class, 'id', 'parent_stat_tree_line_id');
- }
- public function children(){
- return $this->hasMany(StatTreeLine::class, 'parent_stat_tree_line_id', 'id')
- ->orderBy('tree_order_position_index');
- }
- public function reportColumns(){
- return $this->hasMany(StatTreeLineReportColumn::class, 'stat_tree_line_id', 'id')
- ->orderBy('position_index');
- }
- public function displayLabel() {
- $lastStatTreeLineClause = StatTreeLineClause::where('stat_tree_line_id', $this->id)
- ->orderBy('position_index', 'DESC')
- ->first();
- if($lastStatTreeLineClause) {
- return $lastStatTreeLineClause->clause_label;
- }
- return '-';
- }
- public function columnsJSON() {
- $columns = [];
- foreach ($this->reportColumns as $column) {
- $columns[] = [
- "label" => $column->label,
- "display_key" => $column->display_key,
- ];
- }
- return json_encode($columns);
- }
- }
|