From d4ffeda3edb731ab0635f1460413ebc3e941748f Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 8 Dec 2015 02:31:02 +0300 Subject: [PATCH] re-engineered files to make identical as currently possible --- call.php | 171 ++++++++++++++++---------------- call_interface2.php | 230 +++++++++++++++++++++----------------------- 2 files changed, 193 insertions(+), 208 deletions(-) diff --git a/call.php b/call.php index 745cb53d..500a3fb3 100644 --- a/call.php +++ b/call.php @@ -44,7 +44,6 @@ include ("db.inc.php"); */ require ("auth-interviewer.php"); - /** * XHTML functions */ @@ -87,13 +86,13 @@ function display_outcomes($contacted,$ca,$case_id) //see if the case is completed if ($completed) { - $sql = "SELECT outcome_id,description + $sql = "SELECT outcome_id,description,contacted FROM outcome WHERE outcome_id = 10"; } else if (limesurvey_is_quota_full($case_id)) { - $sql = "SELECT outcome_id,description + $sql = "SELECT outcome_id,description,contacted FROM outcome WHERE outcome_id = 32"; } @@ -113,33 +112,38 @@ function display_outcomes($contacted,$ca,$case_id) if (!empty($rs)) { //we have an appointment made ... only select appointment ID's - $sql = "SELECT outcome_id,description + $sql = "SELECT outcome_id,description,contacted FROM outcome WHERE outcome_type_id = '5' AND outcome_id IN ($outcomes)"; } else { - if ($contacted === false) $ctd = ""; - else - { - $contacted = bigintval($contacted); - $ctd = "AND contacted = '$contacted'"; - } + if ($contacted) $contacted = bigintval($contacted); + else{ + print "
".T_("CONTACTED").""; + print "".T_("NOT CONTACTED")."
"; + + if (isset ($_GET['contacted'])) $contacted = bigintval($_GET['contacted']); + } + if ($contacted == 1 || $contacted === 0){ - $sql = "SELECT outcome_id,description + $sql = "SELECT outcome_id,description,contacted FROM outcome WHERE outcome_type_id != '5' - $ctd + AND contacted = '$contacted' AND outcome_id IN ($outcomes) AND outcome_id NOT IN(10,32,42,43,44,45)"; //don't show completed if not, Lime_Quota_full if not, hide max calls as they supposed to be automatic or admin-privileged + } } } $rs = $db->GetAll($sql); - print "
"; + print "
"; if (!empty($rs)) { + $do = false; + $lime_sid = get_limesurvey_id(get_operator_id()); //Check to see if we have sent an email on this call and set the default outcome @@ -148,21 +152,22 @@ function display_outcomes($contacted,$ca,$case_id) WHERE t.sent = '$ca' AND c.case_id = $case_id AND t.token = c.token"; - $do = $db->GetOne($sql); if (isset($_GET['defaultoutcome'])) $do = bigintval($_GET['defaultoutcome']); foreach($rs as $r) { if ($do == $r['outcome_id']) $selected = "checked='checked'"; else $selected = ""; - print "
"; + if (isset($r['contacted']) && $r['contacted'] == 1) $highlight = ""; else $highlight = "style='color:black;'"; + print "
"; } + + $_POST['confirm'] = true; //check that outcome selected } print "
"; - - } +if (browser_ie()) $js = "js/window_ie6.js"; else $js = "js/window.js"; //display the respondents phone numbers as a drop down list for this call @@ -174,6 +179,15 @@ $operator_id = get_operator_id(); if (isset($_POST['submit'])) { + if (is_voip_enabled($operator_id)) + { //prepare common voip functions + include("functions/functions.voip.php"); + $v = new voip(); + $v->connect(VOIP_SERVER); + } + + $btext = "onload='openParentObject(\"main-content\",\"" . get_respondentselection_url($operator_id) . "\"); parent.closePopup();'"; // set default, change on conditions + if (isset($_POST['contact_phone'])) { $contact_phone_id = bigintval($_POST['contact_phone']); @@ -183,56 +197,28 @@ if (isset($_POST['submit'])) if ($call_id) { if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); $v->dial(get_extension($operator_id),get_call_number($call_id)); - } - - $btext = "onload='openParentObject(\"main-content\",\"" . get_respondentselection_url($operator_id) . "\"); parent.closePopup();'"; - - $js = "js/window.js"; - if (browser_ie()) $js = "js/window_ie6.js"; - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),$btext,false,false,false,false); } + else exit(); } - else if (isset($_POST['outcome'])) + else { + //hang up the call first + if (is_voip_enabled($operator_id)) + $v->hangup(get_extension($operator_id)); + + //disable recording + $newtext = T_("Start REC"); + $btext = "onload='toggleRec(\"$newtext\",\"record.php?start=start\",\"offline\"); openParentObject(\"main-content\",\"" . get_respondentselection_url($operator_id) . "\"); parent.closePopup();'"; + + if (isset($_POST['outcome'])){ //process with outcome $outcome_id = bigintval($_POST['outcome']); end_call($operator_id,$outcome_id); - if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); - $v->hangup(get_extension($operator_id)); + } - //disable recording - $newtext = T_("Start REC"); - - $js = "js/window.js"; - if (browser_ie()) $js = "js/window_ie6.js"; - - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='toggleRec(\"$newtext\",\"record.php?start=start\",\"offline\"); openParentObject(\"main-content\",\"" . get_respondentselection_url($operator_id) . "\"); parent.closePopup();'",false,false,false,false); } - else - { - //if no outcome selected, just hang up the call - if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); - $v->hangup(get_extension($operator_id)); - } - //disable recording - $newtext = T_("Start REC"); - $js = "js/window.js"; - if (browser_ie()) $js = "js/window_ie6.js"; - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='toggleRec(\"$newtext\",\"record.php?start=start\",\"offline\"); openParentObject(\"main-content\",\"" . get_respondentselection_url($operator_id) . "\"); parent.closePopup();'",false,false,false,false); - } + xhtml_head(T_("Call"),true,array("css/call.css"),array($js),$btext,false,false,false,false); print "

"; //for XHTML xhtml_foot(); @@ -258,12 +244,19 @@ if (isset($_GET['newstate'])) $db->Execute($sql); } -$js = "js/window.js"; -if (browser_ie()) $js = "js/window_ie6.js"; -xhtml_head(T_("Call"),true,array("css/call.css"),array($js,"include/jquery/jquery-1.4.2.min.js"),false,false,false,false,false); +xhtml_head(T_("Set outcome"),true,array("css/call.css"),array($js,"include/jquery/jquery-1.4.2.min.js"),false,false,false,false,false); $state = is_on_call($operator_id); + +function print_endcase($trigger = ""){ + print "

" . T_("End case") . "

"; +} + +function print_endwork($trigger = ""){ + print "

" . T_("End work") . "

"; +} + switch($state) { case false: //no call made @@ -280,8 +273,8 @@ switch($state) { //end the case if (!isset($_GET['end'])) print "
" . T_("End work") . "
"; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParent"); + print_endwork("openParent"); } else { @@ -307,9 +300,11 @@ switch($state) print "
" . T_("Press the call button to dial the number for this appointment:") . "
"; - print "
"; - print "

" . T_("Number to call:") . " {$r['phone']} - {$r['description']}

"; - print "
"; + print "
+

" . T_("Number to call:") . " {$r['phone']} - {$r['description']}

+ +
+
"; } else print "
" . T_("Your VoIP extension is not enabled. Please close this window and enable VoIP by clicking once on the red button that says 'VoIP Off'") . "
"; @@ -327,12 +322,11 @@ switch($state) LIMIT 1"; $rs = $db->GetRow($sql); - + + if (!empty($rs) && $rs['require_note'] == 1) $rn = 1; else $rn = 0; + if (!isset($_GET['end']) && (empty($rs) || $rs['tryanother'] == 1)) //dial another number only when available and not ending { - $rn = 0; - if (!empty($rs) && $rs['require_note'] == 1) $rn = 1; - //an exclusion left join $sql = "SELECT c. * FROM contact_phone AS c @@ -380,7 +374,7 @@ switch($state) { print ""; } - print "
"; + print "
"; } else print "
" . T_("Your VoIP extension is not enabled. Please close this window and enable VoIP by clicking once on the red button that says 'VoIP Off'") . "
"; @@ -392,39 +386,36 @@ switch($state) if ($rn) // a note is required to be entered { - print "




"; + print "

"; //give focus on load print ''; //put these lower on the screen so they don't get "automatically" clicked - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParentNote"); + print_endwork("openParentNote"); } else { - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "



"; + print "


"; print ''; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParentNote"); + print_endwork("openParentNote"); } else { - if (!isset($_GET['end'])) print "
" . T_("The last call completed this call attempt") . "
"; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + if (!isset($_GET['end'])) print "
" . T_("The last call completed this call attempt") . "
"; + print_endcase("openParent"); + print_endwork("openParent"); } } } @@ -451,14 +442,16 @@ switch($state) print "
"; break; case 4: //requires coding - print "
" . T_("Requires coding") . "
"; - print "
"; + // print "
" . T_("Requires coding") . "
"; + print "
"; display_outcomes(false,$call_attempt_id,$case_id); - print "
"; + if (isset($_POST['confirm'])){ + print "
"; + } break; case 5: //done -- shouldn't come here as should be coded + done default: - print "
" . T_("Error: Close window") . "
"; + print "
" . T_("Error: Close window") . "
"; break; } diff --git a/call_interface2.php b/call_interface2.php index aadc29f0..54d30cb5 100644 --- a/call_interface2.php +++ b/call_interface2.php @@ -119,21 +119,22 @@ function display_outcomes($contacted,$ca,$case_id) } else { - if ($contacted === false) - { + if ($contacted) $contacted = bigintval($contacted); + else{ print "
".T_("CONTACTED").""; print "".T_("NOT CONTACTED")."
"; - - if (isset ($_GET['contacted'])) $contacted = bigintval($_GET['contacted']); - } - else $contacted = bigintval($contacted); + + if (isset ($_GET['contacted'])) $contacted = bigintval($_GET['contacted']); + } + if ($contacted == 1 || $contacted === 0){ - $sql = "SELECT outcome_id,description,contacted - FROM outcome - WHERE contacted = '$contacted' - AND outcome_type_id != '5' - AND outcome_id IN ($outcomes) - AND outcome_id NOT IN(10,32,42,43,44,45)"; //don't show completed if not, Lime_Quota_full if not, hide max calls as they supposed to be automatic or admin-privileged + $sql = "SELECT outcome_id,description,contacted + FROM outcome + WHERE outcome_type_id != '5' + AND contacted = '$contacted' + AND outcome_id IN ($outcomes) + AND outcome_id NOT IN(10,32,42,43,44,45)"; //don't show completed if not, Lime_Quota_full if not, hide max calls as they supposed to be automatic or admin-privileged + } } } $rs = $db->GetAll($sql); @@ -142,20 +143,31 @@ function display_outcomes($contacted,$ca,$case_id) if (!empty($rs)) { $do = false; - if (isset($_GET['defaultoutcome'])) $do = bigintval($_GET['defaultoutcome']); + + $lime_sid = get_limesurvey_id(get_operator_id()); + //Check to see if we have sent an email on this call and set the default outcome + $sql = "SELECT 41 + FROM `case` as c, " . LIME_PREFIX . "tokens_$lime_sid as t + WHERE t.sent = '$ca' + AND c.case_id = $case_id + AND t.token = c.token"; + $do = $db->GetOne($sql); + + if (isset($_GET['defaultoutcome'])) $do = bigintval($_GET['defaultoutcome']); foreach($rs as $r) { if ($do == $r['outcome_id']) $selected = "checked='checked'"; else $selected = ""; if (isset($r['contacted']) && $r['contacted'] == 1) $highlight = ""; else $highlight = "style='color:black;'"; - print "
"; + print "
"; } - $_POST['confirm'] = true; + $_POST['confirm'] = true; //check that outcome selected } print ""; } +if (browser_ie()) $js = "js/window_ie6_interface2.js"; else $js = "js/window_interface2.js"; //display the respondents phone numbers as a drop down list for this call @@ -167,6 +179,15 @@ $operator_id = get_operator_id(); if (isset($_POST['submit'])) { + if (is_voip_enabled($operator_id)) + { //prepare common voip functions + include("functions/functions.voip.php"); + $v = new voip(); + $v->connect(VOIP_SERVER); + } + + $btext = "onload='parent.closePopup();'"; // set default, change on conditions + if (isset($_POST['contact_phone'])) { $contact_phone_id = bigintval($_POST['contact_phone']); @@ -176,102 +197,70 @@ if (isset($_POST['submit'])) if ($call_id) { if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); $v->dial(get_extension($operator_id),get_call_number($call_id)); - } - $btext = "onload='parent.closePopup();'"; - - $js = "js/window_interface2.js"; - if (browser_ie()) $js = "js/window_ie6_interface2.js"; - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),$btext); } + else exit(); } - else if (isset($_POST['outcome'])) + else { - $outcome_id = bigintval($_POST['outcome']); - end_call($operator_id,$outcome_id); - if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); + //hang up the call first + if (is_voip_enabled($operator_id)) $v->hangup(get_extension($operator_id)); - } - //disable recording + + //disable recording ---> Not actual for call_interface2 ?? $newtext = T_("Start REC"); + + if (isset($_POST['outcome'])){ //process with outcome + $outcome_id = bigintval($_POST['outcome']); + end_call($operator_id,$outcome_id); + + //If outcome is final, close the case + $sql = "SELECT o.tryanother + FROM `outcome` as o + WHERE o.outcome_id = '$outcome_id'"; - $js = "js/window_interface2.js"; - if (browser_ie()) $js = "js/window_ie6_interface2.js"; + $rs = $db->GetRow($sql); - //If outcome is final, close the case - $sql = "SELECT o.tryanother - FROM `outcome` as o - WHERE o.outcome_id = '$outcome_id'"; - - $rs = $db->GetRow($sql); - - if (!empty($rs) && $rs['tryanother'] == 0) - { - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='openParent(\"endcase=endcase\");'"); - } - else - { - $call_attempt_id = get_call_attempt($operator_id,false); - $case_id = get_case_id($operator_id); - //see if we have exhausted the available numbers - $sql = "SELECT c. * - FROM contact_phone AS c - LEFT JOIN ( - SELECT contact_phone.contact_phone_id - FROM contact_phone - LEFT JOIN `call` ON ( call.contact_phone_id = contact_phone.contact_phone_id ) - LEFT JOIN outcome ON ( call.outcome_id = outcome.outcome_id ) - WHERE contact_phone.case_id = '$case_id' - AND outcome.tryagain =0 - ) AS l ON l.contact_phone_id = c.contact_phone_id - LEFT JOIN - ( - SELECT contact_phone_id - FROM `call` - WHERE call_attempt_id = '$call_attempt_id' - AND outcome_id != 18 - ) as ca on ca.contact_phone_id = c.contact_phone_id - WHERE c.case_id = '$case_id' - AND l.contact_phone_id IS NULL - AND ca.contact_phone_id IS NULL"; //only select numbers that should be tried again and have not been tried in this attempt which are not the accidental hang up outcome - - $rs = $db->GetAll($sql); - - if (empty($rs)) //no more numbers to call, end the case + if (!empty($rs) && $rs['tryanother'] == 0) { - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='openParent(\"endcase=endcase\");'"); - } + $btext = "onload='openParent(\"endcase=endcase\");'"; + } else - { - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='parent.closePopup();'"); + { + $call_attempt_id = get_call_attempt($operator_id,false); + $case_id = get_case_id($operator_id); + //see if we have exhausted the available numbers + $sql = "SELECT c. * + FROM contact_phone AS c + LEFT JOIN ( + SELECT contact_phone.contact_phone_id + FROM contact_phone + LEFT JOIN `call` ON ( call.contact_phone_id = contact_phone.contact_phone_id ) + LEFT JOIN outcome ON ( call.outcome_id = outcome.outcome_id ) + WHERE contact_phone.case_id = '$case_id' + AND outcome.tryagain =0 + ) AS l ON l.contact_phone_id = c.contact_phone_id + LEFT JOIN ( + SELECT contact_phone_id + FROM `call` + WHERE call_attempt_id = '$call_attempt_id' + AND outcome_id != 18 + ) as ca on ca.contact_phone_id = c.contact_phone_id + WHERE c.case_id = '$case_id' + AND l.contact_phone_id IS NULL + AND ca.contact_phone_id IS NULL"; //only select numbers that should be tried again and have not been tried in this attempt which are not the accidental hang up outcome + + $rs = $db->GetAll($sql); + + if (empty($rs)) //no more numbers to call, end the case + { + $btext = "onload='openParent(\"endcase=endcase\");'"; + } } } } - else - { - //if no outcome selected, just hang up the call - if (is_voip_enabled($operator_id)) - { - include("functions/functions.voip.php"); - $v = new voip(); - $v->connect(VOIP_SERVER); - $v->hangup(get_extension($operator_id)); - } - //disable recording - $newtext = T_("Start REC"); - $js = "js/window_interface2.js"; - if (browser_ie()) $js = "js/window_ie6_interface2.js"; - xhtml_head(T_("Call"),true,array("css/call.css"),array($js),"onload='parent.closePopup();'"); - - } + + xhtml_head(T_("Call"),true,array("css/call.css"),array($js),$btext); print "

"; //for XHTML xhtml_foot(); @@ -298,11 +287,18 @@ if (isset($_GET['newstate'])) } -if (browser_ie()) $js = "js/window_ie6_interface2.js"; else $js = "js/window_interface2.js"; - xhtml_head(T_("Set outcome"),true,array("include/bootstrap/css/bootstrap.min.css"),array($js,"include/jquery/jquery-1.4.2.min.js")); $state = is_on_call($operator_id); + +function print_endcase($trigger = ""){ + print "

" . T_("End case") . "

"; +} + +function print_endwork($trigger = ""){ + print "

" . T_("End work") . "

"; +} + switch($state) { case false: //no call made @@ -319,8 +315,8 @@ switch($state) { //end the case if (!isset($_GET['end'])) print "
" . T_("End work") . "
"; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParent"); + print_endwork("openParent"); } else { @@ -368,12 +364,11 @@ switch($state) LIMIT 1"; $rs = $db->GetRow($sql); + + if (!empty($rs) && $rs['require_note'] == 1) $rn = 1; else $rn = 0; if (!isset($_GET['end']) && (empty($rs) || $rs['tryanother'] == 1)) //dial another number only when available and not ending { - $rn = 0; - if (!empty($rs) && $rs['require_note'] == 1) $rn = 1; - //an exclusion left join $sql = "SELECT c. * FROM contact_phone AS c @@ -433,39 +428,36 @@ switch($state) if ($rn) // a note is required to be entered { - print "




"; + print "

"; //give focus on load print ''; //put these lower on the screen so they don't get "automatically" clicked - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParentNote"); + print_endwork("openParentNote"); } else { - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "
"; print ''; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParentNote"); + print_endwork("openParentNote"); } else { if (!isset($_GET['end'])) print "
" . T_("The last call completed this call attempt") . "
"; - print "

" . T_("End case") . "

"; - print "

" . T_("End work") . "

"; + print_endcase("openParent"); + print_endwork("openParent"); } } } @@ -475,10 +467,10 @@ switch($state) case 3: //answered case 4: //requires coding // print "
" . T_("Requires coding") . "
"; - print "
"; + print "
"; display_outcomes(false,$call_attempt_id,$case_id); if (isset($_POST['confirm'])){ - print "
"; + print "
"; } break; case 5: //done -- shouldn't come here as should be coded + done