Mister Spy Say ="Hello Kids ... :D" ___ ____ _ _____ | \/ (_) | | / ___| | . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _ | |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | | | | | | \__ \ || __/ | /\__/ / |_) | |_| | \_| |_/_|___/\__\___|_| \____/| .__/ \__, | | | __/ | |_| |___/ Bot Mister Spy V3
Mister Spy

Mister Spy

Current Path : /home/caballoscriollos/www/espanol/library/
Upload File :
Current File : /home/caballoscriollos/www/espanol/library/class.inscripcionesanimalespruebasfuncionales.php

<?php 

require_once('class.dbaccess.php');
require_once('class.inscripcionesanimalespruebasfuncional.php');
require_once('class.inscripciones.php');
require_once('class.filter.php');
require_once('class.inscripcionestados.php');
require_once('class.page.php');

class InscripcionesAnimalesPruebasFuncionales extends DBAccess implements IFilterable
{
	public function ParseFilter(array $filter)
	{
		$sql = '';

		if (isset($filter['Propietario']) && $filter['Propietario'] != "")
		{
			$sql.= " AND P.Nombre LIKE '%" . DB::StringUnquoted($filter['Propietario']) . "%'";
		}

		if (isset($filter['Socio']) && $filter['Socio'] != "")
		{
			$sql.= " AND";
			$sql.= " (";
			$sql.= " 	U.Nombre LIKE '%" . DB::StringUnquoted($filter['Socio']) . "%'";
			$sql.= " 	OR";
			$sql.= " 	U.Apellido LIKE '%" . DB::StringUnquoted($filter['Socio']) . "%'";
			$sql.= " 	OR";
			$sql.= " 	U.RazonSocial LIKE '%" . DB::StringUnquoted($filter['Socio']) . "%'";
			$sql.= " )";
		}

		if (isset($filter['NroSocio']) && $filter['NroSocio'] != "")
		{
			$sql.= " AND U.NroSocio = " . DB::String($filter['NroSocio']);
		}
				
		if (isset($filter['IdInscripcionesAnimalesPruebasFuncional']) && $filter['IdInscripcionesAnimalesPruebasFuncional'] != "")
		{
			$sql.= " AND IdInscripcionesAnimalesPruebasFuncional = " . DB::Number($filter['IdInscripcionesAnimalesPruebasFuncional']);
		}

		return $sql;
	}


