}
if (!isset($filter_data['branch_ids'])) {
    $filter_data['branch_ids'] = array();
}
if (!isset($filter_data['department_ids'])) {
    $filter_data['department_ids'] = array();
}
if (!isset($filter_data['user_title_ids'])) {
    $filter_data['user_title_ids'] = array();
}
if (!isset($filter_data['column_ids'])) {
    $filter_data['column_ids'] = array();
}
//Company Deductions
$cdlf = new CompanyDeductionListFactory();
$deduction_columns = $cdlf->getByCompanyIdAndStatusIdArray($current_company->getId(), 10, FALSE);
$columns = Misc::prependArray($columns, $deduction_columns);
//Get Permission Hierarchy Children first, as this can be used for viewing, or editing.
$permission_children_ids = array();
if ($permission->Check('user', 'view') == FALSE) {
    $hlf = new HierarchyListFactory();
    $permission_children_ids = $hlf->getHierarchyChildrenByCompanyIdAndUserIdAndObjectTypeID($current_company->getId(), $current_user->getId());
    if ($permission->Check('user', 'view_child') == FALSE) {
        $permission_children_ids = array();
    }
    if ($permission->Check('user', 'view_own')) {
        $permission_children_ids[] = $current_user->getId();
    }
    $filter_data['permission_children_ids'] = $permission_children_ids;
}
$ugdlf = new UserGenericDataListFactory();
                 $data = array('id' => $ud_obj->getId(), 'user_id' => $ud_obj->getUser(), 'company_id' => $cd_obj->getCompany(), 'status_id' => $cd_obj->getStatus(), 'status' => Option::getByKey($cd_obj->getStatus(), $cd_obj->getOptions('status')), 'type_id' => $cd_obj->getType(), 'type' => Option::getByKey($cd_obj->getType(), $cd_obj->getOptions('type')), 'name' => $cd_obj->getName(), 'combined_calculation_id' => $cd_obj->getCombinedCalculationId(), 'calculation_id' => $cd_obj->getCalculation(), 'calculation' => Option::getByKey($cd_obj->getCalculation(), $cd_obj->getOptions('calculation')), 'country_id' => $cd_obj->getCountry(), 'country' => Option::getByKey($cd_obj->getCountry(), $cd_obj->getOptions('country')), 'province_id' => $cd_obj->getProvince(), 'province' => Option::getByKey($cd_obj->getProvince(), $province_options), 'district_id' => $cd_obj->getDistrict(), 'district' => Option::getByKey($cd_obj->getDistrict(), $district_options), 'company_value1' => $cd_obj->getCompanyValue1(), 'company_value2' => $cd_obj->getCompanyValue2(), 'user_value1' => $user_value1, 'user_value2' => $user_value2, 'user_value3' => $user_value3, 'user_value4' => $user_value4, 'user_value5' => $user_value5, 'user_value6' => $ud_obj->getUserValue6(), 'user_value7' => $ud_obj->getUserValue7(), 'user_value8' => $ud_obj->getUserValue8(), 'user_value9' => $ud_obj->getUserValue9(), 'user_value10' => $ud_obj->getUserValue10(), 'default_user_value1' => $cd_obj->getUserValue1(), 'default_user_value2' => $cd_obj->getUserValue2(), 'default_user_value3' => $cd_obj->getUserValue3(), 'default_user_value4' => $cd_obj->getUserValue4(), 'default_user_value5' => $cd_obj->getUserValue5(), 'default_user_value6' => $cd_obj->getUserValue6(), 'default_user_value7' => $cd_obj->getUserValue7(), 'default_user_value8' => $cd_obj->getUserValue8(), 'default_user_value9' => $cd_obj->getUserValue9(), 'default_user_value10' => $cd_obj->getUserValue10(), 'created_date' => $ud_obj->getCreatedDate(), 'created_by' => $ud_obj->getCreatedBy(), 'updated_date' => $ud_obj->getUpdatedDate(), 'updated_by' => $ud_obj->getUpdatedBy(), 'deleted_date' => $ud_obj->getDeletedDate(), 'deleted_by' => $ud_obj->getDeletedBy());
             } else {
                 $permission->Redirect(FALSE);
                 //Redirect
                 exit;
             }
         }
     }
 } else {
     Debug::Text('Adding... ', __FILE__, __LINE__, __METHOD__, 10);
     //Adding User Deductions...
     $data['add'] = 1;
     $data['user_id'] = $user_id;
     //Get all Company Deductions for drop down box.
     $cdlf = new CompanyDeductionListFactory();
     $data['deduction_options'] = $cdlf->getByCompanyIdAndStatusIdArray($current_company->getId(), 10, FALSE);
     $udlf = new UserDeductionListFactory();
     $udlf->getByCompanyIdAndUserId($current_company->getId(), $user_id);
     if ($udlf->getRecordCount() > 0) {
         //Remove deductions from select box that are already assigned to user.
         $deduction_ids = array_keys($data['deduction_options']);
         foreach ($udlf as $ud_obj) {
             if (in_array($ud_obj->getCompanyDeduction(), $deduction_ids)) {
                 unset($data['deduction_options'][$ud_obj->getCompanyDeduction()]);
             }
         }
     }
 }
 //Get user full name
 $ulf = new UserListFactory();
 $ulf->getByIdAndCompanyId($data['user_id'], $current_company->getId());