1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of YATTA!.
8 YATTA! is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 YATTA! is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: jue mar 4 19:23:27 ART 2004
22 Autor: Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
27 require_once 'MECON/DBO.php';
28 require_once 'PEAR.php';
29 require_once 'SAMURAI/Perm.php';
32 * Clase para el manejo de las cuotas especiales.
36 class YATTA_CuotaDB extends MECON_DBO {
55 * Carga el objeto con los datos que se pasan por parametro.
57 * @param DB $db DB o DB_Result a usar para la carga.
62 function cargar($db = null)
64 // Si es un resultado, obtengo los elemento.
65 if (is_a($db, 'db_result')) {
66 $this->predefinirAtributos();
67 $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
68 // Si hay error lo devuelve.
69 if (DB::isError($res)) {
75 $this->login = $res['login'];
76 $this->cuota = $res['cuota'];
83 * Borra el objeto de una base de datos.
85 * @param DB $db Base de datos de donde borrar el objeto.
90 function borrar($db = null)
92 return $db->query ("DELETE FROM yatta.cuotas
93 WHERE login = ". $db->quote($this->login));
97 * Busca los datos en la base.
99 * @param DB $db Conexion a la base de datos.
100 * @param string $operador Indica como deben concatenarse las condiciones de busqueda
101 * @param string $orden Indica de que manera deben ordenarse los resultados de la busqueda
106 function buscar($db = null, $operador = MECON_DBO_OR, $orden = null)
110 if (!is_null($this->login)) {
111 $where[] = 'c.login LIKE '. $db->quote("%$this->login%");
113 if (!is_null($this->cuota)) {
114 $where[] = 'c.cuota = '. $this->cuota;
117 $where = 'WHERE '. join ("$operador", $where);
123 if (is_string($orden))
125 $orden = array($orden);
129 $orden = 'ORDER BY '.join(',',$orden);
136 "SELECT c.login AS login, c.cuota AS cuota
137 FROM yatta.cuotas AS c
143 * Guarda los datos en la base.
145 * @param DB $db Conexion a la base de datos.
146 * @param bool $nuevo Indica si se trata de un nuevo registro en la base.
151 function guardar($db = null, $nuevo = true)
153 //Debo verificar que el login que me pasaron tenga permisos en samurai.
154 $tmp =& new SAMURAI_Perm ($this->login, YATTA_PERM, $db);
156 if (!$tmp->tiene()) {
157 return new PEAR_Error (
158 'El usuario tiene que tener permisos en yatta.'
164 'login' => $this->login,
165 'cuota' => $this->cuota
167 return $db->autoExecute('yatta.cuotas', $datos,
168 DB_AUTOQUERY_INSERT);
172 'login' => $this->login,
173 'cuota' => $this->cuota
175 return $db->autoExecute('yatta.cuotas', $datos,
176 DB_AUTOQUERY_UPDATE, 'login = '. $db->quote($this->login));
181 * Hace un reset de los atributos.
186 function predefinirAtributos() {