<?php
class agentsModel extends ModelBase
{
    //JASYRC 10MAY2010
    public function getAgents($iditeration, $datos = array("inicio" => 0, "tamanio" => 5)){
        //realizamos la consulta de todos los items
        $query = "SELECT sv.num_version, sa.name, sa.idproject, svd.state,"
                ." sa.date_create, CONCAT(su.lastname, ', ', su.firstname) AS user"
                ." FROM sis_version_dependence AS svd"
                ." INNER JOIN sis_version AS sv ON svd.idversion = sv.idversion"
                ." INNER JOIN sis_agent AS sa ON svd.id = sa.idagent"
                ." INNER JOIN sis_user AS su ON sa.created_by = su.iduser"
                ." WHERE svd.iditeration = $iditeration"
                ." AND svd.type = 1 ORDER BY svd.idversion, sa.date_create ASC";
        $consulta = $this->db->prepare($query);
        $consulta->execute();
        $num_filas = $consulta->rowCount();

        $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" =>  $datos['tamanio']);
        list($paginas,$navegador) = $this->getPager($parametros);

        //realizamos una consulta paginada
        $consulta = $this->db->prepare($query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
        $consulta->execute();

        //devolvemos la coleccion para que la vista la presente.
        return array($consulta,$paginas,$navegador);
    }    

    //JASYRC 06JUL2010
    public function getChangeList($idproject, $datos = array("inicio" => 0, "tamanio" => 5)){
        //realizamos la consulta de todos los items
        $query = "SELECT sch.*, su.firstname, su.lastname FROM sis_changelist_projects AS sch"
                ." INNER JOIN sis_user AS su ON sch.modified_by = su.iduser"
                ." WHERE idproject = $idproject ORDER BY date_update ASC";
        $consulta = $this->db->prepare($query);
        $consulta->execute();
        $num_filas = $consulta->rowCount();

        $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" =>  $datos['tamanio']);
        list($paginas,$navegador) = $this->getPager($parametros);


        //realizamos una consulta paginada
        $consulta = $this->db->prepare($query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
        $consulta->execute();

        //devolvemos la coleccion para que la vista la presente.
        return array($consulta,$paginas,$navegador);
    }

    //JASYRC 06JUL2010
    public function getVersions($idproject, $datos = array("inicio" => 0, "tamanio" => 5)){
        //realizamos la consulta de todos los items
        $query = "SELECT sv.*, su.firstname, su.lastname FROM sis_version AS sv"
                ." INNER JOIN sis_user AS su ON sv.created_by = su.iduser"
                ." WHERE sv.idproject = $idproject ORDER BY state, date_update ASC";
        $consulta = $this->db->prepare($query);
        $consulta->execute();
        $num_filas = $consulta->rowCount();

        $parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" =>  $datos['tamanio']);
        list($paginas,$navegador) = $this->getPager($parametros);

        //realizamos una consulta paginada
        $consulta = $this->db->prepare($query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
        $consulta->execute();

        //devolvemos la coleccion para que la vista la presente.
        return array($consulta,$paginas,$navegador);
    }

    //JASYRC 02JUN2010
    function getLProject(){
        $query = "SELECT idproject FROM sis_project ORDER BY date_start DESC LIMIT 0,1";
        $result = $this->db->prepare($query);
        $result->execute();
        return $result;
    }

    //JASYRC 06JUL2010
    function addProject($data_project, $description){
        $query = "INSERT INTO sis_project( title, num_version, code, date_start, "
                ." time_estimated, description, keywords, state, created_by ) VALUES ( '"
                . $data_project['title']."', 1, '".$data_project['code']."', '"
                . $data_project['date_start']."', '".$data_project['time_estimated']."', '"
                . $data_project['keywords']."', '".$description."', 1, "
                . $data_project['iduser'].")";
        $result = $this->db->prepare($query);
        $result->execute();
        $id = $this->db->lastInsertId();
        return array($result, $id);
    }
	
    //JASYRC 10MAY2010
    function editProject($project){
        $query = "SELECT * FROM sis_project WHERE idproject = $project";
        $result = $this->db->prepare($query);
        $result->execute();
        return $result;
    }
	
    //JASYRC 10MAY2010
    function update($project){
        $query = "UPDATE sis_project SET title = '".$project['title']."',"
                ." time_estimated = '".$project['time_estimated']."',"
                ." description = '".$project['description']."',"
                ." state = ".$project['state']." WHERE idproject = ".$project['idproject'];
        $result = $this->db->prepare($query);
        $result->execute();
        return $result;
    }
	
	//JASYRC 10MAY2010
	function delProject($project){
		$query = "UPDATE sis_project SET state = 5 WHERE idproject = $project";
		$result = $this->db->prepare($query);
		$result->execute();
		return $result;
	}
	
	//JASYRC 10MAY2010
	function searchProjectbyTitle($title){
		$query = "SELECT * FROM sis_project WHERE title = '$title'";
		$result = $this->db->prepare($query);
		$result->execute();
		return $result;
	}
}
?>
