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

Mister Spy

Current Path : /home/caballoscriollos/public_html/espanol/library/
Upload File :
Current File : /home/caballoscriollos/public_html/espanol/library/class.propietarios.php

<?php 

require_once('class.dbaccess.php');
require_once('class.propietario.php');
require_once('class.inscripcionresultadosmorfologicos.php');
require_once('class.inscripcionresultadosfuncionales.php');
require_once('class.inscripcionresultadosmarcha.php');
require_once('class.filter.php');
require_once('class.page.php');

class Propietarios extends DBAccess implements IFilterable
{
	public function ParseFilter(array $filter)
	{
		$sql = '';
		
		if (isset($filter['Nombre']) && $filter['Nombre'] != '')
			$sql.= " AND Nombre LIKE '%" . DB::StringUnquoted($filter['Nombre']) . "%'";
		if (isset($filter['NumeroSocio']) && $filter['NumeroSocio'] != '')
			$sql.= " AND NumeroSocio LIKE '%" . DB::StringUnquoted($filter['NumeroSocio']) . "%'";
		
		return $sql;
	}


	public function GetPagesCount(Page $oPage, $filter = false)
	{	
		$sql = "SELECT COUNT(1) / " . DB::Number($oPage->Size) . " AS Count";
		$sql.= " FROM tblPropietarios";
		$sql.= " WHERE (trim(NumeroSocio) <> '' AND NumeroSocio IS NOT NULL)";
		
		if ($filter)
			$sql.= " " . $this->ParseFilter($filter);
		
		if (!($oRes = $this->GetQuery($sql)) )		
			return false;

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


	public function GetAll(array $filter = NULL, Page $oPage = NULL)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE (trim(NumeroSocio) <> '' AND NumeroSocio IS NOT NULL)";

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

		$sql.= " ORDER BY Nombre ";

		if ($oPage != NULL)
			$sql.= " " . Pageable::ParsePage($oPage);
						
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();
			
		while ($oRow = $oRes->GetRow())	
		{	
			$oPropietario = new Propietario();
			$oPropietario->ParseFromArray($oRow);
			
			array_push($arr, $oPropietario);
			
			$oRes->MoveNext();
		}	
		
		return $arr;		
	}


