require 'com/Database.php'; //require ('com/IfByPhone_Util.php'); $job_id = $_POST['job_id']; $p_t = $_POST['p_t']; // If the job_id was skipped the IVR sends 'NA' and that will generate an error in the database call. // This is caused by a hangup without entering information. Check for this first and exit without logging an error. if ($job_id == 'NA') { Database::logMessage('Hangup without job number with passthrough (' . $p_t . ')'); exit; } try { $conn = Database::getDB(); $results = $conn->query("CALL verify_job('{$job_id}',@job_name,@job_pk_id,@isValid)"); $results = $conn->query("SELECT @job_name,@job_pk_id,@isValid"); foreach ($results as $result) { if (!$result["@isValid"]) { // for invalid combination // 1/29/13 UPDATE: must pass through data because employee information has already been verified echo "<action>\n\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t<id>362471</id>\n\t\t\t\t\t\t\t<p_t>" . $p_t . " </p_t>\n\t\t\t\t\t\t</parameters>\n\t\t\t\t\t</action>"; } else { // for valid combination $name_clean = IfByPhone_Util::removeInvalidChar($result["@job_name"]); $job_pk_id = $result["@job_pk_id"]; echo "<action>\n\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t<id>362481</id>\n\t\t\t\t\t\t\t<user_parameters>\n\t\t\t\t\t\t\t\t<job_name>" . $name_clean . "</job_name>\n\t\t\t\t\t\t\t</user_parameters>\n\t\t\t\t\t\t\t<p_t>" . $p_t . "||job_id|" . $job_id . "||company|" . $name_clean . "||job_pk_id|" . $job_pk_id . " </p_t>\n\t\t\t\t\t\t</parameters>\n\t\t\t\t\t</action>"; } } } catch (PDOException $e) { Database::logError('verify_job', $e); Database::sendToIvrError(); } $conn = null;
echo "<action>\n\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t<id>362191</id>\n\t\t\t\t\t\t</parameters>\n\t\t\t\t\t</action>"; } else { if (!$result["@ivrAccess"] || !$result["@isActive"]) { // for IVR access not authorized echo "<action>\n\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t<id>397881</id>\n\t\t\t\t\t\t</parameters>\n\t\t\t\t\t</action>"; } else { $employee_id = $result["@employee_pkID"]; $employee_name = $result["@employee_name"]; // for valid combination, check to see if there is an open job $open_event_check = $conn->query("CALL proc_checkForOpenEvent('{$employee_id}', @event_pk_id, @serviceCategory,\n\t\t\t@name, @survo, @job_pk_id)"); $open_event_check = $conn->query("SELECT @event_pk_id, @serviceCategory, @name, @survo, @job_pk_id"); // Create instance of Utility to clean data foreach ($open_event_check as $checks) { if ($checks["@event_pk_id"] != "0") { // this branch reflects a valid employee, with an open job which needs to be closed // Remove invalid characters from the @name field $name_clean = IfByPhone_Util::removeInvalidChar($checks["@name"]); echo "<action>\n\t\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t\t<id>" . $checks["@survo"] . "</id>\n\t\t\t\t\t\t\t\t<user_parameters>\n\t\t\t\t\t\t\t\t\t<name>" . $name_clean . "</name>\n\t\t\t\t\t\t\t\t</user_parameters>\n\t\t\t\t\t\t\t\t<p_t>employee_id|" . $employee_id . "||event_id|" . $checks["@event_pk_id"] . "||serviceCategory|" . $checks["@serviceCategory"] . "||company|" . $name_clean . "||employee_name|" . $employee_name . "||job_pk_id|" . $checks["@job_pk_id"] . "</p_t>\n\t\t\t\t\t\t\t</parameters>\n\t\t\t\t\t\t</action>"; } else { // this branch reflects a valid employee, with no jobs open echo "<action>\n\t\t\t\t\t\t\t<app>survo</app>\n\t\t\t\t\t\t\t\t<parameters>\n\t\t\t\t\t\t\t\t\t<id>359731</id>\n\t\t\t\t\t\t\t\t\t<p_t>employee_id|" . $employee_id . "||employee_name|" . $employee_name . "</p_t>\n\t\t\t\t\t\t\t\t</parameters>\n\t\t\t\t\t\t\t</action>"; } } } } } } catch (PDOException $e) { Database::logError('verify_employee', $e); Database::sendToIvrError(); } $conn = null;