extract(FormVariables::GetVariables(array('action', 'user_id', 'incomplete', 'pref_data', 'data_saved')));
$hlf = new HierarchyListFactory();
$permission_children_ids = $hlf->getHierarchyChildrenByCompanyIdAndUserIdAndObjectTypeId($current_company->getId(), $current_user->getId());
//Include current user in list.
if ($permission->Check('user_preference', 'edit_own')) {
    $permission_children_ids[] = $current_user->getId();
}
$upf = new UserPreferenceFactory();
$ulf = new UserListFactory();
$action = Misc::findSubmitButton('action');
switch ($action) {
    case 'submit':
        //Debug::setVerbosity( 11 );
        Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10);
        if ($pref_data['id'] != '') {
            $upf->setId($pref_data['id']);
        }
        if (isset($pref_data['user_id']) and $pref_data['user_id'] != '') {
            $upf->setUser($pref_data['user_id']);
        } else {
            $upf->setUser($current_user->getId());
        }
        $upf->setLanguage($pref_data['language']);
        if ($pref_data['language'] == 'en') {
            $upf->setDateFormat($pref_data['date_format']);
        } else {
            $upf->setDateFormat($pref_data['other_date_format']);
        }
        $upf->setTimeFormat($pref_data['time_format']);
        $upf->setTimeUnitFormat($pref_data['time_unit_format']);
        $upf->setTimeZone($pref_data['time_zone']);