IpslAudit extends BaseAudit
Ipsl audit trail implementations
Table of Contents
Methods
- billReferenceValidationLog() : void
- Log IPSL bill reference validation request
- collectionTransactionCreatedLog() : void
- Log IPSL collection transaction created (successful IPN processing)
- ipnProcessingErrorLog() : void
- Log IPSL IPN processing error (runtime exception)
- ipnReceivedLog() : void
- Log IPSL IPN (Instant Payment Notification) received
- ipnWalletResolutionErrorLog() : void
- Log IPSL IPN processing error (wallet resolution failure)
- ipslCreatedLog() : void
- Log Ipsl creation
- ipslDeletedLog() : void
- Log Ipsl deletion
- ipslUpdatedLog() : void
- Log Ipsl update
- addAuditLog() : void
- Log an audit trail entry
- getCompanyId() : int
- Extract company ID from various model types.
- getUserId() : int
- Get the current authenticated user ID, or fallback to job context user ID.
Methods
billReferenceValidationLog()
Log IPSL bill reference validation request
public
static billReferenceValidationLog(string $billRef, float $amount, bool $resolved[, int $companyId = 0 ][, int $userId = 0 ]) : void
Parameters
- $billRef : string
-
Bill reference number
- $amount : float
-
Payment amount
- $resolved : bool
-
Whether the bill reference was resolved successfully
- $companyId : int = 0
-
Company ID (optional, defaults to 0 for system-level)
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
collectionTransactionCreatedLog()
Log IPSL collection transaction created (successful IPN processing)
public
static collectionTransactionCreatedLog(mixed $mpesaRecord[, int $userId = 0 ]) : void
Parameters
- $mpesaRecord : mixed
-
The created Mpesa record
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipnProcessingErrorLog()
Log IPSL IPN processing error (runtime exception)
public
static ipnProcessingErrorLog(string $rrn, string $errorMessage[, array<string|int, mixed> $payload = [] ][, string|null $billRef = null ][, int $companyId = 0 ][, int $userId = 0 ]) : void
Parameters
- $rrn : string
-
Request Reference Number
- $errorMessage : string
-
Error message describing the failure
- $payload : array<string|int, mixed> = []
-
IPN payload data
- $billRef : string|null = null
-
Bill reference (if available)
- $companyId : int = 0
-
Company ID (optional, defaults to 0 for system-level)
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipnReceivedLog()
Log IPSL IPN (Instant Payment Notification) received
public
static ipnReceivedLog(array<string|int, mixed> $payload[, int $companyId = 0 ][, int $userId = 0 ]) : void
Parameters
- $payload : array<string|int, mixed>
-
IPN payload data
- $companyId : int = 0
-
Company ID (optional, defaults to 0 for system-level)
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipnWalletResolutionErrorLog()
Log IPSL IPN processing error (wallet resolution failure)
public
static ipnWalletResolutionErrorLog(string $rrn, string $billRef, float $amount, string $errorMessage[, array<string|int, mixed> $payload = [] ][, int $companyId = 0 ][, int $userId = 0 ]) : void
Parameters
- $rrn : string
-
Request Reference Number
- $billRef : string
-
Bill reference that couldn't be resolved
- $amount : float
-
Payment amount
- $errorMessage : string
-
Error message describing the failure
- $payload : array<string|int, mixed> = []
-
IPN payload data
- $companyId : int = 0
-
Company ID (optional, defaults to 0 for system-level)
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipslCreatedLog()
Log Ipsl creation
public
static ipslCreatedLog(mixed $record[, int $userId = 0 ]) : void
Parameters
- $record : mixed
-
The newly created Ipsl record
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipslDeletedLog()
Log Ipsl deletion
public
static ipslDeletedLog(mixed $record[, int $userId = 0 ]) : void
Parameters
- $record : mixed
-
The Ipsl being deleted
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
ipslUpdatedLog()
Log Ipsl update
public
static ipslUpdatedLog(mixed $oldRecord, mixed $newRecord[, int $userId = 0 ]) : void
Parameters
- $oldRecord : mixed
-
The Ipsl data before the update
- $newRecord : mixed
-
The Ipsl data after the update
- $userId : int = 0
-
The ID of the user who performed the action (optional)
Tags
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
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
Return values
int —Company ID
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