mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
New feature: Add records to an existing sample
This commit is contained in:
@@ -128,6 +128,7 @@ include ("../functions/functions.operator.php");
|
||||
<li class="has_sub"><a href="" class=""><i class="fa fa-book fa-lg"></i><span><?php print T_("Samples") ;?></span></a>
|
||||
<ul style="<?php if ($g == 2) echo "display:block";?>">
|
||||
<li><a href="?g=2&page=import.php"><i class="fa fa-upload fa-fw"></i><?php print T_("Import a sample file") ;?></a></li>
|
||||
<li><a href="?g=2&page=updatesample.php"><i class="fa fa-plus fa-fw"></i><?php print T_("Add to a sample file") ;?></a></li>
|
||||
<li><a href="?g=2&page=samplelist.php"><i class="fa fa-list fa-fw"></i><?php print T_("Sample management") ;?></a></li>
|
||||
<li><a href="?g=2&page=samplesearch.php"><i class="fa fa-search fa-fw"></i><?php print T_("Search the sample") ;?></a></li>
|
||||
<li><a href="?g=2&page=assignsample.php"><i class="fa fa-link fa-fw"></i><?php print T_("Assign samples to questionnaires") ;?></a></li>
|
||||
|
||||
@@ -322,6 +322,7 @@ if (isset($_GET['edit']) )
|
||||
|
||||
print "<div class='col-sm-8'><h3>" . T_("Sample") . ": " . $sd['description'] . " <small>ID <b> $sample_import_id</b> </small></h3></div>";
|
||||
print "<div class='col-sm-2'><a href='samplesearch.php?sample_import_id=$sample_import_id' class='btn btn-default' ><i class='fa fa-search fa-lg fa-fw text-primary'></i> " . T_("Search this sample") . "</a></div>";
|
||||
print "<div class='col-sm-2'><a href='updatesample.php?sample_import_id=$sample_import_id' class='btn btn-default' ><i class='fa fa-plus fa-lg fa-fw text-primary'></i> " . T_("Add to this sample") . "</a></div>";
|
||||
print "<div class='clearfix'></div>";
|
||||
|
||||
if($sd['enabled'] == 0){
|
||||
@@ -484,6 +485,7 @@ $sql = "SELECT
|
||||
CONCAT('<a href=\'\' class=\'btn btn-default \' data-toggle=\'confirmation\' data-href=\'?delete_sample=',sample_import_id,'\' data-title=\'" . TQ_("ARE YOU SURE?") . "\' data-btnOkLabel=\'" . TQ_("Yes") . "\' data-btnCancelLabel=\'" . TQ_("Cancel") . "\' ><i class=\'fa fa-trash fa-lg fa-fw text-danger \' data-toggle=\'tooltip\' title=\'" . TQ_("DELETE SAMPLE") . "\'></i></a>')
|
||||
END as delsample,
|
||||
CONCAT('<a href=\'samplesearch.php?sample_import_id=',sample_import_id,'\' class=\'btn btn-default\' data-toggle=\'tooltip\' title=\'" . TQ_("Search the sample") . "',sample_import_id,'\'><i class=\'fa fa-search fa-lg fa-fw text-primary\'></i></a>') as ssearch,
|
||||
CONCAT('<a href=\'updatesample.php?sample_import_id=',sample_import_id,'\' class=\'btn btn-default\' data-toggle=\'tooltip\' title=\'" . TQ_("Add to the sample") . "',sample_import_id,'\'><i class=\'fa fa-plus fa-lg fa-fw text-primary\'></i></a>') as sadd,
|
||||
CONCAT('<a href=\'callhistory.php?sample_import_id=',sample_import_id,'\' class=\'btn btn-default\' data-toggle=\'tooltip\' title=\'" . TQ_("Call history"). " \n" . TQ_("sample"). " ',sample_import_id,'\'><i class=\'fa fa-phone fa-lg text-primary\'></i></a>') as calls,
|
||||
CONCAT('<h4>',description,' </h4>') as description,
|
||||
CONCAT('<h4 class=\'fa fa-lg text-primary pull-right\'>',(SELECT COUNT( DISTINCT`sample_var`.sample_id) FROM `sample_var`, `sample` WHERE `sample`.sample_id = `sample_var`.sample_id AND `sample`.import_id = sample_import_id ),' </h4>') as cnt
|
||||
@@ -497,7 +499,7 @@ echo "<div class='form-group'>
|
||||
<a href='' onclick='history.back();return false;' class='btn btn-default'><i class='fa fa-chevron-left fa-lg text-primary'></i> " . T_("Go back") . "</a>
|
||||
<a href='import.php' class='btn btn-default col-sm-offset-4' ><i class='fa fa-upload fa-lg'></i> " . T_("Import a sample file") . "</a>
|
||||
</div>";
|
||||
$columns = array("id","description","cnt","status","enabledisable","calls","did","ssearch","delsample"); //"vp","rname",
|
||||
$columns = array("id","description","cnt","status","enabledisable","calls","did","ssearch","sadd","delsample"); //"vp","rname",
|
||||
//$titles = array(T_("ID"),T_("Sample"),T_("Records"), T_("Call History"),T_("Enable/Disable"), T_("Status"), T_("Deidentify"), T_("View"), T_("Rename"), T_("Search"), T_("Delete sample"));
|
||||
xhtml_table($rs,$columns, false, "table-hover table-condensed ");
|
||||
|
||||
|
||||
@@ -53,6 +53,46 @@ function only_numbers($str)
|
||||
return preg_replace("/[^0-9]/", "",$str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify that a provided file matches an existing sample file
|
||||
*/
|
||||
function verify_file($file,$import_id)
|
||||
{
|
||||
$row = get_first_row($file);
|
||||
|
||||
global $db;
|
||||
|
||||
$sql = "SELECT var,type,var_id
|
||||
FROM sample_import_var_restrict
|
||||
WHERE sample_import_id = $import_id
|
||||
ORDER BY var_id ASC";
|
||||
|
||||
$sivr = $db->GetAll($sql);
|
||||
|
||||
$count = 0;
|
||||
|
||||
$nrow = array();
|
||||
|
||||
foreach($row as $key => $val) {
|
||||
$nrow[$key] = strtolower(str_replace(array(" ,",", ",","," "," "),"_", $val));
|
||||
|
||||
}
|
||||
|
||||
foreach($sivr as $r) {
|
||||
$var = strtolower($r['var']);
|
||||
if ($var != $nrow[$count]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$count++;
|
||||
}
|
||||
|
||||
//column headings match database
|
||||
if ($count == count($row)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Verify fields in a CSV file
|
||||
@@ -188,6 +228,38 @@ function get_first_row($file)
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add records to an existing sample
|
||||
*/
|
||||
function update_file($file,$import_id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$db->StartTrans();
|
||||
|
||||
$selected_type = array();
|
||||
$selected_name = array();
|
||||
$sirv_id = array();
|
||||
|
||||
$sql = "SELECT var_id,var,type
|
||||
FROM sample_import_var_restrict
|
||||
WHERE sample_import_id = $import_id
|
||||
ORDER BY var_id ASC";
|
||||
|
||||
$sivr = $db->GetAll($sql);
|
||||
|
||||
$count = 1;
|
||||
foreach($sivr as $s) {
|
||||
$selected_type[$count] = $s['type'];
|
||||
$selected_name[$count] = $s['var'];
|
||||
$sirv_id[$count] = $s['var_id'];
|
||||
$count++;
|
||||
}
|
||||
|
||||
add_to_sample($file,$import_id,$selected_type,$selected_name,$sirv_id,2);
|
||||
|
||||
return $db->CompleteTrans();
|
||||
}
|
||||
|
||||
/**
|
||||
* Import a CSV file to the sample database
|
||||
@@ -202,10 +274,6 @@ function get_first_row($file)
|
||||
*/
|
||||
function import_file($file, $description, $fields, $firstrow = 2)
|
||||
{
|
||||
|
||||
$row = 1;
|
||||
$handle = fopen($file, "r");
|
||||
|
||||
//import into database
|
||||
|
||||
global $db;
|
||||
@@ -246,6 +314,23 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
}
|
||||
}
|
||||
|
||||
add_to_sample($file,$id,$selected_type,$selected_name,$sirv_id,$firstrow);
|
||||
|
||||
return $db->CompleteTrans();
|
||||
}
|
||||
|
||||
/**
|
||||
* add_to_sample
|
||||
*
|
||||
* Add records to the sample file
|
||||
*
|
||||
*/
|
||||
function add_to_sample($file,$id,$selected_type,$selected_name,$sirv_id,$firstrow)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$db->StartTrans();
|
||||
|
||||
/**
|
||||
* create an ordered index of columns that contain data for obtaining the timezone
|
||||
* type of 5,4,3,2 preferred
|
||||
@@ -253,6 +338,9 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
|
||||
arsort($selected_type);
|
||||
|
||||
$row = 1;
|
||||
$handle = fopen($file, "r");
|
||||
|
||||
$imported = 0;
|
||||
|
||||
while (($data = fgetcsv($handle)) !== FALSE)
|
||||
@@ -346,9 +434,9 @@ function import_file($file, $description, $fields, $firstrow = 2)
|
||||
unlink($file);
|
||||
|
||||
return $db->CompleteTrans();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the timezone given the sample value and type
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user