File manager - Edit - /var/www/html/portalHomolog/app/Models/Ata.php
Back
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use App\Models\LicitacoesProcedimentos\Processo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class Ata extends Model { use HasFactory; protected $table = 'atas'; protected $primaryKey = 'id_ata'; public $incrementing = true; protected $keyType = 'int'; protected $fillable = [ 'nr_ata', 'ds_objeto', 'id_secretaria', 'nr_processo', 'ds_link_bo', 'nr_bo', 'id_bo', 'ds_sigla', 'id_secretaria_ata', 'dt_data_ata', 'dt_vigencia_ata', 'dt_bo', 'nm_arquivo_ata', 'licitacao_procedimento_id', ]; public function bo() { return $this->belongsTo(\App\Models\Comunicacao\Boletim::class, 'id_bo', 'id'); } public function secretaria() { return $this->belongsTo(Structure::class, 'id_secretaria_ata', 'id'); } public function licitacao() { return $this->belongsTo(Processo::class, 'licitacao_procedimento_id', 'id'); } public function secretariasAtas(): BelongsToMany { return $this->belongsToMany(Structure::class, 'ata_secretarias', 'id_ata', 'id_secretaria'); } /** * URL pública do PDF do boletim vinculado à ata (novo sistema de arquivos). */ public function getPublicBoLinkUrlAttribute(): ?string { $boletim = $this->bo; if ($boletim) { $url = $boletim->public_bo_pdf_url; if ($url) { return $this->normalizeBoLinkUrl($url) ?? $url; } } return $this->normalizeBoLinkUrl($this->ds_link_bo); } private function normalizeBoLinkUrl(?string $link): ?string { $link = trim((string) $link); if ($link === '') { return null; } $path = str_replace('\\', '/', $link); if (preg_match('~/downloads/bo/([^?#]+)~i', $path, $matches)) { $file = basename($matches[1]); return $this->boletimAssetUrl($file); } if (preg_match('~pmar/assets/files/boletins/([^?#]+)~i', $path, $matches)) { $file = basename($matches[1]); return $this->boletimAssetUrl($file); } if (preg_match('~^https?://~i', $path)) { return $path; } return asset(ltrim($path, '/')); } private function boletimAssetUrl(string $file): ?string { $file = trim($file); if ($file === '' || $file === '.' || $file === '..') { return null; } return asset('pmar/assets/files/boletins/' . rawurlencode($file)); } /** * URL pública do PDF da ata (storage, symlink legado ou URL absoluta importada). */ public function getPublicArquivoAtaUrlAttribute(): ?string { $path = trim((string) $this->nm_arquivo_ata); if ($path === '') { return null; } if (preg_match('~^https?://~i', $path)) { return $path; } $normalized = str_replace('\\', '/', ltrim($path, '/')); if (str_starts_with($normalized, 'pmar/assets/files/atas/')) { return asset($normalized); } if (str_starts_with($normalized, 'atas/')) { return asset('pmar/assets/files/' . $normalized); } if (str_starts_with($normalized, 'storage/')) { return asset($normalized); } return asset('storage/' . $normalized); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings