$apf->setMilestoneRolloverHireDate(FALSE);
     $apf->setMilestoneRolloverMonth($data['milestone_rollover_month']);
     $apf->setMilestoneRolloverDayOfMonth($data['milestone_rollover_day_of_month']);
 }
 $apf->setMinimumEmployedDays($data['minimum_employed_days']);
 if ($apf->isValid()) {
     $ap_id = $apf->Save();
     if ($ap_id === TRUE) {
         $ap_id = $data['id'];
     }
     if (($data['type_id'] == 20 or $data['type_id'] == 30) and isset($data['milestone_rows']) and count($data['milestone_rows']) > 0) {
         foreach ($data['milestone_rows'] as $milestone_row_id => $milestone_row) {
             Debug::Text('Row ID: ' . $milestone_row_id, __FILE__, __LINE__, __METHOD__, 10);
             if ($milestone_row['accrual_rate'] > 0) {
                 if ($milestone_row_id > 0) {
                     $apmf->setId($milestone_row_id);
                 }
                 $apmf->setAccrualPolicy($ap_id);
                 $apmf->setLengthOfService($milestone_row['length_of_service']);
                 $apmf->setLengthOfServiceUnit($milestone_row['length_of_service_unit_id']);
                 $apmf->setAccrualRate($milestone_row['accrual_rate']);
                 $apmf->setMaximumTime($milestone_row['maximum_time']);
                 //$apmf->setMinimumTime( $milestone_row['minimum_time'] );
                 if ($apmf->isValid()) {
                     Debug::Text('Saving Milestone Row ID: ' . $milestone_row_id, __FILE__, __LINE__, __METHOD__, 10);
                     $apmf->Save();
                 } else {
                     $redirect++;
                 }
             }
         }