Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
<?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