Added QC Scorecard presets with recording timestamps

git-svn-id: svn://192.168.202.10@3393 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2021-03-20 00:40:56 +00:00
parent 5f70dd7fdc
commit 5911bbe72d
6 changed files with 180 additions and 67 deletions
@@ -4437,9 +4437,11 @@ list_id BIGINT(14) UNSIGNED DEFAULT NULL,
qc_scorecard_id VARCHAR(20) DEFAULT NULL,
checkpoint_row_id INT(10) UNSIGNED DEFAULT NULL,
checkpoint_text TEXT,
checkpoint_text_presets TEXT,
checkpoint_rank TINYINT(3) UNSIGNED DEFAULT NULL,
checkpoint_points TINYINT(3) UNSIGNED DEFAULT NULL,
instant_fail ENUM('Y','N') DEFAULT 'N',
instant_fail_value ENUM('Y', 'N') default 'N',
checkpoint_points_earned TINYINT(5) UNSIGNED DEFAULT NULL,
qc_agent VARCHAR(20) DEFAULT NULL,
checkpoint_comment_agent TEXT,
@@ -4450,6 +4452,7 @@ CREATE TABLE quality_control_checkpoints (
checkpoint_row_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
qc_scorecard_id VARCHAR(20) DEFAULT NULL,
checkpoint_text TEXT,
checkpoint_text_presets TEXT,
checkpoint_rank INT(3) UNSIGNED DEFAULT NULL,
checkpoint_points TINYINT(3) UNSIGNED DEFAULT NULL,
instant_fail ENUM('Y','N') DEFAULT 'N',
@@ -4866,4 +4869,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1623',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1624',db_schema_update_date=NOW(),reload_timestamp=NOW();
+7
View File
@@ -1587,3 +1587,10 @@ ALTER TABLE system_settings ADD agent_hidden_sound_volume TINYINT(3) UNSIGNED de
ALTER TABLE system_settings ADD agent_hidden_sound_seconds TINYINT(3) UNSIGNED default '0';
UPDATE system_settings SET db_schema_version='1623',db_schema_update_date=NOW() where db_schema_version < 1623;
ALTER TABLE quality_control_checkpoint_log ADD instant_fail_value ENUM('Y', 'N') default 'N' AFTER instant_fail;
ALTER TABLE quality_control_checkpoint_log ADD checkpoint_text_presets TEXT AFTER checkpoint_text;
ALTER TABLE quality_control_checkpoints ADD checkpoint_text_presets TEXT AFTER checkpoint_text;
UPDATE system_settings SET db_schema_version='1624',db_schema_update_date=NOW() where db_schema_version < 1624;
@@ -818,19 +818,19 @@ if ($SUBMIT && ($QCuser_ct>0 || $user_ct>0 || $group_ct>0 || $QCstatus_ct>0 || (
if(mysqli_num_rows($qc_rslt)>0)
{
$HTML_text.="<table border=0 width='1000' cellpadding=2 cellspacing=0>";
$HTML_text.="<table border=0 width='1000' cellpadding=2 cellspacing=1>";
$HTML_text.="<tr><td align='right' colspan='12' class='small_standard_bold'><a href='$LINKbase'>[DOWNLOAD]</a></td></tr>";
$HTML_text.="<tr bgcolor='#000' nowrap>";
$HTML_text.="<th class='small_standard_bold white_text'>Call date</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Call agent</th>";
$HTML_text.="<th class='small_standard_bold white_text' nowrap>Call agent</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Lead ID</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Campaign ID</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Status</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Scorecard</th>";
$HTML_text.="<th class='small_standard_bold white_text'>QC agent</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Claim date</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Finish date</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Score</th>";
$HTML_text.="<th class='small_standard_bold white_text' nowrap>QC agent</th>";
$HTML_text.="<th class='small_standard_bold white_text' nowrap>Claim date</th>";
$HTML_text.="<th class='small_standard_bold white_text' nowrap>Finish date</th>";
$HTML_text.="<th class='small_standard_bold white_text' nowrap>Score</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Instant fail</th>";
$HTML_text.="<th class='small_standard_bold white_text'>Result</th>";
$HTML_text.="<th class='small_standard_bold white_text'>QC status</th>";
@@ -846,15 +846,15 @@ if ($SUBMIT && ($QCuser_ct>0 || $user_ct>0 || $group_ct>0 || $QCstatus_ct>0 || (
if ($x%2==0) {$bgcolor=$SSstd_row2_background;} else {$bgcolor=$SSstd_row1_background;}
$HTML_text.="<tr bgcolor='$bgcolor'>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["call_date"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".GetFullName($qc_row["user"])."</td>";
$HTML_text.="<td class='small_standard_bold' nowrap>".GetFullName($qc_row["user"])."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["lead_id"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["campaign_id"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["status"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["qc_scorecard_id"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".GetFullName($qc_row["qc_agent"])."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["date_claimed"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".$qc_row["date_completed"]."</td>";
$HTML_text.="<td class='small_standard_bold'>".GetScore($qc_row["qc_log_id"], "")."</td>";
$HTML_text.="<td class='small_standard_bold' nowrap>".GetFullName($qc_row["qc_agent"])."</td>";
$HTML_text.="<td class='small_standard_bold' nowrap>".$qc_row["date_claimed"]."</td>";
$HTML_text.="<td class='small_standard_bold' nowrap>".$qc_row["date_completed"]."</td>";
$HTML_text.="<td class='small_standard_bold' nowrap>".GetScore($qc_row["qc_log_id"], "")."</td>";
$instant_fail=GetFail($qc_row["qc_log_id"]);
$HTML_text.="<td class='small_standard_bold' align='center'>".$instant_fail."</td>";
$HTML_text.="<td class='small_standard_bold' align='center'>".($instant_fail=="Y" ? "FAILED" : GetResult($qc_row["qc_log_id"]))."</td>";
@@ -873,11 +873,11 @@ if ($SUBMIT && ($QCuser_ct>0 || $user_ct>0 || $group_ct>0 || $QCstatus_ct>0 || (
$HTML_text.="<tr bgcolor='$bgcolor'>";
$HTML_text.="<td class='small_standard' align='left' colspan='4' nowrap>&nbsp;&nbsp;&nbsp;&nbsp;".$crow["checkpoint_rank"].") ".$crow["checkpoint_text"]."</td>";
$HTML_text.="<td class='small_standard' align='left' colspan='5' nowrap>".$crow["checkpoint_comment_agent"]."</td>";
$HTML_text.="<td class='small_standard'>".GetScore($qc_row["qc_log_id"], $crow["qc_checkpoint_log_id"])."</td>";
$HTML_text.="<td class='small_standard' align='center'>".$crow["instant_fail"]."</td>";
$HTML_text.="<td class='small_standard' nowrap>".GetScore($qc_row["qc_log_id"], $crow["qc_checkpoint_log_id"])."</td>";
$HTML_text.="<td class='small_standard' align='center'>".$crow["instant_fail_value"]."</td>";
$HTML_text.="<td class='small_standard' colspan='2'>&nbsp;</td>";
$HTML_text.="<tr>";
$CSV_text.=",\"".$crow["checkpoint_rank"].") ".$crow["checkpoint_text"]."\",\"".$crow["checkpoint_comment_agent"]."\",\"".GetScore($qc_row["qc_log_id"], $crow["qc_checkpoint_log_id"])."\",\"".$crow["instant_fail"]."\"";
$CSV_text.=",\"".$crow["checkpoint_rank"].") ".$crow["checkpoint_text"]."\",\"".$crow["checkpoint_comment_agent"]."\",\"".GetScore($qc_row["qc_log_id"], $crow["qc_checkpoint_log_id"])."\",\"".$crow["instant_fail_value"]."\"";
}
$CSV_text.="\n";
@@ -976,7 +976,7 @@ function GetFullName($full_name)
function GetFail($QCID)
{
global $link, $DB;
$fail_stmt="select count(*) From quality_control_checkpoint_log where qc_log_id='$QCID' and instant_fail='Y'";
$fail_stmt="select count(*) From quality_control_checkpoint_log where qc_log_id='$QCID' and instant_fail_value='Y'";
$fail_rslt=mysql_to_mysqli($fail_stmt, $link);
while ($fail_row=mysqli_fetch_row($fail_rslt))
{
+107 -25
View File
@@ -449,7 +449,7 @@ if ($claim_QC && $auth==1)
$checkpoint_log_rslt=mysql_to_mysqli($checkpoint_log_stmt, $link);
while ($checkpoint_row=mysqli_fetch_array($checkpoint_log_rslt))
{
$checkpoint_ins_stmt="insert into quality_control_checkpoint_log(qc_log_id, campaign_id, group_id, list_id, qc_scorecard_id, checkpoint_row_id, checkpoint_text, checkpoint_rank, checkpoint_points, checkpoint_points_earned) VALUES ('$qc_log_id', '$campaign_id', '$group_id', '$list_id', '$qc_scorecard_id', '$checkpoint_row[checkpoint_row_id]', '$checkpoint_row[checkpoint_text]', '$checkpoint_row[checkpoint_rank]', '$checkpoint_row[checkpoint_points]', '$checkpoint_row[checkpoint_points]')";
$checkpoint_ins_stmt="insert into quality_control_checkpoint_log(qc_log_id, campaign_id, group_id, list_id, qc_scorecard_id, checkpoint_row_id, checkpoint_text, checkpoint_text_presets, checkpoint_rank, checkpoint_points, checkpoint_points_earned, instant_fail) VALUES ('$qc_log_id', '$campaign_id', '$group_id', '$list_id', '$qc_scorecard_id', '$checkpoint_row[checkpoint_row_id]', '$checkpoint_row[checkpoint_text]', '$checkpoint_row[checkpoint_text_presets]', '$checkpoint_row[checkpoint_rank]', '$checkpoint_row[checkpoint_points]', '$checkpoint_row[checkpoint_points]', '$checkpoint_row[instant_fail]')";
$checkpoint_ins_rslt=mysql_to_mysqli($checkpoint_ins_stmt, $link);
# echo $checkpoint_ins_stmt."<BR>";
}
@@ -854,13 +854,61 @@ function FinishQCRecord(qc_row_id, qc_process_status, active_form) {
active_form.submit();
}
function AddToComments(qc_log_row_id, level)
{
var checkpoint_comment_field_ID="checkpoint_comment_agent"+qc_log_row_id;
if (document.getElementById(checkpoint_comment_field_ID).value.length>0)
{
document.getElementById(checkpoint_comment_field_ID).value+="\n";
}
if (level>0)
{
var RecordingPos=document.getElementById("main_QC_recording").currentTime;
var strPos=11;
var strLen=8;
if (RecordingPos<600)
{
strPos=15; strLen=4;
}
else if (RecordingPos<3600)
{
strPos=14; strLen=5;
}
else if (RecordingPos<36000)
{
strPos=12; strLen=7;
}
var currentTimestamp=new Date(RecordingPos * 1000).toISOString().substr(strPos, strLen);
if (document.getElementById(checkpoint_comment_field_ID))
{
document.getElementById(checkpoint_comment_field_ID).value+=currentTimestamp+" - ";
}
}
if (level%2==0)
{
var checkpoint_comment_preset_ID="checkpoint_text_presets"+qc_log_row_id;
if (document.getElementById(checkpoint_comment_field_ID))
{
var preset_field = document.getElementById(checkpoint_comment_preset_ID);
var preset_field_value = preset_field.options[preset_field.selectedIndex].value;
document.getElementById(checkpoint_comment_field_ID).value+=preset_field_value;
}
}
LogQCData(qc_log_row_id);
}
function LogQCData(qc_log_row_id)
{
var xmlhttp=false;
if (eval("document.qc_form.checkpoint_comment_agent"+qc_log_row_id))
var checkpoint_comment_field_ID="checkpoint_comment_agent"+qc_log_row_id;
var instant_fail_field_ID="instant_fail_value"+qc_log_row_id;
var checkpoint_points_field_ID="checkpoint_points_earned"+qc_log_row_id;
if (document.getElementById(checkpoint_comment_field_ID))
{
var qc_agent_comments_field=eval("document.qc_form.checkpoint_comment_agent"+qc_log_row_id);
var qc_ac=qc_agent_comments_field.value;
var qc_ac=document.getElementById(checkpoint_comment_field_ID).value;
var qc_agent_comments=qc_ac.replace("&", "and");
}
else
@@ -869,20 +917,25 @@ function LogQCData(qc_log_row_id)
}
var encoded_qc_agent_comments=encodeURIComponent(qc_agent_comments);
if (eval("document.qc_form.instant_fail"+qc_log_row_id))
if (document.getElementById(instant_fail_field_ID))
{
var instant_fail_field=eval("document.qc_form.instant_fail"+qc_log_row_id);
var instant_fail=instant_fail_field.value;
if (document.getElementById(instant_fail_field_ID).checked)
{
var instant_fail_value=document.getElementById(instant_fail_field_ID).value;
}
else
{
var instant_fail_value="N";
}
}
else
{
var instant_fail="N";
var instant_fail_value="N";
}
if (eval("document.qc_form.checkpoint_points_earned"+qc_log_row_id))
if (document.getElementById(checkpoint_points_field_ID))
{
var checkpoint_points_earned_field=eval("document.qc_form.checkpoint_points_earned"+qc_log_row_id);
var checkpoint_points_earned=checkpoint_points_earned_field.value;
var checkpoint_points_earned=document.getElementById(checkpoint_points_field_ID).value;
}
else
{
@@ -902,7 +955,7 @@ function LogQCData(qc_log_row_id)
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
var update_query = "&view_epoch="+timestamp+"&qc_log_id="+qc_log_id+"&qc_checkpoint_log_id="+qc_log_row_id+"&checkpoint_comment_agent="+encoded_qc_agent_comments+"&instant_fail="+instant_fail+"&checkpoint_points_earned="+checkpoint_points_earned+"&qc_action=upd_customer";
var update_query = "&view_epoch="+timestamp+"&qc_log_id="+qc_log_id+"&qc_checkpoint_log_id="+qc_log_row_id+"&checkpoint_comment_agent="+encoded_qc_agent_comments+"&instant_fail_value="+instant_fail_value+"&checkpoint_points_earned="+checkpoint_points_earned+"&qc_action=upd_customer";
xmlhttp.open('POST', 'qc_module_actions.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(update_query);
@@ -2079,7 +2132,7 @@ else
{
if ($log_recording_access<1)
{
$play_audio = "<audio controls preload=\"none\"> <source src ='$location' type='audio/wav' > <source src ='$location' type='audio/mpeg' >"._QXZ("No browser audio playback support")."</audio>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
$play_audio = "<audio id='main_QC_recording' controls preload=\"none\"> <source src ='$location' type='audio/wav' > <source src ='$location' type='audio/mpeg' >"._QXZ("No browser audio playback support")."</audio>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n";
$location = "<a href=\"$location\">$locat</a>";
}
else
@@ -2093,21 +2146,23 @@ else
echo "<TABLE width='95%' cellspacing=0 cellpadding=3>\n";
echo "<tr bgcolor='#000'>";
echo "<td align='left' colspan='2'><font class='standard_bold white_text'>"._QXZ("SCORECARD ID").":</font> <font class='standard_bold' color='#F00'>$qc_scorecard_id</font></td>";
echo "<td align='right' colspan='3'><font class='standard_bold white_text'>"._QXZ("RECORDING ID").": <input type='text' class='cust_form' name='recording_id".$qccl_id."' size='8' maxlength='10' value='$qc_recording_id'></font></td>";
echo "<td align='right' colspan='4'><font class='standard_bold white_text'>"._QXZ("RECORDING ID").": <input type='text' class='cust_form' name='recording_id".$qccl_id."' size='8' maxlength='10' value='$qc_recording_id'></font></td>";
echo "</tr>\n";
echo "<tr bgcolor='#000'>";
echo "<td align='left'>&nbsp;</td>";
echo "<td align='left'><font class='standard_bold white_text'>"._QXZ("Checkpoint")."</font></td>";
echo "<td align='left'><font class='standard_bold white_text' width='*'>"._QXZ("Checkpoint")."</font></td>";
echo "<td align='left'><font class='standard_bold white_text'>"._QXZ("Fail")."?</font></td>";
echo "<td align='left'><font class='standard_bold white_text'>"._QXZ("Points")."</font>/td>";
echo "<td align='left'><font class='standard_bold white_text'>"._QXZ("Comments")."</font></td>";
echo "<th><font class='standard_bold white_text'>"._QXZ("Points")."</font>/th>";
echo "<td align='center'><font class='standard_bold white_text'>"._QXZ("Comments")."</font></td>";
echo "<td align='left'>&nbsp;</td>";
echo "</tr>\n";
$i=1;
while ($checkpoint_row=mysqli_fetch_array($checkpoint_rslt))
{
$qccl_id=$checkpoint_row["qc_checkpoint_log_id"];
$instant_fail=$checkpoint_row["instant_fail"];
$instant_fail_active=$checkpoint_row["instant_fail"];
$instant_fail_value=$checkpoint_row["instant_fail_value"];
if (preg_match("/1$|3$|5$|7$|9$/i", $i))
{$bgcolor="bgcolor='#".$SSstd_row3_background."'";}
else
@@ -2115,29 +2170,56 @@ else
echo "<tr $bgcolor>";
echo "<td align='left'><font class='standard'>$i</font></td>";
echo "<td align='left'><font class='standard'>$checkpoint_row[checkpoint_text]</font></td>";
if ($checkpoint_row["instant_fail"]=="Y")
echo "<td align='left' width='*'><font class='small_standard'>$checkpoint_row[checkpoint_text]</font></td>";
if ($instant_fail_active=="Y")
{
echo "<td><input type='checkbox' onClick=\"LogQCData('".$qccl_id."')\" name='instant_fail".$qccl_id."' value='Y' ".($instant_fail=="Y" ? "checked" : "")."></td>";
echo "<td><input type='checkbox' onClick=\"LogQCData('".$qccl_id."')\" id='instant_fail_value".$qccl_id."' name='instant_fail_value".$qccl_id."' value='Y' ".($instant_fail_value=="Y" ? "checked" : "")."></td>";
}
else
{
echo "<td>&nbsp;</td>";
}
echo "<td align='left'><font class='standard'><input type='text' onBlur=\"LogQCData('".$qccl_id."')\" size=3 maxlength=6 class='cust_form' name='checkpoint_points_earned".$qccl_id."' value='$checkpoint_row[checkpoint_points_earned]'> / $checkpoint_row[checkpoint_points]</font></td>";
echo "<td><textarea onBlur=\"LogQCData('".$qccl_id."')\" class='cust_form' name='checkpoint_comment_agent".$qccl_id."' rows='2' cols='40'>$checkpoint_row[checkpoint_comment_agent]</textarea></td>";
echo "<td align='center' nowrap><font class='standard'><input type='text' onBlur=\"LogQCData('".$qccl_id."')\" size=2 maxlength=6 class='cust_form' name='checkpoint_points_earned".$qccl_id."' id='checkpoint_points_earned".$qccl_id."' value='$checkpoint_row[checkpoint_points_earned]'> / $checkpoint_row[checkpoint_points]</font></td>";
echo "<td align='center'>";
echo "<textarea onBlur=\"LogQCData('".$qccl_id."')\" class='cust_form' name='checkpoint_comment_agent".$qccl_id."' id='checkpoint_comment_agent".$qccl_id."' rows='4' cols='40'>$checkpoint_row[checkpoint_comment_agent]</textarea>";
echo "<BR><input type='button' style='margin:3px;background-color:#".$SSbutton_color.";font-size:8px;font-weight:bold;width:100px' value='ADD REC TIMESTAMP' onClick=\"AddToComments('".$qccl_id."', 1)\">";
echo "</td>";
echo "<td align='center'><font class='small_standard'>";
if (strlen($checkpoint_row["checkpoint_text_presets"])>0)
{
echo "Presets: <select class='cust_form' name='checkpoint_text_presets".$qccl_id."' id='checkpoint_text_presets".$qccl_id."'>\n";
$presets_array=explode("\n", $checkpoint_row["checkpoint_text_presets"]);
for ($j=0; $j<count($presets_array); $j++)
{
# $preset_keyvals=explode(",", $presets_array[$j]);
# $pi=count($preset_keyvals)-1;
# echo "<option value='$preset_keyvals[0]'>".$preset_keyvals[$pi]."</option>\n";
echo "<option value='$presets_array[$j]'>".(strlen($presets_array[$j])>20 ? substr($presets_array[$j], 0, 20)."..." : $presets_array[$j])."</option>\n";
}
echo "</select><BR>\n";
echo "<input type='button' style='margin:3px;background-color:#".$SSbutton_color.";font-size:8px;font-weight:bold;width:100px' value='ADD TO COMMENTS' onClick=\"AddToComments('".$qccl_id."', 0)\"><BR>";
echo "<input type='button' style='margin:3px;background-color:#".$SSbutton_color.";font-size:8px;font-weight:bold;width:100px' value='TIMESTAMP & ADD' onClick=\"AddToComments('".$qccl_id."', 2)\">";
}
else
{
echo "&nbsp;";
}
echo "</font></td>";
echo "</tr>";
$i++;
}
echo "<tr bgcolor='#".$SSstd_row4_background."'>";
echo "<td align='right' colspan='3'>$play_audio &nbsp;</td>";
echo "<td align='left' colspan='2'><font class='standard_bold'>$location</font></td>";
echo "<td align='left' colspan='3'><font class='standard_bold'>$location</font></td>";
echo "</tr>\n";
echo "<tr bgcolor='#000'>";
echo "<td align='left'><font class='standard_bold white_text'>"._QXZ("FINISH QC").": </font></td>";
# echo "<tr bgcolor=#".$SSstd_row4_background."><td align=right>"._QXZ("QC Result").": </td>";
echo "<td align=left colspan='2'><select size=1 name=status class='cust_form'>\n";
echo "<td align=left colspan='3'><select size=1 name=status class='cust_form'>\n";
//This section reserved for future expansion (when each campaign will have its own list of QC Result Codes instead of using the the entire master set)
// $list_campaign='';
@@ -118,6 +118,8 @@ if (isset($_GET["new_admin_notes"])) {$new_admin_notes=$_GET["new_admin_notes"];
elseif (isset($_POST["new_admin_notes"])) {$new_admin_notes=$_POST["new_admin_notes"];}
if (isset($_GET["new_checkpoint_text"])) {$new_checkpoint_text=$_GET["new_checkpoint_text"];}
elseif (isset($_POST["new_checkpoint_text"])) {$new_checkpoint_text=$_POST["new_checkpoint_text"];}
if (isset($_GET["new_checkpoint_text_presets"])) {$new_checkpoint_text_presets=$_GET["new_checkpoint_text_presets"];}
elseif (isset($_POST["new_checkpoint_text_presets"])) {$new_checkpoint_text_presets=$_POST["new_checkpoint_text_presets"];}
if (isset($_GET["checkpoint_row_id"])) {$checkpoint_row_id=$_GET["checkpoint_row_id"];}
elseif (isset($_POST["checkpoint_row_id"])) {$checkpoint_row_id=$_POST["checkpoint_row_id"];}
if (isset($_GET["checkpoint_comment_agent"])) {$checkpoint_comment_agent=$_GET["checkpoint_comment_agent"];}
@@ -126,6 +128,8 @@ if (isset($_GET["checkpoint_answer"])) {$checkpoint_answer=$_GET["checkpoint_ans
elseif (isset($_POST["checkpoint_answer"])) {$checkpoint_answer=$_POST["checkpoint_answer"];}
if (isset($_GET["instant_fail"])) {$instant_fail=$_GET["instant_fail"];}
elseif (isset($_POST["instant_fail"])) {$instant_fail=$_POST["instant_fail"];}
if (isset($_GET["instant_fail_value"])) {$instant_fail_value=$_GET["instant_fail_value"];}
elseif (isset($_POST["instant_fail_value"])) {$instant_fail_value=$_POST["instant_fail_value"];}
if (isset($_GET["admin_notes"])) {$admin_notes=$_GET["admin_notes"];}
elseif (isset($_POST["admin_notes"])) {$admin_notes=$_POST["admin_notes"];}
if (isset($_GET["commission_loss"])) {$commission_loss=$_GET["commission_loss"];}
@@ -246,7 +250,7 @@ $NWB = "<IMG SRC=\"help.png\" onClick=\"FillAndShowHelpDiv(event, '";
$NWE = "')\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP>";
if ($qc_checkpoint_log_id && $qc_action=="upd_customer") {
$upd_stmt="update quality_control_checkpoint_log set checkpoint_comment_agent='".mysqli_escape_string($link, $checkpoint_comment_agent)."', instant_fail='".mysqli_escape_string($link, $instant_fail)."', checkpoint_points_earned='".mysqli_escape_string($link, $checkpoint_points_earned)."' where qc_checkpoint_log_id='$qc_checkpoint_log_id'";
$upd_stmt="update quality_control_checkpoint_log set checkpoint_comment_agent='".mysqli_escape_string($link, $checkpoint_comment_agent)."', instant_fail_value='".mysqli_escape_string($link, $instant_fail_value)."', checkpoint_points_earned='".mysqli_escape_string($link, $checkpoint_points_earned)."' where qc_checkpoint_log_id='$qc_checkpoint_log_id'";
$upd_rslt=mysqli_query($link, $upd_stmt);
#echo mysqli_affected_rows($link);
if ($DB) {echo "|$upd_stmt|\n";}
@@ -398,11 +402,11 @@ if ($qc_action=="save_comments" && $qc_checkpoint_log_id && $checkpoint_comment_
echo mysqli_affected_rows($link);
}
if ($scorecard_id && $qc_action=="add_checkpoint" && $new_checkpoint_rank && $new_checkpoint_text && $new_active) {
if ($scorecard_id && $qc_action=="add_checkpoint" && $new_checkpoint_rank && ($new_checkpoint_text || $new_checkpoint_text_presets) && $new_active) {
$upd_stmt="update quality_control_checkpoints set checkpoint_rank=checkpoint_rank+1, modify_user='$PHP_AUTH_USER' where qc_scorecard_id='$scorecard_id' and checkpoint_rank>=$new_checkpoint_rank";
$upd_rslt=mysqli_query($link, $upd_stmt);
$ins_stmt="insert into quality_control_checkpoints(qc_scorecard_id, checkpoint_rank, checkpoint_text, checkpoint_points, active, instant_fail, admin_notes, create_date, create_user) VALUES('".mysqli_real_escape_string($link, $scorecard_id)."', '".mysqli_real_escape_string($link, $new_checkpoint_rank)."', '".mysqli_real_escape_string($link, $new_checkpoint_text)."', '".mysqli_real_escape_string($link, $new_checkpoint_points)."', '".mysqli_real_escape_string($link, $new_active)."', '".mysqli_real_escape_string($link, $new_instant_fail)."', '".mysqli_real_escape_string($link, $new_admin_notes)."', now(), '".mysqli_real_escape_string($link, $PHP_AUTH_USER)."')";
$ins_stmt="insert into quality_control_checkpoints(qc_scorecard_id, checkpoint_rank, checkpoint_text, checkpoint_text_presets, checkpoint_points, active, instant_fail, admin_notes, create_date, create_user) VALUES('".mysqli_real_escape_string($link, $scorecard_id)."', '".mysqli_real_escape_string($link, $new_checkpoint_rank)."', '".mysqli_real_escape_string($link, $new_checkpoint_text)."', '".mysqli_real_escape_string($link, $new_checkpoint_text_presets)."', '".mysqli_real_escape_string($link, $new_checkpoint_points)."', '".mysqli_real_escape_string($link, $new_active)."', '".mysqli_real_escape_string($link, $new_instant_fail)."', '".mysqli_real_escape_string($link, $new_admin_notes)."', now(), '".mysqli_real_escape_string($link, $PHP_AUTH_USER)."')";
echo $ins_stmt;
$ins_rslt=mysqli_query($link, $ins_stmt);
@@ -501,20 +505,21 @@ if ($scorecard_id && $qc_action=="load_checkpoints") {
$rslt=mysqli_query($link, $stmt);
if (mysqli_num_rows($rslt)>0) {
echo "<tr>";
echo "<th colspan='7' class='display_header'>"._QXZ("MODIFY QC SCORECARD")." $scorecard_id $NWB#qc_scorecards-modify$NWE</th>";
echo "<th colspan='8' class='display_header'>"._QXZ("MODIFY QC SCORECARD")." $scorecard_id $NWB#qc_scorecards-modify$NWE</th>";
echo "</tr>";
echo "<tr>";
echo "<th colspan='7' class='small_display_header'>"._QXZ("NAME").": <input type='text' size='20' maxlength='255' id='scorecard_name".$scorecard_id."' name='scorecard_name".$scorecard_id." onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'scorecard_name')\" value='$scorecard_name'></th>";
echo "<th colspan='8' class='small_display_header'>"._QXZ("NAME").": <input type='text' size='20' maxlength='255' id='scorecard_name".$scorecard_id."' name='scorecard_name".$scorecard_id." onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'scorecard_name')\" value='$scorecard_name'></th>";
echo "</tr>";
$i++;
if ($i%2==0) {$bgcolor=$SSstd_row1_background;} else {$bgcolor=$SSstd_row2_background;}
echo "<tr bgcolor='".$bgcolor."'>\n";
echo "<th class='small_display_header'>"._QXZ("Order")."$NWB#qc_scorecards-order$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Points")."$NWB#qc_scorecards-points$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Instant Fail")."$NWB#qc_scorecards-instant_kill$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Order")."$NWB#qc_scorecards-order$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Preset comments")."$NWB#qc_scorecards-preset_comments$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Points")."$NWB#qc_scorecards-points$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Instant Fail")."$NWB#qc_scorecards-instant_fail$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWE</th>";
# echo "<th class='small_display_header'>Commission Loss</th>";
echo "<th class='small_display_header'>&nbsp;</th>";
echo "</tr>";
@@ -534,7 +539,14 @@ if ($scorecard_id && $qc_action=="load_checkpoints") {
echo "<td align='center'>";
echo "<input onClick=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'active')\" type='checkbox' name='active".$row["checkpoint_row_id"]."' id='active".$row["checkpoint_row_id"]."'".(($row["active"]=="Y") ? " checked" : "")." value='Y'>";
echo "</td>";
echo "<td align='center'><textarea class='notes_box' rows='2' cols='50' onBlur=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'checkpoint_text')\" id='checkpoint_text".$row["checkpoint_row_id"]."' name='checkpoint_text".$row["checkpoint_row_id"]."'>".$row["checkpoint_text"]."</textarea></td>\n";
echo "<td align='center'>";
echo "<textarea class='notes_box' rows='4' cols='40' onBlur=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'checkpoint_text')\" id='checkpoint_text".$row["checkpoint_row_id"]."' name='checkpoint_text".$row["checkpoint_row_id"]."'>".$row["checkpoint_text"]."</textarea>";
echo "</td>\n";
echo "<td align='center'>";
echo "<textarea class='notes_box' rows='4' cols='20' onBlur=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'checkpoint_text_presets')\" id='checkpoint_text_presets".$row["checkpoint_row_id"]."' name='checkpoint_text_presets".$row["checkpoint_row_id"]."'>".$row["checkpoint_text_presets"]."</textarea>";
echo "</td>\n";
echo "<td align='center'><input type='text' onBlur=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'checkpoint_points')\" id='checkpoint_points".$row["checkpoint_row_id"]."' name='checkpoint_points".$row["checkpoint_row_id"]."' value='".$row["checkpoint_points"]."' size='2' maxlength='3'></td>\n";
echo "<td align='center'>";
echo "<input onClick=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'update_checkpoint', 'instant_fail')\" type='checkbox' name='instant_fail".$row["checkpoint_row_id"]."' id='instant_fail".$row["checkpoint_row_id"]."'".(($row["instant_fail"]=="Y") ? " checked" : "")." value='Y'>";
@@ -546,26 +558,27 @@ if ($scorecard_id && $qc_action=="load_checkpoints") {
echo "<td align='center'><input type='button' class='tiny_red_btn' onClick=\"ChangeCheckpoint('".$row["checkpoint_row_id"]."', '$scorecard_id', 'delete_checkpoint')\" value='"._QXZ("DELETE")."'></td>";
echo "</tr>";
}
echo "<tr><td colspan='3' class='small_display_header' align='right'>"._QXZ("PASSING SCORE").":</td><td align='center'><input type='text' size='2' maxlength='3' id='passing_score".$scorecard_id."' name='passing_score".$scorecard_id."' onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'passing_score')\" value='$passing_score'></td><td align='left' class='small_display_header'>/ $max_score</td><td colspan='2'>&nbsp;</td></tr>";
echo "<tr><td colspan='3' class='small_display_header' align='right'>"._QXZ("PASSING SCORE").":</td><td align='center'><input type='text' size='2' maxlength='3' id='passing_score".$scorecard_id."' name='passing_score".$scorecard_id."' onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'passing_score')\" value='$passing_score'></td><td align='left' class='small_display_header'>/ $max_score</td><td colspan='3'>&nbsp;</td></tr>";
} else {
echo "<tr><th colspan='7' class='small_display_header'>** "._QXZ("CURRENTLY NO CHECKPOINTS FOR SCORECARD")." $scorecard_id **</td></tr>\n";
echo "<tr><th colspan='8' class='small_display_header'>** "._QXZ("CURRENTLY NO CHECKPOINTS FOR SCORECARD")." $scorecard_id **</td></tr>\n";
echo "<tr>";
echo "<th colspan='7' class='small_display_header'>"._QXZ("NAME").": <input type='text' size='20' maxlength='255' id='scorecard_name".$scorecard_id."' name='scorecard_name".$scorecard_id."' onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'scorecard_name')\" value='$scorecard_name'></th>";
echo "<th colspan='8' class='small_display_header'>"._QXZ("NAME").": <input type='text' size='20' maxlength='255' id='scorecard_name".$scorecard_id."' name='scorecard_name".$scorecard_id."' onBlur=\"ChangeCheckpoint('0', '$scorecard_id', 'update_scorecard', 'scorecard_name')\" value='$scorecard_name'></th>";
echo "</tr>";
}
echo "<tr height='20'><th colspan='7'>&nbsp;</th></tr>\n";
echo "<tr height='20'><th colspan='8'>&nbsp;</th></tr>\n";
echo "<tr>";
echo "<th colspan='7' class='display_white_header'>"._QXZ("ADD NEW CHECKPOINT FOR SCORECARD")." $scorecard_id</th>";
echo "<th colspan='8' class='display_white_header'>"._QXZ("ADD NEW CHECKPOINT FOR SCORECARD")." $scorecard_id</th>";
echo "</tr>";
echo "<tr>";
echo "<th class='small_display_header'>"._QXZ("Order")."$NWB#qc_scorecards-order$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Points")."$NWB#qc_scorecards-points$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Instant Kill")."$NWB#qc_scorecards-instant_kill$NWE</th>";
echo "<th class='small_display_header'>"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Order")."$NWB#qc_scorecards-order$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Active")."$NWB#qc_scorecards-active_checkpoint$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Checkpoint Text")."$NWB#qc_scorecards-checkpoint_text$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Preset comments")."$NWB#qc_scorecards-preset_comments$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Points")."$NWB#qc_scorecards-points$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Instant Fail")."$NWB#qc_scorecards-instant_fail$NWE</th>";
echo "<th class='small_display_header' nowrap>"._QXZ("Admin Notes")."$NWB#qc_scorecards-admin_notes$NWE</th>";
#echo "<th class='small_display_header'>Commission loss</th>";
echo "<th class='small_display_header'>&nbsp;</th>";
echo "</tr>";
@@ -580,7 +593,12 @@ if ($scorecard_id && $qc_action=="load_checkpoints") {
echo "<td align='center'>";
echo "<input type='checkbox' name='new_active' id='new_active' value='Y' checked>";
echo "</td>";
echo "<td align='center'><textarea class='notes_box' rows=\"2\" cols=\"50\" id=\"new_checkpoint_text\" name=\"new_checkpoint_text\">**"._QXZ("Enter display text here")."**</textarea></td>\n";
echo "<td align='center'>";
echo "<textarea class='notes_box' rows=\"4\" cols=\"40\" id=\"new_checkpoint_text\" name=\"new_checkpoint_text\">**"._QXZ("Enter display text here")."**</textarea>";
echo "</td>\n";
echo "<td align='center'>";
echo "<textarea class='notes_box' rows=\"4\" cols=\"20\" id=\"new_checkpoint_text_presets\" name=\"new_checkpoint_text_presets\"></textarea>";
echo "</td>\n";
echo "<td align='center'>";
echo "<input type='text' name='new_checkpoint_points' id='new_checkpoint_points' size='2' maxlength='3' value='0'>";
echo "</td>";
+5 -2
View File
@@ -546,13 +546,16 @@ function AddCheckpoint(scorecard_id) {
var qtext = document.getElementById("new_checkpoint_text");
var checkpoint_text=encodeURIComponent(qtext.value);
var qtext_presets = document.getElementById("new_checkpoint_text_presets");
var checkpoint_text_presets=encodeURIComponent(qtext_presets.value);
var qpts = document.getElementById("new_checkpoint_points");
var checkpoint_points=encodeURIComponent(qpts.value);
var qadmin = document.getElementById("new_admin_notes");
var admin_notes=encodeURIComponent(qadmin.value);
var add_query = "&qc_action=add_checkpoint&scorecard_id="+scorecard_id+"&new_checkpoint_rank="+checkpoint_rank+"&new_active="+active+"&new_checkpoint_text="+checkpoint_text+"&new_admin_notes="+admin_notes+"&new_checkpoint_points="+checkpoint_points+"&new_instant_fail="+instant_fail+"&new_commission_loss="+comm_loss;
var add_query = "&qc_action=add_checkpoint&scorecard_id="+scorecard_id+"&new_checkpoint_rank="+checkpoint_rank+"&new_active="+active+"&new_checkpoint_text="+checkpoint_text+"&new_checkpoint_text_presets="+checkpoint_text_presets+"&new_admin_notes="+admin_notes+"&new_checkpoint_points="+checkpoint_points+"&new_instant_fail="+instant_fail+"&new_commission_loss="+comm_loss;
var xmlhttp=false;
try {
@@ -614,7 +617,7 @@ function ChangeCheckpoint(checkpoint_row_id, scorecard_id, q_action, parameter,
{
if (e.checked) {parameter_value="Y";} else {parameter_value="N";}
}
else if (parameter=="checkpoint_text" || parameter=="checkpoint_points" || parameter=="admin_notes")
else if (parameter=="checkpoint_text" || parameter=="checkpoint_text_presets" || parameter=="checkpoint_points" || parameter=="admin_notes")
{
parameter_value=encodeURIComponent(e.value);
}