public function ajaxProcessGamificationTasks()
 {
     if (!Configuration::get('GF_INSTALL_CALC')) {
         $this->processRefreshData();
         $this->processInstallCalculation();
         Configuration::updateGlobalValue('GF_INSTALL_CALC', 1);
     }
     $return = array('refresh_data' => $this->processRefreshData(), 'daily_calculation' => $this->processMakeDailyCalculation(), 'advice_validation' => $this->processAdviceValidation());
     $return['advices_to_display'] = $this->processGetAdvicesToDisplay();
     //get only one random advice by tab
     if (count($return['advices_to_display']['advices']) > 1) {
         $rand = rand(0, count($return['advices_to_display']['advices']) - 1);
         $return['advices_to_display']['advices'] = array($return['advices_to_display']['advices'][$rand]);
     }
     if (Tab::getIdFromClassName('AdminDashboard') == Tools::getValue('id_tab')) {
         $return['advices_premium_to_display'] = $this->processGetAdvicesToDisplay(true);
         if (count($return['advices_premium_to_display']['advices']) >= 2) {
             $weighted_advices_array = array();
             foreach ($return['advices_premium_to_display']['advices'] as $prem_advice) {
                 $loop_flag = (int) $prem_advice['weight'];
                 if ($loop_flag) {
                     for ($i = 0; $i != $loop_flag; $i++) {
                         $weighted_advices_array[] = $prem_advice;
                     }
                 } else {
                     $weighted_advices_array[] = $prem_advice;
                 }
             }
             $rand = rand(0, count($weighted_advices_array) - 1);
             do {
                 $rand2 = rand(0, count($weighted_advices_array) - 1);
             } while ($rand == $rand2);
             $return['advices_premium_to_display']['advices'] = array($weighted_advices_array[$rand], $weighted_advices_array[$rand2]);
         } else {
             if (count($return['advices_premium_to_display']['advices']) > 0) {
                 $addons = Advice::getAddonsAdviceByIdTab((int) Tools::getValue('id_tab'));
                 $return['advices_premium_to_display']['advices'][] = $addons[0];
             }
         }
     }
     $return['level_badge_validation'] = $this->processLevelAndBadgeValidation(Badge::getIdsBadgesToValidate());
     $return['header_notification'] = $this->module->renderHeaderNotification();
     die(Tools::jsonEncode($return));
 }