TimeTrex API Manual

PayPeriodScheduleFactory extends Factory
in package

Table of Contents

$cache  : Cache_Lite_Function|Cache_Lite_Output
$data  : mixed
$db  : mixed
$is_new  : mixed
$old_data  : mixed
$rs  : mixed
$tmp_data  : mixed
$validate_only  : mixed
$Validator  : mixed
$api_message_id  : mixed
$create_initial_pay_periods  : mixed
$enable_create_initial_pay_periods  : mixed
$enable_system_log_detail  : mixed
$holiday_epochs  : mixed
$pk_sequence_name  : mixed
$progress_bar_obj  : mixed
$table  : mixed
$ignore_column_list  : bool
$is_valid  : mixed
$next_end_date  : bool|int|null
$next_primary  : bool
$next_start_date  : bool|int
$next_transaction_date  : bool|int|null
$original_time_zone  : string|null
__construct()  : mixed
Factory constructor.
__toString()  : bool|string
Print primary columns from object.
_getFactoryOptions()  : array<string|int, mixed>|null
_getVariableToFunctionMap()  : array<string|int, mixed>
addLog()  : bool
bulkDelete()  : bool
calcAnnualPayPeriods()  : bool|float|int
castGenericDataValue()  : mixed
Generic casting function that all set/get*() functions should pass through.
checkPayPeriodClosed()  : void
Checks if pay periods past their transaction dates have not been closed and sends a notification to users that need to be notified.
clearCacheSavedInTransaction()  : bool
clearData()  : bool
clearGeoCode()  : bool
clearNonMappedData()  : array<string|int, mixed>|null
Removes array elements from $data that are not in the function map.
clearOldData()  : bool
CommitSavePoint()  : bool
CommitTransaction()  : mixed
convertFlexArray()  : array<string|int, mixed>
convertLastDayOfMonth()  : int
countFuturePayPeriods()  : int
createNextPayPeriod()  : bool|object|PayPeriodFactory
createPayPeriodsForJobQueue()  : bool
Add pay periods for a single company from job queue.
decodeCustomFields()  : bool
decodeGenericJSONData()  : bool
Decode generic 'other_json' column data.
decodeJSONColumn()  : bool
Decodes JSON columns that are not the 'other_json' column.
Delete()  : bool
Deletes the record directly from the database.
detectPayPeriodScheduleDates()  : array<string|int, mixed>|bool
Given a single start date and the type of pay period schedule, try to determine all other dates.
detectPayPeriodScheduleSettings()  : bool
This function given the pay period schedule type and example dates will attempt to determine the pay period schedule settings.
encodeCustomFields()  : bool
encodeGenericJSONData()  : bool
Encode generic 'other_json' column data. This should only be done in Save() after all validation has occurred already and we are just about to commit it to the DB.
encodeJSONColumns()  : bool
Encode any JSON columns that are not 'other_json' column. This should only be done in Save() after all validation has occurred already and we are just about to commit it to the DB.
ExecuteSQL()  : bool
Execute SQL queries and handle paging properly for select statements.
FailTransaction()  : mixed
forceClosePreviousPayPeriods()  : bool
Close pay periods that were left open.
fromBool()  : bool
fromJSONBool()  : bool
getAffectedRows()  : int|bool
getAnchorDate()  : bool|int
getAnnualPayPeriods()  : bool|int
getAPIMessageID()  : bool|null
Used for updating progress bar for API calls.
getAutoCloseAfterDays()  : bool|int
getCache()  : bool|mixed
getColumn()  : bool|mixed
Generic function get any data from the data array.
getColumnList()  : array<string|int, mixed>|bool
getCompany()  : bool|mixed
getCompanyGenericMapData()  : mixed
Generic function to return and cache CompanyGenericMap data, this greatly improves performance of CalculatePolicy when many policies exist.
getCreatedAndUpdatedColumns()  : bool
getCreateDaysInAdvance()  : bool|int
getCreatedBy()  : bool|mixed
getCreatedDate()  : int
getCreateInitialPayPeriods()  : bool
getCurrent()  : mixed
Grabs the current object
getCurrentPayPeriodNumber()  : bool|float|int|mixed
Pay period number functionality is deprecated, it causes too many problems for little or no benefit.
getCurrentRow()  : int|bool
getCustomField()  : void
Get a single custom field by ID.
getCustomFields()  : mixed
getCustomFieldsColumns()  : array<string|int, mixed>
getCustomFieldsDataForObject()  : array<string|int, mixed>
Get custom field data for this specific object, so it can be easily cached in memory without having to go to the database or unserialize it from cache for every row.
getCustomFieldsDefaultData()  : mixed
getCustomFieldsParseHints()  : array<string|int, mixed>
getCustomFieldTableName()  : string
getDataDifferences()  : array<string|int, mixed>
Returns the differences in data from the DB vs the in-memory object, so the data will be the OLD data. Used in Validation/postSave() functions to determine if a field has changed or not.
getDateRangeSQL()  : bool|string
This function takes plain input from the user and creates a SQL statement for filtering based on a date range.
getDayStartTime()  : bool|int
getDeleted()  : bool
getDeletedBy()  : bool|mixed
getDeletedDate()  : bool|mixed
getDescription()  : bool|mixed
getEmptyRecordSet()  : mixed
getEnableInitialPayPeriods()  : bool
getEnableSystemLogDetail()  : bool
getFirstPayPeriodStartDate()  : bool|int
getGenericDataValue()  : bool|mixed
Generic getter/setter functions that should be used when Validation code is moved from get/set functions to Validate() function.
getGenericJSONDataValue()  : bool|mixed
Generic getter/setter functions for handling generic JSON data in 'other_json' SQL column.
getGenericObject()  : object|bool
Generic function to return and cache class objects ListFactory, ListFactoryMethod, Variable, ID, IDMethod
getGenericOldDataValue()  : bool|mixed
getGenericTempDataValue()  : bool
Generic getter/setter functions that should be used when Validation code is moved from get/set functions to Validate() function.
getHireAdjustedAnnualPayPeriods()  : bool|float|int|mixed
Get the annual pay periods adjusted for the employees hire date.
getHireAdjustedCurrentPayPeriodNumber()  : bool|float|int|mixed
Get the current pay period number adjusted for the employees hire date.
getHiredPayPeriodNumberAdjustment()  : bool|float|int|mixed
Get the pay period number that the employee was hired on. This starts at 0 so it can be added to getHireAdjustedCurrentPayPeriodNumber() to get the total annual pay periods.
getId()  : bool|mixed
getIDSByListFactory()  : array<string|int, mixed>|bool
getIterator()  : FactoryListIterator
getLabelId()  : bool|mixed|string
getMaximumShiftTime()  : bool|int
getName()  : bool|mixed
getNewDayTriggerTime()  : bool|int
Instead of daily continuous time, use minimum time-off between shifts that triggers a new day to start.
getNextAdvanceEndDate()  : bool
getNextAdvanceTransactionDate()  : bool
getNextEndDate()  : bool
getNextInsertId()  : bool|string
getNextPayPeriod()  : bool
getNextPayPeriods()  : Generator
getNextPrimary()  : bool
getNextStartDate()  : bool
getNextTransactionDate()  : bool
getObjectAsArray()  : array<string|int, mixed>
getOptions()  : array<string|int, mixed>|bool
getPermissionColumns()  : bool
getPrimaryDayOfMonth()  : bool|mixed
getPrimaryTransactionDayOfMonth()  : bool|mixed
getProgressBarObject()  : null|ProgressBar
getRecordCount()  : int|bool
getSecondaryDayOfMonth()  : bool|mixed
getSecondaryTransactionDayOfMonth()  : bool|mixed
getSequenceName()  : bool
getShiftAssignedDate()  : mixed
getShiftAssignedDay()  : bool|int
getShiftData()  : array<string|int, mixed>|bool
Returns shift data according to the pay period schedule criteria for use in determining which day punches belong to.
getStartAndEndDateRangeFromPastPayPeriods()  : array<string|int, mixed>|bool
getStartDayOfWeek()  : bool
getStartWeekDay()  : bool|int
getTable()  : bool|string
getTimeSheetVerifyBeforeEndDate()  : bool|string
getTimeSheetVerifyBeforeTransactionDate()  : bool|string
getTimeSheetVerifyNoticeBeforeTransactionDate()  : bool|int
Notices are no longer required with TimeSheet not verified exception.
getTimeSheetVerifyNoticeEmail()  : bool
getTimeSheetVerifyType()  : bool|int
getTimeZone()  : bool|mixed
getTimeZoneOptions()  : mixed
getTransactionBusinessDay()  : int
getTransactionDate()  : bool|mixed
getTransactionDateBusinessDay()  : bool|int
getTransactionMode()  : string
getType()  : bool|int
getUpdatedBy()  : bool|mixed
getUpdatedDate()  : int
getUser()  : array<string|int, mixed>|bool
getValidSQLColumns()  : array<string|int, mixed>
getVariableToFunctionMap()  : array<string|int, mixed>|bool
handleSaveSQLReturning()  : bool
Used to handle any "RETURNING ..." clause on a SQL INSERT/UPDATE query.
hasDataChanged()  : bool
Determine if the record data has changed at all.
importData()  : bool
isClientFriendly()  : bool
Check if the remote client is our main UI app controlled by us, vs. a user utilizing the API for example.
isDataDifferent()  : bool
Used to check the differences between a single key in the $old_data vs. $data arrays.
isNew()  : bool
Determines if the data is new data, or updated data. Basically determines if a database INSERT or UPDATE SQL statement is generated.
isSQLExceptionRetryable()  : bool
Determines if a SQL exception is one that can be retried or not.
isUniqueName()  : bool
isValid()  : bool
Call class specific validation function just before saving.
isWarning()  : bool
Call class specific validation function just before saving.
modifyInsertQuery()  : mixed
Modifies the automatically generated SQL INSERT query for adding things like " ON CONFLICT ..."
parseCustomFieldsFromArray()  : mixed
postSave()  : bool
preSave()  : bool
preValidate()  : bool
removeCache()  : bool
RetryTransaction()  : mixed
Accepts a Closure and is retried at set intervals which should be in a transaction.
rewind()  : bool
Rewinds record set iterator to begining. The same as ADODB's MoveFirst() function.
RollbackSavePoint()  : bool
Save()  : bool|int|string
Determines to insert or update, and does it.
saveCache()  : bool
serializeRS()  : string
Serialize ADODB recordset.
setAnchorDate()  : bool
setAnnualPayPeriods()  : bool
setAPIMessageID()  : bool
setAutoCloseAfterDays()  : bool
setCacheLifeTime()  : bool
setCompany()  : bool
setCreatedAndUpdatedColumns()  : bool
setCreateDaysInAdvance()  : bool
setCreatedBy()  : bool
setCreatedDate()  : bool
setCreateInitialPayPeriods()  : bool
setCustomField()  : void
Set a single custom field by ID.
setCustomFields()  : bool
setDayStartTime()  : bool
setDeleted()  : bool
setDeletedBy()  : bool|null
setDeletedDate()  : bool
setDescription()  : bool
setEnableInitialPayPeriods()  : bool
setEnableSystemLogDetail()  : bool
setGenericDataValue()  : bool
setGenericJSONDataValue()  : bool
Generic getter/setter functions for handling generic JSON data in 'other_json' SQL column.
setGenericObject()  : bool
Allow method to pre-populate/overwrite the cache if needed.
setGenericTempDataValue()  : bool
setId()  : bool
setIsValid()  : bool
Sets the is_valid flag, mostly used to set it to FALSE to force a full re-validation.
setMaximumShiftTime()  : bool
setName()  : bool
setNewDayTriggerTime()  : bool
setObjectFromArray()  : bool
Support setting created_by, updated_by especially for importing data.
setOriginalTimeZone()  : bool
setPayPeriodTimeZone()  : bool
setPrimaryDayOfMonth()  : bool
setPrimaryTransactionDayOfMonth()  : bool
setProgressBarObject()  : bool
setQueryStatementTimeout()  : bool
setSecondaryDayOfMonth()  : bool
setSecondaryTransactionDayOfMonth()  : bool
setShiftAssignedDay()  : bool
setStartDayOfWeek()  : bool
setStartWeekDay()  : bool
setTimeSheetVerifyBeforeEndDate()  : bool
setTimeSheetVerifyBeforeTransactionDate()  : bool
setTimeSheetVerifyNoticeBeforeTransactionDate()  : bool
setTimeSheetVerifyNoticeEmail()  : bool
setTimeSheetVerifyType()  : bool
setTimeZone()  : bool
setTransactionDate()  : bool
setTransactionDateBusinessDay()  : bool
setTransactionMode()  : mixed
setType()  : bool
setUpdatedBy()  : bool|null
setUpdatedDate()  : bool|int|null|string
setUser()  : bool
StartSavePoint()  : bool
StartTransaction()  : mixed
toBool()  : int
toJSONBool()  : string
Validate()  : bool
validateCustomFields()  : mixed
castInteger()  : bool|int|string
getColumnsFromAliases()  : array<string|int, mixed>
getCustomFieldWhereSQL()  : string
getDatabaseType()  : string
getListSQL()  : bool|int|string|array<string|int, mixed>
getSortSQL()  : bool|string
getSQLStringAggregate()  : string
getSQLToEpochFunction()  : string
getSQLToTimeFunction()  : string
getSQLToTimeStampFunction()  : string
getWhereClauseSQL()  : null|string
getWhereSQL()  : bool|string
handleSQLSyntax()  : string
SQL where clause Syntax: or % as wildcard.
stripSQLSyntax()  : mixed
getInsertQuery()  : mixed
getRecordSetColumnList()  : array<string|int, mixed>|bool
getUpdateQuery()  : bool
parseColumnName()  : bool|string
Parses out the exact column name, without any aliases, or = signs in it.

