3
class iHRIS_Module_Instance extends I2CE_Module {
6
public static function getMethods() {
8
'iHRIS_PageView->action_instance' => 'action_instance'
13
* Return the array of hooks available in this module.
16
public static function getHooks() {
18
'validate_form_instance' => 'validate_form_instance',
22
public function action_instance( $page ) {
23
if ( !$page instanceof iHRIS_PageView ) {
24
I2CE::raiseError("invalid call");
27
return $page->addLastChildForm( 'instance', 'baylor_training_type' );
30
public function action_person_baylor_training($obj) {
31
if (!$obj instanceof iHRIS_PageView) {
32
I2CE::raiseError("invalid call");
35
//do nothing so that an warning message is avoided
41
* Checks to make sure the end of applicability is after the start of applicability.
42
* @param I2CE_Form $form
44
public function validate_form_baylor_training_instance( $form ) {
45
if ( $form->actual_start_date->isValid() && $form->actual_end_date->isValid() ) {
46
if ($form->actual_start_date->compare( $form->actual_end_date ) < 0 ) {
47
//$form->getField( 'end_date' )->setInvalid( $form->start_date );
48
$form->getField( 'actual_end_date' )->setInvalid( 'The end date must be after the start date.' );
53
$personID = $form->getParent();
54
$ids = I2CE_FormStorage::search('person_baylor_training', $personID );
56
$form_factory = I2CE_FormFactory::instance();
58
foreach($ids as $id) {
59
$trainingObj = $form_factory->createContainer('person_baylor_training|' . $id);
61
if (!$trainingObj instanceof iHRIS_PersonBaylor_Training) {
66
$trainingObj->populate();
68
if (( $form->start_date->compare( $trainingObj->start_date ) < 0 ) && ( $form->start_date->compare( $trainingObj->end_date ) > 0 )){
69
$form->getField( "end_date" )->setInvalid( "The dates of the training overlap with another training, One cannot attend two trainings within the same period of time" );
71
}else if (( $form->end_date->compare( $trainingObj->start_date ) < 0 ) && ( $form->end_date->compare( $trainingObj->end_date ) > 0 )){
72
$form->getField( "end_date" )->setInvalid( "The dates of the training overlap with another training, One cannot attend two trainings within the same period of time" );
74
// }else if (( $form->start_date->compare( $trainingObj->end_date ) > 0 ) && ( $form->end_date->compare( $trainingObj->end_date ) > 0 )){
75
// $form->getField( "end_date" )->setInvalid( "The dates of the training overlap with another training" );