Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
<?php
require_once('class.db.php');
require_once('class.dbaccess.php');
require_once('class.grupo.php');
require_once('class.filter.php');
require_once('class.page.php');
require_once('class.grupotipos.php');
class Grupos extends DBAccess implements Ifilterable
{
public function ParseFilter(array $filter)
{
$sql = '';
$sql.= " AND (Nombre LIKE '%" . DB::StringUnquoted($filter['Nombre']) . "%'";
$sql.= " OR Nombre IS NULL)";
if ((isset($filter['Tipo'])) && ($filter['Tipo'] != ''))
$sql.= ' AND IdTipo = ' . DB::Number($filter['Tipo']);
return $sql;
}
public function GetAll(array $filter = NULL, Page $oPage = NULL)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE 1";
$sql.= ($filter) ? $this->ParseFilter($filter) : "";
$sql.= " ORDER BY IdTipo, Nombre ASC";
$sql.= ($oPage) ? Pageable::ParsePage($oPage) : "";
if (!($oRes = $this->GetQuery($sql)))
return false;
$arr = array();
while ($oRow = $oRes->GetRow())
{
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
array_push($arr, $oGrupo);
$oRes->MoveNext();
}
return $arr;
}
public function GetAllByIdTipo($IdTipo)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE IdTipo = " . DB::Number($IdTipo);
$sql.= " ORDER BY IdTipo, Nombre ASC";
if (!($oRes = $this->GetQuery($sql)))
return false;
$arr = array();
while ($oRow = $oRes->GetRow())
{
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
array_push($arr, $oGrupo);
$oRes->MoveNext();
}
return $arr;
}
public function GetAllUsed($IdTipo = '')
{
$sql = "SELECT g.*";
$sql.= " FROM tblGrupos g";
$sql.= " LEFT JOIN tblUsuarioGrupos ug ON ug.IdGrupo = g.IdGrupo";
$sql.= " LEFT JOIN tblUsuarioNewsletterGrupos ung ON ung.IdGrupo = g.IdGrupo";
$sql.= " WHERE (ug.IdGrupo IS NOT NULL";
$sql.= " OR ung.IdGrupo IS NOT NULL)";
if ($IdTipo != '')
$sql.= " AND g.IdTipo = " . DB::Number($IdTipo);
$sql.= " GROUP BY g.IdGrupo";
$sql.= " ORDER BY g.IdTipo, g.Nombre ASC";
if (!($oRes = $this->GetQuery($sql)))
return false;
$arr = array();
while ($oRow = $oRes->GetRow())
{
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
array_push($arr, $oGrupo);
$oRes->MoveNext();
}
return $arr;
}
public function GetById($IdGrupo)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE IdGrupo = " . DB::Number($IdGrupo);
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
return $oGrupo;
}
public function GetByUsuario($IdGrupo)
{
$sql = "SELECT *";
$sql.= " FROM tblUsuariosGrupos";
$sql.= " WHERE IdGrupo = '".DB::Number($IdGrupo)."'";
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
return $oGrupo;
}
public function GetByNombre($Nombre)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE Nombre LIKE " . DB::String($Nombre);
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
return $oGrupo;
}
public function GetByNombreTipo($Nombre, $IdTipo)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE Nombre LIKE " . DB::String($Nombre);
$sql.= " AND IdTipo = " . DB::Number($IdTipo);
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
$oGrupo = new Grupo();
$oGrupo->ParseFromArray($oRow);
return $oGrupo;
}
public function GetCountUsuarios(array $filter)
{
/* Devuelve la cantidad de usuario sin contarlos mas de una vez */
$sql = "SELECT ug.*";
$sql.= " FROM tblUsuarioGrupos ug";
$sql.= " LEFT JOIN tblUsuarios u ON ug.IdUsuario = u.IdUsuario";
$sql.= " LEFT JOIN tblProvincias pr ON u.IdProvincia = pr.IdProvincia";
$sql.= " LEFT JOIN tblPaises pa ON u.IdPais = pa.IdPais";
$sql.= " WHERE 1";
/* filtro de grupos */
if ($filter['Grupos'])
{
$sql.= " AND ug.IdGrupo IN (";
if (is_array($filter['Grupos']))
{
foreach ($filter['Grupos'] as $IdGrupo)
{
$sql.= DB::Number($IdGrupo) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Grupos'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
/* filtro de paises */
if ($filter['Paises'])
{
$sql.= " AND u.IdPais IN (";
if (is_array($filter['Paises']))
{
foreach ($filter['Paises'] as $IdPais)
{
$sql.= DB::Number($IdPais) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Paises'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
/* filtro de provincias */
if ($filter['Provincias'])
{
$sql.= " AND u.IdProvincia IN (";
if (is_array($filter['Provincias']))
{
foreach ($filter['Provincias'] as $IdProvincia)
{
$sql.= DB::Number($IdProvincia) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Provincias'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
/* filtro de newsletter */
if (isset($filter['Newsletter']))
{
$sql.= " AND u.Newsletter = " . DB::Bool($filter['Newsletter']);
}
$sql.= " GROUP BY ug.IdUsuario";
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
return $oRes->NumRows();
}
public function GetCountUsuariosNewsletter(array $filter)
{
/* Devuelve la cantidad de usuario sin contarlos mas de una vez */
$sql = "SELECT ug.*";
$sql.= " FROM tblUsuarioNewsletterGrupos ug";
$sql.= " LEFT JOIN tblUsuariosNewsletter u ON ug.IdUsuarioNewsletter = u.IdUsuarioNewsletter";
$sql.= " LEFT JOIN tblProvincias pr ON u.IdProvincia = pr.IdProvincia";
$sql.= " LEFT JOIN tblPaises pa ON u.IdPais = pa.IdPais";
$sql.= " WHERE 1";
/* filtro de grupos */
if ($filter['Grupos'])
{
$sql.= " AND ug.IdGrupo IN (";
if (is_array($filter['Grupos']))
{
foreach ($filter['Grupos'] as $IdGrupo)
{
$sql.= DB::Number($IdGrupo) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Grupos'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
/* filtro de paises */
if ($filter['Paises'])
{
$sql.= " AND u.IdPais IN (";
if (is_array($filter['Paises']))
{
foreach ($filter['Paises'] as $IdPais)
{
$sql.= DB::Number($IdPais) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Paises'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
/* filtro de provincias */
if ($filter['Provincias'])
{
$sql.= " AND u.IdProvincia IN (";
if (is_array($filter['Provincias']))
{
foreach ($filter['Provincias'] as $IdProvincia)
{
$sql.= DB::Number($IdProvincia) . ", ";
}
}
else
{
$sql.= '0, ' . $filter['Provincias'] . ', ';
}
$sql.= "0";
$sql.= ")";
}
$sql.= " GROUP BY ug.IdUsuarioNewsletter";
if (!($oRes = $this->GetQuery($sql)))
return false;
if (!($oRow = $oRes->GetRow()))
return false;
return $oRes->NumRows();
}
public function GetCountRows(array $filter = NULL)
{
$sql = "SELECT *";
$sql.= " FROM tblGrupos";
$sql.= " WHERE 1";
$sql.= ($filter) ? $this->ParseFilter($filter) : "";
$sql.= " ORDER BY IdTipo, Nombre ASC";
if (!($oRes = $this->GetQuery($sql)))
return false;
$CountRows = $oRes->NumRows();
return $CountRows;
}
public function Create(Grupo $oGrupo)
{
$arr = array
(
'IdTipo' => DB::Number($oGrupo->IdTipo),
'Nombre' => DB::String($oGrupo->Nombre)
);
if (!$this->Insert('tblGrupos', $arr))
return false;
$oGrupo->IdGrupo = DBAccess::GetLastInsertId();
return $oGrupo;
}
public function Update(Grupo $oGrupo)
{
$where = " IdGrupo = " . DB::Number($oGrupo->IdGrupo);
$arr = array
(
'IdTipo' => DB::Number($oGrupo->IdTipo),
'Nombre' => DB::String($oGrupo->Nombre)
);
if (!DBAccess::UpdateEntidad('tblGrupos', $arr, $where))
return false;
return $oGrupo;
}
public function Delete($IdGrupo)
{
if (!DBAccess::$db->Begin())
return false;
$where = " IdGrupo = " . DB::Number($IdGrupo);
if (!DBAccess::DeleteEntidad('tblUsuarioGrupos', $where))
{
DBAccess::$db->Rollback();
return false;
}
if (!DBAccess::DeleteEntidad('tblUsuarioNewsletterGrupos', $where))
{
DBAccess::$db->Rollback();
return false;
}
if (!DBAccess::DeleteEntidad('tblGrupos', $where))
{
DBAccess::$db->Rollback();
return false;
}
DBAccess::$db->Commit();
return true;
}
}
?>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat