public function evaluarRegla($etapa_id) { if ($this->tipo == 'secuencial' || $this->tipo == 'paralelo' || $this->tipo == 'union') { return true; } $regla = new Regla($this->regla); return $regla->evaluar($etapa_id); }
public function ejecutar(Etapa $etapa) { $regla = new Regla($this->extra->expresion); $valor = $regla->evaluar($etapa->id); $dato = Doctrine::getTable('DatoSeguimiento')->findOneByNombreAndEtapaId($this->extra->variable, $etapa->id); if (!$dato) { $dato = new DatoSeguimiento(); } $dato->nombre = $this->extra->variable; $dato->valor = $valor; $dato->etapa_id = $etapa->id; $dato->save(); }
public function finalizarPaso(Paso $paso) { //Ejecutamos los eventos finales $eventos = Doctrine_Query::create()->from('Evento e')->where('e.paso_id = ? AND e.instante = ?', array($paso->id, 'despues'))->execute(); foreach ($eventos as $e) { $r = new Regla($e->regla); if ($r->evaluar($this->id)) { $e->Accion->ejecutar($this); } } }
public function getUsuariosFromGruposDeUsuarioDeCuenta($etapa_id) { $query = Doctrine_Query::create()->from('Usuario u, u.GruposUsuarios g, g.Cuenta c')->where('u.vacaciones = 0')->andWhere('c.id = ?', $this->Proceso->Cuenta->id); if ($this->acceso_modo == 'publico') { } else { if ($this->acceso_modo == 'registrados') { $query->andWhere('u.registrado = 1'); } else { if ($this->acceso_modo == 'claveunica') { $query->andWhere('u.open_id = 1'); } else { //Convertimos las variables e ids, separados por coma, en una arreglo de grupos de usuarios. $grupos_arr = array(-1); $grupos = explode(',', $this->grupos_usuarios); foreach ($grupos as $key => $g) { $r = new Regla($g); $var = $r->evaluar($etapa_id); if (is_numeric($var)) { $grupos_arr[] = $var; } else { if (is_array($var)) { foreach ($var as $v) { if (is_numeric($v)) { $grupos_arr[] = $v; } } } } } $query->andWhereIn('g.id', $grupos_arr); } } } return $query->execute(); }