. * * This file is a part of iCalcreator. */ namespace Kigkonsult\Icalcreator\Traits; use Kigkonsult\Icalcreator\Util\Util; use function number_format; /** * REQUEST-STATUS property functions * * @author Kjell-Inge Gustafsson, kigkonsult * @since 2.22.23 - 2017-02-19 */ trait REQUEST_STATUStrait { /** * @var array component property REQUEST-STATUS value * @access protected */ protected $requeststatus = null; /** * @var string Request-status properties * @access private * @static */ private static $STATCODE = 'statcode'; private static $TEXT = 'text'; private static $EXTDATA = 'extdata'; /** * Return formatted output for calendar component property request-status * * @return string */ public function createRequestStatus() { if( empty( $this->requeststatus )) { return null; } $output = null; $lang = $this->getConfig( Util::$LANGUAGE ); foreach( $this->requeststatus as $rx => $rStat ) { if( empty( $rStat[Util::$LCvalue][self::$STATCODE] )) { if( $this->getConfig( Util::$ALLOWEMPTY )) { $output .= Util::createElement( Util::$REQUEST_STATUS ); } continue; } $content = number_format( (float) $rStat[Util::$LCvalue][self::$STATCODE], 2, Util::$DOT, null ); $content .= Util::$SEMIC . Util::strrep( $rStat[Util::$LCvalue][self::$TEXT] ); if( isset( $rStat[Util::$LCvalue][self::$EXTDATA] )) { $content .= Util::$SEMIC . Util::strrep( $rStat[Util::$LCvalue][self::$EXTDATA] ); } $output .= Util::createElement( Util::$REQUEST_STATUS, Util::createParams( $rStat[Util::$LCparams], [ Util::$LANGUAGE ], $lang ), $content ); } return $output; } /** * Set calendar component property request-status * * @param float $statcode * @param string $text * @param string $extdata * @param array $params * @param integer $index * @return bool */ public function setRequestStatus( $statcode, $text, $extdata = null, $params = null, $index = null ) { if( empty( $statcode ) || empty( $text )) { if( $this->getConfig( Util::$ALLOWEMPTY )) { $statcode = $text = Util::$SP0; } else { return false; } } $input = [ self::$STATCODE => $statcode, self::$TEXT => Util::trimTrailNL( $text ), ]; if( $extdata ) { $input[self::$EXTDATA] = Util::trimTrailNL( $extdata ); } Util::setMval( $this->requeststatus, $input, $params, false, $index ); return true; } }