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.medico.php');
require_once('class.medicosconsultorios.php');
require_once('class.filter.php');
require_once('class.page.php');
require_once('class.paises.php');
require_once('class.misc.php');
function eliminar_acentos($cadena){
//Reemplazamos la A y a
$cadena = str_replace(
array('Á', 'À', 'Â', 'Ä', 'á', 'à', 'ä', 'â', 'ª'),
array('A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a'),
$cadena
);
//Reemplazamos la E y e
$cadena = str_replace(
array('É', 'È', 'Ê', 'Ë', 'é', 'è', 'ë', 'ê'),
array('E', 'E', 'E', 'E', 'e', 'e', 'e', 'e'),
$cadena );
//Reemplazamos la I y i
$cadena = str_replace(
array('Í', 'Ì', 'Ï', 'Î', 'í', 'ì', 'ï', 'î'),
array('I', 'I', 'I', 'I', 'i', 'i', 'i', 'i'),
$cadena );
//Reemplazamos la O y o
$cadena = str_replace(
array('Ó', 'Ò', 'Ö', 'Ô', 'ó', 'ò', 'ö', 'ô'),
array('O', 'O', 'O', 'O', 'o', 'o', 'o', 'o'),
$cadena );
//Reemplazamos la U y u
$cadena = str_replace(
array('Ú', 'Ù', 'Û', 'Ü', 'ú', 'ù', 'ü', 'û'),
array('U', 'U', 'U', 'U', 'u', 'u', 'u', 'u'),
$cadena );
//Reemplazamos la N, n, C y c
$cadena = str_replace(
array('Ñ', 'ñ', 'Ç', 'ç'),
array('N', 'n', 'C', 'c'),
$cadena
);
return $cadena;
}
class Medicos extends DBAccess implements IFilterable
{
public function ParseFilter(array $filter)
{
$sql = '';
if ($filter['Apellido'] != "")
{
$filter['Apellido'] = eliminar_acentos($filter['Apellido']);
$sql.= " AND (u.Apellido RLIKE '" . DB::StringUnquoted($filter['Apellido']) . "'";
$sql.= " OR u.Apellido IS NULL)";
}
if ($filter['Medico'] != "")
{
$Medico = preg_replace("/[^a-zA-Z]+/", " ", eliminar_acentos($filter['Medico']));
$arrMedico = explode(' ', $Medico);
$sql.= " AND (0";
foreach ($arrMedico as $str)
{
$sql.= " OR Nombre LIKE '%" . DB::StringUnquoted($str) . "%'";
$sql.= " OR Apellido LIKE '%" . DB::StringUnquoted($str) . "%'";
}
$sql.= " )";
}
if ($filter['Nombre'] != "")
{
$filter['Nombre'] = eliminar_acentos($filter['Nombre']);
$sql.= " AND (u.Nombre RLIKE '" . DB::StringUnquoted($filter['Nombre']) . "'";
$sql.= " OR u.Nombre IS NULL)";
}
if ($filter['Email'] != "")
{
$sql.= " AND (c.Email RLIKE '" . DB::StringUnquoted($filter['Email']) . "'";
$sql.= " OR c.Email IS NULL)";
}
if ($filter['IdPais'] != "")
{
$sql.= " AND c.IdPais = " . DB::Number($filter['IdPais']);
}
if ($filter['IdProvincia'] != "")
{
$sql.= " AND c.IdProvincia = " . DB::Number($filter['IdProvincia']);
}
if ($filter['IdLocalidad'] != "")
{
$sql.= " AND c.IdLocalidad = " . DB::Number($filter['IdLocalidad']);
}
if (isset($filter['IdEspecialidad']) && $filter['IdEspecialidad'] != '')
{
$sql.= ' AND u.IdEspecialidad = '.DB::Number($filter['IdEspecialidad']);
}
if (isset($filter['Pediatra']) && $filter['Pediatra'] != '')
{
$sql.= ' AND u.Pediatra = ' . DB::Bool($filter['Pediatra']);
}
return $sql;
}
public function GetPagesCount(Page $oPage, $filter = false)
{
$CountRows = $this->GetCountRows($filter);
$Count = $CountRows / DB::Number($oPage->Size);
$Count = ceil($Count);
return $Count;
}
public function GetAll(array $filter = NULL, Page $oPage = NULL)
{
if (!$oRes = $this->GetAllContent($filter, $oPage))
return false;
$arr = array();
while ($oRow = $oRes->GetRow())
{
$oMedico = new Medico();
$oMedico->ParseFromArray($oRow);
array_push($arr, $oMedico);
$oRes->MoveNext();
}
return $arr;
}
public function GetAllContent(array $filter = NULL, Page $oPage = NULL)
{
$sql = " SELECT u.*";
$sql.= " FROM tblMedicos u";
$sql.= " LEFT JOIN tblMedicosConsultorios c ON c.IdMedico = u.IdMedico";
$sql.= " WHERE 1";
if ($filter)
$sql.= " " . $this->ParseFilter($filter);
$sql.= " GROUP BY u.IdMedico";
$sql.= " ORDER BY u.Apellido, u.Nombre";
if ($oPage != NULL)
$sql.= " " . Pageable::ParsePage($oPage);
if ( !($oRes = $this->GetQuery($sql)) )
return false;
return $oRes;
}
public function GetById($IdMedico)
{
$sql = "SELECT u.*";
$sql.= " FROM tblMedicos u";
$sql.= " WHERE u.IdMedico = " . DB::Number($IdMedico);
if ( !($oRes = $this->GetQuery($sql)) )
return false;
if ( !($oRow = $oRes->GetRow()) )
return false;
$oMedico = new Medico();
$oMedico->ParseFromArray($oRow);
return $oMedico;
}
public function GetByNombre($Nombre, $Apellido)
{
$sql = "SELECT u.*";
$sql.= " FROM tblMedicos u";
$sql.= " WHERE u.Nombre = " . DB::String($Nombre);
$sql.= " AND u.Apellido = " . DB::String($Apellido);
if ( !($oRes = $this->GetQuery($sql)) )
return false;
if ( !($oRow = $oRes->GetRow()) )
return false;
$oMedico = new Medico();
$oMedico->ParseFromArray($oRow);
return $oMedico;
}
public function GetByNumeroDocumento($NumeroDocumento)
{
$sql = "SELECT u.*";
$sql.= " FROM tblMedicos u";
$sql.= " WHERE u.NumeroDocumento = " . DB::String($NumeroDocumento);
if ( !($oRes = $this->GetQuery($sql)) )
return false;
if ( !($oRow = $oRes->GetRow()) )
return false;
$oMedico = new Medico();
$oMedico->ParseFromArray($oRow);
return $oMedico;
}
public function GetCountRows(array $filter = NULL)
{
$sql = " SELECT u.*";
$sql.= " FROM tblMedicos u";
$sql.= " LEFT JOIN tblMedicosConsultorios c ON c.IdMedico = u.IdMedico";
$sql.= " WHERE 1";
if ($filter)
$sql.= " " . $this->ParseFilter($filter);
$sql.= " GROUP BY u.IdMedico";
$sql.= " ORDER BY u.Apellido, u.Nombre";
if (!($oRes = $this->GetQuery($sql)))
return false;
$CountRows = $oRes->NumRows();
return $CountRows;
}
private function GetArrayDB(Medico $oMedico)
{
$arr = array
(
'Nombre' => DB::String($oMedico->Nombre),
'Apellido' => DB::String($oMedico->Apellido),
'IdEspecialidad' => DB::Number($oMedico->IdEspecialidad),
'NumeroMatricula' => DB::String($oMedico->NumeroMatricula),
'Email' => DB::String($oMedico->Email),
'Telefono' => DB::String($oMedico->Telefono),
'Direccion' => DB::String($oMedico->Direccion),
'DireccionNumero' => DB::String($oMedico->DireccionNumero),
'IdPais' => DB::Number($oMedico->IdPais),
'IdProvincia' => DB::Number($oMedico->IdProvincia),
'Localidad' => DB::String($oMedico->Localidad),
'NumeroDocumento' => DB::String($oMedico->NumeroDocumento),
'Titulo' => DB::String($oMedico->Titulo),
'Restringido' => DB::Number($oMedico->Restringido),
'IdTipoSocio' => DB::Number($oMedico->IdTipoSocio),
'Filial' => DB::String($oMedico->Filial),
'IdEstado' => DB::Number($oMedico->IdEstado),
'Pediatra' => DB::Bool($oMedico->Pediatra)
);
return $arr;
}
public function Create(Medico $oMedico)
{
/* inicia una transaccion */
if (!DBAccess::$db->Begin())
return false;
$arr = $this->GetArrayDB($oMedico);
if (!DBAccess::Insert('tblMedicos', $arr))
{
DBAccess::$db->Rollback();
return false;
}
/* finaliza la transaccion */
DBAccess::$db->Commit();
$oMedico->IdMedico = DBAccess::GetLastInsertId();
return $oMedico;
}
public function Update(Medico $oMedico)
{
/* inicia una transaccion */
if (!DBAccess::$db->Begin())
return false;
$arr = $this->GetArrayDB($oMedico);
$where = " IdMedico = " . (int)$oMedico->IdMedico;
if (!DBAccess::UpdateEntidad('tblMedicos', $arr, $where))
{
DBAccess::$db->Rollback();
return false;
}
/* finaliza la transaccion */
DBAccess::$db->Commit();
return $oMedico;
}
public function Delete($IdMedico)
{
if (!DBAccess::$db->Begin())
return false;
$where = " IdMedico = " . DB::Number($IdMedico);
if (!DBAccess::DeleteEntidad('tblMedicosConsultorios', $where))
{
DBAccess::$db->Rollback();
return false;
}
if (!DBAccess::DeleteEntidad('tblMedicos', $where))
{
DBAccess::$db->Rollback();
return false;
}
DBAccess::$db->Commit();
return true;
}
}
?>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat