Created
November 20, 2014 11:18
-
-
Save anonymous/b4e1590a19d94252fab1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class ContractForm_Step2 extends MultiFormStep { | |
protected static $fields; | |
public static $next_steps = 'ContractForm_Step3'; | |
function Title() { | |
return _t("ContractForm.StepNum", "Step", array("num" => 2)); | |
} | |
function Subtitle() { | |
return "Holidays & Sick Pay"; | |
} | |
function getFields() { | |
if(!self::$fields) { | |
$months = array("January" => "January","February" => "February","March" => "March", "April" => "April", "May" => "May","June" => "June","July" =>"July", "August" => "August","September" => "September", "October" => "October","November" => "November", "December" =>"December"); | |
$yes_no = array('Yes' => _t('Common.Yes'), 'No' => _t('Common.No')); | |
$lengthOfService = array_combine(range(1, 5), range(1, 5)); | |
$holidayEntitlementIncrease = array_combine(range(1, 10), range(1, 10)); | |
$SPE_Periods = array( | |
'Weeks' => _t('Common.Weeks'), | |
'Months' => _t('Common.Months') | |
); | |
$SPE_Amounts = array( | |
'Full' => _t('ContractForm.SPE_Amount_Full'), | |
'75%' => _t('ContractForm.SPE_Amount_75'), | |
'50%' => _t('ContractForm.SPE_Amount_50'), | |
'25%' => _t('ContractForm.SPE_Amount_25') | |
); | |
$SPE_Numbers = array_combine(range(1, 52), range(1, 52)); | |
$EntLoS_LoS_Numbers = array_combine(range(1, 12), range(1, 12)); | |
$EntLoS_LoS_Periods = array( | |
'Weeks' => _t('Common.Weeks'), | |
'Months' => _t('Common.Months'), | |
'Years' => _t('Common.Years') | |
); | |
$EntLoS_Numbers = $SPE_Numbers; | |
$EntLoS_Periods = $SPE_Periods; | |
$EntLoS_Amounts = $SPE_Amounts; | |
$holiday_days = array( | |
'28' => '28 days', | |
'29' => '29 days', | |
'30' => '30 days', | |
'31' => '31 days', | |
'32' => '32 days', | |
'33' => '33 days', | |
'34' => '34 days', | |
'35' => '35 days', | |
'36' => '36 days', | |
'37' => '37 days', | |
'38' => '38 days', | |
'39' => '39 days', | |
'40' => '40 days', | |
'41' => '41 days', | |
'42' => '42 days', | |
'43' => '43 days', | |
'44' => '44 days', | |
'45' => '45 days' | |
); | |
$fields = new FieldList( | |
HeaderField::create('Section_HolidayEntitlement', _t('ContractForm.Section_HolidayEntitlement')), | |
FieldGroup::create( | |
HeaderField::create('HolidayYearFrom', 'Start', 5), | |
DropdownField::create('HolidayYearStartDay', '', array_combine(range(1, 31), range(1, 31))) | |
->setValue('1'), | |
DropdownField::create('HolidayYearStartMonth', '', $months) | |
->setValue('January'), | |
HeaderField::create('HolidayYearFrom', 'End', 5), | |
DropdownField::create('HolidayYearEndDay', '', array_combine(range(1, 31), range(1, 31))) | |
->setValue('31'), | |
DropdownField::create('HolidayYearEndMonth', '', $months) | |
->setValue('December') | |
)->setName('HolidayYearDates') | |
->setColumnCount(3), | |
DropdownField::create('EmployeeFullHolidayEntitlement', 'What is the employee\'s full holiday entitlement', $holiday_days), | |
HiddenField::create('CanCarryForwardHolidays'), | |
TextField::create('CarryForwardMaximumDaysNote', 'Max number of days that can be carried forward') | |
->performReadonlyTransformation() | |
->displayIf('EmployeeFullHolidayEntitlement')->isNotEqualTo('28')->end(), | |
HiddenField::create('CarryForwardMaximumDays'), | |
OptionsetField::create('HolidayArrangement', 'How are holidays arranged?', array( | |
'All holidays are fixed' => 'All holidays are fixed', | |
'Employee may request holiday dates' => 'Employee may request holiday dates' | |
)), | |
OptionsetField::create('FixedHolidayDates', null, $yes_no) | |
->displayIf('HolidayArrangement')->isEqualTo("Employee may request holiday dates")->end(), | |
DropdownField::create('FixedHolidayDatesCount', null, array_combine(range(1, 40), range(1, 40))) | |
->displayIf('FixedHolidayDates')->isEqualTo("Yes")->andIf('HolidayArrangement')->isEqualTo("Employee may request holiday dates")->end(), | |
DropdownField::create('HolidayApprovalPeriod', null, array( | |
'Double the amount of holiday requested' => 'Double the amount of holiday requested', | |
'One week' => 'One week', | |
'Two weeks' => 'Two weeks', | |
'Three weeks' => 'Three weeks', | |
'Four weeks' => 'Four weeks', | |
'One month' => 'One month', | |
'Two months' => 'Two months', | |
'Three months' => 'Three months' | |
))->displayIf('HolidayArrangement')->isEqualTo('Employee may request holiday dates')->end(), | |
OptionsetField::create('HolidayEntitlementIncreasesWithYearsOfService', null, $yes_no), | |
FieldGroup::create( | |
HeaderField::create('LengthOfService', _t('ContractForm.LengthOfService'), 6), | |
HeaderField::create('HolidayEntitlementIncrease', 'New Total Holiday Entitlement', 6), | |
DropdownField::create('LoS_1', _t('ContractForm.LoS_Before'), $lengthOfService) | |
->setRightTitle(_t('ContractForm.LoS_After'))->addExtraClass('stacked'), | |
DropdownField::create('HEI_1', '', $holidayEntitlementIncrease) | |
->setRightTitle(_t('ContractForm.HEI_After'))->addExtraClass('stacked'), | |
DropdownField::create('LoS_2', _t('ContractForm.LoS_Before'), $lengthOfService) | |
->setRightTitle(_t('ContractForm.LoS_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('HEI_2', '', $holidayEntitlementIncrease) | |
->setRightTitle(_t('ContractForm.HEI_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('LoS_3', _t('ContractForm.LoS_Before'), $lengthOfService) | |
->setRightTitle(_t('ContractForm.LoS_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('HEI_3', '', $holidayEntitlementIncrease) | |
->setRightTitle(_t('ContractForm.HEI_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('LoS_4', _t('ContractForm.LoS_Before'), $lengthOfService) | |
->setRightTitle(_t('ContractForm.LoS_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('HEI_4', '', $holidayEntitlementIncrease) | |
->setRightTitle(_t('ContractForm.HEI_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('LoS_5', _t('ContractForm.LoS_Before'), $lengthOfService) | |
->setRightTitle(_t('ContractForm.LoS_After'))->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('HEI_5', '', $holidayEntitlementIncrease) | |
->setRightTitle(_t('ContractForm.HEI_After'))->addExtraClass('stacked')->setEmptyString('') | |
)->setColumnCount(2)->setName('HolidayEntitlementBands') | |
->displayIf('HolidayEntitlementIncreasesWithYearsOfService')->isEqualTo("Yes")->end(), | |
DropdownField::create('MaximumHolidaysTakenInOnePeriod', 'What is the maximum number of weeks an employee can take as holiday in one period?', array( | |
'1 working week' => '1 working week', | |
'2 working weeks' => '2 working weeks', | |
'3 working weeks' => '3 working weeks' | |
))->displayIf('HolidayArrangement')->isEqualTo('Employee may request holiday dates')->end(), | |
HeaderField::create('Section_SickPay', _t('ContractForm.Section_SickPay')), | |
DropdownField::create('ReportAbsenceTo', null, array( | |
'Your Manager/Supervisor' => _t('ContractForm.ReportAbsenceTo_Manager'), | |
'The HR Department' => _t('ContractForm.ReportAbsenceTo_HR'), | |
'The Reception' => _t('ContractForm.ReportAbsenceTo_Reception') | |
)), | |
DropdownField::create('ReportAbsenceTime', null, array( | |
'TwoHoursBefore' => _t('ContractForm.ReportAbsenceTime_TwoHoursBefore'), | |
'OneHourBefore' => _t('ContractForm.ReportAbsenceTime_OneHourBefore'), | |
'ThirtyMinsBefore' => _t('ContractForm.ReportAbsenceTime_ThirtyMinsBefore'), | |
'ByStartOfShift' => _t('ContractForm.ReportAbsenceTime_ByStartOfShift'), | |
'OneHourAfter' => _t('ContractForm.ReportAbsenceTime_OneHourAfter') | |
)), | |
OptionsetField::create('EnhancedSickPay', null, $yes_no), | |
OptionsetField::create('IsSickPayWaitingPeriod', null, $yes_no) | |
->displayIf('EnhancedSickPay')->isEqualTo('Yes')->end(), | |
DropdownField::create('SickPayWaitingPeriod', null, array( | |
'Probation' => _t('ContractForm.SickPayWaitingPeriod_Probation'), | |
'1 week' => _t('ContractForm.SickPayWaitingPeriod_1w'), | |
'1 month' => _t('ContractForm.SickPayWaitingPeriod_1m'), | |
'3 months' => _t('ContractForm.SickPayWaitingPeriod_3m'), | |
'6 months' => _t('ContractForm.SickPayWaitingPeriod_6m'), | |
'12 months' => _t('ContractForm.SickPayWaitingPeriod_12m'), | |
'18 months' => _t('ContractForm.SickPayWaitingPeriod_18m'), | |
'24 months' => _t('ContractForm.SickPayWaitingPeriod_24m') | |
))->displayIf('IsSickPayWaitingPeriod')->isEqualTo('Yes')->end(), | |
FieldGroup::create( | |
HeaderField::create('SPE_Number', _t('Common.Number'), 6), | |
HeaderField::create('SPE_Period', _t('Common.Period'), 6), | |
HeaderField::create('SPE_Amount', _t('Common.Amount'), 6), | |
DropdownField::create('SPE_1_Number', '', $SPE_Numbers), | |
DropdownField::create('SPE_1_Period', '', $SPE_Periods), | |
DropdownField::create('SPE_1_Amount', '', $SPE_Amounts), | |
DropdownField::create('SPE_2_Number', '', $SPE_Numbers)->setEmptyString(''), | |
DropdownField::create('SPE_2_Period', '', $SPE_Periods)->setEmptyString(''), | |
DropdownField::create('SPE_2_Amount', '', $SPE_Amounts)->setEmptyString(''), | |
DropdownField::create('SPE_3_Number', '', $SPE_Numbers)->setEmptyString(''), | |
DropdownField::create('SPE_3_Period', '', $SPE_Periods)->setEmptyString(''), | |
DropdownField::create('SPE_3_Amount', '', $SPE_Amounts)->setEmptyString('') | |
)->setName('SickPayEntitlement') | |
->setColumnCount(3) | |
->displayIf('EnhancedSickPay')->isEqualTo('Yes')->end(), | |
OptionsetField::create('DoesEntitlementIncreaseWithLoS', null, $yes_no) | |
->displayIf('EnhancedSickPay')->isEqualTo('Yes')->end(), | |
FieldGroup::create( | |
HeaderField::create('EntLoS_EntLoS', _t('ContractForm.EntLoS'), 6), | |
HeaderField::create('EntLoS_EntLoS_', ' ', 6), | |
HeaderField::create('EntLoS_Number', _t('Common.Number'), 6), | |
HeaderField::create('EntLoS_Period', _t('Common.Period'), 6), | |
HeaderField::create('EntLoS_Amount', _t('Common.Amount'), 6), | |
DropdownField::create('EntLoS_1_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked'), | |
DropdownField::create('EntLoS_1_LoS_Period', '', $EntLoS_LoS_Periods), | |
DropdownField::create('EntLoS_1_Number', '', $EntLoS_Numbers), | |
DropdownField::create('EntLoS_1_Period', '', $EntLoS_Periods), | |
DropdownField::create('EntLoS_1_Amount', '', $EntLoS_Amounts), | |
DropdownField::create('EntLoS_2_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('EntLoS_2_LoS_Period', '', $EntLoS_LoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_2_Number', '', $EntLoS_Numbers)->setEmptyString('')->setEmptyString(''), | |
DropdownField::create('EntLoS_2_Period', '', $EntLoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_2_Amount', '', $EntLoS_Amounts)->setEmptyString(''), | |
DropdownField::create('EntLoS_3_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('EntLoS_3_LoS_Period', '', $EntLoS_LoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_3_Number', '', $EntLoS_Numbers)->setEmptyString(''), | |
DropdownField::create('EntLoS_3_Period', '', $EntLoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_3_Amount', '', $EntLoS_Amounts)->setEmptyString(''), | |
DropdownField::create('EntLoS_4_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('EntLoS_4_LoS_Period', '', $EntLoS_LoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_4_Number', '', $EntLoS_Numbers)->setEmptyString(''), | |
DropdownField::create('EntLoS_4_Period', '', $EntLoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_4_Amount', '', $EntLoS_Amounts)->setEmptyString(''), | |
DropdownField::create('EntLoS_5_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('EntLoS_5_LoS_Period', '', $EntLoS_LoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_5_Number', '', $EntLoS_Numbers)->setEmptyString(''), | |
DropdownField::create('EntLoS_5_Period', '', $EntLoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_5_Amount', '', $EntLoS_Amounts)->setEmptyString(''), | |
DropdownField::create('EntLoS_6_LoS_Number', _t('ContractForm.LoS_Before'), $EntLoS_LoS_Numbers)->addExtraClass('stacked')->setEmptyString(''), | |
DropdownField::create('EntLoS_6_LoS_Period', '', $EntLoS_LoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_6_Number', '', $EntLoS_Numbers)->setEmptyString(''), | |
DropdownField::create('EntLoS_6_Period', '', $EntLoS_Periods)->setEmptyString(''), | |
DropdownField::create('EntLoS_6_Amount', '', $EntLoS_Amounts)->setEmptyString('') | |
)->setName('EntitlementIncreasesWithLoS') | |
->setColumnCount(5) | |
->addExtraClass('stacked') | |
->displayIf('DoesEntitlementIncreaseWithLoS')->isEqualTo('Yes') | |
->andIf('EnhancedSickPay')->isEqualTo('Yes')->end(), | |
HeaderField::create('Section_PensionScheme', _t('ContractForm.PensionScheme')) | |
->setDescription(_t('ContractForm.PensionScheme_help')), | |
OptionsetField::create('ProvideStakeholdersPensionScheme', null, $yes_no), | |
OptionsetField::create('OfferOccupationalPension', null, $yes_no), | |
OptionsetField::create('AutoEnrolPension', null, $yes_no), | |
DropdownField::create('ObtainPensionDetailsFrom', null, array( | |
'LineManager' => _t('Common.CanBeObtainedFrom_LineManager'), | |
'Office' => _t('Common.CanBeObtainedFrom_Office'), | |
'HR' => _t('Common.CanBeObtainedFrom_HR'), | |
//'ThisContract' => _t('Common.CanBeObtainedFrom_ThisContract'), | |
'FinanceDept' => _t('Common.CanBeObtainedFrom_FinanceDept') | |
))->displayIf('OfferOccupationalPension')->isEqualTo('Yes') | |
->orIf('AutoEnrolPension')->isEqualTo('Yes')->end(), | |
OptionsetField::create('IsPensionSchemeWaitingPeriod', null, $yes_no) | |
->displayIf('OfferOccupationalPension')->isEqualTo('Yes') | |
->orIf('AutoEnrolPension')->isEqualTo('Yes')->end(), | |
DropdownField::create('PensionSchemeWaitingPeriod', null, array( | |
'Postponement' => 'on completion of the postponement period', | |
'1w' => 'after 1 week', | |
'1m' => 'after 1 month', | |
'3m' => 'after 3 months', | |
'6m' => 'after 6 months', | |
'1y' => 'after 1 year', | |
'2y' => 'after 2 years' | |
))->displayIf('IsPensionSchemeWaitingPeriod')->isEqualTo('Yes') | |
->andIf() | |
->group() | |
->orIf('OfferOccupationalPension')->isEqualTo('Yes') | |
->orIf('AutoEnrolPension')->isEqualTo('Yes') | |
->end(), | |
OptionsetField::create('EmployeeMustMakeContributionToJoinScheme', null, $yes_no) | |
->displayIf('OfferOccupationalPension')->isEqualTo('Yes') | |
->orIf('AutoEnrolPension')->isEqualTo('Yes')->end() | |
); | |
foreach ($fields as &$field) { | |
if($name = _t('ContractForm.'.$field->Name)) { | |
$field->setTitle($name); | |
} | |
if($description = _t('ContractForm.'.$field->Name.'_help')) { | |
$field->setDescription($description); | |
} | |
} | |
self::$fields = $fields; | |
} | |
Requirements::javascript($this->ThemeDir()."/js/holidays.js"); | |
return self::$fields; | |
} | |
function getValidator() { | |
$validator = ZenValidator::create(); | |
$validator->addRequiredFields(array( | |
'HolidayArrangement' | |
)); | |
return $validator; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment