/** * @param string $modelClassName * @param array $actionData * @param string $workflowType * @return array */ public static function sanitizeActionData($modelClassName, $actionData, $workflowType) { assert('is_string($modelClassName)'); assert('is_array($actionData)'); assert('is_string($workflowType)'); if (!isset($actionData[ActionForWorkflowForm::ACTION_ATTRIBUTES])) { return $actionData; } $actionForSanitizing = new ActionForWorkflowForm($modelClassName, $workflowType); $actionForSanitizing->setAttributes($actionData); foreach ($actionData[ActionForWorkflowForm::ACTION_ATTRIBUTES] as $attribute => $attributeData) { if (isset($attributeData['value'])) { $type = $actionForSanitizing->getActionAttributesAttributeFormType($attribute); if ($type == 'Date' && $attributeData['type'] == DateWorkflowActionAttributeForm::TYPE_STATIC) { $actionData[ActionForWorkflowForm::ACTION_ATTRIBUTES][$attribute]['value'] = DateTimeUtil::resolveValueForDateDBFormatted($attributeData['value']); } elseif ($type == 'DateTime' && $attributeData['type'] == DateTimeWorkflowActionAttributeForm::TYPE_STATIC) { $actionData[ActionForWorkflowForm::ACTION_ATTRIBUTES][$attribute]['value'] = DateTimeUtil::convertDateTimeLocaleFormattedDisplayToDbFormattedDateTimeWithSecondsAsZero($attributeData['value']); } } } return $actionData; }