mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-25 03:28:45 +02:00
Internal: allow to stop a stop watch at a specified time (case exchange) -requires testing
SVN:trunk[3749]
This commit is contained in:
@@ -412,7 +412,7 @@ class ormStopWatch
|
|||||||
/**
|
/**
|
||||||
* Stop counting if not already done
|
* Stop counting if not already done
|
||||||
*/
|
*/
|
||||||
public function Stop($oObject, $oAttDef)
|
public function Stop($oObject, $oAttDef, $iNow = null)
|
||||||
{
|
{
|
||||||
if (is_null($this->iLastStart))
|
if (is_null($this->iLastStart))
|
||||||
{
|
{
|
||||||
@@ -420,13 +420,18 @@ class ormStopWatch
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_null($iNow))
|
||||||
|
{
|
||||||
|
$iNow = time();
|
||||||
|
}
|
||||||
|
|
||||||
if (class_exists('WorkingTimeRecorder'))
|
if (class_exists('WorkingTimeRecorder'))
|
||||||
{
|
{
|
||||||
$sClass = get_class($oObject);
|
$sClass = get_class($oObject);
|
||||||
$sAttCode = $oAttDef->GetCode();
|
$sAttCode = $oAttDef->GetCode();
|
||||||
WorkingTimeRecorder::Start($oObject, time(), "ormStopWatch-TimeSpent-$sAttCode", 'Core:ExplainWTC:StopWatch-TimeSpent', array("Class:$sClass/Attribute:$sAttCode"), true /*cumulative*/);
|
WorkingTimeRecorder::Start($oObject, $iNow, "ormStopWatch-TimeSpent-$sAttCode", 'Core:ExplainWTC:StopWatch-TimeSpent', array("Class:$sClass/Attribute:$sAttCode"), true /*cumulative*/);
|
||||||
}
|
}
|
||||||
$iElapsed = $this->ComputeDuration($oObject, $oAttDef, $this->iLastStart, time());
|
$iElapsed = $this->ComputeDuration($oObject, $oAttDef, $this->iLastStart, $iNow);
|
||||||
$this->iTimeSpent = $this->iTimeSpent + $iElapsed;
|
$this->iTimeSpent = $this->iTimeSpent + $iElapsed;
|
||||||
if (class_exists('WorkingTimeRecorder'))
|
if (class_exists('WorkingTimeRecorder'))
|
||||||
{
|
{
|
||||||
@@ -435,7 +440,7 @@ class ormStopWatch
|
|||||||
|
|
||||||
foreach ($this->aThresholds as $iPercent => &$aThresholdData)
|
foreach ($this->aThresholds as $iPercent => &$aThresholdData)
|
||||||
{
|
{
|
||||||
if (!is_null($aThresholdData['deadline']) && (time() > $aThresholdData['deadline']))
|
if (!is_null($aThresholdData['deadline']) && ($iNow > $aThresholdData['deadline']))
|
||||||
{
|
{
|
||||||
if ($aThresholdData['overrun'] > 0)
|
if ($aThresholdData['overrun'] > 0)
|
||||||
{
|
{
|
||||||
@@ -445,7 +450,7 @@ class ormStopWatch
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// First stop after the deadline has been passed
|
// First stop after the deadline has been passed
|
||||||
$iOverrun = $this->ComputeDuration($oObject, $oAttDef, $aThresholdData['deadline'], time());
|
$iOverrun = $this->ComputeDuration($oObject, $oAttDef, $aThresholdData['deadline'], $iNow);
|
||||||
$aThresholdData['overrun'] = $iOverrun;
|
$aThresholdData['overrun'] = $iOverrun;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -453,7 +458,7 @@ class ormStopWatch
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->iLastStart = null;
|
$this->iLastStart = null;
|
||||||
$this->iStopped = time();
|
$this->iStopped = $iNow;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user