mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-09-20 00:11:35 +02:00
102 lines
2.3 KiB
PHP
102 lines
2.3 KiB
PHP
<?php namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class Document extends EntityModel
|
|
{
|
|
public static $extensions = array(
|
|
'png' => 'image/png',
|
|
'jpg' => 'image/jpeg',
|
|
'jpeg' => 'image/jpeg',
|
|
'pdf' => 'application/pdf',
|
|
'gif' => 'image/gif'
|
|
);
|
|
|
|
public static $types = array(
|
|
'image/png' => array(
|
|
'extension' => 'png',
|
|
'image' => true,
|
|
),
|
|
'image/jpeg' => array(
|
|
'extension' => 'jpeg',
|
|
'image' => true,
|
|
),
|
|
'image/gif' => array(
|
|
'extension' => 'gif',
|
|
'image' => true,
|
|
),
|
|
'application/pdf' => array(
|
|
'extension' => 'pdf',
|
|
),
|
|
);
|
|
|
|
// Expenses
|
|
use SoftDeletes;
|
|
|
|
protected $dates = ['deleted_at'];
|
|
|
|
public function fill(array $attributes)
|
|
{
|
|
parent::fill($attributes);
|
|
|
|
if(empty($this->attributes['disk'])){
|
|
$this->attributes['disk'] = env('LOGO_DISK', 'documents');
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function account()
|
|
{
|
|
return $this->belongsTo('App\Models\Account');
|
|
}
|
|
|
|
public function user()
|
|
{
|
|
return $this->belongsTo('App\Models\User');
|
|
}
|
|
|
|
public function expense()
|
|
{
|
|
return $this->belongsTo('App\Models\Expense')->withTrashed();
|
|
}
|
|
|
|
public function invoice()
|
|
{
|
|
return $this->belongsTo('App\Models\Invoice')->withTrashed();
|
|
}
|
|
|
|
public function getDisk(){
|
|
return Storage::disk(!empty($this->disk)?$this->disk:env('LOGO_DISK', 'documents'));
|
|
}
|
|
|
|
public function setDiskAttribute($value)
|
|
{
|
|
$this->attributes['disk'] = $value?$value:env('LOGO_DISK', 'documents');
|
|
}
|
|
|
|
public function getPublicUrl(){
|
|
$disk = $this->getDisk();
|
|
$adapter = $disk->getAdapter();
|
|
|
|
return null;
|
|
}
|
|
|
|
public function getRaw(){
|
|
$disk = $this->getDisk();
|
|
|
|
return $disk->get($this->path);
|
|
}
|
|
|
|
public function getUrl(){
|
|
return url('document/'.$this->public_id.'/'.$this->name);
|
|
}
|
|
|
|
public function toArray()
|
|
{
|
|
$array = parent::toArray();
|
|
$array['url'] = $this->getUrl();
|
|
return $array;
|
|
}
|
|
} |