CalculatePolicy
in package
Table of Contents
- $holiday_policy : mixed
- $user_date_total : mixed
- $user_date_total_insert_id : mixed
- $absence_policy : mixed
- $accrual_policy : mixed
- $accrual_time_exclusivity_map : mixed
- $break_time_policy : mixed
- $contributing_pay_code_policy : mixed
- $contributing_pay_code_policy_ids : array<string|int, mixed>
- $contributing_pay_codes_by_policy_id : mixed
- $contributing_shift_policy : mixed
- $contributing_shift_policy_ids : array<string|int, mixed>
- $currency_rates : mixed
- $dates : mixed
- $delete_system_total_time_already_run : mixed
- $exception : mixed
- $exception_policy : mixed
- $flags : mixed
- $holiday : mixed
- $holiday_after_days : float|int
- $holiday_before_days : int
- $holiday_policy_used_pay_code_ids : mixed
- $is_eligible_holiday_description : mixed
- $meal_time_policy : mixed
- $new_system_user_date_total_id : mixed
- $new_user_date_total_ids : mixed
- $original_time_zone : mixed
- $over_time_policy : mixed
- $over_time_recurse_map : mixed
- $over_time_trigger_time_exclusivity_map : mixed
- $pay_codes : mixed
- $pay_formula_average_days : int
- $pay_formula_calculate_average_hourly_rates : mixed
- $pay_formula_policy : mixed
- $pay_period_obj : mixed
- $pay_period_schedule_obj : mixed
- $pay_period_schedules : mixed
- $pay_periods : mixed
- $policy_group_holiday_policy_ids : mixed
- $premium_time_policy : mixed
- $prev_user_date_total_end_time_stamp : mixed
- $prev_user_date_total_start_time_stamp : mixed
- $profiler_start_time : mixed
- $punch : mixed
- $regular_time_exclusivity_map : mixed
- $regular_time_policy : mixed
- $schedule : mixed
- $schedule_break_time_policy_ids : array<string|int, mixed>
- $schedule_meal_time_policy_ids : array<string|int, mixed>
- $schedule_policy_break_time_policy : mixed
- $schedule_policy_max_start_stop_window : mixed
- $schedule_policy_meal_time_policy : mixed
- $schedule_policy_rs : mixed
- $schedule_regular_time_policy_ids : array<string|int, mixed>
- $schedule_undertime_absence_policy_ids : array<string|int, mixed>
- $start_week_day_id : mixed
- $undertime_absence_policy : mixed
- $user_obj : mixed
- $user_wages : mixed
- __construct() : mixed
- Determine pay period based on the date that is being calculated.
- addCalculatedDate() : bool
- addPendingCalculationDate() : bool
- BreakTimePolicySortByTriggerTimeAsc() : int
- calculate() : bool
- Allow calculating up to one week at a time, as we always recalculate the remaining week anyways.
- calculateAbsenceTimePolicy() : bool
- calculateAccrualPolicy() : bool
- calculateAverageHourlyRates() : bool
- This must be done after all other policies are calculated so any average calculations can include wages from all other pay codes/policies (ie: premium time wages).
- calculateBreakTimePolicy() : bool
- calculateExceptionPolicy() : bool
- calculateHolidayPolicy() : bool
- calculateMealTimePolicy() : bool
- calculateOverTimePolicy() : bool
- calculateOverTimePolicyForTriggerTime() : bool
- Overtime policies need to be nested... Since they are basically like saying: Any time after Xhrs/day goes to this OT policy. If some time is filtered out, it simply applies to the next OT policy.
- calculatePremiumTimePolicy() : bool
- calculateRegularTimeExclusivity() : bool
- calculateRegularTimePolicy() : bool
- calculateScheduleAbsence() : bool
- Calculates schedule absence time (exclusive to holiday absence time, or manually entered time on the timesheet)
- calculateSystemTotalTime() : bool
- calculateUnderTimeAbsencePolicy() : bool
- calculateUserDateTotalStartAndEndTimeStamps() : array<string|int, mixed>
- compactMealAndBreakUserDateTotalObjects() : array<string|int, mixed>
- Since handling auto-deduct meal policies (negative total time) is virtually impossible to handle by itself when it comes to overtime/premium policies that adjust the total time themselves, this function will roll the meal/break policy time into the source record before being calculated for Reg/OT/Prem.
- compactUserDateTotalDataBasedOnOverride() : mixed
- Compacts UDT records based on override, so calcualteSystemTotalTime() is correct even when new UDT records are added (override=1) and some are modified directly.
- compactUserDateTotalDataBasedOnTimeStamps() : mixed
- Compacts UDT records that are next to each out to reduce the number of records required to be stored in the database.
- deleteSystemTotalTime() : bool
- filterBreakTimePolicy() : array<string|int, mixed>
- filterCurrencyRate() : object
- filterHoliday() : array<string|int, mixed>
- filterMealTimePolicy() : array<string|int, mixed>
- filterOverTimePolicy() : array<string|int, mixed>
- filterPremiumTimePolicy() : array<string|int, mixed>
- filterPunchDataByDateAndTypeAndStatus() : array<string|int, mixed>
- filterRegularTimePolicy() : array<string|int, mixed>
- filterScheduleDataByDateAndDirection() : array<string|int, mixed>
- filterScheduleDataByShiftStartAndEnd() : array<string|int, mixed>
- Filter scheduled shifts based on worked shift times.
- filterScheduleDataByStatus() : array<string|int, mixed>
- filterSchedulePolicyByDate() : array<string|int, mixed>
- Filter schedule policies to only those that affect a specific shift.
- filterUnderTimeAbsencePolicy() : array<string|int, mixed>
- filterUserDateTotalDataByContributingShiftPolicy() : array<string|int, mixed>
- filterUserDateTotalDataByObjectTypeIDs() : array<string|int, mixed>
- filterUserDateTotalDataByPayCodeIDs() : array<string|int, mixed>
- filterUserDateTotalDataByPunchTypeIDs() : array<string|int, mixed>
- filterUserWage() : array<string|int, mixed>|object
- filterWeeklyOverTimePolicy() : array<string|int, mixed>
- Get list of all weekly overtime policies so they can be included when calculating weekly time.
- getAccrualPolicy() : bool
- getAverageHourlyRate() : bool|float|int
- getBaseHourlyRate() : bool|float|int
- getBreakTimePolicy() : bool
- Get all overtime policies that could possibly apply, including from schedule policies.
- getCalculatedDateRange() : array<string|int, mixed>|bool
- getContributingPayCodePolicy() : bool
- getContributingShiftPolicy() : bool
- getCurrencyRateData() : bool
- getDailyHourlyRate() : bool|float|int
- getDateRangeFromDateArray() : mixed
- Return dates that we have not already obtained data for.
- getDatesToObtainDataFor() : array<string|int, mixed>
- getDayArrayUserDateTotalData() : array<string|int, mixed>
- getExceptionData() : bool
- getExceptionPolicy() : bool
- getFirstPendingDate() : bool|mixed
- getFlag() : bool|mixed
- getHolidayData() : bool
- getHolidayPolicy() : bool
- getHolidayTime() : float|int|string
- getHourlyRate() : int
- getHourlyRateWithBurden() : int
- getLastPendingDate() : bool|mixed
- getMealTimePolicy() : bool
- Get all meal policies that could possibly apply, including from schedule policies.
- getNextPendingDate() : bool|mixed
- getOverTimePeriodDates() : array<string|int, mixed>
- getOverTimePolicy() : bool
- Get all overtime policies that could possibly apply, including from schedule policies.
- getOverTimeTriggerArray() : array<string|int, mixed>|bool
- getOverTimeTriggerTimeAdjustAmount() : int
- getPayCode() : bool
- Need to get all pay codes referenced by policies and all pay codes used by contributing shift policies too.
- getPayFormulaPolicy() : bool
- Need to get all pay formula policies referenced by policies and all pay codes too.
- getPayFormulaPolicyObjectByPayFormulaIdOrPayCodeId() : bool
- getPayFormulaPolicyObjectByPolicyObject() : bool|PayFormulaPolicyFactory
- getPayPeriodObject() : bool
- getPayPeriodScheduleObject() : bool
- getPremiumTimePolicy() : bool
- getPreviousDayByUserTotalData() : bool|mixed
- getPunchData() : bool
- getRegularTimePolicy() : bool
- Get all regulartime policies that could possibly apply, including from schedule policies.
- getRequiredData() : bool
- Gathers all required data to perform the calculations.
- getScheduleData() : bool
- getScheduleDates() : array<string|int, mixed>
- getSchedulePolicy() : bool
- Get all possible schedule policies.
- getShiftData() : bool|array<string|int, mixed>
- Returns shift data according to the pay period schedule criteria for use in determining which day punches belong to.
- getShiftStartAndEndUserDateTotal() : array<string|int, mixed>|bool
- getSumScheduledDays() : int
- getSumScheduleTime() : int
- getSumUserDateTotalData() : int
- getUnderTimeAbsenceTimePolicy() : bool
- Get all absence policies that could possibly apply, including from schedule policies.
- getUserDateTotalActiveAfter() : array<string|int, mixed>|bool
- getUserDateTotalData() : bool
- Grabs all user_date total data from DB for each date specified.
- getUserObject() : null
- getUserWageData() : bool
- getWeeklyOverTimePolicyIDs() : array<string|int, mixed>
- getWeeklyOverTimePolicyPayCodes() : array<string|int, mixed>
- getWeeklyOverTimePolicyTypeIds() : array<string|int, mixed>
- insertUserDateTotal() : bool
- isConflictingUserDateTotal() : bool
- isEligibleForHoliday() : bool
- isOverriddenUserDateTotalObject() : bool
- Find existing UDT records that have override=TRUE and other fields matching, so we don't try to insert new UDT records.
- isPastDateCalculationRequired() : bool
- Check if past date calculation is required.
- isPayFormulaAccruing() : bool
- isPayFormulaPolicyAveraging() : bool
- isScheduleData() : bool
- isSecondBiWeeklyOverTimeWeek() : bool
- isUserDateTotalData() : bool
- processTriggerTimeArray() : array<string|int, mixed>
- reCalculateForJobQueue() : false|mixed
- RegularTimePolicySortByCalculationOrderAsc() : int
- removeRedundantUserDateTotalObjects() : bool
- Remove UserDateTotalObjects that cancel each other out, such as a +1800 total time and -1800 total time for the same pay_code_id.
- revertTimeZone() : bool
- Save() : bool
- Keep saving all data in a separate function so we can do in-memory calculations if necessary.
- setFlag() : bool
- setPayPeriodFromDate() : bool
- setTimeZone() : bool
- setUserObject() : bool
- sortPolicyByPayCodeDependancy() : mixed
- sortScheduleByDateASC() : int
- sortScheduleByDateDESC() : int
- sortUserDateTotalData() : bool
- sortUserDateTotalDataByDateAndObjectTypeAndStartTimeStampAndID() : int
- This is primarily used for compacting UDT records only.
- sortUserDateTotalDataByDateAndStartTimeStampAndObjectTypeAndID() : int
- sortUserDateTotalDataByTimeStampAndAndObjectTypeAndID() : int
- testOverriddenUserDateTotalObject() : bool
- UserWageSortByEffectiveDateDesc() : int
- _calculate() : bool|mixed
Properties
$holiday_policy
public
mixed
$holiday_policy
= \null
$user_date_total
public
mixed
$user_date_total
= \null
$user_date_total_insert_id
public
mixed
$user_date_total_insert_id
= -1
$absence_policy
private
mixed
$absence_policy
= \null
$accrual_policy
private
mixed
$accrual_policy
= \null
$accrual_time_exclusivity_map
private
mixed
$accrual_time_exclusivity_map
= \null
$break_time_policy
private
mixed
$break_time_policy
= \null
$contributing_pay_code_policy
private
mixed
$contributing_pay_code_policy
= \null
$contributing_pay_code_policy_ids
private
array<string|int, mixed>
$contributing_pay_code_policy_ids
$contributing_pay_codes_by_policy_id
private
mixed
$contributing_pay_codes_by_policy_id
= \null
$contributing_shift_policy
private
mixed
$contributing_shift_policy
= \null
$contributing_shift_policy_ids
private
array<string|int, mixed>
$contributing_shift_policy_ids
$currency_rates
private
mixed
$currency_rates
= \null
$dates
private
mixed
$dates
= ['data' => [], 'pending_calculation' => [], 'calculated' => []]
$delete_system_total_time_already_run
private
mixed
$delete_system_total_time_already_run
= \false
$exception
private
mixed
$exception
= \null
$exception_policy
private
mixed
$exception_policy
= \null
$flags
private
mixed
$flags
= [
'meal' => \true,
'undertime_absence' => \true,
'break' => \true,
'holiday' => \true,
'schedule_absence' => \true,
'absence' => \true,
'regular' => \true,
'overtime' => \true,
'premium' => \true,
'accrual' => \true,
'exception' => \true,
//Exception options
'exception_premature' => \false,
//Calculates premature exceptions
'exception_future' => \true,
//Calculates exceptions in the future.
//Calculate policies for future dates.
'future_dates' => \true,
//Calculates dates in the future.
'past_dates' => \false,
]
$holiday
private
mixed
$holiday
= \null
$holiday_after_days
private
float|int
$holiday_after_days
$holiday_before_days
private
int
$holiday_before_days
$holiday_policy_used_pay_code_ids
private
mixed
$holiday_policy_used_pay_code_ids
= \null
$is_eligible_holiday_description
private
mixed
$is_eligible_holiday_description
= \null
$meal_time_policy
private
mixed
$meal_time_policy
= \null
$new_system_user_date_total_id
private
mixed
$new_system_user_date_total_id
= []
$new_user_date_total_ids
private
mixed
$new_user_date_total_ids
= \null
$original_time_zone
private
mixed
$original_time_zone
= \null
$over_time_policy
private
mixed
$over_time_policy
= \null
$over_time_recurse_map
private
mixed
$over_time_recurse_map
= \null
$over_time_trigger_time_exclusivity_map
private
mixed
$over_time_trigger_time_exclusivity_map
= \null
$pay_codes
private
mixed
$pay_codes
= \null
$pay_formula_average_days
private
int
$pay_formula_average_days
$pay_formula_calculate_average_hourly_rates
private
mixed
$pay_formula_calculate_average_hourly_rates
= \false
$pay_formula_policy
private
mixed
$pay_formula_policy
= \null
$pay_period_obj
private
mixed
$pay_period_obj
= \null
$pay_period_schedule_obj
private
mixed
$pay_period_schedule_obj
= \null
$pay_period_schedules
private
mixed
$pay_period_schedules
= \null
$pay_periods
private
mixed
$pay_periods
= \null
$policy_group_holiday_policy_ids
private
mixed
$policy_group_holiday_policy_ids
= \null
$premium_time_policy
private
mixed
$premium_time_policy
= \null
$prev_user_date_total_end_time_stamp
private
mixed
$prev_user_date_total_end_time_stamp
= \null
$prev_user_date_total_start_time_stamp
private
mixed
$prev_user_date_total_start_time_stamp
= \null
$profiler_start_time
private
mixed
$profiler_start_time
= \null
$punch
private
mixed
$punch
= \null
$regular_time_exclusivity_map
private
mixed
$regular_time_exclusivity_map
= \null
$regular_time_policy
private
mixed
$regular_time_policy
= \null
$schedule
private
mixed
$schedule
= \null
$schedule_break_time_policy_ids
private
array<string|int, mixed>
$schedule_break_time_policy_ids
$schedule_meal_time_policy_ids
private
array<string|int, mixed>
$schedule_meal_time_policy_ids
$schedule_policy_break_time_policy
private
mixed
$schedule_policy_break_time_policy
= \null
$schedule_policy_max_start_stop_window
private
mixed
$schedule_policy_max_start_stop_window
= 0
$schedule_policy_meal_time_policy
private
mixed
$schedule_policy_meal_time_policy
= \null
$schedule_policy_rs
private
mixed
$schedule_policy_rs
= \null
$schedule_regular_time_policy_ids
private
array<string|int, mixed>
$schedule_regular_time_policy_ids
$schedule_undertime_absence_policy_ids
private
array<string|int, mixed>
$schedule_undertime_absence_policy_ids
$start_week_day_id
private
mixed
$start_week_day_id
= 0
$undertime_absence_policy
private
mixed
$undertime_absence_policy
= \null
$user_obj
private
mixed
$user_obj
= \null
$user_wages
private
mixed
$user_wages
= \null
Methods
__construct()
Determine pay period based on the date that is being calculated.
public
__construct([UserFactory $user_obj = null ]) : mixed
CalculatePolicy constructor.
Parameters
- $user_obj : UserFactory = null
Return values
mixed —addCalculatedDate()
public
addCalculatedDate(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —addPendingCalculationDate()
public
addPendingCalculationDate(array<string|int, mixed>|int $start_date[, int $end_date = null ]) : bool
Parameters
- $start_date : array<string|int, mixed>|int
-
EPOCH
- $end_date : int = null
-
EPOCH
Return values
bool —BreakTimePolicySortByTriggerTimeAsc()
public
BreakTimePolicySortByTriggerTimeAsc( $a, $b) : int
Parameters
Return values
int —calculate()
Allow calculating up to one week at a time, as we always recalculate the remaining week anyways.
public
calculate([bool $date_stamp = false ]) : bool
Allow no date_stamp to be passed so we just start from the first pending date instead.
Parameters
- $date_stamp : bool = false
Return values
bool —calculateAbsenceTimePolicy()
public
calculateAbsenceTimePolicy(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —calculateAccrualPolicy()
public
calculateAccrualPolicy() : bool
Return values
bool —calculateAverageHourlyRates()
This must be done after all other policies are calculated so any average calculations can include wages from all other pay codes/policies (ie: premium time wages).
public
calculateAverageHourlyRates(int $user_date_total_records) : bool
Parameters
- $user_date_total_records : int
-
EPOCH
Return values
bool —calculateBreakTimePolicy()
public
calculateBreakTimePolicy(int $date_stamp[, mixed $force_proportional_distribution = null ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $force_proportional_distribution : mixed = null
Return values
bool —calculateExceptionPolicy()
public
calculateExceptionPolicy(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Tags
Return values
bool —calculateHolidayPolicy()
public
calculateHolidayPolicy(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —calculateMealTimePolicy()
public
calculateMealTimePolicy(int $date_stamp[, mixed $force_proportional_distribution = null ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $force_proportional_distribution : mixed = null
Return values
bool —calculateOverTimePolicy()
public
calculateOverTimePolicy(int $date_stamp, $trigger_time_arr[, null $maximum_daily_total_time = null ]) : bool
Parameters
Return values
bool —calculateOverTimePolicyForTriggerTime()
Overtime policies need to be nested... Since they are basically like saying: Any time after Xhrs/day goes to this OT policy. If some time is filtered out, it simply applies to the next OT policy.
public
calculateOverTimePolicyForTriggerTime(int $date_stamp, $current_trigger_time_arr[, bool $prev_policy_data = false ]) : bool
So the first OT policy should have almost all time applied to it, then the next policy simply moves time from the prior OT policy into itself, rinse and repeat...
Parameters
Return values
bool —calculatePremiumTimePolicy()
public
calculatePremiumTimePolicy(int $date_stamp[, null $maximum_daily_total_time = null ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $maximum_daily_total_time : null = null
Return values
bool —calculateRegularTimeExclusivity()
public
calculateRegularTimeExclusivity() : bool
Return values
bool —calculateRegularTimePolicy()
public
calculateRegularTimePolicy(int $date_stamp[, null $maximum_daily_total_time = null ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $maximum_daily_total_time : null = null
Return values
bool —calculateScheduleAbsence()
Calculates schedule absence time (exclusive to holiday absence time, or manually entered time on the timesheet)
public
calculateScheduleAbsence(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —calculateSystemTotalTime()
public
calculateSystemTotalTime(int $date_stamp, $tmp_system_total_time) : bool
Parameters
Return values
bool —calculateUnderTimeAbsencePolicy()
public
calculateUnderTimeAbsencePolicy(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —calculateUserDateTotalStartAndEndTimeStamps()
public
calculateUserDateTotalStartAndEndTimeStamps(object $udt_obj) : array<string|int, mixed>
Parameters
- $udt_obj : object
Return values
array<string|int, mixed> —compactMealAndBreakUserDateTotalObjects()
Since handling auto-deduct meal policies (negative total time) is virtually impossible to handle by itself when it comes to overtime/premium policies that adjust the total time themselves, this function will roll the meal/break policy time into the source record before being calculated for Reg/OT/Prem.
public
compactMealAndBreakUserDateTotalObjects(int|array<string|int, int> $user_date_total_rows) : array<string|int, mixed>
This way Reg/OT/Prem. calculation functions don't need to worry about negative total times at all.
Parameters
- $user_date_total_rows : int|array<string|int, int>
-
EPOCH
Return values
array<string|int, mixed> —compactUserDateTotalDataBasedOnOverride()
Compacts UDT records based on override, so calcualteSystemTotalTime() is correct even when new UDT records are added (override=1) and some are modified directly.
public
compactUserDateTotalDataBasedOnOverride( $udtlf) : mixed
Parameters
Return values
mixed —compactUserDateTotalDataBasedOnTimeStamps()
Compacts UDT records that are next to each out to reduce the number of records required to be stored in the database.
public
compactUserDateTotalDataBasedOnTimeStamps() : mixed
Return values
mixed —deleteSystemTotalTime()
public
deleteSystemTotalTime(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —filterBreakTimePolicy()
public
filterBreakTimePolicy(int $date_stamp[, null $daily_total_time = null ][, int $type_id = null ][, bool $always_return_at_least_one = false ]) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
- $daily_total_time : null = null
- $type_id : int = null
-
ID
- $always_return_at_least_one : bool = false
Return values
array<string|int, mixed> —filterCurrencyRate()
public
filterCurrencyRate(int $date_stamp) : object
Parameters
- $date_stamp : int
-
EPOCH
Return values
object —filterHoliday()
public
filterHoliday(int $date_stamp[, null $holiday_policy_obj = null ][, null $assigned_to_policy_group = null ]) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
- $holiday_policy_obj : null = null
- $assigned_to_policy_group : null = null
Return values
array<string|int, mixed> —filterMealTimePolicy()
public
filterMealTimePolicy(int $date_stamp[, null $daily_total_time = null ][, int $type_id = null ][, bool $always_return_at_least_one = false ]) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
- $daily_total_time : null = null
- $type_id : int = null
-
ID
- $always_return_at_least_one : bool = false
Return values
array<string|int, mixed> —filterOverTimePolicy()
public
filterOverTimePolicy(int $date_stamp) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed> —filterPremiumTimePolicy()
public
filterPremiumTimePolicy(int $date_stamp) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed> —filterPunchDataByDateAndTypeAndStatus()
public
filterPunchDataByDateAndTypeAndStatus(int $date_stamp[, int $type_ids = null ][, int $status_ids = null ]) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
- $type_ids : int = null
-
ID
- $status_ids : int = null
-
ID
Return values
array<string|int, mixed> —filterRegularTimePolicy()
public
filterRegularTimePolicy(int $date_stamp) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed> —filterScheduleDataByDateAndDirection()
public
filterScheduleDataByDateAndDirection([int $pivot_date = null ][, int $status_ids = null ][, null $direction = null ][, int $limit = null ]) : array<string|int, mixed>
Parameters
- $pivot_date : int = null
-
EPOCH
- $status_ids : int = null
-
ID
- $direction : null = null
- $limit : int = null
-
Limit the number of records returned
Return values
array<string|int, mixed> —filterScheduleDataByShiftStartAndEnd()
Filter scheduled shifts based on worked shift times.
public
filterScheduleDataByShiftStartAndEnd( $start_time, $end_time[, bool $schedule_status_id = false ]) : array<string|int, mixed>
Parameters
Return values
array<string|int, mixed> —filterScheduleDataByStatus()
public
filterScheduleDataByStatus(int $start_date, int $end_date[, int $status_ids = null ]) : array<string|int, mixed>
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $status_ids : int = null
-
ID
Return values
array<string|int, mixed> —filterSchedulePolicyByDate()
Filter schedule policies to only those that affect a specific shift.
public
filterSchedulePolicyByDate(int $date_stamp[, bool $force_all_scheduled_shifts = false ]) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
- $force_all_scheduled_shifts : bool = false
Return values
array<string|int, mixed> —filterUnderTimeAbsencePolicy()
public
filterUnderTimeAbsencePolicy(int $date_stamp) : array<string|int, mixed>
Parameters
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed> —filterUserDateTotalDataByContributingShiftPolicy()
public
filterUserDateTotalDataByContributingShiftPolicy(int|array<string|int, int> $start_date, int $end_date, ContributingShiftPolicyFactory $contributing_shift_policy_obj[, int|array<string|int, int> $object_type_ids = null ][, array<string|int, mixed> $additional_pay_code_ids = [] ][, array<string|int, mixed> $additional_src_object_ids = [] ]) : array<string|int, mixed>
Parameters
- $start_date : int|array<string|int, int>
-
EPOCH
- $end_date : int
-
EPOCH
- $contributing_shift_policy_obj : ContributingShiftPolicyFactory
- $object_type_ids : int|array<string|int, int> = null
-
ID
- $additional_pay_code_ids : array<string|int, mixed> = []
- $additional_src_object_ids : array<string|int, mixed> = []
Return values
array<string|int, mixed> —filterUserDateTotalDataByObjectTypeIDs()
public
filterUserDateTotalDataByObjectTypeIDs(int $start_date, int $end_date[, int|array<string|int, int> $object_type_ids = null ]) : array<string|int, mixed>
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $object_type_ids : int|array<string|int, int> = null
-
ID
Return values
array<string|int, mixed> —filterUserDateTotalDataByPayCodeIDs()
public
filterUserDateTotalDataByPayCodeIDs(int $start_date, int $end_date[, string $pay_code_ids = null ][, mixed $object_type_ids = null ]) : array<string|int, mixed>
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $pay_code_ids : string = null
-
UUID
- $object_type_ids : mixed = null
Return values
array<string|int, mixed> —filterUserDateTotalDataByPunchTypeIDs()
public
filterUserDateTotalDataByPunchTypeIDs(int $start_date, int $end_date[, int|array<string|int, int> $punch_type_ids = null ]) : array<string|int, mixed>
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $punch_type_ids : int|array<string|int, int> = null
-
ID
Return values
array<string|int, mixed> —filterUserWage()
public
filterUserWage(string $wage_group_id, int $date_stamp) : array<string|int, mixed>|object
Parameters
- $wage_group_id : string
-
UUID
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed>|object —filterWeeklyOverTimePolicy()
Get list of all weekly overtime policies so they can be included when calculating weekly time.
public
filterWeeklyOverTimePolicy() : array<string|int, mixed>
Return values
array<string|int, mixed> —getAccrualPolicy()
public
getAccrualPolicy() : bool
Return values
bool —getAverageHourlyRate()
public
getAverageHourlyRate(int $date_stamp, ContributingShiftPolicyFactory $hour_contributing_shift_policy_obj, int $hour_object_type_ids, ContributingShiftPolicyFactory $wage_contributing_shift_policy_obj[, mixed $destination_object_type_id = 30 ]) : bool|float|int
Parameters
- $date_stamp : int
-
EPOCH
- $hour_contributing_shift_policy_obj : ContributingShiftPolicyFactory
- $hour_object_type_ids : int
- $wage_contributing_shift_policy_obj : ContributingShiftPolicyFactory
- $destination_object_type_id : mixed = 30
Return values
bool|float|int —getBaseHourlyRate()
public
getBaseHourlyRate(string $pay_formula_policy_id, string $pay_code_id, int $date_stamp[, bool $contributing_pay_code_hourly_rate = false ][, object $contributing_shift_policy_obj = null ][, int $object_type_ids = null ][, mixed $destination_object_type_id = null ]) : bool|float|int
Parameters
- $pay_formula_policy_id : string
-
UUID
- $pay_code_id : string
-
UUID
- $date_stamp : int
-
EPOCH
- $contributing_pay_code_hourly_rate : bool = false
- $contributing_shift_policy_obj : object = null
- $object_type_ids : int = null
-
ID
- $destination_object_type_id : mixed = null
Return values
bool|float|int —getBreakTimePolicy()
Get all overtime policies that could possibly apply, including from schedule policies.
public
getBreakTimePolicy() : bool
Return values
bool —getCalculatedDateRange()
public
getCalculatedDateRange() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|bool —getContributingPayCodePolicy()
public
getContributingPayCodePolicy() : bool
Return values
bool —getContributingShiftPolicy()
public
getContributingShiftPolicy() : bool
Return values
bool —getCurrencyRateData()
public
getCurrencyRateData(int $start_date, int $end_date) : bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
Return values
bool —getDailyHourlyRate()
public
getDailyHourlyRate(int $date_stamp, ContributingShiftPolicyFactory $hour_contributing_shift_policy_obj, int $hour_object_type_ids, ContributingShiftPolicyFactory $wage_contributing_shift_policy_obj, mixed $pay_formula_policy_obj, mixed $pay_code_id) : bool|float|int
Parameters
- $date_stamp : int
-
EPOCH
- $hour_contributing_shift_policy_obj : ContributingShiftPolicyFactory
- $hour_object_type_ids : int
- $wage_contributing_shift_policy_obj : ContributingShiftPolicyFactory
- $pay_formula_policy_obj : mixed
- $pay_code_id : mixed
Return values
bool|float|int —getDateRangeFromDateArray()
Return dates that we have not already obtained data for.
public
getDateRangeFromDateArray(int|array<string|int, int> $date_arr) : mixed
Parameters
- $date_arr : int|array<string|int, int>
-
EPOCH
Return values
mixed —getDatesToObtainDataFor()
public
getDatesToObtainDataFor(int $start_date_stamp, int $end_date_stamp) : array<string|int, mixed>
Parameters
- $start_date_stamp : int
-
EPOCH
- $end_date_stamp : int
-
EPOCH
Return values
array<string|int, mixed> —getDayArrayUserDateTotalData()
public
getDayArrayUserDateTotalData(int|array<string|int, int> $user_date_total_arr) : array<string|int, mixed>
Parameters
- $user_date_total_arr : int|array<string|int, int>
-
EPOCH
Return values
array<string|int, mixed> —getExceptionData()
public
getExceptionData([int $start_date = null ][, int $end_date = null ]) : bool
Parameters
- $start_date : int = null
-
EPOCH
- $end_date : int = null
-
EPOCH
Return values
bool —getExceptionPolicy()
public
getExceptionPolicy() : bool
Return values
bool —getFirstPendingDate()
public
getFirstPendingDate() : bool|mixed
Return values
bool|mixed —getFlag()
public
getFlag( $key) : bool|mixed
Parameters
Return values
bool|mixed —getHolidayData()
public
getHolidayData(int $start_date, int $end_date[, bool $enable_recalculate_holiday = true ]) : bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $enable_recalculate_holiday : bool = true
Return values
bool —getHolidayPolicy()
public
getHolidayPolicy( $date_stamp) : bool
Parameters
Return values
bool —getHolidayTime()
public
getHolidayTime(int $date_stamp, object $holiday_policy_obj) : float|int|string
Parameters
- $date_stamp : int
-
EPOCH
- $holiday_policy_obj : object
Return values
float|int|string —getHourlyRate()
public
getHourlyRate(string $pay_formula_policy_id, string $pay_code_id, int $date_stamp, $base_hourly_rate[, mixed $udtf = null ]) : int
Parameters
- $pay_formula_policy_id : string
-
UUID
- $pay_code_id : string
-
UUID
- $date_stamp : int
-
EPOCH
- $base_hourly_rate :
- $udtf : mixed = null
Return values
int —getHourlyRateWithBurden()
public
getHourlyRateWithBurden(string $pay_formula_policy_id, string $pay_code_id, int $date_stamp, int $base_hourly_rate) : int
Parameters
- $pay_formula_policy_id : string
-
UUID
- $pay_code_id : string
-
UUID
- $date_stamp : int
-
EPOCH
- $base_hourly_rate : int
Return values
int —getLastPendingDate()
public
getLastPendingDate() : bool|mixed
Return values
bool|mixed —getMealTimePolicy()
Get all meal policies that could possibly apply, including from schedule policies.
public
getMealTimePolicy() : bool
Return values
bool —getNextPendingDate()
public
getNextPendingDate() : bool|mixed
Return values
bool|mixed —getOverTimePeriodDates()
public
getOverTimePeriodDates(int $date_stamp, $weeks, int $first_pay_period_start_date, int $start_week_day_id) : array<string|int, mixed>
Parameters
Return values
array<string|int, mixed> —getOverTimePolicy()
Get all overtime policies that could possibly apply, including from schedule policies.
public
getOverTimePolicy() : bool
Return values
bool —getOverTimeTriggerArray()
public
getOverTimeTriggerArray(int $date_stamp) : array<string|int, mixed>|bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
array<string|int, mixed>|bool —getOverTimeTriggerTimeAdjustAmount()
public
getOverTimeTriggerTimeAdjustAmount(int $start_date, int $end_date, object $otp_obj) : int
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $otp_obj : object
Return values
int —getPayCode()
Need to get all pay codes referenced by policies and all pay codes used by contributing shift policies too.
public
getPayCode() : bool
So we may as well just get them all.
Return values
bool —getPayFormulaPolicy()
Need to get all pay formula policies referenced by policies and all pay codes too.
public
getPayFormulaPolicy(mixed $date_stamp) : bool
So we may as well just get them all.
Parameters
- $date_stamp : mixed
Return values
bool —getPayFormulaPolicyObjectByPayFormulaIdOrPayCodeId()
public
getPayFormulaPolicyObjectByPayFormulaIdOrPayCodeId(string $pay_formula_policy_id, string $pay_code_id) : bool
Parameters
- $pay_formula_policy_id : string
-
UUID
- $pay_code_id : string
-
UUID
Return values
bool —getPayFormulaPolicyObjectByPolicyObject()
public
getPayFormulaPolicyObjectByPolicyObject(object $obj) : bool|PayFormulaPolicyFactory
Parameters
- $obj : object
Return values
bool|PayFormulaPolicyFactory —getPayPeriodObject()
public
getPayPeriodObject(string $id) : bool
Parameters
- $id : string
-
UUID
Return values
bool —getPayPeriodScheduleObject()
public
getPayPeriodScheduleObject(string $id) : bool
Parameters
- $id : string
-
UUID
Return values
bool —getPremiumTimePolicy()
public
getPremiumTimePolicy() : bool
Return values
bool —getPreviousDayByUserTotalData()
public
getPreviousDayByUserTotalData(int|array<string|int, int> $user_date_total_arr, int $date_stamp) : bool|mixed
Parameters
- $user_date_total_arr : int|array<string|int, int>
-
EPOCH
- $date_stamp : int
-
EPOCH
Return values
bool|mixed —getPunchData()
public
getPunchData(int $start_date, int $end_date) : bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
Return values
bool —getRegularTimePolicy()
Get all regulartime policies that could possibly apply, including from schedule policies.
public
getRegularTimePolicy() : bool
Return values
bool —getRequiredData()
Gathers all required data to perform the calculations.
public
getRequiredData(int $start_date_stamp, int $end_date_stamp[, bool $enable_recalculate_holiday = true ]) : bool
Parameters
- $start_date_stamp : int
-
EPOCH
- $end_date_stamp : int
-
EPOCH
- $enable_recalculate_holiday : bool = true
Return values
bool —getScheduleData()
public
getScheduleData([int $start_date = null ][, int $end_date = null ][, int|array<string|int, mixed> $status_ids = null ][, int $limit = null ][, array<string|int, mixed> $order = null ]) : bool
Parameters
- $start_date : int = null
-
EPOCH
- $end_date : int = null
-
EPOCH
- $status_ids : int|array<string|int, mixed> = null
-
ID
- $limit : int = null
-
Limit the number of records returned
- $order : array<string|int, mixed> = null
-
Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
Return values
bool —getScheduleDates()
public
getScheduleDates( $schedule_arr) : array<string|int, mixed>
Parameters
Return values
array<string|int, mixed> —getSchedulePolicy()
Get all possible schedule policies.
public
getSchedulePolicy() : bool
Return values
bool —getShiftData()
Returns shift data according to the pay period schedule criteria for use in determining which day punches belong to.
public
getShiftData(int|array<string|int, int> $user_date_total_arr[, int $epoch = null ][, null $filter = null ][, null $maximum_shift_time = null ][, null $new_shift_trigger_time = null ]) : bool|array<string|int, mixed>
Parameters
- $user_date_total_arr : int|array<string|int, int>
-
EPOCH
- $epoch : int = null
-
EPOCH
- $filter : null = null
- $maximum_shift_time : null = null
- $new_shift_trigger_time : null = null
Return values
bool|array<string|int, mixed> —getShiftStartAndEndUserDateTotal()
public
getShiftStartAndEndUserDateTotal(int $start_date, int $end_date) : array<string|int, mixed>|bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
Return values
array<string|int, mixed>|bool —getSumScheduledDays()
public
getSumScheduledDays( $schedule_arr) : int
Parameters
Return values
int —getSumScheduleTime()
public
getSumScheduleTime( $schedule_arr) : int
Parameters
Return values
int —getSumUserDateTotalData()
public
getSumUserDateTotalData(int|array<string|int, int> $user_date_total_arr) : int
Parameters
- $user_date_total_arr : int|array<string|int, int>
-
EPOCH
Return values
int —getUnderTimeAbsenceTimePolicy()
Get all absence policies that could possibly apply, including from schedule policies.
public
getUnderTimeAbsenceTimePolicy() : bool
Return values
bool —getUserDateTotalActiveAfter()
public
getUserDateTotalActiveAfter(int $start_date, int $end_date, mixed $active_after) : array<string|int, mixed>|bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
- $active_after : mixed
Return values
array<string|int, mixed>|bool —getUserDateTotalData()
Grabs all user_date total data from DB for each date specified.
public
getUserDateTotalData([int $start_date = null ][, int $end_date = null ]) : bool
Parameters
- $start_date : int = null
-
EPOCH
- $end_date : int = null
-
EPOCH
Return values
bool —getUserObject()
public
getUserObject() : null
Return values
null —getUserWageData()
public
getUserWageData(int $start_date, int $end_date) : bool
Parameters
- $start_date : int
-
EPOCH
- $end_date : int
-
EPOCH
Return values
bool —getWeeklyOverTimePolicyIDs()
public
getWeeklyOverTimePolicyIDs() : array<string|int, mixed>
Return values
array<string|int, mixed> —getWeeklyOverTimePolicyPayCodes()
public
getWeeklyOverTimePolicyPayCodes() : array<string|int, mixed>
Return values
array<string|int, mixed> —getWeeklyOverTimePolicyTypeIds()
public
getWeeklyOverTimePolicyTypeIds() : array<string|int, mixed>
Return values
array<string|int, mixed> —insertUserDateTotal()
public
insertUserDateTotal() : bool
Return values
bool —isConflictingUserDateTotal()
public
isConflictingUserDateTotal(int $date_stamp, int|array<string|int, int> $object_type_id[, string $pay_code_id = null ][, null $src_object_id = null ][, string $branch_id = null ][, string $department_id = null ][, string $job_id = null ][, string $job_item_id = null ][, bool $override = null ][, array<string|int, mixed> $include_pay_code_id = null ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $object_type_id : int|array<string|int, int>
- $pay_code_id : string = null
-
UUID
- $src_object_id : null = null
- $branch_id : string = null
-
UUID
- $department_id : string = null
-
UUID
- $job_id : string = null
-
UUID
- $job_item_id : string = null
-
UUID
- $override : bool = null
- $include_pay_code_id : array<string|int, mixed> = null
-
UUID
Return values
bool —isEligibleForHoliday()
public
isEligibleForHoliday(int $date_stamp, HolidayPolicyFactory $holiday_policy_obj[, bool $ignore_after_eligibility = false ]) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $holiday_policy_obj : HolidayPolicyFactory
- $ignore_after_eligibility : bool = false
Tags
Return values
bool —isOverriddenUserDateTotalObject()
Find existing UDT records that have override=TRUE and other fields matching, so we don't try to insert new UDT records.
public
isOverriddenUserDateTotalObject(object $udt_obj[, bool $check_src_object_id = false ]) : bool
Parameters
- $udt_obj : object
- $check_src_object_id : bool = false
-
More strict checks against src_object_ids as well. Typically only used for absence records so the same pay code can be used with different absence policies.
Return values
bool —isPastDateCalculationRequired()
Check if past date calculation is required.
public
isPastDateCalculationRequired() : bool
This is based on PayFormulas that use average calculations.
Return values
bool —isPayFormulaAccruing()
public
isPayFormulaAccruing(PayFormulaPolicyFactory $pay_formula_policy_obj) : bool
Parameters
- $pay_formula_policy_obj : PayFormulaPolicyFactory
Return values
bool —isPayFormulaPolicyAveraging()
public
isPayFormulaPolicyAveraging(string $pay_formula_policy_id, string $pay_code_id) : bool
Parameters
- $pay_formula_policy_id : string
-
UUID
- $pay_code_id : string
-
UUID
Return values
bool —isScheduleData()
public
isScheduleData() : bool
Return values
bool —isSecondBiWeeklyOverTimeWeek()
public
isSecondBiWeeklyOverTimeWeek(int $date_stamp, int $first_pay_period_start_date, int $start_week_day_id) : bool
Parameters
- $date_stamp : int
-
EPOCH
- $first_pay_period_start_date : int
-
EPOCH
- $start_week_day_id : int
Return values
bool —isUserDateTotalData()
public
isUserDateTotalData() : bool
Return values
bool —processTriggerTimeArray()
public
processTriggerTimeArray(int $date_stamp, $trigger_time_arr) : array<string|int, mixed>
Parameters
Return values
array<string|int, mixed> —reCalculateForJobQueue()
public
static reCalculateForJobQueue( $user_id, string|array<string|int, mixed> $flags, int|array<string|int, mixed> $start_date[, int|null $end_date = null ]) : false|mixed
Parameters
- $user_id :
- $flags : string|array<string|int, mixed>
- $start_date : int|array<string|int, mixed>
-
This can be an array of dates.
- $end_date : int|null = null
Tags
Return values
false|mixed —RegularTimePolicySortByCalculationOrderAsc()
public
RegularTimePolicySortByCalculationOrderAsc( $a, $b) : int
Parameters
Return values
int —removeRedundantUserDateTotalObjects()
Remove UserDateTotalObjects that cancel each other out, such as a +1800 total time and -1800 total time for the same pay_code_id.
public
removeRedundantUserDateTotalObjects() : bool
This is required for some premium policies with auto-deduct lunches and such.
Return values
bool —revertTimeZone()
public
revertTimeZone() : bool
Return values
bool —Save()
Keep saving all data in a separate function so we can do in-memory calculations if necessary.
public
Save() : bool
Return values
bool —setFlag()
public
setFlag( $key[, bool $value = true ]) : bool
Parameters
Return values
bool —setPayPeriodFromDate()
public
setPayPeriodFromDate(int $date_stamp) : bool
Parameters
- $date_stamp : int
-
EPOCH
Return values
bool —setTimeZone()
public
setTimeZone() : bool
Return values
bool —setUserObject()
public
setUserObject(UserFactory $obj) : bool
Parameters
- $obj : UserFactory
Return values
bool —sortPolicyByPayCodeDependancy()
public
sortPolicyByPayCodeDependancy( $policy_arr) : mixed
Parameters
Return values
mixed —sortScheduleByDateASC()
public
sortScheduleByDateASC( $a, $b) : int
Parameters
Return values
int —sortScheduleByDateDESC()
public
sortScheduleByDateDESC( $a, $b) : int
Parameters
Return values
int —sortUserDateTotalData()
public
sortUserDateTotalData( &$udtlf[, string $sort_function_name = 'sortUserDateTotalDataByDateAndStartTimeStampAndObjectTypeAndID' ]) : bool
Parameters
- $udtlf :
- $sort_function_name : string = 'sortUserDateTotalDataByDateAndStartTimeStampAndObjectTypeAndID'
Return values
bool —sortUserDateTotalDataByDateAndObjectTypeAndStartTimeStampAndID()
This is primarily used for compacting UDT records only.
public
sortUserDateTotalDataByDateAndObjectTypeAndStartTimeStampAndID( $a, $b) : int
Parameters
Return values
int —sortUserDateTotalDataByDateAndStartTimeStampAndObjectTypeAndID()
public
sortUserDateTotalDataByDateAndStartTimeStampAndObjectTypeAndID( $a, $b) : int
Parameters
Return values
int —sortUserDateTotalDataByTimeStampAndAndObjectTypeAndID()
public
sortUserDateTotalDataByTimeStampAndAndObjectTypeAndID( $a, $b) : int
Parameters
Return values
int —testOverriddenUserDateTotalObject()
public
testOverriddenUserDateTotalObject(object $udt_obj, object $tmp_udt_obj[, bool $check_src_object_id = false ]) : bool
Parameters
- $udt_obj : object
- $tmp_udt_obj : object
- $check_src_object_id : bool = false
Return values
bool —UserWageSortByEffectiveDateDesc()
public
UserWageSortByEffectiveDateDesc( $a, $b) : int
Parameters
Return values
int —_calculate()
private
_calculate(int $date_stamp) : bool|mixed
Parameters
- $date_stamp : int
-
EPOCH