Updated ERP with new modules and features
This commit is contained in:
30
app/Models/ActivityLog.php
Normal file
30
app/Models/ActivityLog.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ActivityLog extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'user_id', 'loggable_type', 'loggable_id', 'action',
|
||||
'old_data', 'new_data', 'ip_address', 'user_agent'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'old_data' => 'array',
|
||||
'new_data' => 'array',
|
||||
];
|
||||
|
||||
// Links back to the User who made the change
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(StaffMember::class);
|
||||
}
|
||||
|
||||
// Links back to the affected Model (Client, Server, VpnConfig, etc.)
|
||||
public function loggable()
|
||||
{
|
||||
return $this->morphTo();
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,10 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
use App\Traits\LogsActivity;
|
||||
class Client extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = [
|
||||
'id'
|
||||
];
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class ClientFile extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
|
||||
public function client_info(){
|
||||
|
||||
@@ -5,9 +5,11 @@ namespace App\Models;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Spatie\Activitylog\Traits\LogsActivity;
|
||||
use Spatie\Activitylog\LogOptions;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class ClientNote extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
protected static $logUnguarded = true;
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class DailyReport extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $fillable = ['user_id', 'report_date', 'content'];
|
||||
protected $casts = [
|
||||
'report_date' => 'date',
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class LeaveManagement extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
public $table = "leave_management";
|
||||
|
||||
|
||||
@@ -15,10 +15,4 @@ class LeaveRequest extends Model
|
||||
{
|
||||
return $this->belongsTo(StaffMember::class, 'staff_member_id');
|
||||
}
|
||||
|
||||
// In StaffMember.php
|
||||
public function leaveRequests()
|
||||
{
|
||||
return $this->hasMany(LeaveRequest::class, 'staff_member_id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class NetworkOperator extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
public $table = "network_operators";
|
||||
|
||||
@@ -15,6 +17,8 @@ class NetworkOperator extends Model
|
||||
'support_emails' => 'array',
|
||||
'finance_emails' => 'array',
|
||||
'bind_specifics' => 'array',
|
||||
'contract_auto_renew' => 'boolean',
|
||||
'next_renewal_date' => 'date',
|
||||
];
|
||||
public function account_manager_info(){
|
||||
return $this->hasOne('App\Models\StaffMember', 'id', 'account_manager_id');
|
||||
@@ -23,6 +27,10 @@ class NetworkOperator extends Model
|
||||
{
|
||||
return $this->hasMany(NetworkOperatorConnection::class, 'network_operator_id');
|
||||
}
|
||||
public function documents()
|
||||
{
|
||||
return $this->hasMany(NetworkOperatorDocument::class);
|
||||
}
|
||||
/*
|
||||
public function setBuyingRateAttribute($value)
|
||||
{
|
||||
|
||||
17
app/Models/NetworkOperatorDocument.php
Normal file
17
app/Models/NetworkOperatorDocument.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class NetworkOperatorDocument extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $fillable = ['network_operator_id', 'name', 'file_path'];
|
||||
|
||||
public function networkOperator()
|
||||
{
|
||||
return $this->belongsTo(NetworkOperator::class);
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class OfficeLocation extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
protected $table = 'office_locations';
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class OfficeLocationDocument extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $table = 'office_location_documents';
|
||||
protected $guarded = [];
|
||||
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Spatie\Activitylog\Traits\LogsActivity;
|
||||
use Spatie\Activitylog\LogOptions;
|
||||
// use Spatie\Activitylog\Traits\LogsActivity;
|
||||
// use Spatie\Activitylog\LogOptions;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class SenderId extends Model{
|
||||
// use LogsActivity;
|
||||
|
||||
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
public $table = "sender_ids";
|
||||
protected static $logName = 'senderid_log';
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class Senderidold extends Model{
|
||||
|
||||
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
public $table = "sender_ids_copy";
|
||||
|
||||
|
||||
22
app/Models/Server.php
Normal file
22
app/Models/Server.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class Server extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $fillable = [
|
||||
'name', 'ip_address', 'os_version', 'username', 'password', 'services', 'status'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'password' => 'encrypted', // Automatically encrypts/decrypts
|
||||
'services' => 'array', // Casts JSON to PHP array
|
||||
];
|
||||
|
||||
// Hide password from standard array/JSON serialization for safety
|
||||
protected $hidden = ['password'];
|
||||
}
|
||||
@@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
|
||||
class ShortCode extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $guarded = array('id');
|
||||
public $table = "client_short_codes";
|
||||
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class StaffDependent extends Model
|
||||
{
|
||||
use LogsActivity;
|
||||
protected $table = 'staff_dependents';
|
||||
protected $guarded = [];
|
||||
|
||||
|
||||
@@ -5,10 +5,11 @@ namespace App\Models;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class StaffMember extends Authenticatable
|
||||
{
|
||||
use HasFactory, Notifiable;
|
||||
use HasFactory, Notifiable, LogsActivity;
|
||||
|
||||
// 1. Explicitly define the custom table name
|
||||
protected $table = 'staff_members';
|
||||
@@ -34,6 +35,7 @@ class StaffMember extends Authenticatable
|
||||
public function department(){
|
||||
return $this->hasOne('App\Models\Department', 'id', 'department_id');
|
||||
}
|
||||
|
||||
// 4. Cast dates correctly
|
||||
protected $casts = [
|
||||
// 'dob' => 'date',
|
||||
|
||||
@@ -3,10 +3,23 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\LogsActivity;
|
||||
|
||||
class VpnConfig extends Model
|
||||
{
|
||||
protected $guarded = ['id'];
|
||||
//protected $guarded = ['id'];
|
||||
use LogsActivity;
|
||||
protected $fillable = [
|
||||
'partner_name', 'peer_ip', 'local_ip',
|
||||
'local_device', 'peer_device',
|
||||
'encryption_domain_local', 'encryption_domain_remote',
|
||||
'preshared_key', 'status',
|
||||
'ike_version', 'phase1_encryption', 'phase1_hash', 'phase1_dh_group', 'phase1_lifetime',
|
||||
'phase2_encryption', 'phase2_hash', 'phase2_dh_group', 'phase2_lifetime', 'pfs_enabled'
|
||||
];
|
||||
protected $casts = [
|
||||
'preshared_key' => 'encrypted',
|
||||
];
|
||||
|
||||
public function client_info(){
|
||||
return $this->hasOne('App\Models\Client', 'id', 'client_id');
|
||||
@@ -15,6 +28,6 @@ class VpnConfig extends Model
|
||||
return $this->hasOne('App\Models\NetworkOps', 'id', 'mno_id');
|
||||
}
|
||||
public function userInfo(){
|
||||
return $this->hasOne('App\Models\SystemUser', 'id', 'user_id');
|
||||
return $this->hasOne('App\Models\StaffMember', 'id', 'user_id');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user