2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license, |
9 // | that is bundled with this package in the file LICENSE, and is |
10 // | available at through the world-wide-web at |
11 // | http://www.php.net/license/2_02.txt. |
12 // | If you did not receive a copy of the PHP license and are unable to |
13 // | obtain it through the world-wide-web, please send a note to |
14 // | license@php.net so we can mail you a copy immediately. |
15 // +----------------------------------------------------------------------+
16 // | Created: Tue May 27 11:20:04 2003
17 // | Author: Martin Marrese - Myrna Degano <mmarre@mecon.gov.ar - mdegan@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
27 require_once 'PEAR.php';
31 // +X2C Class 210 :Permiso
33 * Clase para el manejo de los Permisos.
39 * Identificador del permiso.
47 * Descripcion del permiso.
49 * @var string $descripcion
63 * Indentificador del ultimo que realizo alguna operacion sobre el permiso
65 * @var string $responsable
99 function getDescripcion()
101 return $this->_descripcion;
106 * @param string $descripcion Descripcion.
111 function setDescripcion($descripcion)
113 $this->_descripcion = $descripcion;
122 function getResponsable()
124 return $this->_responsable;
129 * @param string $responsable Responsable.
134 function setResponsable($responsable)
136 $this->_responsable = $responsable;
141 // +X2C Operation 259
143 * Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB.
145 * @param Samurai_DB &$db Objeto conexion
146 * @param int $id Identificador del permiso
151 function Permiso(&$db, $id = null) // ~X2C
155 $this->setDescripcion(null);
157 $this->_obtenerDatosDb();
165 // +X2C Operation 295
167 * Obtiene de la base de datos la informacion del permiso
172 function _obtenerDatosDb() // ~X2C
174 $sql = include 'Permiso/consultas.php'; //Incluyo las consultas de este objeto nada mas.
175 $tmp = $sql['obtener_datos_permiso'].$sql['obtener_datos_permiso2'];
176 $dbh = $this->_db->prepare($tmp);
177 $tmp = array ($this->_id);
178 $res = $this->_db->execute($dbh,$tmp);
180 if ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
181 if (isset($re['desc_permiso'])) {
182 $this->setDescripcion($re['desc_permiso']);
185 $this->setDescripcion();
187 if (isset($re['responsable'])) {
188 $this->setResponsable($re['responsable']);
191 $this->setResponsable();
199 // +X2C Operation 316
201 * Modifica la base de datos segun accion
203 * @param string $accion Indica la accion a realizar
208 function guardarDatos($accion = grabar) // ~X2C
210 $accion = strtolower($accion);
213 $res = $this->_grabarDb();
216 $res = $this->_modificarDb();
219 $res = $this->_borrarDb();
226 // +X2C Operation 317
228 * Graba en base el permiso
233 function _grabarDb() // ~X2C
235 $idPermiso = $this->_db->nextId('permiso');
237 'id_permiso' => $idPermiso,
238 'desc_permiso' => $this->getDescripcion(),
239 'responsable' => $this->getResponsable(),
241 return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT);
245 // +X2C Operation 318
247 * Borra de la base el permiso
252 function _borrarDb() // ~X2C
254 $sql = include 'Permiso/consultas.php';
255 $datos[] = $this->getId();
256 //Verifico que el permiso no tenga asociaciones
257 $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2'];
258 $dbh = $this->_db->prepare($tmp);
259 $res = $this->_db->execute($dbh, $datos);
260 if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta']) {
261 return new PEAR_Error("Hay sistemas asociados al permiso seleccionado");
263 $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2'];
264 $dbh = $this->_db->prepare($tmp);
265 $res = $this->_db->execute($dbh, $datos);
266 if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) {
267 return new PEAR_Error("Hay pefiles asociados al permiso seleccionado");
270 //Borro el permiso de la base
271 $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2'];
272 $dbh = $this->_db->prepare($tmp);
273 return $this->_db->execute($dbh, $datos);
278 // +X2C Operation 319
280 * Actualiza los datos del permiso
285 function _modificarDb() // ~X2C
288 'id_permiso' => $this->getId(),
289 'desc_permiso' => $this->getDescripcion(),
290 'responsable' => $this->getResponsable(),
292 return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId());
296 // +X2C Operation 331
298 * Arma el array de permisos
300 * @return array(Permiso)
304 function _armarArrayPermisos() // ~X2C
306 trigger_error('Not implemented!', E_USER_WARNING);
310 // +X2C Operation 332
312 * Devuleve un array con los identificadores de todos los permisos.
318 function _getIdPermisos() // ~X2C
320 trigger_error('Not implemented!', E_USER_WARNING);
324 // +X2C Operation 333
326 * Devuelve un array asociativo en donde la clave es el identificador y el valor es la descripcion del permiso
332 function getSelectPermisos() // ~X2C
334 trigger_error('Not implemented!', E_USER_WARNING);
338 // +X2C Operation 334
340 * Devuelve el array de permisos
342 * @return array(Permiso)
346 function getPermisos() // ~X2C
351 } // -X2C Class :Permiso