	public function GetNombreById($IdPropietario)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE NumeroSocio = " . DB::Number($IdPropietario);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario->Nombre;		
	}


	public function GetByNumeroSocio($NumeroSocio)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE NumeroSocio = " . DB::String($NumeroSocio);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario->Nombre;		
	}
	
	
	public function GetById($IdPropietario)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE NumeroSocio = " . DB::Number($IdPropietario);	
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario;		
	}


	public function GetByIdIncrement($IdPropietario)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE IdPropietario = " . DB::Number($IdPropietario);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario;		
	}


	public function GetByNombre($Nombre)
	{
		$sql = " SELECT * ";
		$sql.= " FROM tblPropietarios ";
		$sql.= " WHERE Nombre = " . DB::String($Nombre);	
		$sql.= " AND NumeroSocio IS NOT NULL AND NumeroSocio <> ''";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario;		
	}


	public function GetByUsuario(Usuario $oUsuario)
	{
		$sql = "SELECT p.*,";
		$sql.= " COUNT(1) AS Cantidad";
		$sql.= " FROM tblPropietarios p";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON p.IdPropietario = ia.IdPropietario";
		$sql.= " WHERE ia.IdUsuario = " . DB::Number($oUsuario->IdUsuario);	
		$sql.= " GROUP BY ia.IdPropietario";
		$sql.= " ORDER BY Cantidad DESC, ia.IdPropietario ASC";
		$sql.= " LIMIT 1";
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario;		
	}


	public function GetAllByUsuario(Usuario $oUsuario)
	{
		$sql = "SELECT p.*,";
		$sql.= " COUNT(1) AS Cantidad";
		$sql.= " FROM tblPropietarios p";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON p.IdPropietario = ia.IdPropietario";
		$sql.= " WHERE ia.IdUsuario = " . DB::Number($oUsuario->IdUsuario);	
		$sql.= " GROUP BY ia.IdPropietario";
		$sql.= " ORDER BY Cantidad DESC, ia.IdPropietario ASC";
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();
			
		while ($oRow = $oRes->GetRow())	
		{	
			$oPropietario = new Propietario();
			$oPropietario->ParseFromArray($oRow);
			
			array_push($arr, $oPropietario);
			
			$oRes->MoveNext();
		}	
		
		return $arr;		
	}


	public function GetCriadorByUsuario(Usuario $oUsuario)
	{
		$sql = "SELECT p.*,";
		$sql.= " COUNT(1) AS Cantidad";
		$sql.= " FROM tblPropietarios p";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON p.IdPropietario = ia.IdCriador";
		$sql.= " WHERE ia.IdUsuario = " . DB::Number($oUsuario->IdUsuario);	
		$sql.= " GROUP BY ia.IdCriador";
		$sql.= " ORDER BY Cantidad DESC, ia.IdCriador ASC";
		$sql.= " LIMIT 1";
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oPropietario = new Propietario();
		$oPropietario->ParseFromArray($oRow);
		
		return $oPropietario;		
	}


	public function GetAllCriadoresByUsuario(Usuario $oUsuario)
	{
		$sql = "SELECT p.*,";
		$sql.= " COUNT(1) AS Cantidad";
		$sql.= " FROM tblPropietarios p";
		$sql.= " INNER JOIN tblInscripcionAnimales ia ON p.IdPropietario = ia.IdCriador";
		$sql.= " WHERE ia.IdUsuario = " . DB::Number($oUsuario->IdUsuario);	
		$sql.= " GROUP BY ia.IdCriador";
		$sql.= " ORDER BY Cantidad DESC, ia.IdCriador ASC";
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();
			
		while ($oRow = $oRes->GetRow())	
		{	
			$oPropietario = new Propietario();
			$oPropietario->ParseFromArray($oRow);
			
			array_push($arr, $oPropietario);
			
			$oRes->MoveNext();
		}	
		
		return $arr;		
	}


	public function GetAllPropietariosPremioSolanet(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosMorfologicos 	= new InscripcionResultadosMorfologicos();
		$oResultadosFuncionales 	= new InscripcionResultadosFuncionales();
		$oResultadosMarcha 			= new InscripcionResultadosMarcha();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$PuntajeMorfologia 	= 0;
			$PuntajeFuncionales = 0;
			$PuntajeMarcha 		= 0;

			/* obtenemos maximos resultados morfologicos */
			$arrResultadosMorfologicos = $oResultadosMorfologicos->GetAllMaximosByPropietarioCalendario($oPropietario, $oCalendario, 5);

			/* acumulamos los puntajes morfologicos */
			foreach ($arrResultadosMorfologicos as $oResultadoMorfologico)
				$PuntajeMorfologia += $oResultadoMorfologico->Puntaje;

			/* obtenemos maximos resultados funcionales */
			$arrResultadosFuncionales = $oResultadosFuncionales->GetAllMaximosByPropietarioCalendario($oPropietario, $oCalendario, 4);
			
			/* acumulamos los puntajes funcionales */
			foreach ($arrResultadosFuncionales as $oResultadoFuncional)
				$PuntajeFuncionales += $oResultadoFuncional->Puntaje;

			/* obtenemos maximos resultado de marcha */
			$arrResultadosMarcha = $oResultadosMarcha->GetAllMaximosByPropietarioCalendario($oPropietario, $oCalendario, 1);
			
			/* acumulamos los puntajes de marcha */
			foreach ($arrResultadosMarcha as $oResultadoMarcha)
				$PuntajeMarcha += $oResultadoMarcha->Puntaje;
			
			$oPropietario->PuntajeMorfologia 	= $PuntajeMorfologia;
			$oPropietario->PuntajeFuncional 	= $PuntajeFuncionales;
			$oPropietario->PuntajeMarcha 		= $PuntajeMarcha;
			$oPropietario->PuntajeTotal 		= $PuntajeMorfologia + $PuntajeFuncionales + $PuntajeMarcha;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeTotal'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}
	
	
	public function GetAllPropietariosPremioMorfologia(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosMorfologicos = new InscripcionResultadosMorfologicos();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$Puntaje = 0;

			/* obtenemos maximos resultados morfologicos */
			$arrResultadosMorfologicos = $oResultadosMorfologicos->GetAllMaximosByPropietarioCalendario($oPropietario, $oCalendario, 5);

			/* acumulamos los puntajes morfologicos */
			foreach ($arrResultadosMorfologicos as $oResultadoMorfologico)
				$Puntaje += $oResultadoMorfologico->Puntaje;

			$oPropietario->PuntajeMorfologia = $Puntaje;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeMorfologia'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}
		

	public function GetAllPropietariosPremioFuncional(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosFuncionales = new InscripcionResultadosFuncionales();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$Puntaje = 0;

			/* obtenemos maximos resultados funcionales */
			$arrResultadosFuncionales = $oResultadosFuncionales->GetAllMaximosByPropietarioCalendario($oPropietario, $oCalendario, 4);
			
			/* acumulamos los puntajes funcionales */
			foreach ($arrResultadosFuncionales as $oResultadoFuncional)
				$Puntaje += $oResultadoFuncional->Puntaje;
			
			$oPropietario->PuntajeFuncional = $Puntaje;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeFuncional'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}


	public function GetAllCriadoresPremioSolanet(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosMorfologicos = new InscripcionResultadosMorfologicos();
		$oResultadosFuncionales = new InscripcionResultadosFuncionales();
		$oResultadosMarcha = new InscripcionResultadosMarcha();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$PuntajeMorfologia 	= 0;
			$PuntajeFuncionales = 0;
			$PuntajeMarcha 		= 0;

			/* obtenemos maximos resultados morfologicos */
			$arrResultadosMorfologicos = $oResultadosMorfologicos->GetAllMaximosByCriadorCalendario($oPropietario, $oCalendario);

			/* acumulamos los puntajes morfologicos */
			foreach ($arrResultadosMorfologicos as $oResultadoMorfologico)
				$PuntajeMorfologia += $oResultadoMorfologico->Puntaje;

			/* obtenemos maximos resultados funcionales */
			$arrResultadosFuncionales = $oResultadosFuncionales->GetAllMaximosByCriadorCalendario($oPropietario, $oCalendario);
			
			/* acumulamos los puntajes funcionales */
			foreach ($arrResultadosFuncionales as $oResultadoFuncional)
				$PuntajeFuncionales += $oResultadoFuncional->Puntaje;

			/* obtenemos maximos resultado de marcha */
			$arrResultadosMarcha = $oResultadosMarcha->GetAllMaximosByCriadorCalendario($oPropietario, $oCalendario, 1);
			
			/* acumulamos los puntajes de marcha */
			foreach ($arrResultadosMarcha as $oResultadoMarcha)
				$PuntajeMarcha += $oResultadoMarcha->Puntaje;

			$oPropietario->PuntajeMorfologia 	= $PuntajeMorfologia;
			$oPropietario->PuntajeFuncional 	= $PuntajeFuncionales;
			$oPropietario->PuntajeMarcha 		= $PuntajeMarcha;
			$oPropietario->PuntajeTotal 		= $PuntajeMorfologia + $PuntajeFuncionales + $PuntajeMarcha;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeTotal'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}
	
	
	public function GetAllCriadoresPremioMorfologia(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosMorfologicos = new InscripcionResultadosMorfologicos();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$Puntaje = 0;

			/* obtenemos maximos resultados morfologicos */
			$arrResultadosMorfologicos = $oResultadosMorfologicos->GetAllMaximosByCriadorCalendario($oPropietario, $oCalendario);

			/* acumulamos los puntajes morfologicos */
			foreach ($arrResultadosMorfologicos as $oResultadoMorfologico)
				$Puntaje += $oResultadoMorfologico->Puntaje;

			$oPropietario->PuntajeMorfologia = $Puntaje;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeMorfologia'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}
		

	public function GetAllCriadoresPremioFuncional(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosFuncionales = new InscripcionResultadosFuncionales();
		
		/* obtenemos listado de propietarios */
		$arrPropietarios = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrPropietarios as $oPropietario)
		{
			$Puntaje = 0;

			/* obtenemos maximos resultados funcionales */
			$arrResultadosFuncionales = $oResultadosFuncionales->GetAllMaximosByCriadorCalendario($oPropietario, $oCalendario);
			
			/* acumulamos los puntajes funcionales */
			foreach ($arrResultadosFuncionales as $oResultadoFuncional)
				$Puntaje += $oResultadoFuncional->Puntaje;
			
			$oPropietario->PuntajeFuncional = $Puntaje;
		}
		
		usort($arrPropietarios, array($oPropietario, 'CompararPuntajeFuncional'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrPropietarios); $i>=$Cantidad; $i--)
			unset($arrPropietarios[$i]);
		
		return $arrPropietarios;
	}


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

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

		$sql.= " ORDER BY Nombre ";
		
		if (!($oRes = $this->GetQuery($sql)))
			return false;
		
		$CountRows = $oRes->NumRows();
		
		return $CountRows;
	}
	
	
	public function Create(Propietario $oPropietario)
	{
		$arr = array
		(
			'NumeroSocio' => DB::Number($oPropietario->NumeroSocio),
			'Nombre' => DB::String($oPropietario->Nombre),
			'Estado' => DB::String('A')
		);
				
		if (!$this->Insert('tblPropietarios', $arr))
			return false;

		$oPropietario->IdPropietario = DBAccess::GetLastInsertId();	
			
		return $oPropietario;
	}
	
	
	public function Importar(Propietario $oPropietario)
	{
		$arr = array
		(
			'NumeroSocio' => DB::Number($oPropietario->NumeroSocio),
			'Nombre' => DB::String($oPropietario->Nombre),
			'Estado' => DB::String('A')
		);
		
		if (!$this->Insert('tblPropietarios', $arr))
		{
			echo $this->GetLastError() . "<br>";
			return false;
		}
			
		return $oPropietario;
	}
	
	
	public function Update(Propietario $oPropietario)
	{
		$where = " IdPropietario = " . DB::Number($oPropietario->IdPropietario);
		
		$arr = array
		(
			'NumeroSocio' => DB::Number($oPropietario->NumeroSocio),
			'Nombre' => DB::String($oPropietario->Nombre),
			'Estado' => DB::String('A'),
			'Eliminado' => DB::Bool('0')
		);
		
		if (!DBAccess::Update('tblPropietarios', $arr, $where))
			return false;
		
		return $oPropietario;
	}
	

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

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

?>

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