- * @param DB $db Base de datos de donde borrar el objeto.
- *
- * @return mixed
- * @access public
- */
- function borrar($db = null)
- {
- trigger_error('Not implemented!', E_USER_WARNING);
- }
-
- /**
- * Busca los datos en la base.
- *
- * @param DB $db Conexion a la base de datos.
- * @param string $operador Indica como deben concatenarse las condiciones de busqueda
- * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
- *
- * @return mixed
- * @access public
- */
- function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
- {
- // Armo el WHERE.
- $where = array();
- if (!is_null($this->id)) {
- $where[] = 'p.id = '.$this->id;
- }
- if (!is_null($this->fecha)) {
- if (is_object($this->fecha) ) {
- $fecha = $this->fecha->format("%Y-%m-%d");
- }
- else {
- list ($dia, $mes, $anio) = split ('[/.-]', $this->fecha);
- $fecha = $anio.'-'.$mes.'-'.$dia;
- }
- $where[] = 'p.fecha = '. $db->quote("$fecha");
- }
- if (!is_null($this->script)) {
- $where[] = 'p.script LIKE '. $db->quote("%$this->script%");
- }
- if (!is_null($this->id_sistema)) {
- $where[] = 'p.id_sistema = '. $this->id_sistema;
- }
- if (!is_null($this->nombre_sistema)) {
- $where[] = 's.nombre_sistema LIKE '. $db->quote("%$this->nombre_sistema%");
- }
- if (!is_null($this->descripcion)) {
- $where[] = 'p.descripcion LIKE '. $db->quote("%$this->descripcion%");
- }
- if (!is_null($this->pid)) {
- $where[] = 'p.pid = '.$this->pid;
- }
- if (!is_null($this->server)) {
- $where[] = 'p.server = '.$this->server;
- }
- if (!is_null($this->status)) {
- $where[] = 'p.status = '.$this->status;
- }
- if (!is_null($this->owner)) {
- $where[] = 'p.owner LIKE '. $db->quote("%$this->owner%");
- }
- if (!is_null($this->destinos)) {
- if (is_array($this->destinos)) {
- foreach ($this->destinos as $destino) {
- $where[] = 'p.destinos LIKE '. $db->quote("%$destino");
- }
- }
- else {
- $where[] = 'p.destinos LIKE '. $db->quote("%$this->destinos%");
- }
- }
- if (!is_null($this->prioridad)) {
- $where[] = 'p.prioridad = '.$this->prioridad;
- }
- if (!is_null($this->scheduling)) {
- $where[] = 'p.scheduling LIKE '. $db->quote("%$this->scheduling%");
- }
- if (!is_null($this->notificar)) {
- $where[] = 'p.notificar ='. $this->notificar;
- }
- if (!is_null($this->resultado)) {
- $where[] = 'p.resultado LIKE '. $db->quote("%$this->resultado%");
- }
- if (!is_null($this->nota)) {
- $where[] = 'p.nota LIKE '. $db->quote("%$this->nota%");
- }
- if ($where) {
- $where = 'WHERE p.id_sistema = s.id_sistema AND ('. join ("$operador
- ", $where).')';
- }
- else {
- $where = 'WHERE p.id_sistema = s.id_sistema';
- }
- // Armo el ORDER BY.
- if (is_string($orden))
- {
- $orden = array($orden);
- }
- if ($orden)
- {
- $orden = 'ORDER BY '.join(',',$orden);
- }
- else {
- $orden = '';
- }
-
- return $db->query("SELECT p.id AS id, p.fecha AS fecha, p.script AS
- script, p.id_sistema AS id_sistema, s.nombre_sistema AS
- nombre_sistema, p.descripcion AS descripcion, p.pid AS pid,
- p.server AS server, p.status AS status, p.owner AS owner,
- p.destinos AS destinos, p.prioridad AS prioridad, p.scheduling
- AS scheduling, p.notificar AS notificar, p.resultado AS
- resultado, p.nota AS nota,".
- "IF (p.status = 0, 'El proceso esta en cola. Aun no se ejecuto.".
- " Puede abortar su ejecucion presionando en el icono.', ".
- "IF(p.status = 1, 'El proceso se esta ejecutando en este momento.".
- " Puede abortar su ejecucion presionando en el icono.',".
- "IF(p.status = 2, 'El proceso ha finalizado. ".
- "Puede buscar el resultado en la seccion archivos.',".
- "IF(p.status = 3, 'Se produjo un error durante la ejecucion".
- " del proceso. Presionando sobre el icono puede ver una".
- " explicacion del mismo.',".
- "'El proceso fue detenido por alguna persona (el responsable o".
- " el administrador). Presionando sobre el icono puede ver una ".
- "explicacion.'".
- ")".
- ")".
- ")".
- ") AS icono
- FROM yatta.procesos AS p, samurai.sistema AS s
- $where
- $orden");
- }
-
- /**
- * @param DB $db Conexion a la base de datos.
- * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
- *
- * @return mixed
- * @access public
- */
- function guardar($db = null, $nuevo = false)
- {
- if ($nuevo) {
- $datos = array (
- 'fecha' => $this->fecha,
- 'script' => $this->script,
- 'id_sistema' => $this->id_sistema,
- 'descripcion' => $this->descripcion,
- 'pid' => $this->pid,
- 'server' => $this->server,
- 'status' => $this->status,
- 'owner' => $this->owner,
- 'destinos' => $this->destinos,
- 'prioridad' => $this->prioridad,
- 'scheduling' => $this->scheduling,
- 'notificar' => $this->notificar,
- 'resultado' => $this->resultado,
- 'nota' => $this->nota
- );
-
- $res = $db->autoExecute('yatta.procesos', $datos,
- DB_AUTOQUERY_INSERT);
- }
- else {
- $datos = array (
- 'fecha' => $this->fecha,
- 'script' => $this->script,
- 'id_sistema' => $this->id_sistema,
- 'descripcion' => $this->descripcion,
- 'pid' => $this->pid,
- 'server' => $this->server,
- 'status' => $this->status,
- 'owner' => $this->owner,
- 'destinos' => $this->destinos,
- 'prioridad' => $this->prioridad,
- 'scheduling' => $this->scheduling,
- 'notificar' => $this->notificar,
- 'resultado' => $this->resultado,
- 'nota' => $this->nota
- );
-
- $res = $db->autoExecute('yatta.procesos', $datos,
- DB_AUTOQUERY_UPDATE, 'id = '.$this->id);
-
- }
- return $res;
- }
-
- /**
- * Hace un reset de los atributos.
- *