/** * Returns itself when evaluating. */ function evaluate() { try { $val = $this->getParameters()->evaluate(); //Dates should be formated before being cast to a string if ($val instanceof SugarDateTime && !empty($val->def)) { global $timedate; require_once "include/Expressions/Expression/Date/DateExpression.php"; $date = DateExpression::roundTime($val); if ($val->def['type'] == "date") { //Date $date->setTimezone(new DateTimeZone("UTC")); $retstr = $timedate->asUserDate($date); } else { //Datetime $retstr = $timedate->asUser($date); } } else { $retstr = $val . ""; } } catch (Exception $e) { $GLOBALS['log']->warn('DefineStringExpression::evaluate() returned empty string due to received exception: ' . $e->getMessage()); $retstr = ""; } return $retstr; }
/** * Return current month */ function evaluate() { $params = DateExpression::parse($this->getParameters()->evaluate()); if (!$params) { return false; } return $params->month; }
/** * Returns number of hours from now until the specified date. */ public function evaluate() { $params = DateExpression::parse($this->getParameters()->evaluate()); if (!$params) { return false; } $now = TimeDate::getInstance()->getNow(true); $tsdiff = $params->ts - $now->ts; return (int) ($tsdiff / 3600); }
/** * Returns itself when evaluating. */ function evaluate() { $params = $this->getParameters(); $a = DateExpression::parse($params[0]->evaluate()); $b = DateExpression::parse($params[1]->evaluate()); if (empty($a) || empty($b)) { return false; } if ($a < $b) { return AbstractExpression::$TRUE; } return AbstractExpression::$FALSE; }
/** * Returns the entire enumeration bare. */ function evaluate() { $params = $this->getParameters(); $date = DateExpression::parse($params[0]->evaluate()); if (!$date) { return false; } $days = $params[1]->evaluate(); if ($days < 0) { return $date->modify("{$days} day"); } return $date->modify("+{$days} day"); }
/** * Returns the entire enumeration bare. */ public function evaluate() { $date = $this->getParameters()->evaluate(); $params = DateExpression::parse($date); if (!$params) { return false; } // if the date expression doesn't have a time on it or the def is type of 'date' then force // the time to be midnight on that day if (!DateExpression::hasTime($date) || isset($date->def) && $date->def['type'] === 'date') { $params->setTime(0, 0, 0); } return $params->getTimestamp(); }
/** * Returns the entire enumeration bare. */ function evaluate() { $params = DateExpression::parse($this->getParameters()->evaluate()); if (!$params) { return false; } $now = TimeDate::getInstance()->getNow(true); //set the time to 0, as we are returning an integer based on the date. $params->setTime(0, 0, 0); // this will be the timestamp delimiter of the day. $tsdiff = $params->ts - $now->ts; $diff = (int) ceil($tsdiff / 86400); return $diff; }
/** * Applies the Action to the target. * * @param SugarBean $target */ function fire(&$target) { set_error_handler('handleExpressionError', E_ERROR); try { $result = Parser::evaluate($this->expression, $target)->evaluate(); } catch (Exception $e) { $GLOBALS['log']->fatal("Exception evaluating expression in SetValueAction, {$this->expression} : {$e->getMessage()}\n{$e->getTraceAsString()}"); $result = ""; } restore_error_handler(); $field = $this->targetField; $def = array(); if (!empty($target->field_defs[$field])) { $def = $target->field_defs[$field]; } if ($result instanceof DateTime) { global $timedate; if (isset($def['type']) && ($def['type'] == "datetime" || $def['type'] == "datetimecombo")) { $result = DateExpression::roundTime($result); $target->{$field} = $timedate->asDb($result); } else { if (isset($def['type']) && $def['type'] == "date") { $result = DateExpression::roundTime($result); $target->{$field} = $timedate->asDbDate($result); } else { //If the target field isn't a date, convert it to a user formated string if (isset($result->isDate) && $result->isDate) { $target->{$field} = $timedate->asUserDate($result); } else { $target->{$field} = $timedate->asUser($result); } } } } else { if (isset($def['type']) && $def['type'] == "bool") { $target->{$field} = $result === true || $result === AbstractExpression::$TRUE; } else { if (is_array($result) && $def['type'] != 'multienum') { $target->{$field} = implode(', ', $result); } else { $target->{$field} = $result; } } } }
/** * Get the date from date expression, understands all strftime() formats */ function evaluate() { $params = $this->getParameters()->evaluate(); return DateExpression::parse($params); }