2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00

updates, small improvemnts

This commit is contained in:
Alex
2015-03-23 13:41:38 +03:00
parent c89bf98c19
commit bb66576200
3 changed files with 60 additions and 32 deletions

View File

@@ -72,7 +72,7 @@ $operator_id = get_operator_id();
Modified Call history list to have more information more suitable way with filtering, soring, paging and submenu for Cse history with asterisk records.... Modified Call history list to have more information more suitable way with filtering, soring, paging and submenu for Cse history with asterisk records....
Need to be linked with cdr records from asterisk!! for monitoring (requires addtional field for call_attempt table to request and store asterisk UniqueID as a reference to CDR .wav file list at /var/spool/asterisk/monitor/ ) Need to be linked with cdr records from asterisk!! for monitoring (requires addtional field for call_attempt table to request and store asterisk UniqueID as a reference to CDR .wav file list at /var/spool/asterisk/monitor/ )
*/ */
if ($operator_id) if ($operator_id)
{ {
if (isset($_GET['questionnaire_id'])) $qid = $_GET['questionnaire_id']; if (isset($_GET['questionnaire_id'])) $qid = $_GET['questionnaire_id'];
@@ -85,9 +85,9 @@ if ($operator_id)
$sql .= " as case_id, q.description as qd , contact_phone.phone as cpi, sample_import.description as spl $sql .= " as case_id, q.description as qd , contact_phone.phone as cpi, sample_import.description as spl
FROM `call` as c FROM `call` as c
JOIN (operator as op, respondent as r) on (op.operator_id = '$operator_id' and r.respondent_id = c.respondent_id)"; JOIN (operator as op, respondent as r) on (op.operator_id = '$operator_id' AND r.respondent_id = c.respondent_id)";
if ($qid) $quest = "$qid and q.questionnaire_id= $qid"; else $quest = "q.questionnaire_id"; if ($qid) $quest = "$qid AND q.questionnaire_id= $qid"; else $quest = "q.questionnaire_id";
if ($sid) $samimpid = "$sid and sample_import.sample_import_id=$sid"; else $samimpid = "sample_import.sample_import_id"; if ($sid) $samimpid = "$sid AND sample_import.sample_import_id=$sid"; else $samimpid = "sample_import.sample_import_id";
$sql .= " $sql .= "
JOIN (`case` as ca, questionnaire as q) ON (ca.case_id = c.case_id AND ca.questionnaire_id = $quest) JOIN (`case` as ca, questionnaire as q) ON (ca.case_id = c.case_id AND ca.questionnaire_id = $quest)
@@ -102,11 +102,10 @@ if ($operator_id)
$sql .= " LIMIT 500"; $sql .= " LIMIT 500";
else $sql .= " LIMIT 5000"; else $sql .= " LIMIT 5000";
$rs = $db->Execute($sql); $rs = $db->Execute($sql);
if (empty($rs)) if (empty($rs))
{ {
print "<div class='alert alert-warning col-sm-6'>" . T_("No calls ever made") . "</div>"; print "<div class='alert alert-warning col-sm-6'><p>" . T_("No calls ever made") . "</p></div>";
} }
else else
{ {
@@ -131,16 +130,24 @@ if ($operator_id)
} }
exit; exit;
} }
else else
{ {
$rs = $rs->GetArray();
translate_array($rs,array("des"));
xhtml_head(T_("Call History List"),true,$css,$js_head); xhtml_head(T_("Call History List"),true,$css,$js_head);
echo "<div class='form-group col-sm-2'><a href='' onclick='history.back();return false;' class='btn btn-default'><i class='fa fa-chevron-left fa-lg text-primary'></i>&emsp;" . T_("Go back") . "</a></div>"; echo "<div class='form-group col-sm-2'><a href='' onclick='history.back();return false;' class='btn btn-default'><i class='fa fa-chevron-left fa-lg text-primary'></i>&emsp;" . T_("Go back") . "</a></div>";
$datacol = array("start_date", "start_time","end","case_id","qd","spl","cpi","opname","descr","casenotes","firstName"); $rs = $rs->GetArray();
$headers = array(T_("Date"), T_("Start time"), T_("End time"),T_("Case ID"),T_("Questionnaire"),T_("Sample"),T_("Phone number"),T_("Operator"),T_("Outcome"),T_("Case notes"),T_("Respondent")); if (count($rs) ==0)
{
print "<div class='alert alert-info col-sm-6'><h3>" . T_("NO Call history records for Your query") . "</h3></div>";
}
else
{
translate_array($rs,array("des"));
$datacol = array("start_date", "start_time","end","case_id","qd","spl","cpi","opname","descr","casenotes","firstName");
$headers = array(T_("Date"), T_("Start time"), T_("End time"),T_("Case ID"),T_("Questionnaire"),T_("Sample"),T_("Phone number"),T_("Operator"),T_("Outcome"),T_("Case notes"),T_("Respondent"));
if (isset($_GET['questionnaire_id'])){ if (isset($_GET['questionnaire_id'])){
$sql = "SELECT description FROM `questionnaire` WHERE `questionnaire_id` = $qid "; $sql = "SELECT description FROM `questionnaire` WHERE `questionnaire_id` = $qid ";
@@ -154,9 +161,12 @@ if ($operator_id)
print "<h3><small>" . T_("Sample") . "&emsp;ID: $sid</small>&emsp;" . $ds . "</h3>"; print "<h3><small>" . T_("Sample") . "&emsp;ID: $sid</small>&emsp;" . $ds . "</h3>";
unset($datacol[5]); unset($headers[5]); } unset($datacol[5]); unset($headers[5]); }
print "<a href='?csv=csv&amp;questionnaire_id=$qid&amp;dq=" . $dq . "&amp;sample_import_id=$sid&amp;ds=" . $ds . "' class='btn btn-default pull-right'><i class='fa fa-download fa-lg text-primary'></i>&emsp;" . T_("Download Call History List") . "</a>"; print "&nbsp;<a href='?csv=csv&amp;questionnaire_id=$qid&amp;dq=" . $dq . "&amp;sample_import_id=$sid&amp;ds=" . $ds . "' class='btn btn-default pull-right'><i class='fa fa-download fa-lg text-primary'></i>&emsp;" . T_("Download Call History List") . "</a>
"; //<a href='../../admin/config.php' target='_blank' class='btn btn-default col-sm-offset-6 '><i class='fa fa-link fa-lg text-primary'></i>&emsp;" . T_("Go to Call History Report") . "</a>&nbsp;
xhtml_table($rs,$datacol,$headers,"tclass",false,false,"bs-table");
xhtml_table($rs,$datacol,$headers,"tclass",false,false,"bs-table"); }
} }
} }
} }

