diff --git a/admin/assignsample.php b/admin/assignsample.php index d4522b5a..eb6a5f6c 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -93,8 +93,14 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' $an = 0; if (isset($_GET['allownew'])) $an = 1; - $sql = "INSERT INTO questionnaire_sample(questionnaire_id,sample_import_id,call_max,call_attempt_max,random_select,answering_machine_messages,allow_new) - VALUES('$questionnaire_id','$sid','$cm','$cam','$selecttype','$am', '$an')"; + $sql = "SELECT MAX(sort_order) + 1 + FROM questionnaire_sample + WHERE questionnaire_id = '$questionnaire_id'"; + + $so = $db->GetOne($sql); + + $sql = "INSERT INTO questionnaire_sample(questionnaire_id,sample_import_id,call_max,call_attempt_max,random_select,answering_machine_messages,allow_new,sort_order) + VALUES('$questionnaire_id','$sid','$cm','$cam','$selecttype','$am', '$an', '$so')"; $db->Execute($sql); @@ -176,7 +182,6 @@ if (isset($_POST['edit'])) } - if (isset($_GET['questionnaire_id']) && isset($_GET['rsid'])) { $questionnaire_id = bigintval($_GET['questionnaire_id']); @@ -239,7 +244,67 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['rsid'])) GetRow($sql); + + $ssid = $rs['sample_import_id']; + $sso = $rs['sort_order']; + + $sql = "UPDATE questionnaire_sample + SET sort_order = $sso + WHERE sample_import_id = $sid + AND questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "UPDATE questionnaire_sample + SET sort_order = ($sso + 1) + WHERE sample_import_id = $ssid + AND questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + } + else + { + //find next in sort order and do a swap + $sql = "SELECT sample_import_id,sort_order + FROM questionnaire_sample + WHERE questionnaire_id = $questionnaire_id + AND sort_order > (SELECT sort_order FROM questionnaire_sample WHERE questionnaire_id = $questionnaire_id AND sample_import_id = $sid) + ORDER BY sort_order ASC LIMIT 1"; + + $rs = $db->GetRow($sql); + + $ssid = $rs['sample_import_id']; + $sso = $rs['sort_order']; + + $sql = "UPDATE questionnaire_sample + SET sort_order = $sso + WHERE sample_import_id = $sid + AND questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "UPDATE questionnaire_sample + SET sort_order = ($sso - 1) + WHERE sample_import_id = $ssid + AND questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + } + } else { //need to remove rsid from questionnaire @@ -266,7 +331,7 @@ if ($questionnaire_id != false) print "