diff --git a/public_html/application/helpers/export_helper.php b/public_html/application/helpers/export_helper.php
index ae83a08..7483ecc 100644
--- a/public_html/application/helpers/export_helper.php
+++ b/public_html/application/helpers/export_helper.php
@@ -1712,60 +1712,65 @@ function tokensExport($iSurveyID)
$oSurvey=Survey::model()->findByPk($iSurveyID);
$bIsNotAnonymous= ($oSurvey->anonymized=='N' && $oSurvey->active=='Y');// db table exist (survey_$iSurveyID) ?
- $oRecordSet = Yii::app()->db->createCommand()->from("{{tokens_$iSurveyID}}");
+ $oRecordSet = Yii::app()->db->createCommand()->from("{{tokens_$iSurveyID}} lt");
$databasetype = Yii::app()->db->getDriverName();
$oRecordSet->where("1=1");
if ($sEmailFiter!='')
{
if (in_array($databasetype, array('mssql', 'sqlsrv', 'dblib')))
{
- $oRecordSet->andWhere("CAST(email as varchar) like ".dbQuoteAll('%'.$sEmailFiter.'%', true));
+ $oRecordSet->andWhere("CAST(lt.email as varchar) like ".dbQuoteAll('%'.$sEmailFiter.'%', true));
}
else
{
- $oRecordSet->andWhere("email like ".dbQuoteAll('%'.$sEmailFiter.'%', true));
+ $oRecordSet->andWhere("lt.email like ".dbQuoteAll('%'.$sEmailFiter.'%', true));
}
}
if ($iTokenStatus==1)
{
- $oRecordSet->andWhere("completed<>'N'");
+ $oRecordSet->andWhere("lt.completed<>'N'");
}
elseif ($iTokenStatus==2)
{
- $oRecordSet->andWhere("completed='N'");
+ $oRecordSet->andWhere("lt.completed='N'");
if ($bIsNotAnonymous)
{
- $oRecordSet->andWhere("token not in (select token from {{survey_$iSurveyID}} group by token)");
+ // $oRecordSet->andWhere("token not in (select token from {{survey_$iSurveyID}} group by token)");
+ $oRecordSet->leftJoin("{{survey_$iSurveyID}} ls", 'lt.token=ls.token');
+ $oRecordSet->andWhere("ls.id IS NULL");
}
}
if ($iTokenStatus==3 && $bIsNotAnonymous)
{
- $oRecordSet->andWhere("completed='N' and token in (select token from {{survey_$iSurveyID}} group by token)");
+ // $oRecordSet->andWhere("lt.completed='N' and token in (select token from {{survey_$iSurveyID}} group by token)");
+ $oRecordSet->leftJoin("{{survey_$iSurveyID}} ls", 'lt.token=ls.token');
+ $oRecordSet->andWhere("lt.completed='N'");
+ $oRecordSet->andWhere("ls.id IS NULL");
}
if ($iInvitationStatus==1)
{
- $oRecordSet->andWhere("sent<>'N'");
+ $oRecordSet->andWhere("lt.sent<>'N'");
}
if ($iInvitationStatus==2)
{
- $oRecordSet->andWhere("sent='N'");
+ $oRecordSet->andWhere("lt.sent='N'");
}
if ($iReminderStatus==1)
{
- $oRecordSet->andWhere("remindersent<>'N'");
+ $oRecordSet->andWhere("lt.remindersent<>'N'");
}
if ($iReminderStatus==2)
{
- $oRecordSet->andWhere("remindersent='N'");
+ $oRecordSet->andWhere("lt.remindersent='N'");
}
if ($sTokenLanguage!='')
{
- $oRecordSet->andWhere("language=".dbQuoteAll($sTokenLanguage));
+ $oRecordSet->andWhere("lt.language=".dbQuoteAll($sTokenLanguage));
}
- $oRecordSet->order("tid");
+ $oRecordSet->order("lt.tid");
$bresult = $oRecordSet->query();
//HEADERS should be after the above query else timeout errors in case there are lots of tokens!
header("Content-Disposition: attachment; filename=tokens_".$iSurveyID.".csv");