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

<?php 

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

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

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

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

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

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

		if (isset($filter['Socio']) && $filter['Socio'] != '')
		{
			$sql.= " AND j.Socio = " . DB::Bool($filter['Socio']);
		}

		if (isset($filter['Disponible']) && $filter['Disponible'] != '')
		{
			$sql.= " AND j.Disponible = " . DB::Bool($filter['Disponible']);
		}

		if (isset($filter['Bonificado']) && $filter['Bonificado'] != '')
		{
			$sql.= " AND j.Bonificado = " . DB::Bool($filter['Bonificado']);
		}

		if (isset($filter['Validado']) && $filter['Validado'] != '')
		{
			$sql.= " AND j.Validado = " . DB::Bool($filter['Validado']);
		}

		if (isset($filter['FechaVencimientoPagoDesde']) && $filter['FechaVencimientoPagoDesde'] != '')
		{
			$sql.= " AND j.FechaVencimientoPago >= " . DB::Date($filter['FechaVencimientoPagoDesde']);
		}

		if (isset($filter['FechaVencimientoPagoHasta']) && $filter['FechaVencimientoPagoHasta'] != '')
		{
			$sql.= " AND j.FechaVencimientoPago <= " . DB::Date($filter['FechaVencimientoPagoHasta']);
		}

		if (isset($filter['IdEvento']) && $filter['IdEvento'] != '')
		{
			$sql.= " AND i.Estado <> 0 AND iapf.Estado <> 0 AND i.IdEvento = " . DB::Number($filter['IdEvento']);
		}

		if (isset($filter['Pago']) && $filter['Pago'] != '')
		{
			$mysqlDate = 'CURDATE()';
			if ($filter['PagoFecha']) {
				$mysqlDate = DB::Date($filter['PagoFecha']);
			}
			if ($filter['Pago'] == 1)
				$sql.= " AND (j.Socio = 1 OR j.Bonificado = 1 OR TIMESTAMPDIFF(YEAR,FechaNacimiento," . $mysqlDate . ") < 13 OR (j.FechaVencimientoPago IS NOT NULL AND j.FechaVencimientoPago >= " . $mysqlDate . "))";
			else
				$sql.= " AND (j.Socio = 0 AND j.Bonificado = 0 AND (FechaNacimiento IS NULL OR TIMESTAMPDIFF(YEAR,FechaNacimiento," . $mysqlDate . ") >= 13)  AND (j.FechaVencimientoPago IS NULL OR j.FechaVencimientoPago <= " . $mysqlDate . "))";
		}

		if (isset($filter['ConSaldo']) && $filter['ConSaldo'] != '')
		{
			if ($filter['ConSaldo'] == '1')
				$sql.= " AND j.CuentaCorriente > 0";
			else
				$sql.= " AND (j.CuentaCorriente is null OR j.CuentaCorriente <= 0)";
		}

		if (isset($filter['Anulado']) && $filter['Anulado'] != '')
		{
			$sql.= " AND j.IdJinete IN (SELECT IdJinete FROM tblJinetesPagos WHERE Anulado = " . DB::Bool($filter['Anulado']) . " AND IdEvento = " . DB::Number($filter['IdEvento']) . ")";
		}

		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, $order = 'FechaAlta')
	{
		$sql = "SELECT j.*";
		$sql.= " FROM tblJinetes j";
		$sql.= " LEFT JOIN tblInscripcionesAnimalesPruebasFuncionales iapf ON iapf.IdJinete = j.IdJinete";
		$sql.= " LEFT JOIN tblInscripcionAnimales i ON iapf.IdInscripcion = i.IdInscripcion";
		$sql.= " WHERE 1";

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

		$sql.= " GROUP BY j.IdJinete";
		$sql.= " ORDER BY j." . $order;
		if ($oPage != NULL)
			$sql.= " " . Pageable::ParsePage($oPage);

		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		$arr = array();
			
		while ($oRow = $oRes->GetRow())	
		{	
			$oJinete = new Jinete();
			$oJinete->ParseFromArray($oRow);
			
			array_push($arr, $oJinete);
			
			$oRes->MoveNext();
		}	
		
		return $arr;		
	}


	public function GetById($IdJinete)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblJinetes";
		$sql.= " WHERE IdJinete = " . DB::Number($IdJinete);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oJinete = new Jinete();
		$oJinete->ParseFromArray($oRow);
		
		return $oJinete;		
	}
	

	public function GetByDocumentoNumero($DocumentoNumero)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblJinetes";
		$sql.= " WHERE Disponible = 1 AND Validado = 1 AND DocumentoNumero = " . DB::String($DocumentoNumero);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oJinete = new Jinete();
		$oJinete->ParseFromArray($oRow);
		
		return $oJinete;		
	}
	

	public function GetByNombre($Nombre)
	{
		$sql = "SELECT *";
		$sql.= " FROM tblJinetes";
		$sql.= " WHERE CONCAT(Nombre, ' ', Apellido) = " . DB::String($Nombre);	
			
		if (!($oRes = $this->GetQuery($sql)))
			return false;
			
		if (!($oRow = $oRes->GetRow()))
			return false;
		
		$oJinete = new Jinete();
		$oJinete->ParseFromArray($oRow);
		
		return $oJinete;		
	}


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

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

	public function GetAllJinetesPremioMarcha(Calendario $oCalendario, array $filter = NULL, $Cantidad = 100)
	{
		$oResultadosMarcha = new InscripcionResultadosMarcha();
		
		/* obtenemos listado de jinetes */
		$arrJinetes = $this->GetAll($filter);
		
		/* recorremos el listado y obtenemos los puntajes obtenidos por cada uno */
		foreach ($arrJinetes as $oJinete)
		{
			$Puntaje = 0;

			/* obtenemos maximos resultados de marcha */
			$arrResultadosMarcha = $oResultadosMarcha->GetAllMaximosByJineteCalendario($oJinete, $oCalendario);
			
			/* acumulamos los puntajes de marcha */
			foreach ($arrResultadosMarcha as $oResultadoMarcha)
				$Puntaje += $oResultadoMarcha->Puntaje;
			
			$oJinete->PuntajeMarcha = $Puntaje;
		}
		
		usort($arrJinetes, array($oJinete, 'CompararPuntajeMarcha'));
		
		/* dejamos en el listado solo la cantidad especificada */
		for ($i=count($arrJinetes); $i>=$Cantidad; $i--)
			unset($arrJinetes[$i]);
		
		return $arrJinetes;
	}

	
	public function GetCountRows(array $filter = NULL)
	{
		$sql = "SELECT j.*";
		$sql.= " FROM tblJinetes j";
		$sql.= " LEFT JOIN tblInscripcionesAnimalesPruebasFuncionales iapf ON iapf.IdJinete = j.IdJinete";
		$sql.= " LEFT JOIN tblInscripcionAnimales i ON iapf.IdInscripcion = i.IdInscripcion";
		$sql.= " WHERE 1";

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

		$sql.= " GROUP BY j.IdJinete";

		if (!($oRes = $this->GetQuery($sql)))
			return false;
		
		$CountRows = $oRes->NumRows();
		
		return $CountRows;
	}
	
	protected function GetArrayDB(Jinete $oJinete) {

		return array
		(
			'Nombre' 				=> DB::String($oJinete->Nombre),
			'Apellido' 				=> DB::String($oJinete->Apellido),
			'DocumentoNumero' 		=> DB::String($oJinete->DocumentoNumero),
			'Telefono' 				=> DB::String($oJinete->Telefono),
			'Email' 				=> DB::String($oJinete->Email),
			'Domicilio' 			=> DB::String($oJinete->Domicilio),
			'Socio' 				=> DB::Bool($oJinete->Socio),
			'FechaAlta' 			=> empty($oJinete->FechaAlta) ? DB::Date(date('d-m-Y')) : DB::Date($oJinete->FechaAlta),
			'FechaNacimiento' 		=> DB::Date($oJinete->FechaNacimiento),
			'Disponible'			=> DB::Bool($oJinete->Disponible),
			'Bonificado'			=> DB::Bool($oJinete->Bonificado),
			'FechaVencimientoPago'	=> DB::Date($oJinete->FechaVencimientoPago),
			'Validado'				=> DB::Bool($oJinete->Validado),
			'Observaciones'			=> DB::String($oJinete->Observaciones),
			'Imagen1'				=> DB::String($oJinete->Imagen1),
			'Imagen2'				=> DB::String($oJinete->Imagen2),
			'CuentaCorriente'		=> DB::Number($oJinete->CuentaCorriente)
		);

	}
	
	public function Create(Jinete $oJinete)
	{
		$arr = $this->GetArrayDB($oJinete);
		
		if (!$this->Insert('tblJinetes', $arr))
			return false;

		/* asignamos el id generado */
		$oJinete->IdJinete = DBAccess::GetLastInsertId();
			
		return $oJinete;
	}


	public function Update(Jinete $oJinete)
	{
		$where = " IdJinete = " . DB::Number($oJinete->IdJinete);

		$arr = $this->GetArrayDB($oJinete);
		
		if (!DBAccess::Update('tblJinetes', $arr, $where))
			return false;
			
		return $oJinete;
	}
	
	
	public function Delete($IdJinete)
	{
		if (!DBAccess::$db->Begin())
			return false;
			
		$where = " IdJinete = " . DB::Number($IdJinete);

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

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

?>

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