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

Mister Spy

Current Path : /home/caballoscriollos/public_html/web/library/
Upload File :
Current File : /home/caballoscriollos/public_html/web/library/class.grupos.php

<?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