View File

@@ -78,14 +78,14 @@ function case_status_report($questionnaire_id = false, $sample_id = false, $outc
$sql = "SELECT CONCAT('<a href=\'supervisor.php?case_id=', c.case_id, '\'>', c.case_id, '</a>') as case_id, $sql = "SELECT CONCAT('<a href=\'supervisor.php?case_id=', c.case_id, '\'>', c.case_id, '</a>') as case_id,
o.description as outcomes, o.description as outcomes,
si.description as samples, s.Time_zone_name as timezone, (SELECT COUNT(*) FROM `call` WHERE `call`.case_id = c.case_id) as nrcalls, (SELECT COUNT(*) FROM call_attempt WHERE call_attempt.case_id = c.case_id) as nrattempts, si.description as samples, s.Time_zone_name as timezone, TIME_FORMAT(CONVERT_TZ(NOW(),@@session.time_zone,s.Time_zone_name),'". TIME_FORMAT ."') as time, (SELECT COUNT(*) FROM `call` WHERE `call`.case_id = c.case_id) as nrcalls, (SELECT COUNT(*) FROM call_attempt WHERE call_attempt.case_id = c.case_id) as nrattempts,
CASE WHEN ca.end IS NULL THEN '" . TQ_("Available") . "' CASE WHEN ca.end IS NULL THEN '" . TQ_("Available") . "'
WHEN TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) < 0 THEN '" . TQ_("Available") . "' WHEN TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) < 0 THEN '" . TQ_("Available") . "'
ELSE CONCAT(ROUND(TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) / 60),'&emsp;" . TQ_("minutes") . "') ELSE CONCAT(ROUND(TIME_TO_SEC(TIMEDIFF(ca.end,CONVERT_TZ(DATE_SUB(NOW(), INTERVAL co.default_delay_minutes MINUTE),'System','UTC'))) / 60),'&emsp;" . TQ_("minutes") . "')
END AS availableinmin, END AS availableinmin,
CASE WHEN oq.operator_id IS NULL THEN CASE WHEN oq.operator_id IS NULL THEN
CONCAT('') CONCAT('')
ELSE CONCAT('<span class=\'text-info\'>', oq.firstName,' ',oq.lastname,'</span>') ELSE CONCAT('<span class=\'text-info\'>', oq.firstName,' ',oq.lastName,'</span>')
END AS assignedoperator, END AS assignedoperator,
CASE WHEN oq.operator_id IS NULL THEN CASE WHEN oq.operator_id IS NULL THEN
CONCAT('') CONCAT('')
@@ -112,7 +112,12 @@ function case_status_report($questionnaire_id = false, $sample_id = false, $outc
print ("<form method=\"post\" action=\"?questionnaire_id=$questionnaire_id&sample_import_id=$sample_id\">"); print ("<form method=\"post\" action=\"?questionnaire_id=$questionnaire_id&sample_import_id=$sample_id\">");
xhtml_table($db->GetAll($sql),array('case_id','samples','timezone','nrattempts','nrcalls','outcomes','availableinmin','assignedoperator','ordr','flag'),array(T_("Case id"),T_("Sample"),T_("Timezone"),T_("Call attempts"),T_("Calls"),T_("Outcome"),T_("Available in"),T_("Assigned to"),T_("Order"),"<i class='fa fa-check-square-o fa-lg'></i>"), "tclass",false,false,"bs-table"); $datacol = array('case_id','samples','timezone','time','nrattempts','nrcalls','outcomes','availableinmin','assignedoperator','ordr','flag');
$headers = array(T_("Case id"),T_("Sample"),T_("Timezone"),T_("Time NOW"),T_("Call attempts"),T_("Calls"),T_("Outcome"),T_("Available in"),T_("Assigned to"),T_("Order"),"<i class='fa fa-check-square-o fa-lg'></i>");
if (isset($_GET['sample_import_id'])){ unset($datacol[1]); unset($headers[1]); }
xhtml_table($db->GetAll($sql),$datacol,$headers,"tclass",false,false,"bs-table");
$sql = "SELECT operator_id as value,CONCAT(firstName,' ', lastName) as description, '' selected $sql = "SELECT operator_id as value,CONCAT(firstName,' ', lastName) as description, '' selected
FROM operator FROM operator
@@ -225,13 +230,16 @@ $outcome_id = false;
print "<div class='form-group '><h3 class=' col-sm-2 text-right'>" . T_("Questionnaire") . ":</h3>"; print "<div class='form-group '><h3 class=' col-sm-2 text-right'>" . T_("Questionnaire") . ":</h3>";
display_questionnaire_chooser($questionnaire_id, false, "pull-left", "form-control"); display_questionnaire_chooser($questionnaire_id, false, "pull-left", "form-control");
print "<h3 class=' col-sm-2 text-right'>" . T_("Sample") . ":</h3>";
display_sample_chooser($questionnaire_id,$sample_import_id,false, "pull-left", "form-control");
print "</div>
<div class='clearfix'></div>";
if ($questionnaire_id)
case_status_report($questionnaire_id,$sample_import_id,$outcome_id);
if ($questionnaire_id){
print "<h3 class=' col-sm-2 text-right'>" . T_("Sample") . ":</h3>";
display_sample_chooser($questionnaire_id,$sample_import_id,false, "pull-left", "form-control");
print "</div>
<div class='clearfix'></div>";
case_status_report($questionnaire_id,$sample_import_id,$outcome_id);
}
xhtml_foot($js_foot); xhtml_foot($js_foot);
?> ?>
<script type="text/javascript"> <script type="text/javascript">

View File

@@ -56,14 +56,17 @@ $css = array(
"../include/bootstrap-3.3.2/css/bootstrap.min.css", "../include/bootstrap-3.3.2/css/bootstrap.min.css",
"../include/bootstrap-3.3.2/css/bootstrap-theme.min.css", "../include/bootstrap-3.3.2/css/bootstrap-theme.min.css",
"../include/font-awesome-4.3.0/css/font-awesome.css", "../include/font-awesome-4.3.0/css/font-awesome.css",
/* "../include/bootgrid/jquery.bootgrid.css", */
"../include/bs-data-table/css/jquery.bdt.css", "../include/bs-data-table/css/jquery.bdt.css",
"../css/custom.css" "../css/custom.css"
); );
$js_head = array( $js_head = array(
"../js/jquery-2.1.3.min.js", "../js/jquery-2.1.3.min.js",
"../include/bootstrap-3.3.2/js/bootstrap.min.js", "../include/bootstrap-3.3.2/js/bootstrap.min.js",
/* "../include/bootgrid/jquery.bootgrid.min.js", */
); );
$js_foot = array( $js_foot = array(
"../include/bs-data-table/js/vendor/jquery.sortelements.js", "../include/bs-data-table/js/vendor/jquery.sortelements.js",
"../include/bs-data-table/js/jquery.bdt.js", "../include/bs-data-table/js/jquery.bdt.js",
"../js/window.js", "../js/window.js",
@@ -135,7 +138,7 @@ print "<div class='clearfix'></div>";
if ($sample_import_id != false) if ($sample_import_id != false)
{ {
$sql = "SELECT sv.sample_id, CASE WHEN c.case_id IS NULL THEN $sql = "SELECT sv.sample_id, CASE WHEN c.case_id IS NULL THEN
CONCAT('<a href=\'\' data-toggle=\'modal\' data-target=\'.delete-confirm\' data-href=\'?sample_import_id=$sample_import_id&amp;sample_id=', sv.sample_id ,'\' data-sample_id=\' ', sv.sample_id ,' \' class=\'btn center-block\'><i data-toggle=\'tooltip\' title=\'" . TQ_("Delete sample record") . " ', sv.sample_id ,'\' class=\'fa fa-2x fa-trash-o text-danger\'></i></a>') CONCAT('&emsp;<a href=\'\' data-toggle=\'modal\' data-target=\'.delete-confirm\' data-href=\'?sample_import_id=$sample_import_id&amp;sample_id=', sv.sample_id ,'\' data-sample_id=\' ', sv.sample_id ,' \' class=\'\'><i data-toggle=\'tooltip\' title=\'" . TQ_("Delete sample record") . " ', sv.sample_id ,'\' class=\'fa fa-2x fa-trash-o text-danger\'></i></a>&emsp;')
ELSE CONCAT('<a href=\'supervisor.php?case_id=', c.case_id , '\' data-toggle=\'tooltip\' title=\'" . TQ_("Assigned to case ID :") . " ', c.case_id , '\'><b>', c.case_id ,'</b></a>') ELSE CONCAT('<a href=\'supervisor.php?case_id=', c.case_id , '\' data-toggle=\'tooltip\' title=\'" . TQ_("Assigned to case ID :") . " ', c.case_id , '\'><b>', c.case_id ,'</b></a>')
END as link END as link
FROM sample_var AS sv FROM sample_var AS sv
@@ -146,12 +149,6 @@ if ($sample_import_id != false)
if ($r) { if ($r) {
$sql = "SELECT var
FROM sample_var
WHERE sample_id = {$r[0]['sample_id']}
ORDER by var ASC";
$rs = $db->GetAll($sql);
$fnames = array("sample_id"); $fnames = array("sample_id");
$fdesc = array(T_("Sample id")); $fdesc = array(T_("Sample id"));
@@ -159,6 +156,12 @@ if ($sample_import_id != false)
$fnames[] = "link"; $fnames[] = "link";
$fdesc[] = T_("Case ID"); $fdesc[] = T_("Case ID");
$sql = "SELECT var
FROM sample_var
WHERE sample_id = {$r[0]['sample_id']}
ORDER by var ASC";
$rs = $db->GetAll($sql);
foreach($rs as $rsw) foreach($rs as $rsw)
{ {
$fnames[] = $rsw['var']; $fnames[] = $rsw['var'];
@@ -170,10 +173,11 @@ if ($sample_import_id != false)
FROM sample_var FROM sample_var
WHERE sample_id = {$rw['sample_id']}"; WHERE sample_id = {$rw['sample_id']}";
$rs = $db->GetAll($sql); $rs = $db->GetAll($sql);
foreach($rs as $rsw) foreach($rs as $rsw){
$rw[$rsw['var']] = $rsw['val']; $rw[$rsw['var']] = $rsw['val'];
}
} }
print "<div class='form-group'>"; print "<div class='form-group'>";
xhtml_table($r,$fnames,$fdesc,"tclass",false,false,"bs-table"); xhtml_table($r,$fnames,$fdesc,"tclass",false,false,"bs-table");
print "</div>"; print "</div>";
@@ -184,6 +188,12 @@ xhtml_foot($js_foot);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
$('#bs-table').bdt(); $('#bs-table').bdt();
/* $('#bs-table').bootgrid({
ajax: true,
post: "$sample_import_id",
url: "?sample_import_id=\"$sample_import_id\"",
}); */
$('#delete-confirm').on('show.bs.modal', function (event) { $('#delete-confirm').on('show.bs.modal', function (event) {
var a = $(event.relatedTarget) var a = $(event.relatedTarget)
var href = a.data('href') var href = a.data('href')