示例#1
0
 function createAccrualPolicy($company_id, $type)
 {
     $apf = new AccrualPolicyFactory();
     $apf->setCompany($company_id);
     switch ($type) {
         case 10:
             //Bank Time
             $apf->setName('Bank Time');
             $apf->setType(10);
             break;
         case 20:
             //Calendar Based: Vacation/PTO
             $apf->setName('Personal Time Off (PTO)/Vacation');
             $apf->setType(20);
             $apf->setApplyFrequency(10);
             $apf->setMilestoneRolloverHireDate(TRUE);
             $apf->setMinimumEmployedDays(30);
             break;
         case 30:
             //Calendar Based: Vacation/PTO
             $apf->setName('Sick Time');
             $apf->setType(20);
             $apf->setApplyFrequency(10);
             $apf->setMilestoneRolloverHireDate(TRUE);
             $apf->setMinimumEmployedDays(30);
             break;
     }
     if ($apf->isValid()) {
         $insert_id = $apf->Save();
         Debug::Text('Accrual Policy ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10);
         $apmf = new AccrualPolicyMilestoneFactory();
         if ($type == 20) {
             $apmf->setAccrualPolicy($insert_id);
             $apmf->setLengthOfService(1);
             $apmf->setLengthOfServiceUnit(40);
             $apmf->setAccrualRate(3600 * 8 * 5);
             $apmf->setMaximumTime(3600 * 8 * 5);
             if ($apmf->isValid()) {
                 Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10);
                 $apmf->Save();
             }
             $apmf->setAccrualPolicy($insert_id);
             $apmf->setLengthOfService(2);
             $apmf->setLengthOfServiceUnit(40);
             $apmf->setAccrualRate(3600 * 8 * 10);
             $apmf->setMaximumTime(3600 * 8 * 10);
             if ($apmf->isValid()) {
                 Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10);
                 $apmf->Save();
             }
             $apmf->setAccrualPolicy($insert_id);
             $apmf->setLengthOfService(3);
             $apmf->setLengthOfServiceUnit(40);
             $apmf->setAccrualRate(3600 * 8 * 15);
             $apmf->setMaximumTime(3600 * 8 * 15);
             if ($apmf->isValid()) {
                 Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10);
                 $apmf->Save();
             }
         } elseif ($type == 30) {
             $apmf->setAccrualPolicy($insert_id);
             $apmf->setLengthOfService(1);
             $apmf->setLengthOfServiceUnit(10);
             $apmf->setAccrualRate(3600 * 8 * 3);
             $apmf->setMaximumTime(3600 * 8 * 3);
             if ($apmf->isValid()) {
                 Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10);
                 $apmf->Save();
             }
             $apmf->setAccrualPolicy($insert_id);
             $apmf->setLengthOfService(1);
             $apmf->setLengthOfServiceUnit(40);
             $apmf->setAccrualRate(3600 * 8 * 6);
             $apmf->setMaximumTime(3600 * 8 * 6);
             if ($apmf->isValid()) {
                 Debug::Text('Saving Milestone...', __FILE__, __LINE__, __METHOD__, 10);
                 $apmf->Save();
             }
         }
         return $insert_id;
     }
     Debug::Text('Failed Creating Accrual Policy!', __FILE__, __LINE__, __METHOD__, 10);
     return FALSE;
 }
    foreach ($data['milestone_rows'] as $milestone_row_id => $milestone_row) {
        if ($data['type_id'] == 20 and isset($milestone_row['accrual_rate']) and $milestone_row['accrual_rate'] != '') {
            $data['milestone_rows'][$milestone_row_id]['accrual_rate'] = TTDate::parseTimeUnit($milestone_row['accrual_rate']);
        }
        if (isset($milestone_row['maximum_time']) and $milestone_row['maximum_time'] != '') {
            $data['milestone_rows'][$milestone_row_id]['maximum_time'] = TTDate::parseTimeUnit($milestone_row['maximum_time']);
        }
        /*
        if ( isset($milestone_row['minimum_time']) AND $milestone_row['minimum_time'] != '' ) {
        	$data['milestone_rows'][$milestone_row_id]['minimum_time'] = TTDate::parseTimeUnit($milestone_row['minimum_time'] );
        }
        */
    }
}
$apf = new AccrualPolicyFactory();
$apmf = new AccrualPolicyMilestoneFactory();
$action = Misc::findSubmitButton();
$action = strtolower($action);
switch ($action) {
    case 'delete':
        //Debug::setVerbosity(11);
        if (count($ids) > 0) {
            foreach ($ids as $apm_id) {
                if ($apm_id > 0) {
                    Debug::Text('cDeleting Milestone Row ID: ' . $apm_id, __FILE__, __LINE__, __METHOD__, 10);
                    $apmlf = new AccrualPolicyMilestoneListFactory();
                    $apmlf->getById($apm_id);
                    if ($apmlf->getRecordCount() == 1) {
                        foreach ($apmlf as $apm_obj) {
                            $apm_obj->setDeleted(TRUE);
                            if ($apm_obj->isValid()) {