diff --git a/application/controllers/admin/dataentry.php b/application/controllers/admin/dataentry.php
index 1d772fe6492..8c1f70d062a 100644
--- a/application/controllers/admin/dataentry.php
+++ b/application/controllers/admin/dataentry.php
@@ -292,6 +292,7 @@ public function import($surveyid)
}
else
{
+ $aSRIDConversions=array();
$targetSchema = SurveyDynamic::model($iSurveyId)->getTableSchema();
$sourceTable = PluginDynamic::model($_POST['table']);
$sourceSchema = $sourceTable->getTableSchema();
@@ -327,7 +328,7 @@ public function import($surveyid)
$sourceResponses = new CDataProviderIterator(new CActiveDataProvider($sourceTable), 500);
foreach ($sourceResponses as $sourceResponse)
{
-
+ $iOldID=$sourceResponse->id;
// Using plugindynamic model because I dont trust surveydynamic.
$targetResponse = new PluginDynamic("{{survey_$iSurveyId}}");
@@ -337,37 +338,36 @@ public function import($surveyid)
}
$imported++;
$targetResponse->save();
+ $aSRIDConversions[$iOldID]=$targetResponse->id;
unset($targetResponse);
}
Yii::app()->session['flashmessage'] = sprintf(gT("%s old response(s) were successfully imported."), $imported);
- $sOldTimingsTable=substr($sourceTable->tableName(),0,strrpos($sourceTable->tableName(),'_')).'_timings'.substr($sourceTable->tableName(),strrpos($sourceTable->tableName(),'_'));
+ $sOldTimingsTable=substr(substr($sourceTable->tableName(),0,strrpos($sourceTable->tableName(),'_')).'_timings'.substr($sourceTable->tableName(),strrpos($sourceTable->tableName(),'_')),strlen(Yii::app()->db->tablePrefix));
$sNewTimingsTable = "survey_{$surveyid}_timings";
if (isset($_POST['timings']) && $_POST['timings'] == 1 && tableExists($sOldTimingsTable) && tableExists($sNewTimingsTable))
{
// Import timings
- $aFieldsOldTimingTable=array_values($schema->getTable($sOldTimingsTable)->columnNames);
- $aFieldsNewTimingTable=array_values($schema->getTable($sNewTimingsTable)->columnNames);
+ $arDestination=SurveyTimingDynamic::model($surveyid);
+ $aFieldsOldTimingTable=array_values(Yii::app()->db->schema->getTable('{{'.$sOldTimingsTable.'}}')->columnNames);
+ $aFieldsNewTimingTable=array_values(Yii::app()->db->schema->getTable('{{'.$sNewTimingsTable.'}}')->columnNames);
$aValidTimingFields=array_intersect($aFieldsOldTimingTable,$aFieldsNewTimingTable);
- $queryOldValues = "SELECT ".implode(", ",$aValidTimingFields)." FROM {$sOldTimingsTable} ";
- $resultOldValues = dbExecuteAssoc($queryOldValues) or show_error("Error:
$queryOldValues
");
+ $sQueryOldValues = "SELECT ".implode(", ",$aValidTimingFields)." FROM {{{$sOldTimingsTable}}} ";
+ $aQueryOldValues = Yii::app()->db->createCommand($sQueryOldValues)->query()->readAll(); //Checked
$iRecordCountT=0;
- $aSRIDConversions=array();
- foreach ($resultOldValues->readAll() as $sTable)
+ foreach ($aQueryOldValues as $sRecord)
{
- if (isset($aSRIDConversions[$sTable['id']]))
+ if (isset($aSRIDConversions[$sRecord['id']]))
{
- $sTable['id']=$aSRIDConversions[$sTable['id']];
+ $sRecord['id']=$aSRIDConversions[$sRecord['id']];
}
else continue;
- //$sInsertSQL=Yii::app()->db->GetInsertSQL($sNewTimingsTable,$row);
- $sInsertSQL="INSERT into {$sNewTimingsTable} (".implode(",", array_map("dbQuoteID", array_keys($sTable))).") VALUES (".implode(",", array_map("dbQuoteAll", array_values($sTable))).")";
- $aTables = dbExecuteAssoc($sInsertSQL) or show_error("Error:
$sInsertSQL
");
+ Yii::app()->db->createCommand()->insert("{{{$sNewTimingsTable}}}",$sRecord);
$iRecordCountT++;
}
Yii::app()->session['flashmessage'] = sprintf(gT("%s old response(s) and according timings were successfully imported."),$imported,$iRecordCountT);