Esempio n. 1
0
 public static function createFromArray(&$array, $skipActions = false)
 {
     if (empty($array['conditionClass'])) {
         $array['conditionClass'] = 'RuleConditionRoot';
     }
     ActiveRecordModel::getApplication()->loadPluginClass('application.model.businessrule.condition', $array['conditionClass']);
     $inst = new $array['conditionClass']();
     $array['instance'] = $inst;
     if (!empty($array['records'])) {
         $inst->registerRecords($array['records']);
     }
     if (!empty($array['actions']) && !$skipActions) {
         foreach ($array['actions'] as $action) {
             $inst->addAction(RuleAction::createFromArray($action));
         }
     }
     if (!empty($array['sub'])) {
         foreach ($array['sub'] as $sub) {
             $inst->addSubCondition(self::createFromArray($sub));
         }
     }
     foreach (array('validFrom', 'validTo') as $key) {
         if (isset($array[$key]) && substr($array[$key], 0, 4) == '0000') {
             unset($array[$key]);
         }
     }
     unset($array['sub'], $array['records'], $array['actions']);
     $inst->initConstraints($array);
     return $inst;
 }