KMP PHP API Reference

WarrantPeriodsTable extends BaseTable
in package

WarrantPeriodsTable - Warrant Period Template Management and Administrative Tools

The WarrantPeriodsTable provides comprehensive data management for warrant period templates within the KMP warrant system. This table manages standardized period definitions that serve as organizational templates for consistent warrant duration management and integration with warrant roster approval workflows.

Core Architecture:

  • Extends BaseTable for KMP cache management and branch scoping
  • Implements audit trail behaviors for administrative tracking
  • Provides temporal validation for period boundary management
  • Integrates with warrant system for standardized duration templates
  • Supports administrative tools for period lifecycle operations

Period Template System:

  • Standardized period definitions for organizational consistency
  • Temporal boundary validation (start_date, end_date)
  • Administrative tracking with creator identification
  • Template-based approach for warrant roster integration
  • Reusable period configurations for different warrant types

Business Logic Integration:

  • Template storage for warrant roster approval workflows
  • Period lifecycle operations and administrative controls
  • Temporal validation and business rule enforcement
  • Integration with warrant management administrative tools
  • Support for organizational period standardization

Data Management Features:

  • Comprehensive validation rules for temporal consistency
  • Audit trail support with creation tracking
  • Administrative accountability through creator identification
  • Timestamp behavior for lifecycle management
  • Footprint behavior for user action tracking

Usage Examples:

// Creating period templates
$warrantPeriodsTable = $this->getTableLocator()->get('WarrantPeriods');

// Standard annual period template
$annualPeriod = $warrantPeriodsTable->newEntity([
    'start_date' => '2024-01-01',
    'end_date' => '2024-12-31',
    'created_by' => $administratorId
]);
$warrantPeriodsTable->save($annualPeriod);

// Quarterly period template
$quarterlyPeriod = $warrantPeriodsTable->newEntity([
    'start_date' => '2024-01-01',
    'end_date' => '2024-03-31',
    'created_by' => $administratorId
]);
$warrantPeriodsTable->save($quarterlyPeriod);

// Finding available period templates
$availablePeriods = $warrantPeriodsTable->find()
    ->where(['start_date >=' => date('Y-m-d')])
    ->orderAsc('start_date')
    ->toArray();

Administrative Operations:

// Period template management
$periodsQuery = $warrantPeriodsTable->find()
    ->orderDesc('created')
    ->contain(['CreatedByMember']);

// Temporal validation queries
$overlappingPeriods = $warrantPeriodsTable->find()
    ->where([
        'OR' => [
            ['start_date <=' => $newStart, 'end_date >=' => $newStart],
            ['start_date <=' => $newEnd, 'end_date >=' => $newEnd]
        ]
    ])
    ->toArray();

// Period lifecycle operations
$activePeriods = $warrantPeriodsTable->find()
    ->where([
        'start_date <=' => date('Y-m-d'),
        'end_date >=' => date('Y-m-d')
    ])
    ->toArray();
Tags
see
WarrantPeriod

For warrant period entity functionality

mixin
mixin

Table of Contents

Constants

CACHE_GROUPS_TO_CLEAR  = []
CACHES_TO_CLEAR  = []
ID_CACHES_TO_CLEAR  = []

Methods

addBranchScopeQuery()  : SelectQuery
Add branch-based data scoping to a query.
afterDelete()  : void
After delete hook to capture impersonation audit trail entries.
afterSave()  : void
After-save handler for automatic cache invalidation.
deleteMany()  : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false
deleteManyOrFail()  : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>
findOrCreate()  : WarrantPeriod
get()  : WarrantPeriod
initialize()  : void
Initialize method - Table Configuration and Behavior Setup
newEmptyEntity()  : WarrantPeriod
newEntities()  : array<string|int, WarrantPeriod>
newEntity()  : WarrantPeriod
patchEntities()  : array<string|int, WarrantPeriod>
patchEntity()  : WarrantPeriod
save()  : WarrantPeriod|false
saveMany()  : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false
saveManyOrFail()  : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>
saveOrFail()  : WarrantPeriod
validationDefault()  : Validator
Default validation rules for warrant period templates
logImpersonationAction()  : void
Record impersonated writes to audit log table.

Constants

CACHE_GROUPS_TO_CLEAR

protected array<string|int, string> CACHE_GROUPS_TO_CLEAR = []

Cache groups to clear entirely on save

CACHES_TO_CLEAR

protected array<string|int, array{string, string}> CACHES_TO_CLEAR = []

Static cache entries to clear on save

ID_CACHES_TO_CLEAR

protected array<string|int, array{string, string}> ID_CACHES_TO_CLEAR = []

Entity-ID cache prefixes to clear on save

Methods

addBranchScopeQuery()

Add branch-based data scoping to a query.

public addBranchScopeQuery(SelectQuery $query, array<string|int, int> $branchIDs) : SelectQuery

Child tables should override for custom branch relationships.

Parameters
$query : SelectQuery

The query to modify

$branchIDs : array<string|int, int>

Authorized branch IDs

Return values
SelectQuery

Query with branch filtering

afterDelete()

After delete hook to capture impersonation audit trail entries.

public afterDelete(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
$event : EventInterface

Delete event

$entity : EntityInterface

Entity being deleted

$options : ArrayObject

Delete options

afterSave()

After-save handler for automatic cache invalidation.

public afterSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) : void
Parameters
$event : EventInterface

