Audit Trail Docs

TransactionAudit extends BaseAudit

Transaction audit trail implementations

Table of Contents

Methods

transactionCreatedLog()  : void
Log Transaction creation
transactionDeletedLog()  : void
Log Transaction deletion
transactionUpdatedLog()  : void
Log Transaction update
addAuditLog()  : void
Log an audit trail entry
getCompanyId()  : int
Extract company ID from various model types.
getTypePrefix()  : string
Prefix for audit message based on transaction type (TOPUP => Topup, else Payout).
getUserId()  : int
Get the current authenticated user ID, or fallback to job context user ID.

Methods

transactionCreatedLog()

Log Transaction creation

public static transactionCreatedLog(Mpesa|Transaction $record[, int $userId = 0 ]) : void
Parameters
$record : Mpesa|Transaction

The newly created Transaction record

$userId : int = 0

The ID of the user who performed the action (optional)

Tags
audit-event

Transaction Created

audit-module

PAYMENT

audit-action

CREATE

audit-trigger

When a new Transaction is created in the system

transactionDeletedLog()

Log Transaction deletion

public static transactionDeletedLog(Mpesa|Transaction $record[, int $userId = 0 ]) : void
Parameters
$record : Mpesa|Transaction

The Transaction being deleted

$userId : int = 0

The ID of the user who performed the action (optional)

Tags
audit-event

Transaction Deleted

audit-module

PAYMENT

audit-action

DELETE

audit-trigger

When a Transaction is deleted from the system

transactionUpdatedLog()

Log Transaction update

public static transactionUpdatedLog(Mpesa|Transaction $oldRecord, Mpesa|Transaction $newRecord[, int $userId = 0 ]) : void
Parameters
$oldRecord : Mpesa|Transaction

The Transaction data before the update

$newRecord : Mpesa|Transaction

The Transaction data after the update

$userId : int = 0

The ID of the user who performed the action (optional)

Tags
audit-event

Transaction Updated

audit-module

PAYMENT

audit-action

UPDATE

audit-trigger

When an existing Transaction is updated in the system

addAuditLog()

Log an audit trail entry

protected static addAuditLog(int $companyId, int $userId, string $message, string $module, string $action[, mixed|null $currentRecord = null ][, mixed|null $updatedRecord = null ][, string|null $objectName = null ][, string $queueName = 'audit-trails' ][, bool $afterCommit = false ][, string $type = AuditTypesEnum::COMPANY->value ]) : void
Parameters
$companyId : int

Company identifier

$userId : int

User identifier (default 0 for system actions)

$message : string

Human-readable audit message

$module : string

Module name (PAYROLL, LEAVE, PAYMENTS, etc.) - must be a valid AuditModulesEnum value

$action : string

Action type (CREATE, UPDATE, DELETE, etc.) - must be a valid AuditActionsEnum value

$currentRecord : mixed|null = null

Current data being logged

$updatedRecord : mixed|null = null

The updated data (for updates)

$objectName : string|null = null

Optional name of the object being logged - if not provided, will be inferred from the model

$queueName : string = 'audit-trails'

Optional queue name for async processing. Default 'audit-trails'

$afterCommit : bool = false

Whether to log after DB commit

$type : string = AuditTypesEnum::COMPANY->value
Tags
throws
ValueError

If invalid enum values are provided

getCompanyId()

Extract company ID from various model types.

protected static getCompanyId(mixed $model) : int

This method attempts to determine the company ID from the provided model instance.

It checks for a direct company_id property or navigates through related employee models.

Parameters
$model : mixed

Model instance

Tags
throws
Exception

When company ID cannot be determined

Return values
int

Company ID

getTypePrefix()

Prefix for audit message based on transaction type (TOPUP => Topup, else Payout).

protected static getTypePrefix(Mpesa|Transaction $record) : string
Parameters
$record : Mpesa|Transaction
Return values
string

getUserId()

Get the current authenticated user ID, or fallback to job context user ID.

protected static getUserId() : int

This method first checks for an authenticated user via the auth() helper. If no user is authenticated, it looks for a user_id in the job context (for queued jobs).

To add a user ID to the job context, you can use this in your job setup:

 app()->instance('job_context', ['user_id' => $userId]);

If neither is available, it returns 0 to indicate a system action.

Return values
int

The determined user ID, or 0 if none found


        
On this page

Search results