Hello all. I've been working on some code for a few weeks now and it has shaped up fairly well and does what I need it to do for the most part. I have run into an issue that I failed to take into account initially. With that said, let me go ahead and give you some info on what my code does.
The code loads an xml file that contains data about workorders that have been issued by my department. It loops through this xml data and categorizes them into a nice little report for quality tracking purposes. One of the metrics that we track is whether the workorder was responded to and completed on time. In our workorder system, these response and completion times are listed in business hours. (6am through 6pm M-F) That means that 12 hours per day (M-F) should not be counted, and Sat/Sun should not be counted. It should also be compatible with these 2 functions. . .
function Average($par1, $par2)
{ // begin function Average()
if (($par1 != 0) && ($par2 != 0)){
$par1 = strtotime($par1);
$par2 = strtotime($par2);
$par4 = ($par1 - $par2);
return $par4;
}
else
return 0;
} // end function Average()
function Resolve($par1, $par2, $par3)
{ // begin function Resolve()
if ($par2 != 0)
{
$par4 = ($par1 / $par2);
$par4 = ($par4 / 60 / 60);
$par4 = round($par4, 2);
return $par4;
}
} // end function Resolve()
excerpts from my code so you can see how the functions are used are listed below. . .
else if (($Priority == "P1") && (RegionSort($AssignedName, $State) == "Central")){
$P1Central = ($P1Central + 1);
$P1CentralResponseTime = ($P1CentralResponseTime + Average($Arrival, $DateEntered));
$P1CentralResolutionTime = ($P1CentralResolutionTime + Average($DateComplete, $DateEntered));
}
else if (($Priority == "P2") && (RegionSort($AssignedName, $State) == "Central")){
$P2Central = ($P2Central + 1);
$P2CentralResponseTime = ($P2CentralResponseTime + Average($Arrival, $DateEntered));
$P2CentralResolutionTime = ($P2CentralResolutionTime + Average($DateComplete, $DateEntered));
}
else if (($Priority == "P3") && (RegionSort($AssignedName, $State) == "Central")){
$P3Central = ($P3Central + 1);
$P3CentralResponseTime = ($P3CentralResponseTime + Average($Arrival, $DateEntered));
$P3CentralResolutionTime = ($P3CentralResolutionTime + Average($DateComplete, $DateEntered));
}
else if (($Priority == "P4") && (RegionSort($AssignedName, $State) == "Central")){
$P4Central = ($P4Central + 1);
$P4CentralResponseTime = ($P4CentralResponseTime + Average($Arrival, $DateEntered));
$P4CentralResolutionTime = ($P4CentralResolutionTime + Average($DateComplete, $DateEntered));
}
echo "
<center>
<h3>Average Responses</h3>
<table cellpadding=\"3\" cellspacing=\"3\" border=\"3\">
<tr><td> </td><td>P1's</td><td>P2's</td><td>P3's</td><td>P4's</td></tr>
<tr><td>West</td><td>" . Resolve($P1WestResponseTime, $P1West, $P1RT) . "</td><td>" . Resolve($P2WestResponseTime, $P2West, $P2RT) . "</td><td>" . Resolve($P3WestResponseTime, $P3West, $P3RT) . "</td><td>" . Resolve($P4WestResponseTime, $P4West, $P4RT) . "</td></tr>
<tr><td>Central</td><td>" . Resolve($P1CentralResponseTime, $P1Central, $P1RT) . "</td><td>" . Resolve($P2CentralResponseTime, $P2Central, $P2RT) . "</td><td>" . Resolve($P3CentralResponseTime, $P3Central, $P3RT) . "</td><td>" . Resolve($P4CentralResponseTime, $P4Central, $P4RT) . "</td></tr>
<tr><td>East</td><td>" . Resolve($P1EastResponseTime, $P1East, $P1RT) . "</td><td>" . Resolve($P2EastResponseTime, $P2East, $P2RT) . "</td><td>" . Resolve($P3EastResponseTime, $P3East, $P3RT) . "</td><td>" . Resolve($P4EastResponseTime, $P4East, $P4RT) . "</td></tr>
<tr><td>Southeast</td><td>" . Resolve($P1SEResponseTime, $P1SE, $P1RT) . "</td><td>" . Resolve($P2SEResponseTime, $P2SE, $P2RT) . "</td><td>" . Resolve($P3SEResponseTime, $P3SE, $P3RT) . "</td><td>" . Resolve($P4SEResponseTime, $P4SE, $P4RT) . "</td></tr>
<tr><td>Canada</td><td>" . Resolve($P1CAResponseTime, $P1CA, $P1RT) . "</td><td>" . Resolve($P2CAResponseTime, $P2CA, $P2RT) . "</td><td>" . Resolve($P3CAResponseTime, $P3CA, $P3RT) . "</td><td>" . Resolve($P4CAResponseTime, $P4CA, $P4RT) . "</td></tr>
<tr><td>UK</td><td>" . Resolve($P1UKResponseTime, $P1UK, $P1RT) . "</td><td>" . Resolve($P2UKResponseTime, $P2UK, $P2RT) . "</td><td>" . Resolve($P3UKResponseTime, $P3UK, $P3RT) . "</td><td>" . Resolve($P4UKResponseTime, $P4UK, $P4RT) . "</td></tr>
<tr><td>IE</td><td>" . Resolve($P1IEResponseTime, $P1IE, $P1RT) . "</td><td>" . Resolve($P2IEResponseTime, $P2IE, $P2RT) . "</td><td>" . Resolve(($P3IEResponseTime), $P3IE, $P3RT) . "</td><td>" . Resolve($P4IEResponseTime, $P4IE, $P4RT) . "</td></tr>
</table>
</center>
";
Can anyone give me some general ideas for how to control in my reports for 'non-business hours'? Thanks for your input.