You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1155 lines
58 KiB
1155 lines
58 KiB
4 months ago
|
#!/usr/bin/perl
|
||
|
#
|
||
|
# Source File: Integro3.5.pl
|
||
|
|
||
|
# Get config
|
||
|
use FileHandle;
|
||
|
use Time::Local;
|
||
|
use Data::Dumper;
|
||
|
use IntegroLib;
|
||
|
require 'sitecfg.pl';
|
||
|
require 'testlib.pl';
|
||
|
require 'tstatlib.pl';
|
||
|
|
||
|
use strict;
|
||
|
use vars qw(%FORM %SESSION %CLIENT %TEST_SESSION %SUBTEST_QUESTIONS %TEST
|
||
|
%SUBTEST_SUMMARY %CANDIDATE %SUBTEST_ANSWERS %SYSTEM %REPORT
|
||
|
%SUBTEST_RESPONSES @xlatphrase);
|
||
|
use vars qw($testcomplete $cgiroot $pathsep $dataroot @rptparams $testpending $testinprog $testcomplete);
|
||
|
|
||
|
&app_initialize;
|
||
|
|
||
|
$FORM{"idlist"} =~ tr/\000/,/ ; # Change separator for multiple values from NULL to comma. HBI
|
||
|
|
||
|
# Make sure we have a valid session, and exit if we don't
|
||
|
if (not &get_session($FORM{'tid'})) {
|
||
|
exit(0);
|
||
|
}
|
||
|
|
||
|
&LanguageSupportInit();
|
||
|
#print STDERR Dumper(\%SESSION);
|
||
|
&get_client_profile($SESSION{'clid'}); # Populate $CLIENT{}
|
||
|
|
||
|
if ($FORM{'tstid'}) {
|
||
|
&get_test_profile($CLIENT{'clid'}, $FORM{'tstid'}); # Populate $TEST{}
|
||
|
} elsif (!$rptparams[0]) {
|
||
|
# Check for multiple tests
|
||
|
my @trecs = &get_test_list($CLIENT{'clid'}); #tests in an array
|
||
|
my @tmptrecs = ();
|
||
|
for (1 .. $#trecs) {
|
||
|
my ($id, $desc) = split(/&/, $trecs[$_]); #id=testid, descr=test description
|
||
|
if ($id =~ "^SAS") {push @tmptrecs, join('&', "$desc", "$id");}
|
||
|
}
|
||
|
@trecs = sort @tmptrecs;
|
||
|
if ($#trecs > 0) {
|
||
|
# show test chooser
|
||
|
&print_test_chooser(@trecs);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Get the group filters, if any
|
||
|
my ($idlist,$groups);
|
||
|
if (exists $FORM{'grouping'} and $FORM{'grouping'} eq 'subset') {
|
||
|
#my @tmp = split(/,/,$FORM{'idlist'});
|
||
|
my @tmp = param('idlist');
|
||
|
$FORM{'idlist'} = join(',', @tmp);
|
||
|
@{$groups}{@tmp} = @tmp;
|
||
|
$idlist = &getIdlist($CLIENT{'clid'},$FORM{'idlist'});
|
||
|
}
|
||
|
|
||
|
# Get the time stamp style
|
||
|
my $timestamp;
|
||
|
if ($FORM{'timestamp'} eq 'currenttime') {
|
||
|
$timestamp = scalar(localtime(time));
|
||
|
} elsif ($FORM{"timestamp"} eq 'custom' and $FORM{'customtime'} ne '') {
|
||
|
$timestamp = $FORM{'customtime'};
|
||
|
} elsif ($FORM{'timestamp'} eq 'mostrecent' and $FORM{'tstid'}) {
|
||
|
my $file = join($pathsep,$testcomplete,"$CLIENT{'clid'}.$FORM{'tstid'}.history");
|
||
|
my $fh = new FileHandle;
|
||
|
if ($fh->open($file)) {
|
||
|
my @history = map([split(/(?:<<>>|&)/,$_,4)],<$fh>);
|
||
|
#print "<pre>".Dumper(\@history)."</pre>";
|
||
|
if (defined $idlist) {
|
||
|
foreach (reverse @history) {
|
||
|
if (exists $idlist->{$_->[2]}) {
|
||
|
$timestamp = scalar(localtime(toGMSeconds($_->[0])));
|
||
|
last;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
$timestamp = scalar(localtime(toGMSeconds($history[$#history]->[0])));
|
||
|
}
|
||
|
} else {
|
||
|
print STDERR "Could not open $file in Integro.pl\n";
|
||
|
}
|
||
|
}
|
||
|
if (substr($FORM{'reportname'},-3) ne 'csv') {
|
||
|
if (defined $timestamp) {
|
||
|
$timestamp = "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$timestamp</b></font><br><BR>\n";
|
||
|
} else {
|
||
|
$timestamp = "<br>\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Generate the reports
|
||
|
if ($FORM{'reportname'} eq 'commeffect') {
|
||
|
&CommEffectReport($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'commeffectsummary') {
|
||
|
&CommEffectSummary($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'trustlevel') {
|
||
|
&TrustLevelReport($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'trustlevelsummary') {
|
||
|
&TrustLevelSummary($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'trustlevelcsv') {
|
||
|
&TrustLevelCSV($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'values') {
|
||
|
&ValuesReport($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'valuessummary') {
|
||
|
&ValuesSummary($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'valuescsv') {
|
||
|
&ValuesCSV($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'diversity') {
|
||
|
&diversityReport($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'diversitysummary') {
|
||
|
&diversitySummary($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'diversitycsv') {
|
||
|
&diversityCSV($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'comments') {
|
||
|
&CommentsReport($idlist, $timestamp, 0);
|
||
|
} elsif ($FORM{'reportname'} eq 'comments2') {
|
||
|
&CommentsReport($idlist, $timestamp, 1);
|
||
|
} elsif ($FORM{'reportname'} eq 'people') {
|
||
|
&KindsOfPeopleReport($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'peoplesummary') {
|
||
|
&KindsOfPeopleSummary($idlist, $groups, $timestamp);
|
||
|
} elsif ($FORM{'reportname'} eq 'peoplecsv') {
|
||
|
&KindsOfPeopleCSV($idlist, $groups, $timestamp);
|
||
|
} else {
|
||
|
&ReportChooser();
|
||
|
}
|
||
|
|
||
|
# There should only be function definitions beyond this point.
|
||
|
exit(0);
|
||
|
|
||
|
sub HTMLHeader {
|
||
|
return "<html>\n<head>\n<title>$_[0]</title>\n".
|
||
|
"<!--Integro3.pl-->\n".
|
||
|
"<script language=\"JavaScript\">\n<!-- \n$_[1]\n -->\n</script>\n</head>\n".
|
||
|
"<BODY BACKGROUND=\"$SYSTEM{'BACKGROUND'}\" BGCOLOR=\"$SYSTEM{'BGCOLOR'}\"".
|
||
|
" TEXT=\"$SYSTEM{'TEXT'}\" LINK=\"$SYSTEM{'LINK'}\"".
|
||
|
" VLINK=\"$SYSTEM{'VLINK'}\" ALINK=\"$SYSTEM{'ALINK'}\">\n";
|
||
|
}
|
||
|
|
||
|
sub HTMLHeaderPlain {
|
||
|
return "<html>\n<head>\n<title>$_[0]</title>\n".
|
||
|
"<script language=\"JavaScript\">\n<!-- \n$_[1]\n -->\n</script>\n</head>\n".
|
||
|
"<BODY>\n";
|
||
|
}
|
||
|
|
||
|
sub HTMLFooter {
|
||
|
my $year = `date +%Y`;
|
||
|
my $ionline;
|
||
|
if ($ENV{'SERVER_NAME'} =~ "integroonline.com") {
|
||
|
$ionline = " - Copyright (c) $year, Integro Learning Company";
|
||
|
}
|
||
|
return "<br><center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Copyright (c) $year, Integro Leadership Institute$ionline<center></font></body>\n</html>\n";
|
||
|
}
|
||
|
|
||
|
sub ReportChooser {
|
||
|
# Links w/javascript for chosing report
|
||
|
# Radio button to choose between all and select group(s)
|
||
|
# Menu box to chose one or more groups
|
||
|
my $groups = &getGroups($CLIENT{'clid'});
|
||
|
my $js = "function parmsIntegro(oform,rpt) {\n\t".
|
||
|
"if (rpt.indexOf('csv') > 0) { oform.csv.value=1; } else{ oform.csv.value=0; }\n\t".
|
||
|
"oform.reportname.value=rpt;\n\t".
|
||
|
"oform.action='/cgi-bin/creports.pl';\n\t".
|
||
|
"oform.submit();\n};\n";
|
||
|
$js .= "\nfunction commIntegro(oform) {\n\t".
|
||
|
"oform.rptid.value='ACT-C-004';\n\t".
|
||
|
"oform.rptdesc.value='Test Statistics by Test'\n\t".
|
||
|
"oform.action='/cgi-bin/IntegroTS.pl';\n\t".
|
||
|
"oform.submit();\n};\n";
|
||
|
my $organizationname = $CLIENT{'clnmc'};
|
||
|
my $uberheader;
|
||
|
my $test;
|
||
|
if ($FORM{'tstid'}) {
|
||
|
$test = $FORM{'tstid'};
|
||
|
} elsif ($rptparams[0]) {
|
||
|
$test = $rptparams[0];
|
||
|
} else {
|
||
|
$test = "SAS01";
|
||
|
}
|
||
|
|
||
|
my ($tstid) = grep((/($test\s*)&/ && ($_=$1)),get_data("tests.$CLIENT{'clid'}"));
|
||
|
if (not $tstid) {
|
||
|
print HTMLHeader("Error! No Strategic Alignment Survey Found.");
|
||
|
print "<h1>Error! No Strategic Alignment Survey Found.</h1>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
#print STDERR get_data("tests.$CLIENT{'clid'}");
|
||
|
#print STDERR "Test ID = $tstid\n";
|
||
|
print HTMLHeader("Integro Learning Custom Reports",$js);
|
||
|
print "<form name=\"integrorpt\" action=\"/cgi-bin/creports.pl\" method=\"Post\" target=\"rptwindow\" enctype=\"multipart/form-data\" >\n";
|
||
|
print "<input type=\"hidden\" name=\"tid\" value=\"$SESSION{'tid'}\">\n";
|
||
|
# For development purposes we hardcode the survey id.
|
||
|
# Fix this before production
|
||
|
print "<input type=hidden name=\"tstid\" value=\"$tstid\">\n";
|
||
|
print "<input type=hidden name=\"rptno\" value=\"$FORM{'rptno'}\">\n";
|
||
|
print "<input type=hidden name=\"rptdesc\" value=\"$REPORT{'rptdesc'}\">\n";
|
||
|
print "<input type=hidden name=\"rptid\" value=\"$REPORT{'rptid'}\">\n";
|
||
|
print "<input type=\"hidden\" name=\"reportname\" value=\"\">\n";
|
||
|
print "<input type=\"hidden\" name=\"csv\" value=\"\">\n";
|
||
|
|
||
|
print "<center>\n<table border>\n<caption>Integro Learning Custom Reports</Caption>\n".
|
||
|
"<tr><td valign=\"top\"><input type=\"radio\" name=\"grouping\" value=\"all\" checked>All Groups</td>\n".
|
||
|
"<td valign=\"top\"><input type=\"radio\" name=\"grouping\" value=\"subset\">Choose Groups<br>\n".
|
||
|
"<select name=\"idlist\" onchange='this.form.grouping[1].click();' multiple>\n";
|
||
|
foreach (sort {$a->{'grpnme'} cmp $b->{'grpnme'}} values %$groups) {
|
||
|
print "<option value=\"$_->{'grpid'}\">$_->{'grpnme'}</option>\n";
|
||
|
}
|
||
|
print "</select>\n";
|
||
|
#print "<tr><td colspan=\"2\">$xlatphrase[797] $xlatphrase[279]: <input type=\"text\" name=\"orgname\" value=\"$organizationname\"></td></tr>\n";
|
||
|
print "<tr><td colspan=\"3\"><table border=0><tr><td>Organization Name:</td><td><input type=\"text\" name=\"orgname\" value=\"$organizationname\"></td></tr>\n";
|
||
|
print "<tr><td>Header Override:</td><td><input type=\"text\" name=\"uberheader\" value=\"$uberheader\"></td></tr></table></tr></td>\n";
|
||
|
print "<tr><td colspan=\"2\">Time Stamp:<ul style=\"list-style: none\">".
|
||
|
"<li><input type=\"radio\" name=\"timestamp\" value=\"mostrecent\" checked>Most Recent Survey Taken</li>".
|
||
|
"<li><input type=\"radio\" name=\"timestamp\" value=\"currenttime\">Current Time</li>".
|
||
|
"<li><input type=\"radio\" name=\"timestamp\" value=\"custom\">Custom Value: ".
|
||
|
"<input type=\"text\" name=\"customtime\"></li></tr></td>";
|
||
|
print "</table></center>\n";
|
||
|
print "<hr>\n";
|
||
|
#print "<input type=\"checkbox\" name=\"pdf\">Display reports as PDF\n";
|
||
|
print "<p>Section 1<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'people');\">Kinds of People Report</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'peoplesummary');\">Kinds of People Summary</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'peoplecsv');\">Kinds of People CSV Download</a></li></ul></p>\n";
|
||
|
print "<p>Section 2<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'trustlevel');\">Group Trust Level Report</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'trustlevelsummary');\">Group Trust Level Summary</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'trustlevelcsv');\">Group Trust Level CSV</a></li></ul></p>\n";
|
||
|
print "<p>Section 3<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'values');\">Values That Build Trust Report</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'valuessummary');\">Values That Build Trust Summary</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'valuescsv');\">Values That Build Trust CSV</a></li></ul></p>\n";
|
||
|
print "<p>Section 4<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'commeffect');\">Group Alignment Report</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'commeffectsummary');\">Group Alignment Summary</a></li></ul></p>\n";
|
||
|
print "<p>Section 5<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'diversity');\">Diversity and Inclusion Report</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'diversitysummary');\">Diversity and Inclusion Summary</a></li>".
|
||
|
"<li><a href=\"javascript:parmsIntegro(document.integrorpt,'diversitycsv');\">Diversity and Inclusion CSV</a></li></ul></p>\n";
|
||
|
print "<p>General Reports<ul style=\"list-style: none\"><li><a href=\"javascript:parmsIntegro(document.integrorpt,'comments');\">Comments</a></li>";
|
||
|
print "<li><a href=\"javascript:parmsIntegro(document.integrorpt,'comments2');\">Comments by Category</a></li>";
|
||
|
print "<input type=hidden name=\"testsummary\" value=\"composite\">\n";
|
||
|
print "<input type=hidden name=\"showcmts\" value=\"donot\">\n";
|
||
|
#my $commurl = "/cgi-bin/teststats.pl?tstid=$tstid".
|
||
|
# "&tid=$FORM{'tid'}&rptid=ACT-C-004&rptdesc=Test%20Statistics%20by%20Test".
|
||
|
# "&testsummary=composite&showcmts=donot";
|
||
|
print "<li><a href=\"javascript:commIntegro(document.integrorpt);\">Question Statistics</a></li></p>\n";
|
||
|
print "</form>";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
# Also known as the Group Alignment report
|
||
|
sub CommEffectReport {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &CommEffectData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
my $claritysum = $data->{'organization'}->{'claritysum'};
|
||
|
my $approvalsum = $data->{'organization'}->{'approvalsum'};
|
||
|
my $histograms = $data->{'organization'}->{'histogram'};
|
||
|
my %intlc;
|
||
|
my %intla;
|
||
|
$intlc{'Purpose'} = "86";
|
||
|
$intla{'Purpose'} = "88";
|
||
|
$intlc{'Values'} = "77";
|
||
|
$intla{'Values'} = "86";
|
||
|
$intlc{'Vision'} = "72";
|
||
|
$intla{'Vision'} = "78";
|
||
|
$intlc{'Goals'} = "79";
|
||
|
$intla{'Goals'} = "85";
|
||
|
$intlc{'Procedures'} = "78";
|
||
|
$intla{'Procedures'} = "71";
|
||
|
$intlc{'Roles'} = "84";
|
||
|
$intla{'Roles'} = "70";
|
||
|
print HTMLHeaderPlain("Section 4 - Group Alignment Report");
|
||
|
print "<Center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 4 - Group Alignment Report</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The Degree to which Group Members are in Alignment</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border><tr><th> </th><th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Very Unclear</b></font></th><th> </th>".
|
||
|
"<th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Moderately Unclear</b></font></th><th> </th><th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Moderately Clear</b></font></th>".
|
||
|
"<th> </th><th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Very Clear</b></font></th><th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Group Clarity</b></font></th>".
|
||
|
"<th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Group Approval</b></font></th>".
|
||
|
"<th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Int'l Clarity</b></font></th>".
|
||
|
"<th><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Int'l Approval</b></font></th></tr>\n";
|
||
|
# fill in the rows
|
||
|
my $overall = {'clarity' => 0, 'approval' => 0};
|
||
|
foreach my $row (qw(Purpose Values Vision Goals Procedures Roles)) {
|
||
|
print "<tr><th>$row</th>";
|
||
|
for my $i (0..6) {
|
||
|
print "<td align=\"center\">";
|
||
|
if ($histograms->{$row}->{'Clarity'}->[$i]) {
|
||
|
if ($histograms->{$row}->{'Approval'}->[$i]->[2]) {
|
||
|
print "<img src=\"/graphic/face-smile.gif\">".
|
||
|
"<sub>$histograms->{$row}->{'Approval'}->[$i]->[2]</sub><br>";
|
||
|
}
|
||
|
if ($histograms->{$row}->{'Approval'}->[$i]->[1]) {
|
||
|
print "<img src=\"/graphic/face-red.gif\">".
|
||
|
"<sub>$histograms->{$row}->{'Approval'}->[$i]->[1]</sub><br>";
|
||
|
}
|
||
|
if ($histograms->{$row}->{'Approval'}->[$i]->[0]) {
|
||
|
print "<img src=\"/graphic/face-blue.gif\">".
|
||
|
"<sub>$histograms->{$row}->{'Approval'}->[$i]->[0]</sub>";
|
||
|
}
|
||
|
} else {
|
||
|
print " ";
|
||
|
}
|
||
|
print "</td>";
|
||
|
}
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $claritysum->{$row}->{'value'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $approvalsum->{$row}->{'value'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $intlc{$row};
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $intla{$row};
|
||
|
print "</tr>\n";
|
||
|
}
|
||
|
print "</table>\n<p>Position = Group Clarity</p>\n<p>Countenance = Personal Approval</p>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub CommEffectSummary {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &CommEffectData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
my @cols = ("Purpose","Values","Vision","Goals","Procedures","Roles");
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print HTMLHeaderPlain("Section 4 - Group Alignment Summary");
|
||
|
print "<Center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 4 - Group Alignment Summary</i></b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The Degree to which Group Members are in Alignment</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Summary for Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr>\n<th> </th>\n";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th colspan=2>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
print "<tr>\n<td> </td>\n";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<td align=center><font size=-1><b>Clarity</b></font></td><td><font size=-1><b>Approval</b></font></td>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
print "<tr><td>Overall</td>";
|
||
|
foreach my $col (@cols) {
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'organization'}->{'claritysum'}->{$col}->{'value'};
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'organization'}->{'approvalsum'}->{$col}->{'value'};
|
||
|
}
|
||
|
if (exists $data->{'groups'}) {
|
||
|
print "<tr><th colspan=13 align=\"left\">Group Breakdown</th></tr>\n";
|
||
|
print "<tr><th>Group</th>";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th colspan=2>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "<tr><td>$groups->{$grp}->{'grpnme'}</td>";
|
||
|
foreach my $col (@cols) {
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'groups'}->{$grp}->{'claritysum'}->{$col}->{'value'};
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'groups'}->{$grp}->{'approvalsum'}->{$col}->{'value'};
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
}
|
||
|
}
|
||
|
print "<tr>\n<td rowspan=2><b>International<br>Average</b></td>\n";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th colspan=2>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
print "<tr>";
|
||
|
print "<td align=center>86%</td>";
|
||
|
print "<td align=center>88%</td>";
|
||
|
print "<td align=center>77%</td>";
|
||
|
print "<td align=center>86%</td>";
|
||
|
print "<td align=center>72%</td>";
|
||
|
print "<td align=center>78%</td>";
|
||
|
print "<td align=center>79%</td>";
|
||
|
print "<td align=center>85%</td>";
|
||
|
print "<td align=center>78%</td>";
|
||
|
print "<td align=center>71%</td>";
|
||
|
print "<td align=center>84%</td>";
|
||
|
print "<td align=center>70%</td>";
|
||
|
print "</tr>\n";
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub TrustLevelReport {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = TrustLevelData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
my $histograms = $data->{'organization'}->{'histogram'};
|
||
|
my $trust = $data->{'organization'}->{'trust'};
|
||
|
print HTMLHeaderPlain("Section 2 - Group Trust Level Report");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 2 - Group Trust Level Report</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[801]</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border><tr><th> </th><th> </th><th>Group Trust Level</th><th>Int'l Average</th></tr>\n";
|
||
|
my $baseurl = "/cgi-bin/bargraph.pl?labels=Low::::Medium::::High&title=Trust%20Level&ylabel=Respondents";
|
||
|
$baseurl .= "&xdim=400&ydim=100";
|
||
|
my %intl;
|
||
|
$intl{'Congruence'} = "66";
|
||
|
$intl{'Openness'} = "69";
|
||
|
$intl{'Acceptance'} = "73";
|
||
|
$intl{'Reliability'} = "79";
|
||
|
foreach my $row (qw(Congruence Openness Acceptance Reliability)) {
|
||
|
print "<tr><th>$row</th>";
|
||
|
print "<td><img src=\"$baseurl&values=".join(":",@{$histograms->{$row}})."\"></td>";
|
||
|
printf "<td align=\"center\">%.1f%% </td>\n", $trust->{$row}->{'value'};
|
||
|
printf "<td align=\"center\">%.1f%% </td></tr>\n", $intl{$row};
|
||
|
}
|
||
|
print "</table></b></font>\n";
|
||
|
#printf "<P><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>Overall Group Trust Level</b></font> = %.1f %%.</p>\n",$data->{'organization'}->{'overalltrust'};
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub TrustLevelSummary {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = TrustLevelData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
my @cols = ("Congruence","Openness","Acceptance","Reliability");
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print HTMLHeaderPlain("Section 2 - Group Trust Level Summary");
|
||
|
print "<Center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 2 - Group Trust Level Summary</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[801]</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Summary for Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[800]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th>";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th align=center>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
print "<tr><td>Overall</td>";
|
||
|
foreach my $col (@cols) {
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'organization'}->{'trust'}->{$col}->{'value'};
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
if (exists $data->{'groups'}) {
|
||
|
print "<tr><th colspan=5 align=\"left\">Group Breakdown</th></tr>\n";
|
||
|
print "<tr><th>Group</th>";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "<tr><td align=left>$groups->{$grp}->{'grpnme'}</td>";
|
||
|
foreach my $col (@cols) {
|
||
|
printf "<td align=center>%.1f %%</td>", $data->{'groups'}->{$grp}->{'trust'}->{$col}->{'value'};
|
||
|
}
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
}
|
||
|
print "<tr>\n<td rowspan=2><b>International<br>Average</b></td>\n";
|
||
|
foreach my $col (@cols) {
|
||
|
print "<th align=center>$col</th>";
|
||
|
}
|
||
|
print "</tr>\n";
|
||
|
print "<tr>";
|
||
|
print "<td align=center>66%</td>";
|
||
|
print "<td align=center>69%</td>";
|
||
|
print "<td align=center>73%</td>";
|
||
|
print "<td align=center>79%</td>";
|
||
|
print "</tr>\n";
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub TrustLevelCSV {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = TrustLevelData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
my @cols = ("Congruence","Openness","Acceptance","Reliability");
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print "Content-Disposition: attachment; filename=TrustLevel.csv\n\n";
|
||
|
print "Strategic Alignment Survey,Section 2 - Group Trust Level Summary,";
|
||
|
print "$xlatphrase[801],";
|
||
|
print "$FORM{'orgname'},";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print $FORM{'uberheader'};
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "Summary for Groups:,"
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})));
|
||
|
} else {
|
||
|
print "$xlatphrase[798] $xlatphrase[800]";
|
||
|
}
|
||
|
print ",".$timestamp."\n";
|
||
|
print "Group";
|
||
|
foreach my $col (@cols) {
|
||
|
print ",$col";
|
||
|
}
|
||
|
print "\n";
|
||
|
print "Overall";
|
||
|
foreach my $col (@cols) {
|
||
|
printf ",%.1f %%", $data->{'organization'}->{'trust'}->{$col}->{'value'};
|
||
|
}
|
||
|
print "\n";
|
||
|
if (exists $data->{'groups'}) {
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "$groups->{$grp}->{'grpnme'}";
|
||
|
foreach my $col (@cols) {
|
||
|
printf ",%.1f %%", $data->{'groups'}->{$grp}->{'trust'}->{$col}->{'value'};
|
||
|
}
|
||
|
print "\n";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Aka Gap Analysis
|
||
|
sub ValuesReport {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &ValuesData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
print HTMLHeaderPlain("Section 3 - Values That Build Trust");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 3 - Values That Build Trust</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The gap between Employee Expectation and the degree to <br>which the $xlatphrase[797] operates by these Values</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
$timestamp;
|
||
|
printf "<table border><tr><td>Your Trust Values Gap Score is %.1f",$data->{'organization'}->{'gap'};
|
||
|
#print "<br>World Class Standard ?<br>International Benchmark ?<br>";
|
||
|
print "</td></tr></table>\n";
|
||
|
print "<p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">The graphs below show the Personal Importance and Perceptions of Work Performance".
|
||
|
" for each of the eight values.</font>";
|
||
|
print "<tr><td> </td><th>Gap</th><th>Int'l<br>Avg</th></tr>\n";
|
||
|
my $baseurl = "/cgi-bin/bargraph.pl?labels=Personal%20Importance:Work%20Performance".
|
||
|
"&xdim=500&ydim=60&hbar=1&ymax=11&ymin=0&yticknum=11";
|
||
|
my %intl;
|
||
|
$intl{'Straightforwardness'} = "2.0";
|
||
|
$intl{'Honesty'} = "1.7";
|
||
|
$intl{'Receptivity'} = "1.6";
|
||
|
$intl{'Disclosure'} = "1.8";
|
||
|
$intl{'Respect'} = "1.8";
|
||
|
$intl{'Recognition'} = "2.2";
|
||
|
$intl{'Seeks Excellence'} = "1.5";
|
||
|
$intl{'Keeps Commitments'} = "1.9";
|
||
|
foreach ('Straightforwardness', 'Honesty', 'Receptivity', 'Disclosure', 'Respect',
|
||
|
'Recognition', 'Seeks Excellence', 'Keeps Commitments') {
|
||
|
my $url;
|
||
|
my $pinum = (int(10*$data->{'organization'}->{$_}->{'Personal Importance'}+0.5)/10);
|
||
|
my $wpnum = (int(10*$data->{'organization'}->{$_}->{'Work Performance'}+0.5)/10);
|
||
|
my $diff = $pinum - $wpnum;
|
||
|
$diff = sprintf("%1.1f", $diff);
|
||
|
$url = $baseurl."&values=".$pinum.":";
|
||
|
$url = $url."&values2=:".$wpnum;
|
||
|
print "<tr><th colspan=\"3\" align=\"left\">$_</th></tr>\n";
|
||
|
print "<tr><td><img src=\"$url\"></td><td align=\"center\">$diff</td><td align=\"center\">$intl{$_}</td></tr>\n";
|
||
|
}
|
||
|
print "<tr><th>Total Trust Values Gap</th>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'gap'};
|
||
|
print "<td align=center>13.8</td></tr>\n";
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub ValuesSummary {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &ValuesData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print HTMLHeaderPlain("Section 3 - Values That Build Trust Summary");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 3 - Values That Build Trust Summary</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The gap between Employee Expectation and the degree to <br>which the $xlatphrase[797] operates by these Values</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Summary for Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
print "<tr><td>Overall</td>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'Personal Importance'};
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'Work Performance'};
|
||
|
printf "<td align=center>%.1f</td></tr>\n", $data->{'organization'}->{'gap'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
print "<tr><th colspan=4 align=\"left\">Group Breakdown</th></tr>\n";
|
||
|
print "<tr><th>Group</th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "<tr><td>$groups->{$grp}->{'grpnme'}</td>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'groups'}->{$grp}->{'Personal Importance'};
|
||
|
printf "<td align=center>%.1f</td>", $data->{'groups'}->{$grp}->{'Work Performance'};
|
||
|
printf "<td align=center>%.1f</td></tr>\n", $data->{'groups'}->{$grp}->{'gap'};
|
||
|
}
|
||
|
}
|
||
|
print "<tr><td> </th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
print "<tr><td><b>International Average</b></td>";
|
||
|
printf "<td align=center>%.1f</td>", 74.6;
|
||
|
printf "<td align=center>%.1f</td>", 60.8;
|
||
|
printf "<td align=center>%.1f</td></tr>\n", 13.8;
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub ValuesCSV {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &ValuesData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print "Content-Disposition: attachment; filename=ValuesThatBuildTrust.csv\n\n";
|
||
|
print "Strategic Alignment Survey,Section 3 - Values That Build Trust Summary,";
|
||
|
print "The gap between Employee Expectation and the degree to which the $xlatphrase[797] operates by these Values,";
|
||
|
print "$FORM{'orgname'},";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print $FORM{'uberheader'};
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "Summary for Groups:,"
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})));
|
||
|
} else {
|
||
|
print "$xlatphrase[798] $xlatphrase[799]";
|
||
|
}
|
||
|
print ",".$timestamp."\n";
|
||
|
print "Group,Total Importance,Total Performance,Trust Values Gap\n";
|
||
|
print "Overall,";
|
||
|
printf "%.1f,", $data->{'organization'}->{'Personal Importance'};
|
||
|
printf "%.1f,", $data->{'organization'}->{'Work Performance'};
|
||
|
printf "%.1f\n", $data->{'organization'}->{'gap'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "$groups->{$grp}->{'grpnme'},";
|
||
|
printf "%.1f,", $data->{'groups'}->{$grp}->{'Personal Importance'};
|
||
|
printf "%.1f,", $data->{'groups'}->{$grp}->{'Work Performance'};
|
||
|
printf "%.1f\n", $data->{'groups'}->{$grp}->{'gap'};
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# HBIHBI
|
||
|
# Aka Gap Analysis
|
||
|
sub diversityReport {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &diversityData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
print HTMLHeaderPlain("Section 5 - Values for Diversity");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 5 - Values for Diversity</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The gap between Employee Expectation and the degree to <br>which the $xlatphrase[797] operates by these Values</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
$timestamp;
|
||
|
printf "<table border><tr><td>Your Trust Values Gap Score is %.1f",$data->{'organization'}->{'gap'};
|
||
|
#print "<br>World Class Standard ?<br>International Benchmark ?<br>";
|
||
|
print "</td></tr></table>\n";
|
||
|
print "<p><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">The graphs below show the Personal Importance and Perceptions of Work Performance".
|
||
|
" for each of the five values.</font>";
|
||
|
print "<tr><td> </td><th>Gap</th><th>Int'l<br>Avg</th></tr>\n";
|
||
|
my $baseurl = "/cgi-bin/bargraph.pl?labels=Personal%20Importance:Work%20Performance".
|
||
|
"&xdim=500&ydim=60&hbar=1&ymax=11&ymin=0&yticknum=11&colorscheme=1";
|
||
|
my %intl;
|
||
|
$intl{'Respectfulness'} = "Undef";
|
||
|
$intl{'Speaking Up'} = "Undef";
|
||
|
$intl{'Divergent Thinking'} = "Undef";
|
||
|
$intl{'Freedom from Harassment'} = "Undef";
|
||
|
$intl{'Fairness of Decisions'} = "Undef";
|
||
|
foreach ('Respectfulness', 'Speaking Up', 'Divergent Thinking', 'Freedom from Harassment',
|
||
|
'Fairness of Decisions') {
|
||
|
my $url;
|
||
|
my $pinum = (int(10*$data->{'organization'}->{$_}->{'Personal Importance'}+0.5)/10);
|
||
|
my $wpnum = (int(10*$data->{'organization'}->{$_}->{'Work Performance'}+0.5)/10);
|
||
|
my $diff = $pinum - $wpnum;
|
||
|
$diff = sprintf("%1.1f", $diff);
|
||
|
$url = $baseurl."&values=".$pinum.":";
|
||
|
$url = $url."&values2=:".$wpnum;
|
||
|
print "<tr><th colspan=\"3\" align=\"left\">$_</th></tr>\n";
|
||
|
print "<tr><td><img src=\"$url\"></td><td align=\"center\">$diff</td><td align=\"center\">$intl{$_}</td></tr>\n";
|
||
|
}
|
||
|
print "<tr><th>Total Trust Values Gap</th>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'gap'};
|
||
|
print "<td align=center>13.8</td></tr>\n";
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub diversitySummary {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &diversityData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print HTMLHeaderPlain("Section 5 - Values for Diversity");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 5 - Values for Diversity</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>The gap between Employee Expectation and the degree to <br>which the $xlatphrase[797] operates by these Values</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Summary for Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
print "<tr><td>Overall</td>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'Personal Importance'};
|
||
|
printf "<td align=center>%.1f</td>", $data->{'organization'}->{'Work Performance'};
|
||
|
printf "<td align=center>%.1f</td></tr>\n", $data->{'organization'}->{'gap'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
print "<tr><th colspan=4 align=\"left\">Group Breakdown</th></tr>\n";
|
||
|
print "<tr><th>Group</th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "<tr><td>$groups->{$grp}->{'grpnme'}</td>";
|
||
|
printf "<td align=center>%.1f</td>", $data->{'groups'}->{$grp}->{'Personal Importance'};
|
||
|
printf "<td align=center>%.1f</td>", $data->{'groups'}->{$grp}->{'Work Performance'};
|
||
|
printf "<td align=center>%.1f</td></tr>\n", $data->{'groups'}->{$grp}->{'gap'};
|
||
|
}
|
||
|
}
|
||
|
print "<tr><td> </th><th>Total Importance</th><th>Total Performance</th><th>Trust Values Gap</th></tr>\n";
|
||
|
print "<tr><td><b>International Average</b></td>";
|
||
|
printf "<td align=center>%.1f</td>", 74.6;
|
||
|
printf "<td align=center>%.1f</td>", 60.8;
|
||
|
printf "<td align=center>%.1f</td></tr>\n", 13.8;
|
||
|
print "</table></b></font>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub diversityCSV {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = &diversityData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print "Content-Disposition: attachment; filename=ValuesThatBuildTrust.csv\n\n";
|
||
|
print "Strategic Alignment Survey,Section 5 - Values for Diversity,";
|
||
|
print "The gap between Employee Expectation and the degree to which the $xlatphrase[797] operates by these Values,";
|
||
|
print "$FORM{'orgname'},";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print $FORM{'uberheader'};
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "Summary for Groups:,"
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})));
|
||
|
} else {
|
||
|
print "$xlatphrase[798] $xlatphrase[799]";
|
||
|
}
|
||
|
print ",".$timestamp."\n";
|
||
|
print "Group,Total Importance,Total Performance,Trust Values Gap\n";
|
||
|
print "Overall,";
|
||
|
printf "%.1f,", $data->{'organization'}->{'Personal Importance'};
|
||
|
printf "%.1f,", $data->{'organization'}->{'Work Performance'};
|
||
|
printf "%.1f\n", $data->{'organization'}->{'gap'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "$groups->{$grp}->{'grpnme'},";
|
||
|
printf "%.1f,", $data->{'groups'}->{$grp}->{'Personal Importance'};
|
||
|
printf "%.1f,", $data->{'groups'}->{$grp}->{'Work Performance'};
|
||
|
printf "%.1f\n", $data->{'groups'}->{$grp}->{'gap'};
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
sub KindsOfPeopleReport {
|
||
|
my $intl_reb_group;
|
||
|
my $intl_comp_group;
|
||
|
my $intl_dir_group;
|
||
|
my $intl_reb_self;
|
||
|
my $intl_comp_self;
|
||
|
my $intl_dir_self;
|
||
|
|
||
|
my $intl_reb_diff;
|
||
|
my $intl_comp_diff;
|
||
|
my $intl_dir_diff;
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = KindsOfPeopleData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
print HTMLHeaderPlain("Section 1 - Kinds of People");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 1 - Kinds of People</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
my $url;
|
||
|
if (exists $data->{'self'} && $data->{'self'} != {}) {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[943]</b></font><br>\n";
|
||
|
print "<table>";
|
||
|
my @self = @{$data->{'self'}}{'Rebellious','Compliant','Self-Directed'};
|
||
|
$url = "/cgi-bin/piechart3.5.pl?values=".
|
||
|
join(':',map(int($_+0.5),@self)).
|
||
|
"&labels=Rebellious:Compliant:Self-Directed";
|
||
|
print "<tr><td><img src=\"$url\"></td></tr>\n";
|
||
|
print "</table>\n";
|
||
|
print "<br><br>\n";
|
||
|
}
|
||
|
if (exists $data->{'organization'}) {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[802]</b></font><br>\n";
|
||
|
print "<table>";
|
||
|
my @other = @{$data->{'organization'}}{'Rebellious','Compliant','Self-Directed'};
|
||
|
$url = "/cgi-bin/piechart3.5.pl?values=".
|
||
|
join(':',map(int(10*$_+0.5)/10,@other)).
|
||
|
"&labels=Rebellious:Compliant:Self-Directed";
|
||
|
|
||
|
$intl_reb_group = 11;
|
||
|
$intl_comp_group = 27;
|
||
|
$intl_dir_group = 62;
|
||
|
$intl_reb_self = 0;
|
||
|
$intl_comp_self = 6.1;
|
||
|
$intl_dir_self = 93.9;
|
||
|
|
||
|
$intl_reb_diff = $intl_reb_self - $intl_reb_group;
|
||
|
$intl_comp_diff = $intl_comp_self - $intl_comp_group;
|
||
|
$intl_dir_diff = $intl_dir_self - $intl_dir_group;
|
||
|
|
||
|
print "<tr><td><img src=\"$url\"></td></tr>\n";
|
||
|
print "</table>\n";
|
||
|
print "<br><br>\n";
|
||
|
}
|
||
|
if (exists $data->{'self'}) {
|
||
|
print "<p><table border=2>\n";
|
||
|
print "<tr><td>";
|
||
|
print "<table border>\n";
|
||
|
print "<tr><td nowrap colspan=2><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Overall Self Values</b></font></td><td nowrap><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Int'l Average</b></font></td></tr>\n";
|
||
|
printf "<tr><th>Rebellious</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_reb_self%</td></tr>\n", $data->{'self'}->{'Rebellious'};
|
||
|
#printf "<tr><th>Rebellious</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Rebellious'};
|
||
|
printf "<tr><th>Compliant</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_comp_self%</td></tr>\n", $data->{'self'}->{'Compliant'};
|
||
|
#printf "<tr><th>Compliant</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Compliant'};
|
||
|
printf "<tr><th>Self-Directed</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_dir_self%</td></tr>\n", $data->{'self'}->{'Self-Directed'};
|
||
|
#printf "<tr><th>Self-Directed</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Self-Directed'};
|
||
|
print "</table></b></font>\n";
|
||
|
print "</td><td>\n";
|
||
|
}
|
||
|
print "<table border>\n";
|
||
|
print "<tr><td nowrap colspan=2><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Overall Group Values</b></font></td><td nowrap><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Int'l Average</b></font></td></tr>\n";
|
||
|
printf "<tr><th>Rebellious</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_reb_group%</td></tr>\n", $data->{'organization'}->{'Rebellious'};
|
||
|
printf "<tr><th>Compliant</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_comp_group%</td></tr>\n", $data->{'organization'}->{'Compliant'};
|
||
|
printf "<tr><th>Self-Directed</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_dir_group%</td></tr>\n", $data->{'organization'}->{'Self-Directed'};
|
||
|
print "</table></b></font>\n";
|
||
|
if (exists $data->{'self'}) {
|
||
|
print "</td><td>\n";
|
||
|
print "<table border>\n";
|
||
|
print "<tr><td nowrap colspan=2><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Self - Group Values</b></font></td><td nowrap><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b>Int'l Average</b></font></td></tr>\n";
|
||
|
printf "<tr><th>Rebellious</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_reb_diff%</td></tr>\n", $data->{'self'}->{'Rebellious'} - $data->{'organization'}->{'Rebellious'};
|
||
|
#printf "<tr><th>Rebellious</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Rebellious'} - $data->{'organization'}->{'Rebellious'};
|
||
|
printf "<tr><th>Compliant</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_comp_diff%</td></tr>\n", $data->{'self'}->{'Compliant'} - $data->{'organization'}->{'Compliant'};
|
||
|
#printf "<tr><th>Compliant</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Compliant'} - $data->{'organization'}->{'Compliant'};
|
||
|
printf "<tr><th>Self-Directed</th><td nowrap>%.1f %%</td><td nowrap align=center>$intl_dir_diff%</td></tr>\n", $data->{'self'}->{'Self-Directed'} - $data->{'organization'}->{'Self-Directed'};
|
||
|
#printf "<tr><th>Self-Directed</th><td nowrap>%.1f %%</td><td nowrap align=center>-</td></tr>\n", $data->{'self'}->{'Self-Directed'} - $data->{'organization'}->{'Self-Directed'};
|
||
|
print "</table></b></font>\n";
|
||
|
print "</td></tr></table></p>\n";
|
||
|
}
|
||
|
if (!(exists $data->{'self'}) && !(exists $data->{'organization'})) {
|
||
|
print "<h1>No valid Data</h1>\n";
|
||
|
}
|
||
|
#print "<pre>".Dumper($data)."</pre>\n";
|
||
|
print HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub KindsOfPeopleSummary {
|
||
|
my $intl_reb_group = 11;
|
||
|
my $intl_comp_group = 27;
|
||
|
my $intl_dir_group = 62;
|
||
|
my $intl_reb_self = 0;
|
||
|
my $intl_comp_self = 6.1;
|
||
|
my $intl_dir_self = 93.9;
|
||
|
|
||
|
my $intl_reb_diff = $intl_reb_self - $intl_reb_group;
|
||
|
my $intl_comp_diff = $intl_comp_self - $intl_comp_group;
|
||
|
my $intl_dir_diff = $intl_dir_self - $intl_dir_group;
|
||
|
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = KindsOfPeopleData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print HTMLHeaderPlain("Section 1 - Kinds of People Summary");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Section 1 - Kinds of People Summary</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Summary for Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print "$timestamp<br>";
|
||
|
if (exists $data->{'self'} && $data->{'self'} != {}) {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[943]</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th><th>Rebellious</th><th>Compliant</th><th>Self-Directed</th></tr>\n";
|
||
|
print "<tr><td>Overall Self Values</td>";
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'self'}->{'Rebellious'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'self'}->{'Compliant'};
|
||
|
printf "<td align=\"center\">%.1f %%</td></tr>\n", $data->{'self'}->{'Self-Directed'};
|
||
|
print "<tr><td><b>International Average</b></td><td align=center>$intl_reb_self%</td><td align=center>$intl_comp_self%</td><td align=center>$intl_dir_self%</td></tr>\n";
|
||
|
print "</table></b></font><br><br>\n";
|
||
|
}
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>$xlatphrase[802]</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th><th>Rebellious</th><th>Compliant</th><th>Self-Directed</th></tr>\n";
|
||
|
print "<tr><td>Overall Group Values</td>";
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'organization'}->{'Rebellious'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'organization'}->{'Compliant'};
|
||
|
printf "<td align=\"center\">%.1f %%</td></tr>\n", $data->{'organization'}->{'Self-Directed'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
print "<tr><th colspan=4 align=\"left\">Group Breakdown</th></tr>\n";
|
||
|
print "<tr><th>Group</th><th>Rebellious</th><th>Compliant</th><th>Self-Directed</th></tr>\n";
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "<tr><td>$groups->{$grp}->{'grpnme'}</td>";
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $data->{'groups'}->{$grp}->{'Rebellious'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>\n", $data->{'groups'}->{$grp}->{'Compliant'};
|
||
|
printf "<td align=\"center\">%.1f %%</td></tr>\n", $data->{'groups'}->{$grp}->{'Self-Directed'};
|
||
|
}
|
||
|
}
|
||
|
print "<tr><td> </th><th>Rebellious</th><th>Compliant</th><th>Self-Directed</th></tr>\n";
|
||
|
print "<tr><td><b>International Average</b></td><td align=center>$intl_reb_group%</td><td align=center>$intl_comp_group%</td><td align=center>$intl_dir_group%</td></tr>\n";
|
||
|
print "</table></b></font>\n";
|
||
|
|
||
|
if (exists $data->{'self'} && $data->{'self'} != {}) {
|
||
|
print "<br><br><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b>Perception Differences</b></font><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><b><table border>\n";
|
||
|
print "<tr><td> </th><th>Rebellious</th><th>Compliant</th><th>Self-Directed</th></tr>\n";
|
||
|
print "<tr><td>Self - Group Values</td>";
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'self'}->{'Rebellious'} - $data->{'organization'}->{'Rebellious'};
|
||
|
printf "<td align=\"center\">%.1f %%</td>", $data->{'self'}->{'Compliant'} - $data->{'organization'}->{'Compliant'};
|
||
|
printf "<td align=\"center\">%.1f %%</td></tr>\n", $data->{'self'}->{'Self-Directed'} - $data->{'organization'}->{'Self-Directed'};
|
||
|
print "<tr><td><b>International Average</b></td><td align=center>$intl_reb_diff%</td><td align=center>$intl_comp_diff%</td><td align=center>$intl_dir_diff%</td></tr>\n";
|
||
|
print "</table></b></font><br><br>\n";
|
||
|
}
|
||
|
|
||
|
print HTMLFooter();
|
||
|
|
||
|
}
|
||
|
|
||
|
sub KindsOfPeopleCSV {
|
||
|
my ($idlist,$groups,$timestamp) = @_;
|
||
|
my $data = KindsOfPeopleData($CLIENT{'clid'},$TEST{'id'},$idlist,$groups);
|
||
|
$groups = getGroups($CLIENT{'clid'});
|
||
|
print "Content-Disposition: attachment; filename=KindsOfPeople.csv\n\n";
|
||
|
print "Strategic Alignment Survey,Section 1 - Kinds of People Summary,$xlatphrase[802],$FORM{'orgname'},";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print $FORM{'uberheader'};
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "Summary for Groups:,"
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})));
|
||
|
} else {
|
||
|
print "$xlatphrase[798] $xlatphrase[799]";
|
||
|
}
|
||
|
print ",".$timestamp."\n";
|
||
|
print "Group,Rebellious,Compliant,Self-Directed\n";
|
||
|
print "Overall,";
|
||
|
printf "%.1f %%,", $data->{'organization'}->{'Rebellious'};
|
||
|
printf "%.1f %%,", $data->{'organization'}->{'Compliant'};
|
||
|
printf "%.1f %%\n", $data->{'organization'}->{'Self-Directed'};
|
||
|
if (exists $data->{'groups'}) {
|
||
|
foreach my $grp (sort keys %{$data->{'groups'}}) {
|
||
|
print "$groups->{$grp}->{'grpnme'},";
|
||
|
printf "%.1f %%,", $data->{'groups'}->{$grp}->{'Rebellious'};
|
||
|
printf "%.1f %%,", $data->{'groups'}->{$grp}->{'Compliant'};
|
||
|
printf "%.1f %%\n", $data->{'groups'}->{$grp}->{'Self-Directed'};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
sub CommentsReport {
|
||
|
my ($idlist, $timestamp, $bycat) = @_;
|
||
|
my @filelist = &get_test_result_files($testcomplete, $CLIENT{'clid'},$TEST{'id'});
|
||
|
my @comments;
|
||
|
for (my $i=0; $i<=59; $i++) {$comments[$i] = [];}
|
||
|
my @questions = map([split(/&/,$_)],&get_question_list($TEST{'id'},$CLIENT{'clid'}));
|
||
|
foreach (@questions) {$_->[4] =~ s/:::.*$//;}
|
||
|
foreach my $file (@filelist) {
|
||
|
my $user = $file;
|
||
|
$user =~ s/.$TEST{'id'}$//;
|
||
|
$user =~ s/^$CLIENT{'clid'}.//;
|
||
|
if (defined $idlist and not $idlist->{$user}) {
|
||
|
next;
|
||
|
}
|
||
|
my ($answers,$usercomm) = &get_survey_results( $CLIENT{'clid'}, $user, $TEST{'id'});
|
||
|
for (my $i=1; $i<=58; $i++) {
|
||
|
if ($usercomm->[$i] == -1) {
|
||
|
$comments[$i] = -1;
|
||
|
} elsif ($usercomm->[$i]) {
|
||
|
push @{$comments[$i]},$usercomm->[$i];
|
||
|
}
|
||
|
}
|
||
|
if ($answers->[59]) {
|
||
|
push @{$comments[59]},$answers->[59];
|
||
|
}
|
||
|
}
|
||
|
print HTMLHeaderPlain("Comments Report");
|
||
|
print "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"5\"><b>Strategic Alignment Survey<br>Comments Report</b></font><br><br>\n";
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$FORM{'orgname'}</b></font><br>\n";
|
||
|
if ($FORM{'uberheader'} ne "") {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>".$FORM{'uberheader'}."</b></font><br>\n";
|
||
|
} elsif (defined $idlist) {
|
||
|
my $groups = getGroups($CLIENT{'clid'});
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>Groups: "
|
||
|
.join(", ",map($groups->{$_}->{'grpnme'},split(/,/,$FORM{'idlist'})))."</b></font><br>\n";
|
||
|
} else {
|
||
|
print "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$xlatphrase[798] $xlatphrase[799]</b></font><br>\n";
|
||
|
}
|
||
|
print $timestamp;
|
||
|
print "</center>\n";
|
||
|
print "<blockquote>\n";
|
||
|
|
||
|
my @outary = ();
|
||
|
for (my $i=1; $i <=59; $i++) {
|
||
|
if ($comments[$i] == -1) {
|
||
|
# inactive question
|
||
|
next;
|
||
|
}
|
||
|
$outary[$i] = "<hr width=\"100%\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"><b>\n";
|
||
|
$outary[$i] .= "$questions[$i]->[0] - $questions[$i]->[4]</b><p>\n";
|
||
|
if (@{$comments[$i]}) {
|
||
|
$outary[$i] .= "<ul>\n";
|
||
|
foreach (@{$comments[$i]}) {
|
||
|
$outary[$i] .= "<li>$_</li>\n";
|
||
|
}
|
||
|
$outary[$i] .= "</ul>\n";
|
||
|
} else {
|
||
|
$outary[$i] .= "<ul><li><small><i>No Comments</i></small></li></ul>\n";
|
||
|
}
|
||
|
$outary[$i] .= "</font>\n";
|
||
|
}
|
||
|
|
||
|
# Read in .rgo file which defines question presentation order
|
||
|
my $out;
|
||
|
my $lookupfile = join($pathsep,$dataroot,"IntegroSAS.rgo");
|
||
|
if ($bycat && -e $lookupfile) {
|
||
|
my $fh = new FileHandle;
|
||
|
if ($fh->open($lookupfile)) {
|
||
|
$out = "";
|
||
|
my @lines = <$fh>;
|
||
|
$fh->close();
|
||
|
shift @lines;
|
||
|
foreach (@lines) {
|
||
|
chomp;
|
||
|
my @line = split(/\&/,$_);
|
||
|
my $section = shift @line;
|
||
|
if ($section ne "") {
|
||
|
$out .= "<tr><td colspan=6><hr width=\"100\%\"></td></tr>\n";
|
||
|
$out .= "<tr><td colspan=6><font size=+1><b>$section</b></font></td></tr>\n";
|
||
|
}
|
||
|
foreach my $sub (@line) {
|
||
|
my ($subheader, $quess) = split(/:/,$sub);
|
||
|
if ($subheader ne "") {
|
||
|
$out .= "<hr width=100%><tr><td colspan=6><b>$subheader:</b></td></tr>\n";
|
||
|
}
|
||
|
my @ques = split(/\,/,$quess);
|
||
|
foreach my $quesid (@ques) {
|
||
|
$out .= $outary[$quesid];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
print $out;
|
||
|
}
|
||
|
} else {
|
||
|
for (1 .. $#outary) {
|
||
|
print $outary[$_];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
print "<hr width=\"100%\">\n";
|
||
|
print "</blockquote>\n";
|
||
|
#print "<pre>".Dumper(\@questions,\@comments)."</pre>\n";
|
||
|
print "<center>".HTMLFooter();
|
||
|
}
|
||
|
|
||
|
sub print_test_chooser {
|
||
|
my @trecs = @_;
|
||
|
my ($testscompleted, $testsinprogress, $testspending, $href, $tstoption, $tstoptions);
|
||
|
my $js = "function setTest(oform,test) {\n\t".
|
||
|
"oform.tstid.value=test;\n\t".
|
||
|
"oform.submit();\n};\n";
|
||
|
for (0 .. $#trecs) {
|
||
|
my ($desc,$id) = split(/&/, $trecs[$_]);
|
||
|
$testscompleted = CountTestFiles($testcomplete,$CLIENT{'clid'},$id);
|
||
|
$testsinprogress = CountTestFiles($testinprog, $CLIENT{'clid'},$id);
|
||
|
$testspending = CountTestFiles($testpending, $CLIENT{'clid'},$id);
|
||
|
$href="javascript:setTest(document.testform1,\'$id\')\;";
|
||
|
$tstoption =" <TR>
|
||
|
<TD valign=top><FONT SIZE=2><a href=\"$href\">$id</a></FONT></TD>
|
||
|
<TD valign=top><FONT SIZE=2>$desc</FONT></TD>
|
||
|
<TD align=right valign=top><FONT SIZE=2>$testscompleted</FONT></TD>
|
||
|
<TD align=right valign=top><FONT SIZE=2>$testsinprogress</FONT></TD>
|
||
|
<TD align=right valign=top><FONT SIZE=2>$testspending</FONT></TD>
|
||
|
</TR>\n";
|
||
|
$tstoptions = join('', $tstoptions, $tstoption);
|
||
|
}
|
||
|
print HTMLHeader("Integro Learning Custom Reports", $js);
|
||
|
print "<CENTER><B>Please choose the survey for which you would like reports:</B><br>
|
||
|
<form name=\"testform1\" action=\"/cgi-bin/creports.pl\" method=\"Post\">
|
||
|
<input type=\"hidden\" name=\"tid\" value=\"$SESSION{'tid'}\">
|
||
|
<input type=\"hidden\" name=\"tstid\" value=\"\">
|
||
|
<input type=hidden name=\"rptno\" value=\"$FORM{'rptno'}\">
|
||
|
</form>
|
||
|
<TABLE cellpadding=1 cellspacing=1 border=0 width=\"100\%\">
|
||
|
<TR><TD colspan=5><HR WIDTH=\"100\%\"></TD></TR>
|
||
|
<TR>
|
||
|
<TD valign=top><B><FONT SIZE=1>Test ID</FONT></B></TD>
|
||
|
<TD valign=top><B><FONT SIZE=1>Description</FONT></B></TD>
|
||
|
<TD align=right valign=top><B><FONT SIZE=1>Cmp</FONT></B></TD>
|
||
|
<TD align=right valign=top><B><FONT SIZE=1>InP</FONT></B></TD>
|
||
|
<TD align=right valign=top><B><FONT SIZE=1>Pnd</FONT></B></TD>
|
||
|
</TR>
|
||
|
<TR><TD colspan=5><HR WIDTH=\"100\%\"></TD></TR>
|
||
|
$tstoptions
|
||
|
<TR><TD colspan=5><HR WIDTH=\"100\%\"></TD></TR>
|
||
|
</TABLE>
|
||
|
";
|
||
|
print HTMLFooter();
|
||
|
exit();
|
||
|
}
|