3namespace Bitrix\Bizproc\BaseType;
5use Bitrix\Bizproc\FieldType;
6use Bitrix\Main\Application;
7use Bitrix\Main\Localization\Loc;
23 if (is_string($value) &&
Value\Time::isCorrect($value))
25 return new Value\Time($value, \CTimeZone::GetOffset());
35 'callable' =>
'formatValueServer',
39 'callable' =>
'formatValueResponsible',
45 return array_merge(parent::getFormats(),
$formats);
52 return $value->toServerTime()->format(
Value\Time::getFormat());
62 $offset = static::getResponsibleOffset($fieldType);
64 return $value->toUserTime($offset)->format(
Value\Time::getFormat());
72 $value = parent::extractValue($fieldType, $field,
$request);
73 if (is_string($value) && !\CBPHelper::isEmptyValue($value))
80 if (
Value\Time::isCorrect($value))
82 $value =
new Value\Time($value, \CTimeZone::GetOffset());
84 return $value->serialize();
88 'code' =>
'ErrorValue',
89 'message' => Loc::getMessage(
'BPDT_TIME_INVALID'),
98 $offset = \CTimeZone::GetOffset();
99 $timestampA = (
new Value\Time((
string)$valueA, $offset))->getTimestamp();
100 $timestampB = (
new Value\Time((
string)$valueB, $offset))->getTimestamp();
102 return parent::compareValues($timestampA, $timestampB);
107 $name = static::generateControlName($field);
108 $value = static::internalizeValue($fieldType,
'Renderer', $value);
111 $value = $value->toSystemObject()->format(
Value\Time::getRenderFormat());
113 $className = static::generateControlClassName($fieldType, $field);
116 $renderResult .=
'<option value="">' . Loc::getMessage(
'BPDT_TIME_NOT_SET') .
'</option>';
118 for ($hour = 0; $hour < 24; $hour++)
120 $time = (new \Bitrix\Main\Type\DateTime())->setTime($hour, 0);
123 ($value ===
$time->format(
Value\Time::getRenderFormat()))
129 $renderResult .=
'<option value="' . $timeValue .
'"' . $selected .
'>' . $timeText .
'</option>';
131 $time = (new \Bitrix\Main\Type\DateTime())->setTime($hour, 30);
133 ($value ===
$time->format(
Value\Time::getRenderFormat()))
139 $renderResult .=
'<option value="' . $timeValue .
'"' . $selected .
'>' . $timeText .
'</option>';
142 $renderResult .=
'</select>';
144 return $renderResult;
150 $userId = $documentId ? \CBPHelper::extractFirstUser([
'author',
'responsible'], $documentId) :
null;
163 $type = $toTypeClass::getType();
172 $culture = Application::getInstance()->getContext()->getCulture();
180 $currentDate = new \Bitrix\Main\Type\DateTime();
183 ? (
new Value\Time((
string)$value, \CTimeZone::GetOffset()))->toSystemObject()
186 $date->
setDate($currentDate->format(
'Y'), $currentDate->format(
'm'), $currentDate->format(
'd'));
204 ? (string)(new \Bitrix\Bizproc\BaseType\Value\Time((
string)$value, \CTimeZone::GetOffset()))
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static convertTo(FieldType $fieldType, $value, $toTypeClass)
static renderControl(FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
static extractValue(FieldType $fieldType, array $field, array $request)
static internalizeValue(FieldType $fieldType, $context, $value)
static getResponsibleOffset(FieldType $fieldType)
static formatValueResponsible(FieldType $fieldType, $value)
static compareValues($valueA, $valueB)
static formatValueServer(FieldType $fieldType, $value)
static isCorrect(string $timeFormatted)
setDate($year, $month, $day)
static convertFormatToPhp($format)
static isExpression($text)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)