<?php
require_once("DBManager.class.php");

class Actividad {

    private $id;
    private $proyecto_id;
    private $nombre;
    private $fecha_inicio;
    private $fecha_fin;
    private $prioridad;
    private $estado;

    // ------------------------------------------------------------
    // CREAR
    // ------------------------------------------------------------
    public function Crear($proyecto_id, $nombre, $fi, $ff, $prioridad, $estado, $actividad, $parent_id)
    {
        $resp = false;
        $db = new DBManager();
        $sql = "INSERT INTO actividad(id, proyecto_id, nombre, fecha_inicio, fecha_fin, prioridad, estado, actividad, parent_id)
                VALUES(null, '$proyecto_id', '$nombre', '$fi', '$ff', '$prioridad', '$estado', '$actividad', '$parent_id')";
        if ($db->_execute($sql)) {
            $resp = true;
        }
        return $resp;
    }

    // ------------------------------------------------------------
    // ACTUALIZAR
    // ------------------------------------------------------------
    public function Actualizar($id, $proyecto_id, $nombre, $fi, $ff, $prioridad, $estado, $actividad, $parent_id)
    {
        $resp = false;
        $db = new DBManager();
        $sql = "UPDATE actividad SET 
                    proyecto_id='$proyecto_id',
                    nombre='$nombre',
                    fecha_inicio='$fi',
                    fecha_fin='$ff',
                    prioridad='$prioridad',
                    estado='$estado',
					actividad='$actividad',
					parent_id='$parent_id'
                WHERE id=$id";

        if ($db->_execute($sql)) {
            $resp = true;
        }
        return $resp;
    }

    // ------------------------------------------------------------
    // LISTAR
    // ------------------------------------------------------------
    public function Listar($proyecto_id)
    {
        $vector = null;
        $db = new DBManager();
        $rs = $db->execute("
            SELECT * FROM actividad 
            WHERE proyecto_id = $proyecto_id 
            ORDER BY fecha_inicio ASC
        ");
        $num_rows = $rs->getNumOfRows();

        if ($num_rows > 0) {
            $row = 0;
            $rs->firstRow();
            while (!$rs->EOF) {
                $vector[$row] = array(
                    "id" => $rs->fields["id"],
                    "proyecto_id" => $rs->fields["proyecto_id"],
                    "nombre" => $rs->fields["nombre"],
                    "fecha_inicio" => $rs->fields["fecha_inicio"],
                    "fecha_fin" => $rs->fields["fecha_fin"],
                    "prioridad" => $rs->fields["prioridad"],
                    "estado" => $rs->fields["estado"],
					"actividad" => $rs->fields["actividad"],
                    "parent_id" => $rs->fields["parent_id"]
                );
                $row++;
                $rs->nextRow();
            }
            return $vector;
        }
        return null;
    }
	
	// ------------------------------------------------------------
    // LISTAR POR PROYECTO
    // ------------------------------------------------------------
	public function ListarPorProyecto($proyecto_id)
	{
		$vector = null;
		$db = new DBManager();
	
		$sql = "SELECT * FROM actividad
				WHERE proyecto_id = $proyecto_id
				ORDER BY 
					CASE 
						WHEN parent_id IS NULL OR parent_id = 0 THEN id 
						ELSE parent_id 
					END ASC,
					(parent_id = 0 OR parent_id IS NULL) DESC,
					id ASC;
				";
	
		$rs = $db->execute($sql);
		$num_rows = $rs->getNumOfRows();
	
		if ($num_rows > 0) {
			$row = 0;
			$rs->firstRow();
			while (!$rs->EOF) {
				$vector[$row] = array(
					"id"            => $rs->fields["id"],
					"proyecto_id"   => $rs->fields["proyecto_id"],
					"nombre"        => $rs->fields["nombre"],
					"fecha_inicio"  => $rs->fields["fecha_inicio"],
					"fecha_fin"     => $rs->fields["fecha_fin"],
					"prioridad"     => $rs->fields["prioridad"],
					"estado"        => $rs->fields["estado"],
					"actividad" => $rs->fields["actividad"],
                    "parent_id" => $rs->fields["parent_id"]
				);
				$row++;
				$rs->nextRow();
			}
			return $vector;
		}
		return null;
	}
	
	// ------------------------------------------------------------
    // LISTAR POR PROYECTO
    // ------------------------------------------------------------
	public function ListarPorProyectoActividad($proyecto_id)
	{
		$vector = null;
		$db = new DBManager();
	
		$sql = "SELECT * FROM actividad 
				WHERE proyecto_id = $proyecto_id and actividad='Actividad'
				ORDER BY fecha_inicio ASC";
	
		$rs = $db->execute($sql);
		$num_rows = $rs->getNumOfRows();
	
		if ($num_rows > 0) {
			$row = 0;
			$rs->firstRow();
			while (!$rs->EOF) {
				$vector[$row] = array(
					"id"            => $rs->fields["id"],
					"proyecto_id"   => $rs->fields["proyecto_id"],
					"nombre"        => $rs->fields["nombre"],
					"fecha_inicio"  => $rs->fields["fecha_inicio"],
					"fecha_fin"     => $rs->fields["fecha_fin"],
					"prioridad"     => $rs->fields["prioridad"],
					"estado"        => $rs->fields["estado"],
					"actividad" => $rs->fields["actividad"],
                    "parent_id" => $rs->fields["parent_id"]
				);
				$row++;
				$rs->nextRow();
			}
			return $vector;
		}
		return null;
	}


    // ------------------------------------------------------------
    // BUSCAR POR ID
    // ------------------------------------------------------------
    public function BuscarPorCodigo($id)
    {
        $resp = false;
        $db = new DBManager();
        $rs = $db->execute("SELECT * FROM actividad WHERE id=$id");

        if ($rs->getNumOfRows() > 0) {
            $resp = true;
            $rs->firstRow();
            while (!$rs->EOF) {
                $this->id = $rs->fields["id"];
                $this->proyecto_id = $rs->fields["proyecto_id"];
                $this->nombre = $rs->fields["nombre"];
                $this->fecha_inicio = $rs->fields["fecha_inicio"];
                $this->fecha_fin = $rs->fields["fecha_fin"];
                $this->prioridad = $rs->fields["prioridad"];
                $this->estado = $rs->fields["estado"];
				$this->actividad = $rs->fields["actividad"];
				$this->parent_id = $rs->fields["parent_id"];
                $rs->nextRow();
            }
        }
        return $resp;
    }

    // ------------------------------------------------------------
    // ELIMINAR
    // ------------------------------------------------------------
    public function Eliminar($id)
    {
        $resp = false;
        $db = new DBManager();
        if ($db->_execute("DELETE FROM actividad WHERE id=$id")) {
            $resp = true;
        }
        return $resp;
    }

    // ------------------------------------------------------------
    // GETTERS
    // ------------------------------------------------------------
    public function getId(){ return $this->id; }
    public function getProyectoId(){ return $this->proyecto_id; }
    public function getNombre(){ return $this->nombre; }
    public function getFechaInicio(){ return $this->fecha_inicio; }
    public function getFechaFin(){ return $this->fecha_fin; }
    public function getPrioridad(){ return $this->prioridad; }
    public function getEstado(){ return $this->estado; }
	public function getActividad(){ return $this->actividad; }
	public function getParent_id(){ return $this->parent_id; }

}
?>
