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