74 lines
1.8 KiB
PHP
74 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use CodeIgniter\Model;
|
|
|
|
class ExpenseModel extends Model
|
|
{
|
|
protected $table = 'expenses';
|
|
protected $primaryKey = 'id';
|
|
protected $DBGroup = 'default';
|
|
protected $useAutoIncrement = true;
|
|
protected $returnType = 'array';
|
|
protected $useSoftDeletes = false;
|
|
protected $protectFields = true;
|
|
|
|
protected $allowedFields = [
|
|
'id',
|
|
'client_id',
|
|
'client_policy_id',
|
|
'description',
|
|
'approved_by',
|
|
'amount',
|
|
'expense_date',
|
|
'created_at',
|
|
'created_by',
|
|
'updated_at',
|
|
'updated_by',
|
|
'is_active',
|
|
];
|
|
|
|
// Callbacks
|
|
protected $allowCallbacks = true;
|
|
protected $beforeInsert = ['setCreatedBy'];
|
|
protected $afterInsert = [];
|
|
protected $beforeUpdate = ['setUpdatedBy'];
|
|
protected $afterUpdate = [];
|
|
protected $beforeFind = [];
|
|
protected $afterFind = [];
|
|
protected $beforeDelete = [];
|
|
protected $afterDelete = [];
|
|
|
|
protected function setCreatedBy(array $data): array
|
|
{
|
|
if (empty($data['data']['created_by'])) {
|
|
$data['data']['created_by'] = get_session_userid();
|
|
}
|
|
|
|
if (empty($data['data']['created_at'])) {
|
|
$data['data']['created_at'] = date('Y-m-d H:i:s');
|
|
}
|
|
|
|
if (! isset($data['data']['is_active'])) {
|
|
$data['data']['is_active'] = 1;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
protected function setUpdatedBy(array $data): array
|
|
{
|
|
if (empty($data['data']['updated_by'])) {
|
|
$data['data']['updated_by'] = get_session_userid();
|
|
}
|
|
|
|
if (empty($data['data']['updated_at'])) {
|
|
$data['data']['updated_at'] = date('Y-m-d H:i:s');
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
}
|
|
|