public function _timezone($from, $to, $action)
{
switch ($action) {
case static::ACT_CONVERT_TO_OBJECT:
/* @var $from Farm */
$to->timezone = $from->settings[FarmSetting::TIMEZONE];
break;
case static::ACT_CONVERT_TO_ENTITY:
/* @var $to Farm */
if (!in_array($from->timezone, DateTimeZone::listIdentifiers())) {
throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Unknown timezone");
}
$to->settings[FarmSetting::TIMEZONE] = $from->timezone;
break;
case static::ACT_GET_FILTER_CRITERIA:
$farm = new Farm();
$farmSetting = new FarmSetting();
return [AbstractEntity::STMT_FROM => "\n JOIN {$farmSetting->table('fstz')} ON {$farmSetting->columnFarmId('fstz')} = {$farm->columnId()}\n AND {$farmSetting->columnName('fstz')} = " . $farmSetting->qstr('name', FarmSetting::TIMEZONE) . "\n ", AbstractEntity::STMT_WHERE => "{$farmSetting->columnValue('fstz')} = " . $farmSetting->qstr('value', $from->timezone)];
}
}