public function recover(Request $request, $sid) { $desde = $request->input('desde'); $hasta = $request->input('hasta'); if ($desde < 0) { $desde = 1; } $nLlamadasTot = DB::table('tokens_' . $sid)->count(); if ($hasta > $nLlamadasTot) { $hasta = $nLlamadasTot; } if ($desde > $hasta) { return Redirect::to('survey/' . $sid . '/dispatch')->with('status', 'El limite inferior no puede ser mayor que el limite superior.'); } log::info('[' . $sid . '] Recueperamos las llamadas de el token ' . $desde . ' hasta el ' . $hasta); $rellamadaColumn = $sid . 'X' . SettingsController::getAnwswerGroup($sid) . 'X' . SettingsController::getRellamadaAnswer($sid); $sqlTokensRecuperables = " select tid,token from tokens_" . $sid . " where token in " . " ( " . " \tselect maxTable.token " . " \tfrom ( select token,max(id) as maxid from survey_" . $sid . " group by token) as maxTable " . " \tinner join survey_" . $sid . " as sv on maxTable.token=sv.token and maxTable.maxId = sv.id " . " \twhere `" . $rellamadaColumn . "`='A1' " . " ) and tokens_" . $sid . ".completed<>'N'" . " and tid between " . $desde . " and " . $hasta; $tokensRecuperables = DB::select($sqlTokensRecuperables); foreach ($tokensRecuperables as $tokenRecuperable) { //Recuperamos cada llamada LlamadasController::recover($sid, $tokenRecuperable->tid); } return Redirect::to('survey/' . $sid)->with('status', 'Proceso de recuperacion de llamadas, realizado correctamente'); }