Properties

$cache

public Cache_Lite_Function|Cache_Lite_Output $cache = \null

$enable_system_log_detail

protected mixed $enable_system_log_detail = \true

Methods

__construct()

Factory constructor.

public __construct() : mixed
Return values
mixed

__toString()

Print primary columns from object.

public __toString() : bool|string
Return values
bool|string

_getFactoryOptions()

public _getFactoryOptions(string $name[, null $parent = null ]) : array<string|int, mixed>|null
Parameters
$name : string
$parent : null = null
Return values
array<string|int, mixed>|null

_getVariableToFunctionMap()

public _getVariableToFunctionMap(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
$data : array<string|int, mixed>
Return values
array<string|int, mixed>

bulkDelete()

public bulkDelete(string|array<string|int, mixed> $ids) : bool
Parameters
$ids : string|array<string|int, mixed>

UUID

Tags
throws
DBError
Return values
bool

calcAnnualPayPeriods()

public calcAnnualPayPeriods([int $type_id = null ]) : bool|float|int
Parameters
$type_id : int = null

ID

Return values
bool|float|int

castGenericDataValue()

Generic casting function that all set/get*() functions should pass through.

public castGenericDataValue( &$value,  $cast) : mixed

However for now lets wait until we have meta data from SQL schema so we can pass those datatypes directly into this.

Parameters
$value :

mixed

$cast :

string

Return values
mixed

checkPayPeriodClosed()

Checks if pay periods past their transaction dates have not been closed and sends a notification to users that need to be notified.

public static checkPayPeriodClosed() : void
Return values
void

clearCacheSavedInTransaction()

public clearCacheSavedInTransaction() : bool
Return values
bool

clearData()

public clearData() : bool
Return values
bool

clearGeoCode()

public clearGeoCode([array<string|int, mixed> $data_diff = null ]) : bool
Parameters
$data_diff : array<string|int, mixed> = null
Return values
bool

clearNonMappedData()

Removes array elements from $data that are not in the function map.

public clearNonMappedData([array<string|int, mixed>|null $data = null ]) : array<string|int, mixed>|null
Parameters
$data : array<string|int, mixed>|null = null
Return values
array<string|int, mixed>|null

clearOldData()

public clearOldData() : bool
Return values
bool

CommitSavePoint()

public CommitSavePoint( $name) : bool
Parameters
$name :
Return values
bool

CommitTransaction()

public CommitTransaction([bool $unnest_transactions = false ]) : mixed
Parameters
$unnest_transactions : bool = false
Tags
throws
DBError
Return values
mixed

convertFlexArray()

public convertFlexArray(array<string|int, mixed> $array) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>
Return values
array<string|int, mixed>

countFuturePayPeriods()

public countFuturePayPeriods( $pp_obj[, null $start_date = null ][, null $end_date = null ]) : int
Parameters
$pp_obj :
$start_date : null = null
$end_date : null = null
Return values
int

createNextPayPeriod()

public createNextPayPeriod([null $end_date = null ][, null $offset = null ][, bool $enable_import_data = true ][, bool $enable_dynamic_pay_period = false ][, PayPeriodFactory $previous_pay_period_obj = null ]) : bool|object|PayPeriodFactory
Parameters
$end_date : null = null
$offset : null = null
$enable_import_data : bool = true
$enable_dynamic_pay_period : bool = false
$previous_pay_period_obj : PayPeriodFactory = null
Tags
throws
DBError
throws
GeneralError
throws
ReflectionException
Return values
bool|object|PayPeriodFactory

createPayPeriodsForJobQueue()

Add pay periods for a single company from job queue.

public static createPayPeriodsForJobQueue( $company_id) : bool
Parameters
$company_id :
Tags
throws
DBError
throws
GeneralError
throws
ReflectionException
Return values
bool

decodeCustomFields()

public decodeCustomFields() : bool
Return values
bool

decodeGenericJSONData()

Decode generic 'other_json' column data.

public decodeGenericJSONData() : bool
Return values
bool

decodeJSONColumn()

Decodes JSON columns that are not the 'other_json' column.

public decodeJSONColumn( $column) : bool
Parameters
$column :
Return values
bool

Delete()

Deletes the record directly from the database.

public Delete([bool $disable_audit_log = false ]) : bool
Parameters
$disable_audit_log : bool = false
Tags
throws
DBError
Return values
bool

detectPayPeriodScheduleDates()

Given a single start date and the type of pay period schedule, try to determine all other dates.

public detectPayPeriodScheduleDates(int $type_id, int $start_date) : array<string|int, mixed>|bool
Parameters
$type_id : int
$start_date : int

EPOCH

Return values
array<string|int, mixed>|bool

detectPayPeriodScheduleSettings()

This function given the pay period schedule type and example dates will attempt to determine the pay period schedule settings.

public detectPayPeriodScheduleSettings(int $type_id, int $example_dates) : bool

This will automatically configure the current object to be saved. Base create initial pay period functionality on the first pay period date, otherwise we need additional data for bi-weekly pay periods.

Parameters
$type_id : int
$example_dates : int

EPOCH

Return values
bool

encodeCustomFields()

public encodeCustomFields() : bool
Return values
bool

encodeGenericJSONData()

Encode generic 'other_json' column data. This should only be done in Save() after all validation has occurred already and we are just about to commit it to the DB.

public encodeGenericJSONData() : bool
Return values
bool

encodeJSONColumns()

Encode any JSON columns that are not 'other_json' column. This should only be done in Save() after all validation has occurred already and we are just about to commit it to the DB.

public encodeJSONColumns() : bool
Return values
bool

ExecuteSQL()

Execute SQL queries and handle paging properly for select statements.

public ExecuteSQL(string $query[, array<string|int, mixed> $ph = null ][, int $limit = null ][, int $page = null ]) : bool
Parameters
$query : string
$ph : array<string|int, mixed> = null
$limit : int = null

Limit the number of records returned

$page : int = null

Page number of records to return for pagination

Tags
throws
DBError
throws
Exception
Return values
bool

FailTransaction()

public FailTransaction() : mixed
Return values
mixed

forceClosePreviousPayPeriods()

Close pay periods that were left open.

public forceClosePreviousPayPeriods([int $date = null ]) : bool

Pay period schedule must be at least 45 days old so we don't close pay periods on new customers right away. Only close OPEN/Locked pay periods that have passed the transaction date by 5 days. Get OPEN pay periods with transaction dates at least 48hrs before the given date? Or should we just prevent customers from generating pay stubs in a pay period that has a previous pay period that is still open? Both.

Parameters
$date : int = null

EPOCH

Return values
bool

fromBool()

public fromBool(string|int|bool $value) : bool
Parameters
$value : string|int|bool
Return values
bool

fromJSONBool()

public fromJSONBool(string|int|bool $value) : bool
Parameters
$value : string|int|bool
Return values
bool

getAffectedRows()

public getAffectedRows() : int|bool
Return values
int|bool

getAnchorDate()

public getAnchorDate([bool $raw = false ]) : bool|int
Parameters
$raw : bool = false
Return values
bool|int

getAPIMessageID()

Used for updating progress bar for API calls.

public getAPIMessageID() : bool|null
Return values
bool|null

getCache()

public getCache(string $cache_id[, string $group_id = null ]) : bool|mixed
Parameters
$cache_id : string
$group_id : string = null
Return values
bool|mixed

getColumn()

Generic function get any data from the data array.

public getColumn(string $column) : bool|mixed

Used mainly for the reports that return grouped queries and such.

Parameters
$column : string
Return values
bool|mixed

getColumnList()

public getColumnList() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|bool

getCompanyGenericMapData()

Generic function to return and cache CompanyGenericMap data, this greatly improves performance of CalculatePolicy when many policies exist.

public getCompanyGenericMapData(string $company_id, int $object_type_id, string $id, string $variable) : mixed
Parameters
$company_id : string

UUID

$object_type_id : int
$id : string

UUID

$variable : string
Return values
mixed

getCreatedAndUpdatedColumns()

public getCreatedAndUpdatedColumns(array<string|int, mixed> &$data[, null $include_columns = null ]) : bool
Parameters
$data : array<string|int, mixed>
$include_columns : null = null
Return values
bool

getCreatedBy()

public getCreatedBy() : bool|mixed
Return values
bool|mixed

getCreatedDate()

public getCreatedDate() : int
Return values
int

getCurrent()

Grabs the current object

public final getCurrent() : mixed
Return values
mixed

getCurrentPayPeriodNumber()

Pay period number functionality is deprecated, it causes too many problems for little or no benefit.

public getCurrentPayPeriodNumber([int $epoch = null ][, int $end_date_epoch = null ]) : bool|float|int|mixed

Its also impossible to properly handle in custom situations where pay periods may be adjusted. However it is required in CompanyDeduction FormulaType=20 situations.

Parameters
$epoch : int = null

EPOCH Must be a TRANSACTION DATE of a Pay Period

$end_date_epoch : int = null

EPOCH Must be a END DATE of a Pay Period

Return values
bool|float|int|mixed

getCurrentRow()

public getCurrentRow([int $offset = 1 ]) : int|bool
Parameters
$offset : int = 1
Return values
int|bool

getCustomField()

Get a single custom field by ID.

public getCustomField(string $id) : void
Parameters
$id : string

UUID

Return values
void

getCustomFields()

public getCustomFields( $company_id,  $data[,  $include_columns = null ]) : mixed
Parameters
$company_id :
$data :
$include_columns : = null
Return values
mixed

getCustomFieldsColumns()

public getCustomFieldsColumns(array<string|int, mixed> $columns, string $company_id[, bool $use_sort_prefix = true ][, string|null $table_name = null ]) : array<string|int, mixed>
Parameters
$columns : array<string|int, mixed>
$company_id : string
$use_sort_prefix : bool = true
$table_name : string|null = null
Return values
array<string|int, mixed>

getCustomFieldsDataForObject()

Get custom field data for this specific object, so it can be easily cached in memory without having to go to the database or unserialize it from cache for every row.

public getCustomFieldsDataForObject( $company_id[, mixed $table_name = null ]) : array<string|int, mixed>
Parameters
$company_id :
$table_name : mixed = null
Tags
throws
ReflectionException
Return values
array<string|int, mixed>

getCustomFieldsDefaultData()

public getCustomFieldsDefaultData( $company_id,  $data[, bool $get_all_fields = false ]) : mixed
Parameters
$company_id :
$data :
$get_all_fields : bool = false
Return values
mixed

getCustomFieldsParseHints()

public getCustomFieldsParseHints(array<string|int, mixed> $columns, string $company_id, string|null $table_name) : array<string|int, mixed>
Parameters
$columns : array<string|int, mixed>
$company_id : string
$table_name : string|null
Return values
array<string|int, mixed>

getCustomFieldTableName()

public getCustomFieldTableName() : string
Return values
string

getDataDifferences()

Returns the differences in data from the DB vs the in-memory object, so the data will be the OLD data. Used in Validation/postSave() functions to determine if a field has changed or not.

public getDataDifferences() : array<string|int, mixed>
Return values
array<string|int, mixed>

getDateRangeSQL()

This function takes plain input from the user and creates a SQL statement for filtering based on a date range.

public getDateRangeSQL(string $str, string $column[, string $format = 'epoch' ][, bool $include_blank_dates = false ]) : bool|string

Supported Syntax:

=01-Jan-09 <=01-Jan-09 <01-Jan-09 01-Jan-09 01-Jan-09 & <10-Jan-09

Parameters
$str : string
$column : string
$format : string = 'epoch'
$include_blank_dates : bool = false
Return values
bool|string

getDeleted()

public getDeleted() : bool
Return values
bool

getDeletedBy()

public getDeletedBy() : bool|mixed
Return values
bool|mixed

getDeletedDate()

public getDeletedDate() : bool|mixed
Return values
bool|mixed

getEmptyRecordSet()

public getEmptyRecordSet([string $id = null ]) : mixed
Parameters
$id : string = null

UUID

Tags
throws
DBError
Return values
mixed

getEnableSystemLogDetail()

public getEnableSystemLogDetail() : bool
Return values
bool

getGenericDataValue()

Generic getter/setter functions that should be used when Validation code is moved from get/set functions to Validate() function.

public getGenericDataValue(string $name[, null $cast = null ]) : bool|mixed
Parameters
$name : string
$cast : null = null
Return values
bool|mixed

getGenericJSONDataValue()

Generic getter/setter functions for handling generic JSON data in 'other_json' SQL column.

public getGenericJSONDataValue(string $name[, null $cast = null ]) : bool|mixed
Parameters
$name : string
$cast : null = null
Return values
bool|mixed

getGenericObject()

Generic function to return and cache class objects ListFactory, ListFactoryMethod, Variable, ID, IDMethod

public getGenericObject(string $list_factory, string|int $id, string $variable[, string $list_factory_method = 'getById' ][, string $id_method = 'getID' ]) : object|bool
Parameters
$list_factory : string
$id : string|int

UUID

$variable : string
$list_factory_method : string = 'getById'
$id_method : string = 'getID'
Return values
object|bool

getGenericOldDataValue()

public getGenericOldDataValue(string $name) : bool|mixed
Parameters
$name : string

Gets data value from old_data array, or the original value in the database, prior to any changes currently in memory.

Return values
bool|mixed

getGenericTempDataValue()

Generic getter/setter functions that should be used when Validation code is moved from get/set functions to Validate() function.

public getGenericTempDataValue(string $name) : bool
Parameters
$name : string
Return values
bool

getHireAdjustedAnnualPayPeriods()

Get the annual pay periods adjusted for the employees hire date.

public getHireAdjustedAnnualPayPeriods([int $epoch = null ][, int $hire_date = null ]) : bool|float|int|mixed

This is required in CompanyDeduction FormulaType=20 situations.

Parameters
$epoch : int = null

EPOCH Must be a TRANSACTION DATE of a Pay Period

$hire_date : int = null

EPOCH Hire date of employee

Return values
bool|float|int|mixed

getHireAdjustedCurrentPayPeriodNumber()

Get the current pay period number adjusted for the employees hire date.

public getHireAdjustedCurrentPayPeriodNumber([int $epoch = null ][, int $end_date_epoch = null ][, int $hire_date = null ]) : bool|float|int|mixed

This is required in CompanyDeduction FormulaType=20 situations.

Parameters
$epoch : int = null

EPOCH Must be a TRANSACTION DATE of a Pay Period

$end_date_epoch : int = null

EPOCH Must be a END DATE of a Pay Period

$hire_date : int = null

EPOCH Hire date of employee

Return values
bool|float|int|mixed

getHiredPayPeriodNumberAdjustment()

Get the pay period number that the employee was hired on. This starts at 0 so it can be added to getHireAdjustedCurrentPayPeriodNumber() to get the total annual pay periods.

public getHiredPayPeriodNumberAdjustment([int $epoch = null ][, int $hire_date = null ]) : bool|float|int|mixed

This is required in CompanyDeduction FormulaType=20 situations.

Parameters
$epoch : int = null

EPOCH Must be a TRANSACTION DATE of a Pay Period

$hire_date : int = null

EPOCH Hire date of employee

Return values
bool|float|int|mixed

getId()

public getId() : bool|mixed
Return values
bool|mixed

getIDSByListFactory()

public getIDSByListFactory(object $lf) : array<string|int, mixed>|bool
Parameters
$lf : object
Return values
array<string|int, mixed>|bool

getLabelId()

public getLabelId() : bool|mixed|string
Return values
bool|mixed|string

getNewDayTriggerTime()

Instead of daily continuous time, use minimum time-off between shifts that triggers a new day to start.

public getNewDayTriggerTime() : bool|int
Return values
bool|int

getNextInsertId()

public getNextInsertId() : bool|string
Return values
bool|string

getNextPayPeriod()

public getNextPayPeriod([int $end_date = null ][, object $previous_dynamic_pay_period = null ]) : bool
Parameters
$end_date : int = null

EPOCH

$previous_dynamic_pay_period : object = null
Return values
bool

getNextPayPeriods()

public static getNextPayPeriods( $company_id,  $pay_period_schedule_ids,  $end_date_offset[, null $starting_pay_period_obj = null ]) : Generator
Parameters
$company_id :
$pay_period_schedule_ids :
$end_date_offset :
$starting_pay_period_obj : null = null
Return values
Generator

getObjectAsArray()

public getObjectAsArray([null $include_columns = null ]) : array<string|int, mixed>
Parameters
$include_columns : null = null
Return values
array<string|int, mixed>

getOptions()

public getOptions(string $name[, string|int $parent = null ]) : array<string|int, mixed>|bool
Parameters
$name : string
$parent : string|int = null
Return values
array<string|int, mixed>|bool

getPermissionColumns()

public getPermissionColumns(array<string|int, mixed> &$data, string $object_user_id, string $created_by_id[, string $permission_children_ids = null ][, array<string|int, mixed> $include_columns = null ]) : bool
Parameters
$data : array<string|int, mixed>
$object_user_id : string

UUID

$created_by_id : string

UUID

$permission_children_ids : string = null

UUID

$include_columns : array<string|int, mixed> = null
Return values
bool

getRecordCount()

public getRecordCount() : int|bool
Return values
int|bool

getSequenceName()

public getSequenceName() : bool
Return values
bool

getShiftAssignedDate()

public getShiftAssignedDate(int $start_epoch, int $end_epoch[, bool $shift_assigned_day_id = false ]) : mixed
Parameters
$start_epoch : int

EPOCH

$end_epoch : int

EPOCH

$shift_assigned_day_id : bool = false
Return values
mixed

getShiftData()

Returns shift data according to the pay period schedule criteria for use in determining which day punches belong to.

public getShiftData([int $date_stamp = null ][, string $user_id = null ][, int $epoch = null ][, null $filter = null ][, object $tmp_punch_control_obj = null ][, null $maximum_shift_time = null ][, null $new_shift_trigger_time = null ][, null $plf = null ][, bool $ignore_future_punches = false ]) : array<string|int, mixed>|bool
Parameters
$date_stamp : int = null

EPOCH

$user_id : string = null

UUID

$epoch : int = null

EPOCH

$filter : null = null
$tmp_punch_control_obj : object = null
$maximum_shift_time : null = null
$new_shift_trigger_time : null = null
$plf : null = null
$ignore_future_punches : bool = false
Return values
array<string|int, mixed>|bool

getStartAndEndDateRangeFromPastPayPeriods()

public getStartAndEndDateRangeFromPastPayPeriods( $date_stamp[, int $total_pay_periods = 1 ]) : array<string|int, mixed>|bool
Parameters
$date_stamp :
$total_pay_periods : int = 1
Return values
array<string|int, mixed>|bool

getStartDayOfWeek()

public getStartDayOfWeek([bool $raw = false ]) : bool
Parameters
$raw : bool = false
Return values
bool

getTable()

public getTable([bool $strip_quotes = false ]) : bool|string
Parameters
$strip_quotes : bool = false
Return values
bool|string

getTimeSheetVerifyBeforeTransactionDate()

public getTimeSheetVerifyBeforeTransactionDate() : bool|string
Return values
bool|string

getTimeSheetVerifyNoticeBeforeTransactionDate()

Notices are no longer required with TimeSheet not verified exception.

public getTimeSheetVerifyNoticeBeforeTransactionDate() : bool|int
Return values
bool|int

getTransactionBusinessDay()

public getTransactionBusinessDay(int $epoch) : int
Parameters
$epoch : int

EPOCH

Return values
int

getTransactionMode()

public getTransactionMode([bool $force = false ]) : string
Parameters
$force : bool = false
Return values
string

getUpdatedBy()

public getUpdatedBy() : bool|mixed
Return values
bool|mixed

getUpdatedDate()

public getUpdatedDate() : int
Return values
int

getValidSQLColumns()

public getValidSQLColumns(array<string|int, mixed> $array[, bool $strict = true ][, array<string|int, mixed> $additional_fields = null ]) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>
$strict : bool = true
$additional_fields : array<string|int, mixed> = null
Tags
throws
Exception
Return values
array<string|int, mixed>

getVariableToFunctionMap()

public getVariableToFunctionMap([array<string|int, mixed> $data = null ]) : array<string|int, mixed>|bool
Parameters
$data : array<string|int, mixed> = null
Return values
array<string|int, mixed>|bool

handleSaveSQLReturning()

Used to handle any "RETURNING ..." clause on a SQL INSERT/UPDATE query.

public handleSaveSQLReturning( $rs) : bool
Parameters
$rs :
Return values
bool

hasDataChanged()

Determine if the record data has changed at all.

public hasDataChanged() : bool
Return values
bool

isClientFriendly()

Check if the remote client is our main UI app controlled by us, vs. a user utilizing the API for example.

public isClientFriendly() : bool

This is mostly used to determine if we can return columns that are resource intensive to compute when obtaining a list. (ie: Users, Jobs)

Return values
bool

isDataDifferent()

Used to check the differences between a single key in the $old_data vs. $data arrays.

public isDataDifferent( $key,  $data_diff[, null $type_id = null ][, null $new_data = null ]) : bool

This is especially important to use when trying to see if a date or timestamp field in the DB has changed, as they need to be handled in special ways.

Parameters
$key :

string

$data_diff :

array

$type_id : null = null

string

$new_data : null = null

mixed

Return values
bool

isNew()

Determines if the data is new data, or updated data. Basically determines if a database INSERT or UPDATE SQL statement is generated.

public isNew([bool $force_lookup = false ][, string $id = null ]) : bool
Parameters
$force_lookup : bool = false
$id : string = null

UUID

Return values
bool

isSQLExceptionRetryable()

Determines if a SQL exception is one that can be retried or not.

public isSQLExceptionRetryable( $e) : bool
Parameters
$e :

Exception

Return values
bool

isValid()

Call class specific validation function just before saving.

public isValid([bool $ignore_warning = true ]) : bool
Parameters
$ignore_warning : bool = true
Return values
bool

isWarning()

Call class specific validation function just before saving.

public isWarning() : bool
Return values
bool

modifyInsertQuery()

Modifies the automatically generated SQL INSERT query for adding things like " ON CONFLICT ..."

public modifyInsertQuery( $query) : mixed
Parameters
$query :
Return values
mixed

parseCustomFieldsFromArray()

public parseCustomFieldsFromArray( $data) : mixed
Parameters
$data :
Return values
mixed

removeCache()

public removeCache([string $cache_id = null ][, string $group_id = null ]) : bool
Parameters
$cache_id : string = null
$group_id : string = null
Return values
bool

RetryTransaction()

Accepts a Closure and is retried at set intervals which should be in a transaction.

public RetryTransaction( $transaction_function[, int $retry_max_attempts = 4 ][, int $retry_sleep = 1 ]) : mixed
Parameters
$transaction_function :

Closure

$retry_max_attempts : int = 4
$retry_sleep : int = 1

in seconds

Tags
throws
DBError
Return values
mixed

rewind()

Rewinds record set iterator to begining. The same as ADODB's MoveFirst() function.

public final rewind() : bool
Return values
bool

RollbackSavePoint()

public RollbackSavePoint( $name) : bool
Parameters
$name :
Return values
bool

Save()

Determines to insert or update, and does it.

public Save([bool $reset_data = true ][, bool $force_lookup = false ]) : bool|int|string

Have this handle created, createdby, updated, updatedby.

Parameters
$reset_data : bool = true
$force_lookup : bool = false
Tags
throws
DBError
throws
GeneralError
Return values
bool|int|string

saveCache()

public saveCache(mixed $data, string $cache_id[, string $group_id = null ]) : bool
Parameters
$data : mixed
$cache_id : string
$group_id : string = null
Return values
bool

serializeRS()

Serialize ADODB recordset.

public serializeRS(object $rs) : string
Parameters
$rs : object
Tags
noinspection

PhpUndefinedConstantInspection

Return values
string

setAPIMessageID()

public setAPIMessageID(string $id) : bool
Parameters
$id : string

UUID

Return values
bool

setCacheLifeTime()

public setCacheLifeTime(int $secs) : bool
Parameters
$secs : int
Return values
bool

setCreatedAndUpdatedColumns()

public setCreatedAndUpdatedColumns(array<string|int, mixed> $data[, array<string|int, mixed> $variable_to_function_map = [] ]) : bool
Parameters
$data : array<string|int, mixed>
$variable_to_function_map : array<string|int, mixed> = []
Return values
bool

setCreatedBy()

public setCreatedBy([string $id = null ]) : bool
Parameters
$id : string = null

UUID

Return values
bool

setCreatedDate()

public setCreatedDate([int $epoch = null ]) : bool
Parameters
$epoch : int = null

EPOCH

Return values
bool

setCustomField()

Set a single custom field by ID.

public setCustomField(mixed $value, string $id) : void
Parameters
$value : mixed
$id : string

UUID

Return values
void

setCustomFields()

public setCustomFields( $data) : bool
Parameters
$data :
Return values
bool

setDeleted()

public setDeleted(bool $bool) : bool
Parameters
$bool : bool
Return values
bool

setDeletedBy()

public setDeletedBy([string $id = null ]) : bool|null
Parameters
$id : string = null

UUID

Return values
bool|null

setDeletedDate()

public setDeletedDate([int $epoch = null ]) : bool
Parameters
$epoch : int = null

EPOCH

Return values
bool

setEnableSystemLogDetail()

public setEnableSystemLogDetail( $bool) : bool
Parameters
$bool :
Return values
bool

setGenericDataValue()

public setGenericDataValue(string $name, mixed $data[, null $cast = null ]) : bool
Parameters
$name : string
$data : mixed
$cast : null = null
Return values
bool

setGenericJSONDataValue()

Generic getter/setter functions for handling generic JSON data in 'other_json' SQL column.

public setGenericJSONDataValue(string $name, mixed $data[, null $cast = null ]) : bool
Parameters
$name : string
$data : mixed
$cast : null = null
Return values
bool

setGenericObject()

Allow method to pre-populate/overwrite the cache if needed.

public setGenericObject(object $obj, string $variable) : bool
Parameters
$obj : object
$variable : string
Return values
bool

setGenericTempDataValue()

public setGenericTempDataValue(string $name, mixed $data) : bool
Parameters
$name : string
$data : mixed
Return values
bool

setId()

public setId(string $id) : bool
Parameters
$id : string

UUID

Return values
bool

setIsValid()

Sets the is_valid flag, mostly used to set it to FALSE to force a full re-validation.

public setIsValid([bool $is_valid = false ]) : bool

Required because $this->is_valid is a private variable and should stay that way.

Parameters
$is_valid : bool = false
Return values
bool

setObjectFromArray()

Support setting created_by, updated_by especially for importing data.

public setObjectFromArray( $data) : bool

Make sure data is set based on the getVariableToFunctionMap order.

Parameters
$data :
Return values
bool

setPrimaryTransactionDayOfMonth()

public setPrimaryTransactionDayOfMonth( $value) : bool
Parameters
$value :
Return values
bool

setProgressBarObject()

public setProgressBarObject(object $obj) : bool
Parameters
$obj : object
Return values
bool

setQueryStatementTimeout()

public setQueryStatementTimeout([null $milliseconds = null ]) : bool
Parameters
$milliseconds : null = null
Return values
bool

setSecondaryTransactionDayOfMonth()

public setSecondaryTransactionDayOfMonth( $value) : bool
Parameters
$value :
Return values
bool

setTimeSheetVerifyBeforeEndDate()

public setTimeSheetVerifyBeforeEndDate( $value) : bool
Parameters
$value :
Return values
bool

setTimeSheetVerifyBeforeTransactionDate()

public setTimeSheetVerifyBeforeTransactionDate( $value) : bool
Parameters
$value :
Return values
bool

setTimeSheetVerifyNoticeBeforeTransactionDate()

public setTimeSheetVerifyNoticeBeforeTransactionDate( $value) : bool
Parameters
$value :
Return values
bool

setTimeSheetVerifyNoticeEmail()

public setTimeSheetVerifyNoticeEmail( $value) : bool
Parameters
$value :
Return values
bool

setTransactionDateBusinessDay()

public setTransactionDateBusinessDay( $value) : bool
Parameters
$value :
Return values
bool

setTransactionMode()

public setTransactionMode([string $mode = '' ]) : mixed
Parameters
$mode : string = ''
Return values
mixed

setUpdatedBy()

public setUpdatedBy([string $id = null ]) : bool|null
Parameters
$id : string = null

UUID

Return values
bool|null

setUpdatedDate()

public setUpdatedDate([int $epoch = null ]) : bool|int|null|string
Parameters
$epoch : int = null

EPOCH

Return values
bool|int|null|string

setUser()

public setUser(string|array<string|int, string> $ids) : bool
Parameters
$ids : string|array<string|int, string>

UUID

Return values
bool

StartSavePoint()

public StartSavePoint( $name) : bool
Parameters
$name :
Return values
bool

StartTransaction()

public StartTransaction() : mixed
Return values
mixed

toBool()

public toBool(string|int|bool $value) : int
Parameters
$value : string|int|bool
Return values
int

toJSONBool()

public toJSONBool(string|int|bool $value) : string
Parameters
$value : string|int|bool
Return values
string

Validate()

public Validate([bool $ignore_warning = true ]) : bool
Parameters
$ignore_warning : bool = true
Return values
bool

validateCustomFields()

public validateCustomFields(mixed $company_id[, mixed $enable_required_field_check = true ]) : mixed
Parameters
$company_id : mixed
$enable_required_field_check : mixed = true
Return values
mixed

castInteger()

protected castInteger(int|string $int[, string $type = 'int' ]) : bool|int|string
Parameters
$int : int|string
$type : string = 'int'
Return values
bool|int|string

getColumnsFromAliases()

protected getColumnsFromAliases(array<string|int, mixed> $columns, array<string|int, mixed> $aliases) : array<string|int, mixed>
Parameters
$columns : array<string|int, mixed>
$aliases : array<string|int, mixed>
Return values
array<string|int, mixed>

getCustomFieldWhereSQL()

protected getCustomFieldWhereSQL(mixed $company_id, mixed $column, array<string|int, mixed> $filter_data, array<string|int, mixed> &$ph) : string
Parameters
$company_id : mixed
$column : mixed
$filter_data : array<string|int, mixed>
$ph : array<string|int, mixed>
Return values
string

getDatabaseType()

protected getDatabaseType() : string
Return values
string

getListSQL()

protected getListSQL(array<string|int, mixed>|string|int $array[, array<string|int, mixed> &$ph = null ][, string|bool $cast = false ]) : bool|int|string|array<string|int, mixed>
Parameters
$array : array<string|int, mixed>|string|int
$ph : array<string|int, mixed> = null
$cast : string|bool = false
Return values
bool|int|string|array<string|int, mixed>

getSortSQL()

protected getSortSQL(array<string|int, mixed> $array[, bool $strict = true ][, array<string|int, mixed> $additional_fields = null ]) : bool|string
Parameters
$array : array<string|int, mixed>
$strict : bool = true
$additional_fields : array<string|int, mixed> = null
Return values
bool|string

getSQLStringAggregate()

protected getSQLStringAggregate(string $sql, string $glue) : string
Parameters
$sql : string
$glue : string
Return values
string

getSQLToEpochFunction()

protected getSQLToEpochFunction(string $sql) : string
Parameters
$sql : string
Return values
string

getSQLToTimeFunction()

protected getSQLToTimeFunction(string $sql) : string
Parameters
$sql : string
Return values
string

getSQLToTimeStampFunction()

protected getSQLToTimeStampFunction() : string
Return values
string

getWhereClauseSQL()

protected getWhereClauseSQL(array<string|int, mixed>|string $columns, array<string|int, mixed>|string $args, string $type, array<string|int, mixed> &$ph[, string $query_stub = null ][, bool $and = true ]) : null|string
Parameters
$columns : array<string|int, mixed>|string
$args : array<string|int, mixed>|string
$type : string
$ph : array<string|int, mixed>
$query_stub : string = null
$and : bool = true
Tags
noinspection

PhpParamsInspection

Return values
null|string

getWhereSQL()

protected getWhereSQL(array<string|int, mixed> $array[, bool $append_where = false ]) : bool|string
Parameters
$array : array<string|int, mixed>
$append_where : bool = false
Return values
bool|string

handleSQLSyntax()

SQL where clause Syntax: or % as wildcard.

protected handleSQLSyntax(string $arg) : string

"" as exact match, no default wildcard and no metaphone

Handles '*' and '%' as wildcards, defaults to wildcard on the end always. If no wildcard is to be added, the last character should be |

Parameters
$arg : string
Return values
string

stripSQLSyntax()

protected stripSQLSyntax(string $arg) : mixed
Parameters
$arg : string
Return values
mixed

getInsertQuery()

private getInsertQuery() : mixed
Return values
mixed

getRecordSetColumnList()

private getRecordSetColumnList(object $rs) : array<string|int, mixed>|bool
Parameters
$rs : object
Return values
array<string|int, mixed>|bool

parseColumnName()

Parses out the exact column name, without any aliases, or = signs in it.

private parseColumnName(string $column) : bool|string
Parameters
$column : string
Return values
bool|string

Search results