The afterSave event

$entity : EntityInterface

The saved entity

$options : ArrayObject

Save options

deleteMany()

public deleteMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false

deleteManyOrFail()

public deleteManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>

findOrCreate()

public findOrCreate(mixed $search[, callable|null $callback = = 'null' ][, array<string|int, mixed> $options = = '[]' ]) : WarrantPeriod
Parameters
$search : mixed
$callback : callable|null = = 'null'
$options : array<string|int, mixed> = = '[]'
Return values
WarrantPeriod

get()

public get(mixed $primaryKey[, array<string|int, mixed>|string $finder = = '\'all\'' ][, CacheInterface|string|null $cache = = 'null' ][, Closure|string|null $cacheKey = = 'null' ], mixed ...$args) : WarrantPeriod
Parameters
$primaryKey : mixed
$finder : array<string|int, mixed>|string = = '\'all\''
$cache : CacheInterface|string|null = = 'null'
$cacheKey : Closure|string|null = = 'null'
$args : mixed
Return values
WarrantPeriod

initialize()

Initialize method - Table Configuration and Behavior Setup

public initialize(array<string, mixed> $config) : void

Configures the WarrantPeriodsTable with essential behaviors for audit trails, user tracking, and automated timestamp management. This initialization ensures comprehensive tracking of all warrant period template operations and integrates with the KMP administrative framework.

Configuration Details:

  • Table name: 'warrant_periods'
  • Display field: 'name' (if available) or default primary key
  • Primary key: 'id' (auto-incrementing integer)

Behavior Integration:

  • Timestamp: Automatic created/modified datetime management
  • Footprint: User tracking for created_by/modified_by fields

Administrative Features:

  • Audit trail support for all period template operations
  • User accountability through creation and modification tracking
  • Integration with KMP authentication system for user identification
Parameters
$config : array<string, mixed>

The configuration for the Table.

newEntities()

public newEntities(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, WarrantPeriod>
Parameters
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
array<string|int, WarrantPeriod>

newEntity()

public newEntity(array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : WarrantPeriod
Parameters
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
WarrantPeriod

patchEntities()

public patchEntities(iterable<string|int, mixed> $entities, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : array<string|int, WarrantPeriod>
Parameters
$entities : iterable<string|int, mixed>
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
array<string|int, WarrantPeriod>

patchEntity()

public patchEntity(EntityInterface $entity, array<string|int, mixed> $data[, array<string|int, mixed> $options = = '[]' ]) : WarrantPeriod
Parameters
$entity : EntityInterface
$data : array<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
WarrantPeriod

save()

public save(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : WarrantPeriod|false
Parameters
$entity : EntityInterface
$options : array<string|int, mixed> = = '[]'
Return values
WarrantPeriod|false

saveMany()

public saveMany(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>|false

saveManyOrFail()

public saveManyOrFail(iterable<string|int, mixed> $entities[, array<string|int, mixed> $options = = '[]' ]) : iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>
Parameters
$entities : iterable<string|int, mixed>
$options : array<string|int, mixed> = = '[]'
Return values
iterable<string|int, WarrantPeriod>|ResultSetInterface<string|int, WarrantPeriod>

saveOrFail()

public saveOrFail(EntityInterface $entity[, array<string|int, mixed> $options = = '[]' ]) : WarrantPeriod
Parameters
$entity : EntityInterface
$options : array<string|int, mixed> = = '[]'
Return values
WarrantPeriod

validationDefault()

Default validation rules for warrant period templates

public validationDefault(Validator $validator) : Validator

Implements comprehensive validation for warrant period data to ensure data integrity, business rule compliance, and administrative accountability. These validation rules enforce temporal consistency and organizational requirements for period template management within the KMP warrant system.

Validation Architecture:

  • Temporal boundary validation for period consistency
  • Required field enforcement for essential period data
  • Optional field handling for administrative tracking
  • Business rule compliance for warrant system integration

Date Validation Rules:

  • start_date: Required date field for period start boundary
    • Must be valid date format
    • Required on entity creation
    • Cannot be empty for new period templates
  • end_date: Required date field for period end boundary
    • Must be valid date format
    • Required on entity creation
    • Cannot be empty for new period templates

Administrative Tracking:

  • created_by: Optional integer for administrator identification
    • Links to Members table for audit trail
    • Populated automatically by Footprint behavior
    • Can be empty for system-generated periods

Business Rule Considerations:

  • Period boundaries must be logically consistent (start <= end)
  • Additional business logic validation handled in entity layer
  • Integration with warrant roster validation requirements
  • Support for administrative period management workflows

Usage Examples:

// Valid period template creation
$period = $warrantPeriodsTable->newEntity([
    'start_date' => '2024-01-01',
    'end_date' => '2024-12-31',
    'created_by' => 123  // Optional administrative tracking
]);

// Validation will enforce required fields and date formats
if ($warrantPeriodsTable->save($period)) {
    // Period template created successfully
} else {
    // Handle validation errors
    $errors = $period->getErrors();
}
Parameters
$validator : Validator

Validator instance.

Return values
Validator

logImpersonationAction()

Record impersonated writes to audit log table.

protected logImpersonationAction(string $defaultOperation, EntityInterface $entity) : void
Parameters
$defaultOperation : string

Operation fallback (save/delete)

$entity : EntityInterface

Affected entity


        
On this page

Search results