mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-14 07:02:34 +01:00
ba75a44eb8
* Adopt Laravel coding style The Laravel framework adopts the PSR-2 coding style with some additions. Laravel apps *should* adopt this coding style as well. However, Shift allows you to customize the adopted coding style by adding your own [PHP CS Fixer][1] `.php_cs` config to your project. You may use [Shift's .php_cs][2] file as a base. [1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer [2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200 * Shift bindings PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser. * Shift core files * Shift to Throwable * Add laravel/ui dependency * Unindent vendor mail templates * Shift config files * Default config files In an effort to make upgrading the constantly changing config files easier, Shift defaulted them so you can review the commit diff for changes. Moving forward, you should use ENV variables or create a separate config file to allow the core config files to remain automatically upgradeable. * Shift Laravel dependencies * Shift cleanup * Upgrade to Laravel 7 Co-authored-by: Laravel Shift <shift@laravelshift.com>
164 lines
4.0 KiB
PHP
164 lines
4.0 KiB
PHP
<?php
|
|
/**
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
*
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
*
|
|
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
|
*
|
|
* @license https://opensource.org/licenses/AAL
|
|
*/
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Utils\Traits\MakesHash;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class Activity extends StaticModel
|
|
{
|
|
use MakesHash;
|
|
|
|
const CREATE_CLIENT = 1; //
|
|
const ARCHIVE_CLIENT = 2; //
|
|
const DELETE_CLIENT = 3; //
|
|
const CREATE_INVOICE = 4; //
|
|
const UPDATE_INVOICE = 5; //
|
|
const EMAIL_INVOICE = 6; //
|
|
const VIEW_INVOICE = 7; //
|
|
const ARCHIVE_INVOICE = 8; //
|
|
const DELETE_INVOICE = 9; //
|
|
const CREATE_PAYMENT = 10; //
|
|
const UPDATE_PAYMENT = 11; //
|
|
const ARCHIVE_PAYMENT = 12; //
|
|
const DELETE_PAYMENT = 13; //
|
|
const CREATE_CREDIT = 14; //
|
|
const UPDATE_CREDIT = 15; //
|
|
const ARCHIVE_CREDIT = 16; //
|
|
const DELETE_CREDIT = 17; //
|
|
const CREATE_QUOTE = 18; //
|
|
const UPDATE_QUOTE = 19; //
|
|
const EMAIL_QUOTE = 20; //
|
|
const VIEW_QUOTE = 21; //
|
|
const ARCHIVE_QUOTE = 22; //
|
|
const DELETE_QUOTE = 23; //
|
|
const RESTORE_QUOTE = 24; //
|
|
const RESTORE_INVOICE = 25; //
|
|
const RESTORE_CLIENT = 26; //
|
|
const RESTORE_PAYMENT = 27; //
|
|
const RESTORE_CREDIT = 28; //
|
|
const APPROVE_QUOTE = 29; //
|
|
const CREATE_VENDOR = 30;
|
|
const ARCHIVE_VENDOR = 31;
|
|
const DELETE_VENDOR = 32;
|
|
const RESTORE_VENDOR = 33;
|
|
const CREATE_EXPENSE = 34;
|
|
const ARCHIVE_EXPENSE = 35;
|
|
const DELETE_EXPENSE = 36;
|
|
const RESTORE_EXPENSE = 37;
|
|
|
|
const VOIDED_PAYMENT = 39; //
|
|
const REFUNDED_PAYMENT = 40; //
|
|
const FAILED_PAYMENT = 41;
|
|
const CREATE_TASK = 42;
|
|
const UPDATE_TASK = 43;
|
|
const ARCHIVE_TASK = 44;
|
|
const DELETE_TASK = 45;
|
|
const RESTORE_TASK = 46;
|
|
const UPDATE_EXPENSE = 47;
|
|
|
|
const CREATE_USER = 48; // only used in CreateUser::job
|
|
const UPDATE_USER = 49; // not needed?
|
|
const ARCHIVE_USER = 50; // not needed?
|
|
const DELETE_USER = 51; // not needed?
|
|
const RESTORE_USER = 52; // not needed?
|
|
const MARK_SENT_INVOICE = 53; // not needed?
|
|
const PAID_INVOICE = 54; //
|
|
const EMAIL_INVOICE_FAILED = 57;
|
|
const REVERSED_INVOICE = 58; //
|
|
const CANCELLED_INVOICE = 59; //
|
|
const VIEW_CREDIT = 60; //
|
|
|
|
protected $casts = [
|
|
'is_system' => 'boolean',
|
|
'updated_at' => 'timestamp',
|
|
'created_at' => 'timestamp',
|
|
'deleted_at' => 'timestamp',
|
|
];
|
|
|
|
public function getEntityType()
|
|
{
|
|
return self::class;
|
|
}
|
|
|
|
public function backup()
|
|
{
|
|
return $this->hasOne(Backup::class);
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(User::class)->withTrashed();
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function contact()
|
|
{
|
|
return $this->belongsTo(ClientContact::class)->withTrashed();
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function client()
|
|
{
|
|
return $this->belongsTo(Client::class)->withTrashed();
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function invoice()
|
|
{
|
|
return $this->belongsTo(Invoice::class)->withTrashed();
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function payment()
|
|
{
|
|
return $this->belongsTo(Payment::class)->withTrashed();
|
|
}
|
|
|
|
// public function task()
|
|
// {
|
|
// return $this->belongsTo(Task::class)->withTrashed();
|
|
// }
|
|
|
|
// public function expense()
|
|
// {
|
|
// return $this->belongsTo(Expense::class)->withTrashed();
|
|
// }
|
|
|
|
public function company()
|
|
{
|
|
return $this->belongsTo(Company::class);
|
|
}
|
|
|
|
public function resolveRouteBinding($value, $field = NULL)
|
|
{
|
|
if (is_numeric($value)) {
|
|
throw new ModelNotFoundException("Record with value {$value} not found");
|
|
}
|
|
|
|
return $this
|
|
//->withTrashed()
|
|
->where('id', $this->decodePrimaryKey($value))->firstOrFail();
|
|
}
|
|
}
|