}
         }
         if ($ppf->isValid()) {
             $ppf->Save(TRUE);
             //$ppf->FailTransaction();
             $ppf->CommitTransaction();
             Redirect::Page(URLBuilder::getURL(NULL, 'PremiumPolicyList.php'));
             break;
         }
     }
     $ppf->FailTransaction();
 default:
     if (isset($id)) {
         BreadCrumb::setCrumb($title);
         $pplf = new PremiumPolicyListFactory();
         $pplf->getByIdAndCompanyID($id, $current_company->getID());
         foreach ($pplf as $pp_obj) {
             //Debug::Arr($station,'Department', __FILE__, __LINE__, __METHOD__,10);
             $data = array('id' => $pp_obj->getId(), 'name' => $pp_obj->getName(), 'type_id' => $pp_obj->getType(), 'pay_type_id' => $pp_obj->getPayType(), 'start_date' => $pp_obj->getStartDate(), 'end_date' => $pp_obj->getEndDate(), 'start_time' => $pp_obj->getStartTime(), 'end_time' => $pp_obj->getEndTime(), 'daily_trigger_time' => $pp_obj->getDailyTriggerTime(), 'weekly_trigger_time' => $pp_obj->getWeeklyTriggerTime(), 'sun' => $pp_obj->getSun(), 'mon' => $pp_obj->getMon(), 'tue' => $pp_obj->getTue(), 'wed' => $pp_obj->getWed(), 'thu' => $pp_obj->getThu(), 'fri' => $pp_obj->getFri(), 'sat' => $pp_obj->getSat(), 'include_partial_punch' => $pp_obj->getIncludePartialPunch(), 'maximum_no_break_time' => $pp_obj->getMaximumNoBreakTime(), 'minimum_break_time' => $pp_obj->getMinimumBreakTime(), 'minimum_time' => $pp_obj->getMinimumTime(), 'maximum_time' => $pp_obj->getMaximumTime(), 'include_meal_policy' => $pp_obj->getIncludeMealPolicy(), 'include_break_policy' => $pp_obj->getIncludeBreakPolicy(), 'wage_group_id' => $pp_obj->getWageGroup(), 'rate' => Misc::removeTrailingZeros($pp_obj->getRate()), 'accrual_rate' => Misc::removeTrailingZeros($pp_obj->getAccrualRate()), 'accrual_policy_id' => $pp_obj->getAccrualPolicyID(), 'pay_stub_entry_account_id' => $pp_obj->getPayStubEntryAccountId(), 'branch_selection_type_id' => $pp_obj->getBranchSelectionType(), 'exclude_default_branch' => $pp_obj->getExcludeDefaultBranch(), 'branch_ids' => $pp_obj->getBranch(), 'department_selection_type_id' => $pp_obj->getDepartmentSelectionType(), 'exclude_default_department' => $pp_obj->getExcludeDefaultDepartment(), 'department_ids' => $pp_obj->getDepartment(), 'job_group_selection_type_id' => $pp_obj->getJobGroupSelectionType(), 'job_group_ids' => $pp_obj->getJobGroup(), 'job_selection_type_id' => $pp_obj->getJobSelectionType(), 'job_ids' => $pp_obj->getJob(), 'job_item_group_selection_type_id' => $pp_obj->getJobItemGroupSelectionType(), 'job_item_group_ids' => $pp_obj->getJobItemGroup(), 'job_item_selection_type_id' => $pp_obj->getJobItemSelectionType(), 'job_item_ids' => $pp_obj->getJobItem(), 'created_date' => $pp_obj->getCreatedDate(), 'created_by' => $pp_obj->getCreatedBy(), 'updated_date' => $pp_obj->getUpdatedDate(), 'updated_by' => $pp_obj->getUpdatedBy(), 'deleted_date' => $pp_obj->getDeletedDate(), 'deleted_by' => $pp_obj->getDeletedBy());
         }
     } elseif ($action != 'submit') {
         $data = array('start_time' => NULL, 'end_time' => NULL, 'sun' => TRUE, 'mon' => TRUE, 'tue' => TRUE, 'wed' => TRUE, 'thu' => TRUE, 'fri' => TRUE, 'sat' => TRUE, 'wage_group_id' => 0, 'rate' => '1.00', 'accrual_rate' => '1.00', 'daily_trigger_time' => 0, 'weekly_trigger_time' => 0, 'maximum_no_break_time' => 0, 'minimum_break_time' => 0, 'minimum_time' => 0, 'maximum_time' => 0, 'include_meal_policy' => TRUE, 'include_break_policy' => TRUE);
     }
     $data = Misc::preSetArrayValues($data, array('branch_ids', 'department_ids', 'job_group_ids', 'job_ids', 'job_item_group_ids', 'job_item_ids'), NULL);
     $aplf = new AccrualPolicyListFactory();
     $accrual_options = $aplf->getByCompanyIDArray($current_company->getId(), TRUE);
     $psealf = new PayStubEntryAccountListFactory();
     $pay_stub_entry_options = $psealf->getByCompanyIdAndStatusIdAndTypeIdArray($current_company->getId(), 10, array(10, 20, 30, 50));
     //Get branches
     $blf = new BranchListFactory();
     $blf->getByCompanyId($current_company->getId());