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

class Asistencia{
	private $idasis;
	private $idafiliado;///
	private $fecha;
	private $hora;
		
	///////////////////////////////////////////
	public function Crear($idafi,$fecha,$hor)
	{
		$resp=false;		
		$db= new DBManager();	
		$fecha = implode("-", array_reverse(explode("-", $fecha)));	
		if($db->_execute("INSERT INTO asistencia(idasis,idafiliado,fecha,hora) VALUES(null,".$idafi.",'".$fecha."','".$hor."')"))   
		{
			$resp=true;
		}
		return $resp;		
	}
	
	
	public function ListarPorFecha($v)
	{
		$vector=null;		
		$db= new DBManager();	
		$v = implode("-", array_reverse(explode("-", $v)));		
		$rs=$db->execute("select idasis,idafiliado,DATE_FORMAT(fecha,'%d-%m-%Y') AS fecha,hora from asistencia where(fecha ='".$v."')");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{
   				$vector[$row]=array("idasis"	    => $rs->fields["idasis"],
									"idafiliado"	    => $rs->fields["idafiliado"],
									"fecha" 	    => $rs->fields["fecha"],
									"hora" 	=> $rs->fields["hora"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	public function ListarNoAsistentesPorFecha($v)
	{
		$vector=null;		
		$db= new DBManager();	
		$v = implode("-", array_reverse(explode("-", $v)));		
		$rs=$db->execute("SELECT A.idafiliado,A.dni,A.nombres,A.apepat,A.apemat FROM afiliado A LEFT JOIN asistencia ASI ON A.idafiliado = ASI.idafiliado AND ASI.fecha = '$v' WHERE ASI.idafiliado IS NULL and A.estado='ACTIVO' ;");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{
   				$vector[$row]=array("idafiliado"	    => $rs->fields["idafiliado"],
									"dni" 	    => $rs->fields["dni"],
									"nombres" 	=> $rs->fields["nombres"],
									"apepat" 	=> $rs->fields["apepat"],
									"apemat" 	=> $rs->fields["apemat"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	
	public function BuscarPorCodigo($vcod)
	{
		
		$resp=false;
		$num_rows=0;//numero de filas afectada por la consulta
		$db= new DBManager();
		$rs=$db->execute("select idasis,idafiliado,fecha,hora from asistencia where(idasis = ".$vcod.")");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$resp=true;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                // Coleccion de campos accesible mediante arrays asociativos también
	                 $this->idasis=$rs->fields["idasis"];
					  $this->idafiliado=$rs->fields["idafiliado"];
					  $this->fecha=$rs->fields["fecha"];
				      $this->hora=$rs->fields["hora"];
					  
 				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
		}
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              
		return $resp;							
	}
	
	
	public function BuscarPorAfiliado($vcod)
	{
		
		$resp=false;
		$num_rows=0;//numero de filas afectada por la consulta
		$db= new DBManager();
		$rs=$db->execute("select idasis,idafiliado,fecha,hora from asistencia where(idafiliado = ".$vcod.")");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$resp=true;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                // Coleccion de campos accesible mediante arrays asociativos también
	                 $this->idasis=$rs->fields["idasis"];
					  $this->idafiliado=$rs->fields["idafiliado"];
					  $this->fecha=$rs->fields["fecha"];
				      $this->hora=$rs->fields["hora"];
					  
 				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
		}
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              
		return $resp;							
	}
	public function BuscarPorAfiliadoFecha($vcod)
	{
		
		$resp=false;
		$num_rows=0;//numero de filas afectada por la consulta
		$db= new DBManager();
		$rs=$db->execute("select idasis,idafiliado,fecha,hora from asistencia where(idafiliado = ".$vcod." and DATE(fecha) = CURDATE())");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$resp=true;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                // Coleccion de campos accesible mediante arrays asociativos también
	                 $this->idasis=$rs->fields["idasis"];
					  $this->idafiliado=$rs->fields["idafiliado"];
					  $this->fecha=$rs->fields["fecha"];
				      $this->hora=$rs->fields["hora"];
					  
 				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
		}
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              
		return $resp;							
	}
	////////////////////////////////////////////	
	
	public function Actualizar($idd,$fecha,$nom)			
	{
		$resp=false;		
		$db= new DBManager();	
		$fn = implode("-",array_reverse(explode("-",$fn)));	
		if($db->_execute("update asistencia set fecha='".$fn."',hora = '".$nom."' where (idasis=".$idd.") "))//si es exitosa la consulta			   
		{
		  $resp=true; 
		}	
		return $resp;
	}
	
	/////////////////////////////////
	public function ListaPorIdafiliado($id)
	{
		$vector=null;
		$db= new DBManager();		
		$rs=$db->execute("select idasis,idafiliado,DATE_FORMAT(fecha,'%d-%m-%Y') AS fecha,hora from asistencia where (idafiliado=".$id.") ");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                $vector[$row]=array("idasis"	    => $rs->fields["idasis"],
									"idafiliado"	    => $rs->fields["idafiliado"],
									"fecha" 	    => $rs->fields["fecha"],
									"hora" 	=> $rs->fields["hora"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
        	return $vector;			
		}else return null;
		
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	

	//////////////////////////////
	public function Eliminar($vcod)
	{
		$resp=false;		
		$db= new DBManager();		
		if($db->_execute("DELETE FROM asistencia WHERE (idasis=".$vcod.");"))   
		{
			$resp=true;
		}
		return $resp;		
	}	
	/////////////////////////////////////////						
	public function getidasis(){ return $this->idasis;}
	public function getidafiliado(){ return $this->idafiliado;}
	public function gethora(){ return $this->hora;}
	public function getfecha(){ return $this->fecha;}
	
	}
?>
