diff --git a/core/attributedef.class.inc.php b/core/attributedef.class.inc.php index 2aef62370..4e6017c21 100644 --- a/core/attributedef.class.inc.php +++ b/core/attributedef.class.inc.php @@ -8988,12 +8988,15 @@ class AttributeStopWatch extends AttributeDefinition switch ($sThresholdCode) { case 'deadline': if ($value) { - if (is_int($value)) { + if (is_numeric($value)) { + if (!is_int($value)) { + $value = intval($value); + } $sDate = date(AttributeDateTime::GetInternalFormat(), $value); $sRet = AttributeDeadline::FormatDeadline($sDate); - } else { - $sRet = $value; - } + } else { + $sRet = $value; + } } else { $sRet = ''; } diff --git a/tests/php-unit-tests/unitary-tests/core/AttributeDefinitionTest.php b/tests/php-unit-tests/unitary-tests/core/AttributeDefinitionTest.php index 5c4e620a4..48b638fac 100644 --- a/tests/php-unit-tests/unitary-tests/core/AttributeDefinitionTest.php +++ b/tests/php-unit-tests/unitary-tests/core/AttributeDefinitionTest.php @@ -340,4 +340,20 @@ PHP return $oAttribute; } + public function testDisplayStopwatch() + { + $aUserRequestCustomParams = [ + 'title' => "Test DisplayStopwatch", + ]; + $oUserRequest = $this->CreateUserRequest(456, $aUserRequestCustomParams); + $oAttDef = MetaModel::GetAttributeDef(get_class($oUserRequest), 'ttr_escalation_deadline'); + $iStartDate = time() - 200; + + $oStopwatch = $oUserRequest->Get('ttr'); + $oStopwatch->DefineThreshold(100, $iStartDate); + $oUserRequest->Set('ttr', $oStopwatch); + $value = $oUserRequest->Get('ttr_escalation_deadline'); + $sRet = $oAttDef->GetAsPlainText($value, $oUserRequest); + self::assertEquals('Missed by 3 min', $sRet); + } }