diff --git a/datamodels/2.x/itop-request-mgmt-itil/main.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/main.itop-request-mgmt-itil.php index 600c3aa5b4..19b95387b9 100755 --- a/datamodels/2.x/itop-request-mgmt-itil/main.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/main.itop-request-mgmt-itil.php @@ -15,110 +15,6 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -/** - * Base class for computing TTO or TTR on a ticket - */ -class ResponseTicketSLT -{ - /** - * Determines the shortest SLT, for this ticket, for the given metric. Returns null is no SLT was found - * @param string $sMetric Type of metric 'TTO', 'TTR', etc as defined in the SLT class - * @return hash Array with 'SLT' => name of the SLT selected, 'value' => duration in seconds of the SLT metric, null if no SLT applies to this ticket - */ - protected static function ComputeSLT($oTicket, $sMetric = 'TTO') - { - $iDeadline = null; - if (MetaModel::IsValidClass('SLT')) - { - $sType=get_class($oTicket); - - //echo "
Managing:".$sMetric."-".$this->Get('request_type')."-".$this->Get('importance')."
\n"; - $sOQL = "SELECT SLT AS slt JOIN lnkSLAToSLT AS l1 ON l1.slt_id=slt.id JOIN SLA AS sla ON l1.sla_id=sla.id JOIN lnkCustomerContractToService AS l2 ON l2.sla_id=sla.id JOIN CustomerContract AS sc ON l2.customercontract_id=sc.id WHERE slt.metric = :metric AND l2.service_id = :service AND sc.org_id = :customer AND slt.request_type = :request_type AND slt.priority = :priority"; - - $oSLTSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL), - array(), - array( - 'metric' => $sMetric, - 'service' => $oTicket->Get('service_id'), - 'customer' => $oTicket->Get('org_id'), - 'request_type' => $oTicket->Get('request_type'), - 'priority' => $oTicket->Get('priority'), - ) - ); - $iMinDuration = PHP_INT_MAX; - $sSLTName = ''; - - while($oSLT = $oSLTSet->Fetch()) - { - $iDuration = (int)$oSLT->Get('value'); - $sUnit = $oSLT->Get('unit'); - switch($sUnit) - { - case 'days': - $iDuration = $iDuration * 24; // 24 hours in 1 days - // Fall though - - case 'hours': - $iDuration = $iDuration * 60; // 60 minutes in 1 hour - // Fall though - - case 'minutes': - $iDuration = $iDuration * 60; - } - if ($iDuration < $iMinDuration) - { - $iMinDuration = $iDuration; - $sSLTName = $oSLT->GetName(); - } - } - if ($iMinDuration == PHP_INT_MAX) - { - $iDeadline = null; - } - else - { - // Store $sSLTName to keep track of which SLT has been used - $iDeadline = $iMinDuration - $oTicket->Get('cumulated_pending_period') - $oTicket->Get('cumulated_resolved_period') ; - } - } - return $iDeadline; - } -} - -/** - * Compute the TTO of a ticket - null if the class 'SLT' does not exist - */ -class ResponseTicketTTO extends ResponseTicketSLT implements iMetricComputer -{ - public static function GetDescription() - { - return "Time to own a ticket"; - } - - public function ComputeMetric($oObject) - { - $iRes = $this->ComputeSLT($oObject, 'TTO'); - return $iRes; - } -} - -/** - * Compute the TTR of a ticket - null if the class 'SLT' does not exist - */ -class ResponseTicketTTR extends ResponseTicketSLT implements iMetricComputer -{ - public static function GetDescription() - { - return "Time to resolve a ticket"; - } - - public function ComputeMetric($oObject) - { - $iRes = $this->ComputeSLT($oObject, 'TTR'); - return $iRes; - } -} - -?> \ No newline at end of file +?>