LegacySchool.php
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Facades\DB;
/**
* LegacySchool
*
* @property LegacyInstitution $institution
*/
class LegacySchool extends Model
{
/**
* @var string
*/
protected $table = 'pmieducar.escola';
/**
* @var string
*/
protected $primaryKey = 'cod_escola';
/**
* @var array
*/
protected $fillable = [
'cod_escola',
'ref_usuario_cad',
'ref_cod_instituicao',
'ref_cod_escola_rede_ensino',
'sigla',
'data_cadastro',
];
/**
* @var bool
*/
public $timestamps = false;
/**
* @return int
*/
public function getIdAttribute()
{
return $this->cod_escola;
}
/**
* Relacionamento com a instituição.
*
* @return BelongsTo
*/
public function institution()
{
return $this->belongsTo(LegacyInstitution::class, 'ref_cod_instituicao');
}
/**
* @return BelongsTo
*/
public function person()
{
return $this->belongsTo(LegacyPerson::class, 'ref_idpes');
}
/**
* @return BelongsToMany
*/
public function courses()
{
return $this->belongsToMany(
LegacyCourse::class,
'pmieducar.escola_curso',
'ref_cod_escola',
'ref_cod_curso'
)->withPivot('ativo', 'anos_letivos');
}
/**
* @return BelongsTo
*/
public function organization()
{
return $this->belongsTo(LegacyOrganization::class, 'ref_idpes');
}
public function getNameAttribute()
{
return DB::selectOne('SELECT relatorio.get_nome_escola(:escola) AS nome', ['escola' => $this->id])->nome;
}
/**
* @return BelongsToMany
*/
public function grades()
{
return $this->belongsToMany(
LegacyLevel::class,
'pmieducar.escola_serie',
'ref_cod_escola',
'ref_cod_serie'
)->withPivot('ativo', 'anos_letivos');
}
/**
* @return HasMany
*/
public function schoolClasses()
{
return $this->hasMany(LegacySchoolClass::class, 'ref_ref_cod_escola');
}
}