4 require_once 'Date.php';
5 require_once '../lib/MECON/DBO.php';
7 class Agente extends MECON_DBO {
10 var $dsn = 'mysql://intranet:intranet@bal747f.mecon.ar/novedades';
17 function Agente($dni) {
28 function cargar($db = null) {
29 // Si no me pasan la DB, creo una.
31 $db = DB::connect($this->dsn);
32 // Si hay error lo devuelve.
33 if (DB::isError($db)) {
37 // Si es un resultado, obtengo los elemento.
38 if (is_a($db, 'db_result')) {
39 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
40 // Si hay error lo devuelve.
41 if (DB::isError($res)) {
44 // Si no es un resultado, obtengo el elemento.
47 'SELECT nrodoc, nombre, dependencia, fecha_nac
49 WHERE nrodoc = ' . $db->quote($this->dni),
53 // Si hay error lo devuelve.
54 if (DB::isError($res)) {
58 // Si no hay resultados devuelve false.
62 // Si tenemos resultados, cargamos los datos.
63 $this->dni = $res['nrodoc'];
64 $this->nombre = ucwords(strtolower($res['nombre']));
65 $this->dep = ucwords(strtolower($res['dependencia']));
66 preg_match('/(\d{2})(\d{2})(\d{4})/', $res['fecha_nac'], $m);
67 $this->nac = new Date("$m[3]-$m[2]-$m[1] 00:00:00");
71 function buscar($db = null, $operador = MECON_DBO_OR, $orden = 'nombre ASC') {
72 // Si no me pasan la DB, creo una.
74 $db = DB::connect($this->dsn);
75 // Si hay error lo devuelve.
76 if (DB::isError($db)) {
82 // Si tiene nombre, agrego a la búsqueda.
83 if (!is_null($this->nombre)) {
84 $where[] = 'W.nombre LIKE ' . $db->quote("%$this->nombre%");
86 // Si tiene dep, agrego a la búsqueda.
87 if (!is_null($this->dep)) {
88 $where[] = 'W.dependencia LIKE ' . $db->quote("%$this->dep%");
90 // Si tiene nac, agrego a la búsqueda.
91 if (!is_null($this->nac)) {
92 $where[] = 'W.fecha_nac LIKE '
93 . $db->quote('%' . $this->nac->format('%d%m%Y') . '%');
96 $where = 'WHERE ' . join (" $operador ", $where);
101 if (is_string($orden)) {
102 $orden = array($orden);
105 $orden = 'ORDER BY ' . join(', ', $orden);
108 "SELECT nrodoc, nombre, dependencia, fecha_nac
109 FROM novedades.web003 as W $where $orden");
114 $agente = new Agente(27215947);
115 echo 'Carga: '; var_dump($e = $agente->cargar()); echo "\n";
116 if (PEAR::isError($e)) {
117 die('Error: ' . $e->getMessage() . "\n");
119 echo ' '; var_dump($agente); echo "\n";
121 $agente->nombre = 'sklar';
122 echo 'Búsqueda: '; var_dump(is_a($res = $agente->buscar(), 'db_result')); echo "\n";
123 if (PEAR::isError($res)) {
124 die('Error: ' . $res->getMessage() . "\n");
126 while ($e = $agente->cargar($res)) {
127 if (PEAR::isError($e)) {
128 die('Error: ' . $e->getMessage() . "\n");
130 echo ' Agente: '; var_dump($agente); echo "\n";