	public function GetPagesCount(Page $oPage, $filter = false)
	{	
		$sql = " SELECT COUNT(1) / " . DB::Number($oPage->Size) . " AS Count";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE 1 ";
		
		if ($filter)
			$sql.= " " . $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)) )		
			return false;

		if ( !($oRow = $oRes->GetRow()) )
			return false;
		
		$Count = $oRow['Count'];
		$Count = ceil($Count);
		
		return $Count;
	}


	public function GetAllPruebasByIdEvento($IdEvento)
	{
		$sql = "SELECT IAPF.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales IAPF";
		$sql.= " INNER JOIN tblInscripcionAnimales I ON IAPF.IdInscripcion = I.IdInscripcion";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebas EFP ";
		$sql.= " ON IAPF.IdEventosFuncionalesPrueba = EFP.IdEventosFuncionalesPrueba";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebasCategorias EFPC ";
		$sql.= " ON IAPF.IdEventosFuncionalesPrueba = EFPC.IdEventosFuncionalesPrueba";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);	
		$sql.= " GROUP BY IAPF.IdEventosFuncionalesPruebasCategoria";
		$sql.= " ORDER BY IAPF.IdEventosFuncionalesPrueba, IAPF.IdEventosFuncionalesPruebasCategoria";

		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;	
	}

	public function GetCantidadInscripciones($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(*) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.Estado = '1'";

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		return $Cantidad;
	}

	public function GetCantidadInscripcionesNoRechazado($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdInscripcion = null)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(*) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		if ($IdEventosFuncionalesPruebasCategoria)
			$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.Estado <> '3'";
		$sql.= " AND ia.Estado <> '0'";
		if ($IdInscripcion) {
			$sql.= " AND ia.IdInscripcion <> " . DB::Number($IdInscripcion);
		}

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		return $Cantidad;
	}

	public function GetYuntaInscripta($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdAnimal, $YuntaIdAnimal)
	{
		$sql = "SELECT iapf.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.Estado = '1'";
		$sql.= " AND IdAnimal = " . DB::Number($YuntaIdAnimal);
		$sql.= " AND YuntaIdAnimal = " . DB::Number($IdAnimal);
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
			
		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}

	public function GetYuntaInscriptaIdAnimal($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdAnimal, $Sexo)
	{
		$sql = "SELECT iapf.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.Estado <> '3'";
		$sql.= " AND ia.Estado <> '0'";
		$sql.= " AND (YuntaIdAnimal = " . DB::Number($IdAnimal);
		$sql.= " OR YuntaIdAnimal2 = " . DB::Number($IdAnimal) . ")";
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);


		print_r('//' . $sql);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;

			
		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}

	public function GetYunta2Inscripta($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdAnimal, $YuntaIdAnimal)
	{
		$sql = "SELECT iapf.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.Estado = '1'";
		$sql.= " AND IdAnimal = " . $YuntaIdAnimal;
		$sql.= " AND YuntaIdAnimal2 = " . $IdAnimal;
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
			
		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}
	
	public function GetCantidadYuntas($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdInscripcion = null)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(*) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND iapf.Estado = '1'";
		$sql.= " AND ia.Estado <> '3'";
		$sql.= " AND IdAnimal NOT IN (SELECT YuntaIdAnimal";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND iapf.Estado = '1'";
		$sql.= " AND ia.Estado <> '3')";
		if ($IdInscripcion) {
			$sql.= " AND ia.IdInscripcion <> " . DB::Number($IdInscripcion);
		}
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		$sql = "SELECT COUNT(*) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND iapf.Estado = '1'";
		$sql.= " AND ia.Estado <> '3'";
		$sql.= " AND IdAnimal IN (SELECT YuntaIdAnimal";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND iapf.Estado = '1'";
		$sql.= " AND ia.Estado <> '3')";
		if ($IdInscripcion) {
			$sql.= " AND ia.IdInscripcion <> " . DB::Number($IdInscripcion);
		}

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad+= $oRow['Cantidad'] / 2;
		
		return $Cantidad;
	}
	
	public function GetCantidadTrios($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdInscripcion = null)
	{
		$oInscripciones = new Inscripciones();
		$Cantidad = 0;
	
		$arrInscripciones = $this->GetAllByIdEventosFuncionalesPruebasCategoriaEvento($IdEventosFuncionalesPruebasCategoria, $IdEvento, $IdInscripcion);

		$arrIdsExistentes = array();

		foreach ($arrInscripciones as $oInscripcionAnimalPruebaFuncional) {

			$oInscripcion = $oInscripciones->GetById($oInscripcionAnimalPruebaFuncional->IdInscripcion);

			if (!in_array($oInscripcion->IdAnimal, $arrIdsExistentes)) {
				$arrIdsExistentes[] = $oInscripcion->IdAnimal;
				$arrIdsExistentes[] = $oInscripcionAnimalPruebaFuncional->YuntaIdAnimal;
				$arrIdsExistentes[] = $oInscripcionAnimalPruebaFuncional->YuntaIdAnimal2;
				$Cantidad++;
			}

		}
		
		return $Cantidad;
	}
	
	public function GetByIdEventoPruebaCategoriaIdAnimal($IdEvento, $IdEventosFuncionalesPrueba, $IdEventosFuncionalesPruebasCategoria, $IdAnimal, $Sexo = null)
	{
		$Cantidad = 0;
	
		$sql = "SELECT iapf.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPrueba);
		$sql.= " AND ia.IdAnimal = " . DB::Number($IdAnimal);
		$sql.= " AND ia.Estado <> '0'";
		if ($Sexo !== null) {
			$sql.= " AND ia.Sexo = " . DB::Number($Sexo);
		}
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}

	public function GetCountByIdEventosFuncionalesPruebasCategoria($IdEvento, $IdEventosFuncionalesPruebasCategoria, array $filter = NULL)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(1) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " LEFT JOIN tblUsuarios U ";
		$sql.= " ON I.IdUsuario = U.IdUsuario ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = '1'";
		$sql.= " AND I.Estado <> '3'";

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		return $Cantidad;
	}

	public function GetCountByIdEventosFuncionalesPruebas($IdEvento, $IdEventosFuncionalesPruebas, array $filter = NULL)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(1) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " LEFT JOIN tblUsuarios U ";
		$sql.= " ON I.IdUsuario = U.IdUsuario ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPruebas);
		$sql.= " AND A.Estado = '1'";
		$sql.= " AND I.Estado <> '3'";

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		return $Cantidad;
	}


	public function GetCountByIdEventosFuncionalesPruebasCategoriaPropietario($IdEvento, $IdEventosFuncionalesPruebasCategoria, array $filter = NULL)
	{
		$Cantidad = 0;
	
		$sql = "SELECT COUNT(1) AS Cantidad";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " LEFT JOIN tblPropietarios P ";
		$sql.= " ON I.IdPropietario = P.IdPropietario ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = '1'";
		$sql.= " AND I.Estado <> '3'";

		if ($filter)
			$sql.= $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$Cantidad = $oRow['Cantidad'];
		
		return $Cantidad;
	}


	public function GetAllByIdEquipo($IdEquipo)
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON A.IdInscripcion = I.IdInscripcion ";
		$sql.= " WHERE A.IdEquipo = " . DB::Number($IdEquipo);
		$sql.= " AND A.Estado = 1";
		$sql.= " AND I.Estado <> " . DB::Number(InscripcionEstados::Rechazada);
		$sql.= " AND I.Estado <> '0'";
		$sql.= " ORDER BY A.IdInscripcion";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}	


	public function GetAllByIdEventosFuncionalesPruebasCategoriaEvento($IdEventosFuncionalesPruebasCategoria, $IdEvento, $IdInscripcion = null)
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = 1";
		if ($IdInscripcion) {
			$sql.= " AND I.IdInscripcion <> " . DB::Number($IdInscripcion);
		}
		$sql.= " ORDER BY A.IdInscripcion";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}	
	
	public function GetAllByIdEventosFuncionalesPruebasCategoriaEventoRodeos($IdEventosFuncionalesPruebasCategoria, $IdEvento, $Order = 'Posicion')
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = 1";
		$sql.= " AND I.Estado <> 3";
		$sql.= " AND (A.ListaEspera = 0 OR A.ListaEspera IS NULL)";
		$sql.= " ORDER BY IF(A.Posicion IS NULL, 1000, A.Posicion) ASC";
		

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}	
	
	public function GetAllByIdEventosFuncionalesPruebasCategoriaEventoRodeosOrdenado($IdEventosFuncionalesPruebasCategoria, $IdEvento)
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " INNER JOIN tblInscripcionResultadosRodeos IRR ";
		$sql.= " ON IRR.IdInscripcionesAnimalesPruebasFuncional = A.IdInscripcionesAnimalesPruebasFuncional ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = 1";
		$sql.= " AND A.ListaEspera = 0";
		$sql.= " ORDER BY IRR.Total DESC, IRR.Desempate DESC, I.Sba ASC";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
	public function GetAllByIdEventosFuncionalesPruebasCategoriaEventoRodeosOrdenadoDia1($IdEventosFuncionalesPruebasCategoria, $IdEvento)
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " INNER JOIN tblInscripcionResultadosRodeos IRR ";
		$sql.= " ON IRR.IdInscripcionesAnimalesPruebasFuncional = A.IdInscripcionesAnimalesPruebasFuncional ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = 1";
		$sql.= " AND A.ListaEspera = 0";
		$sql.= " ORDER BY IRR.Vaca1 + IRR.Vaca2 + IRR.Vaca3 + IRR.Vaca4 + IRR.Vaca5 + IRR.Vaca6 + IRR.Vaca7 + IRR.Vaca8 + IRR.Vaca9 + IRR.Vaca10 + IRR.Vaca11 + IRR.Vaca12 DESC, I.Sba ASC";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
	public function GetAllByIdEventosFuncionalesPruebasCategoriaEventoRodeosOrdenadoDia2($IdEventosFuncionalesPruebasCategoria, $IdEvento)
	{
		$sql = " SELECT";
		$sql.= " A.*";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales A";
		$sql.= " INNER JOIN tblInscripcionAnimales I ";
		$sql.= " ON I.IdInscripcion = A.IdInscripcion ";
		$sql.= " INNER JOIN tblInscripcionResultadosRodeos IRR ";
		$sql.= " ON IRR.IdInscripcionesAnimalesPruebasFuncional = A.IdInscripcionesAnimalesPruebasFuncional ";
		$sql.= " WHERE I.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND A.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);
		$sql.= " AND A.Estado = 1";
		$sql.= " AND A.ListaEspera = 0";
		$sql.= " ORDER BY IRR.Vaca13 + IRR.Vaca14 + IRR.Vaca15 + IRR.Vaca16 + IRR.Vaca17 + IRR.Vaca18 + IRR.Vaca19 + IRR.Vaca20 + IRR.Vaca21 + IRR.Vaca22 + IRR.Vaca23 + IRR.Vaca24 DESC, I.Sba ASC";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
		
	
	public function GetRankingGeneralRodeos($IdCalendario)
	{
		$sql = "CALL caballos_bd.ObtenerClasificadosRodeosPorCalendario(" . $IdCalendario . ");";

		$dbconn = mysql_connect(Config::Database_Host, Config::Database_User, Config::Database_Pass, false, 65536);
		$result = mysql_query($sql);
		
		$oRes    = new DBResource($result);
			
		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		mysql_close($dbconn);
		
		DBAccess::$db->Close();
		DBAccess::$db->Open(Config::Database_Host, Config::Database_User, Config::Database_Pass, Config::Database_Name, Config::Database_Port);
		
		return $arr;
	}	


	public function GetAllByPruebaFuncional($IdEventosFuncionalesPrueba, $IdEvento, $Order = NULL)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales IAPF ";
		$sql.= " INNER JOIN tblInscripcionAnimales I on IAPF.IdInscripcion = I.IdInscripcion ";
		$sql.= " WHERE IAPF.IdEventosFuncionalesPrueba = ".$IdEventosFuncionalesPrueba;
		$sql.= " AND I.IdEvento = ".$IdEvento;
		$sql.= " AND IAPF.Estado = 1";
		$sql.= " AND (IAPF.ListaEspera = 0 OR ListaEspera IS NULL)";
		// $sql.= " GROUP BY I.Box";
		if ($Order)
		{
			switch ($Order)
			{
				case 'Posicion':
					$sql.= " ORDER BY IAPF.Posicion, IAPF.IdInscripcionesAnimalesPruebasFuncional";
					break;

				case 'Orden':
					$sql.= " ORDER BY IAPF.IdOrden, IAPF.IdInscripcionesAnimalesPruebasFuncional";
					break;			

				case 'CategoriaFuncional':
					$sql.= " ORDER BY IAPF.IdEventosFuncionalesPruebasCategoria, I.FNac DESC";
					break;			
					
				case 'Sexo':
					$sql.= " ORDER BY I.Sexo = 2, I.Sexo = 1, I.Sexo = 0, I.FNac  DESC";
					break;				
					
				case 'SexoInv':
					if ($IdEventosFuncionalesPrueba != 5)
						$sql.= " ORDER BY I.Sexo = 1, I.Sexo = 0, I.Sexo = 2, I.FNac  DESC";
					else
						$sql.= " ORDER BY IAPF.IdEventosFuncionalesPruebasCategoria, I.Sexo = 1, I.Sexo = 0, I.Sexo = 2, I.FNac  DESC";
					break;					
					
				case 'FNac':
					$sql.= " I.FNac  DESC";
					break;	
					
				case 'Box':
					$sql.= " ORDER BY I.Box";	
					break;	
					
				case 'BoxFreno':
					$sql.= " ORDER BY I.BoxFreno";	
					break;	
					
				default:
					$sql.= " ORDER BY IAPF.IdInscripcionesAnimalesPruebasFuncional";
					break;
			}
		}
		else
		{
			$sql.= " ORDER BY IAPF.IdInscripcionesAnimalesPruebasFuncional ASC";
		}
		
		//print_r($sql);

		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
	public function GetAllByPruebaFuncionalRodeos($IdEventosFuncionalesPrueba, $IdEvento, $Order = NULL)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales IAPF ";
		$sql.= " INNER JOIN tblInscripcionAnimales I on IAPF.IdInscripcion = I.IdInscripcion ";
		$sql.= " WHERE IAPF.IdEventosFuncionalesPrueba = ".$IdEventosFuncionalesPrueba;
		$sql.= " AND I.IdEvento = ".$IdEvento;
		$sql.= " AND IAPF.Estado = 1";
		$sql.= " AND IAPF.ListaEspera = 0";
		$sql.= " GROUP BY IAPF.Posicion";
		$sql.= " ORDER BY IAPF.Posicion, IAPF.IdInscripcionesAnimalesPruebasFuncional";
		
		//print_r($sql);

		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}


	public function GetAllByInscripcionClasificacion(Inscripcion $oInscripcion, $Clasificacion = '')
	{
		$sql = " SELECT iapf.*";
		$sql.= " FROM tblInscripcionAnimales ia";
		$sql.= " INNER JOIN tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " ON ia.IdInscripcion = iapf.IdInscripcion";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebas efp";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efp.IdEventosFuncionalesPrueba";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebasEventos efpe";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efpe.IdEventosFuncionalesPrueba";
		$sql.= " AND efpe.IdEvento = ia.IdEvento AND efpe.IdEventosFuncionalesPruebasCategoria = iapf.IdEventosFuncionalesPruebasCategoria";
		$sql.= " WHERE ia.IdInscripcion = " . DB::Number($oInscripcion->IdInscripcion);
		$sql.= " AND Clasificacion = " . DB::String($Clasificacion);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba <> 2"; //NO SEA RODEO
		$sql.= " GROUP BY efp.IdEventosFuncionalesPrueba";
		$sql.= " ORDER BY efp.Nombre";		
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
	public function GetAllByInscripcionRodeos(Inscripcion $oInscripcion)
	{
		$sql = " SELECT iapf.*";
		$sql.= " FROM tblInscripcionAnimales ia";
		$sql.= " INNER JOIN tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " ON ia.IdInscripcion = iapf.IdInscripcion";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebas efp";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efp.IdEventosFuncionalesPrueba";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebasEventos efpe";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efpe.IdEventosFuncionalesPrueba";
		$sql.= " AND efpe.IdEvento = ia.IdEvento AND efpe.IdEventosFuncionalesPruebasCategoria = iapf.IdEventosFuncionalesPruebasCategoria";
		$sql.= " WHERE ia.IdInscripcion = " . DB::Number($oInscripcion->IdInscripcion);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = 2"; //QUE SEA RODEO
		$sql.= " GROUP BY efp.IdEventosFuncionalesPrueba";
		$sql.= " ORDER BY efp.Nombre";		
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}


	public function GetAll(array $filter = NULL, Page $oPage = NULL)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE 1 ";
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);

		if ($oPage != NULL)
			$sql.= " " . Pageable::ParsePage($oPage);

		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}


	public function GetById($IdInscripcionesAnimalesPruebasFuncional)
	{
		$sql = "SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE IdInscripcionesAnimalesPruebasFuncional = " . DB::Number($IdInscripcionesAnimalesPruebasFuncional);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);

		return $oInscripcionesAnimalesPruebasFuncional;		
	}
	
	
	public function GetByIdInscripcion($IdInscripcion)
	{
		$sql = "SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE IdInscripcion = " . DB::Number($IdInscripcion);	

		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arr = array();

		while ($oRow = $oRes->GetRow())	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}

		return $arr;
	}
	
	
	public function GetByIdInscripcionIdCategoriaFuncional($IdInscripcion, $IdEventosFuncionalesPruebasCategoria)
	{
		$sql = "SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE IdInscripcion = " . DB::Number($IdInscripcion);	
		$sql.= " AND IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);	

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;

		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;		
	}
	
	
	public function GetByYuntaIdAnimalIdCategoriaFuncional($IdEvento, $YuntaIdAnimal, $IdEventosFuncionalesPruebas, $IdEventosFuncionalesPruebasCategoria, $NotIdAnimal = null)
	{
		$sql = "SELECT iapf.* ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);	
		$sql.= " AND ia.Estado <> '0'";
		$sql.= " AND iapf.Estado <> '0'";
		$sql.= " AND iapf.YuntaIdAnimal = " . DB::Number($YuntaIdAnimal);	
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPruebas);	
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);	
		if ($NotIdAnimal) {
			$sql.= " AND ia.IdAnimal <> " . DB::Number($NotIdAnimal);
		}
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;

		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;		
	}
	
	
	public function GetByIdAnimalYuntaIdAnimalIdCategoriaFuncional($IdEvento, $IdAnimal, $Tabla, $YuntaIdAnimal, $IdEventosFuncionalesPruebas, $IdEventosFuncionalesPruebasCategoria)
	{
		$sql = "SELECT iapf.* ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND ia.Estado <> '0'";
		$sql.= " AND iapf.Estado <> '0'";
		$sql.= " AND ia.IdAnimal = " . DB::Number($IdAnimal);	
		$sql.= " AND ia.Tabla = " . DB::String($Tabla);	
		$sql.= " AND iapf.YuntaIdAnimal <> " . DB::Number($YuntaIdAnimal);	
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPruebas);	
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);	
			//print_r($sql);exit;
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;

		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;		
	}
	
	
	public function GetByIdAnimalIdCategoriaFuncional($IdEvento, $IdAnimal, $Tabla, $IdEventosFuncionalesPruebas, $IdEventosFuncionalesPruebasCategoria)
	{
		$sql = "SELECT iapf.* ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON iapf.IdInscripcion = ia.IdInscripcion";
		$sql.= " WHERE ia.IdEvento = " . DB::Number($IdEvento);
		$sql.= " AND ia.Estado <> '0'";
		$sql.= " AND iapf.Estado <> '0'";
		$sql.= " AND ia.IdAnimal = " . DB::Number($IdAnimal);
		$sql.= " AND ia.Tabla = " . DB::String($Tabla);
		$sql.= " AND iapf.IdEventosFuncionalesPrueba = " . DB::Number($IdEventosFuncionalesPruebas);	
		$sql.= " AND iapf.IdEventosFuncionalesPruebasCategoria = " . DB::Number($IdEventosFuncionalesPruebasCategoria);	
			//print_r($sql);exit;
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;

		$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
		$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
		
		return $oInscripcionesAnimalesPruebasFuncional;		
	}
	
	
	public function GetRanking(Calendario $oCalendario, 
								EventosFuncionalesPrueba $oEventosFuncionalesPrueba, 
								$Clasificacion = '', 
								$Cantidad = 0)
	{
		$sql = " SELECT iapf.*,";
		$sql.= " ia.Tabla,";
		$sql.= " ia.IdAnimal";
		$sql.= " FROM tblInscripcionAnimales ia";
		$sql.= " INNER JOIN tblInscripcionesAnimalesPruebasFuncionales iapf";
		$sql.= " ON ia.IdInscripcion = iapf.IdInscripcion";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebas efp";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efp.IdEventosFuncionalesPrueba";
		$sql.= " INNER JOIN tblEventosFuncionalesPruebasEventos efpe";
		$sql.= " ON iapf.IdEventosFuncionalesPrueba = efpe.IdEventosFuncionalesPrueba";
		$sql.= " INNER JOIN tblEventos e ON ia.IdEvento = e.IdEvento";
		$sql.= " WHERE e.Eliminado = '0'";
		$sql.= " AND ia.Estado <> '0'";
		$sql.= " AND e.ResultadosSupervisados = '1'";
		$sql.= " AND e.EventoDesdeFecha >= " . DB::Date($oCalendario->FechaDesde);
		$sql.= " AND e.InscripcionHastaFecha <= " . DB::Date($oCalendario->FechaHasta);
		$sql.= " AND efp.IdEventosFuncionalesPrueba = " . DB::Number($oEventosFuncionalesPrueba->IdEventosFuncionalesPrueba);
		$sql.= " AND Clasificacion = " . DB::String($Clasificacion);
		if ($oEventosFuncionalesPrueba->IdTipoPremio == EventosFuncionalesPrueba::Puntaje)
			$sql.= " AND (Puntaje IS NOT NULL AND Puntaje <> '')";
		elseif ($oEventosFuncionalesPrueba->IdTipoPremio == EventosFuncionalesPrueba::Tiempo)
			$sql.= " AND (Tiempo IS NOT NULL AND Tiempo <> '')";
		$sql.= " GROUP BY iapf.IdInscripcion, iapf.IdEventosFuncionalesPrueba";
		if ($oEventosFuncionalesPrueba->IdTipoPremio == EventosFuncionalesPrueba::Puntaje)
			$sql.= " ORDER BY Puntaje DESC, ia.IdInscripcion DESC";
		elseif ($oEventosFuncionalesPrueba->IdTipoPremio == EventosFuncionalesPrueba::Tiempo)
			$sql.= " ORDER BY Tiempo ASC, ia.IdInscripcion DESC";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;

		$arrAux = array();
		
		/* eliminamos los animales duplicados */
		while ($oRow = $oRes->GetRow())	
		{
			if (!($this->ExistsOnArray($oRow, $arrAux)))
				array_push($arrAux, $oRow);
			
			$oRes->MoveNext();
		}	
			
		$arr = array();

		/* armamos el listado final */
		foreach ($arrAux as $oRow)	
		{	
			$oInscripcionesAnimalesPruebasFuncional = new InscripcionesAnimalesPruebasFuncional();
			$oInscripcionesAnimalesPruebasFuncional->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionesAnimalesPruebasFuncional);
			
			$oRes->MoveNext();
		}	

		/* dejamos en el listado solo la cantidad especificada */
		if ($Cantidad > 0)
			for ($i=count($arr); $i>=$Cantidad; $i--)
				unset($arr[$i]);

		return $arr;
	}
	
	
	private function ExistsOnArray(array $oRow, array $arrMaximos)
	{
		for ($i=0; $i<count($arrMaximos); $i++)
		{
			if (($oRow['Tabla'] == $arrMaximos[$i]['Tabla']) && ($oRow['IdAnimal'] == $arrMaximos[$i]['IdAnimal']))
				return true;
		}
		
		return false;
	}	
	
	
	public function GetCountRows(array $filter = NULL)
	{
		$sql = "SELECT * ";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales ";
		$sql.= " WHERE 1";
		
		if ($filter)
			$sql.= $this->ParseFilter($filter);

		$sql.= " ORDER BY Nombre ASC";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
		
		$CountRows = $oRes->NumRows();
		
		return $CountRows;
	}
	
	
	public function SetRodeosPosiciones($IdEvento)
	{
		$IdRodeos = 2;
		
		/* REALIZO UN SELECT PARA OBTENER LAS INSCRIPCIONES FUNCIONALES EN RODEOS CON ESE EVENTO */
		$sql = " SELECT I.IdAnimal ,IA.YuntaIdAnimal";
		$sql.= " FROM tblInscripcionesAnimalesPruebasFuncionales IA ";
		$sql.= " INNER JOIN tblInscripcionAnimales I ON I.IdInscripcion = IA.IdInscripcion ";
		$sql.= " WHERE I.IdEvento = ".$IdEvento;
		$sql.= " AND IA.IdEventosFuncionalesPrueba = ".$IdRodeos;
		$sql.= " AND IA.Estado = 1";
		$sql.= " AND I.Estado = 1";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();

		$arrYuntas = array(); 

		while ($oRow = $oRes->GetRow())	
		{	

			if (!array_search($oRow['IdAnimal'], $arrYuntas ))
			{
				array_push($arrYuntas,$oRow['IdAnimal']);
				array_push($arrYuntas,$oRow['YuntaIdAnimal']);
			}

			$oRes->MoveNext();
		}

		$Posicion = 0;
		
		foreach ($arrYuntas as $arrayYuntas)
		{
			//$this->UpdatePosicion ($arrayYuntas, ++$Posicion);
		}

		return $arrYuntas;
	}

	
	public function Create(InscripcionesAnimalesPruebasFuncional $oInscripcionesAnimalesPruebasFuncional)
	{
		$arr = array
		(
			'IdInscripcion' 						=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdInscripcion),
			'IdEventosFuncionalesPrueba' 			=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEventosFuncionalesPrueba),
			'IdEventosFuncionalesPruebasCategoria' 	=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEventosFuncionalesPruebasCategoria),
			'Precio' 								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Precio),
			'FNac'	 								=> DB::String($oInscripcionesAnimalesPruebasFuncional->FNac),
			'Estado'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Estado),
			'Jinete'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Jinete),
			'Domador'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Domador),
			'YuntaIdAnimal'							=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaIdAnimal),
			'YuntaSexo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaSexo),
			'YuntaIdAnimal2'						=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaIdAnimal2),
			'YuntaSexo2'							=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaSexo2),
			'Puntaje'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Puntaje),
			'Tiempo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Tiempo),
			'Posicion'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Posicion),
			'IdOrden'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdOrden),
			'IdJinete'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdJinete),
			'IdDomador'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdDomador),
			'ListaEspera'							=> DB::Bool($oInscripcionesAnimalesPruebasFuncional->ListaEspera),
			'Equipo'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Equipo),
			'IdEquipo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEquipo)
		);
		
		if (!$this->Insert('tblInscripcionesAnimalesPruebasFuncionales', $arr))
			return false;
			
		$oInscripcionesAnimalesPruebasFuncional->IdInscripcionesAnimalesPruebasFuncional = $this->GetLastInsertID();
			
		return $oInscripcionesAnimalesPruebasFuncional;
	}

	
	public function UpdateFNAC(InscripcionesAnimalesPruebasFuncional $oInscripcionesAnimalesPruebasFuncional)
	{
		$where = " IdInscripcion = " . DB::Number($oInscripcionesAnimalesPruebasFuncional->IdInscripcion);
		
		$arr = array('FNac' => DB::Date($oInscripcionesAnimalesPruebasFuncional->FNac));
		
		if (!DBAccess::Update('tblInscripcionesAnimalesPruebasFuncionales', $arr, $where))
			return false;
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}
	
	
	public function UpdatePosicion($IdAnimal, $Posicion)
	{
		$where = " YuntaIdAnimal = " . DB::Number($IdAnimal);
		
		$arr = array('Posicion' => DB::Number($Posicion));
		
		if (!DBAccess::Update('tblInscripcionesAnimalesPruebasFuncionales', $arr, $where))
			return false;
			
		return true;
	}

	
	public function Update(InscripcionesAnimalesPruebasFuncional $oInscripcionesAnimalesPruebasFuncional)
	{
		$where = " IdInscripcionesAnimalesPruebasFuncional = " . DB::Number($oInscripcionesAnimalesPruebasFuncional->IdInscripcionesAnimalesPruebasFuncional);
		
		$arr = array
		(
			'IdInscripcion' 						=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdInscripcion),
			'IdEventosFuncionalesPrueba' 			=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEventosFuncionalesPrueba),
			'IdEventosFuncionalesPruebasCategoria' 	=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEventosFuncionalesPruebasCategoria),
			'Precio' 								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Precio),
			'FNac'	 								=> DB::Date($oInscripcionesAnimalesPruebasFuncional->FNac),
			'Estado'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Estado),
			'Jinete'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Jinete),
			'Domador'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Domador),
			'YuntaIdAnimal'							=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaIdAnimal),
			'YuntaSexo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaSexo),
			'YuntaIdAnimal2'						=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaIdAnimal2),
			'YuntaSexo2'							=> DB::Number($oInscripcionesAnimalesPruebasFuncional->YuntaSexo2),
			'Puntaje'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Puntaje),
			'Tiempo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Tiempo),
			'Posicion'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->Posicion),
			'IdOrden'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdOrden),
			'IdJinete'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdJinete),
			'IdDomador'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdDomador),
			'ListaEspera'							=> DB::Bool($oInscripcionesAnimalesPruebasFuncional->ListaEspera),
			'Equipo'								=> DB::String($oInscripcionesAnimalesPruebasFuncional->Equipo),
			'IdEquipo'								=> DB::Number($oInscripcionesAnimalesPruebasFuncional->IdEquipo)
		);
		
		if (!DBAccess::Update('tblInscripcionesAnimalesPruebasFuncionales', $arr, $where))
			return false;
		
		return $oInscripcionesAnimalesPruebasFuncional;
	}
	

	public function Delete($IdInscripcionesAnimalesPruebasFuncional)
	{
		if (!DBAccess::$db->Begin())
			return false;
			
		$where = " IdInscripcionesAnimalesPruebasFuncional = " . DB::Number($IdInscripcionesAnimalesPruebasFuncional);
		if (!DBAccess::Delete('tblInscripcionesAnimalesPruebasFuncionales', $where))
		{
			DBAccess::$db->Rollback();	
			return false;
		}

		DBAccess::$db->Commit();
		
		return true;	
	}		


	public function DeleteByIdInscripcion($IdInscripcion)
	{
		if (!DBAccess::$db->Begin())
			return false;
			
		$where = " IdInscripcion = " . DB::Number($IdInscripcion);
		if (!DBAccess::Delete('tblInscripcionesAnimalesPruebasFuncionales', $where))
		{
			DBAccess::$db->Rollback();	
			return false;
		}

		DBAccess::$db->Commit();
		
		return true;	
	}		
}

?>

Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat