// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // require_once 'PEAR.php'; // +X2C Class 210 :Permiso /** * Clase para el manejo de los Permisos. * * @access public */ class Permiso { /** * Identificador del permiso. * * @var int $id * @access private */ var $_id; /** * Descripcion del permiso. * * @var string $descripcion * @access private */ var $_descripcion; /** * Objeto Samurai_DB * * @var Samurai_DB $db * @access private */ var $_db; /** * Indentificador del ultimo que realizo alguna operacion sobre el permiso * * @var string $responsable * @access private */ var $_responsable; /** * Gets Id. * * @return int * @access public */ function getId() { return $this->_id; } /** * Sets Id. * * @param int $id Id. * * @return void * @access public */ function setId($id) { $this->_id = $id; } /** * Gets Descripcion. * * @return string * @access public */ function getDescripcion() { return $this->_descripcion; } /** * Sets Descripcion. * * @param string $descripcion Descripcion. * * @return void * @access public */ function setDescripcion($descripcion) { $this->_descripcion = $descripcion; } /** * Gets Responsable. * * @return string * @access public */ function getResponsable() { return $this->_responsable; } /** * Sets Responsable. * * @param string $responsable Responsable. * * @return void * @access public */ function setResponsable($responsable) { $this->_responsable = $responsable; } // ~X2C // +X2C Operation 259 /** * Constructor. Si recibe como parametro el identificador del permiso, busca la informacion en la DB. * * @param Samurai_DB &$db Objeto conexion * @param int $id Identificador del permiso * * @return void * @access public */ function Permiso(&$db, $id = null)// ~X2C { $this->_db = $db; $this->_id = $id; $this->setDescripcion(null); if (!is_null($id)) { $this->_obtenerDatosDb(); } } // -X2C // +X2C Operation 295 /** * Obtiene de la base de datos la informacion del permiso * * @return void * @access private */ function _obtenerDatosDb()// ~X2C { $sql = include 'Permiso/consultas.php'; //Incluyo las consultas de este objeto nada mas. $tmp = $sql['obtener_datos_permiso'].$sql['obtener_datos_permiso2']; $dbh = $this->_db->prepare($tmp); $tmp = array ($this->_id); $res = $this->_db->execute($dbh,$tmp); if ($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) { if (isset($re['desc_permiso'])) { $this->setDescripcion($re['desc_permiso']); } else { $this->setDescripcion(); } if (isset($re['responsable'])) { $this->setResponsable($re['responsable']); } else { $this->setResponsable(); } } } // -X2C // +X2C Operation 316 /** * Modifica la base de datos segun accion * * @param string $accion Indica la accion a realizar * * @return mixed * @access public */ function guardarDatos($accion = grabar)// ~X2C { $accion = strtolower($accion); switch ($accion) { case 'grabar': $res = $this->_grabarDb(); break; case 'modificar': $res = $this->_modificarDb(); break; case 'eliminar': $res = $this->_borrarDb(); break; } return $res; } // -X2C // +X2C Operation 317 /** * Graba en base el permiso * * @return mixed * @access protected */ function _grabarDb()// ~X2C { $idPermiso = $this->_db->nextId('permiso'); $datos = array ( 'id_permiso' => $idPermiso, 'desc_permiso' => $this->getDescripcion(), 'responsable' => $this->getResponsable(), ); return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_INSERT); } // -X2C // +X2C Operation 318 /** * Borra de la base el permiso * * @return mixed * @access protected */ function _borrarDb()// ~X2C { $sql = include 'Permiso/consultas.php'; $datos[] = $this->getId(); //Verifico que el permiso no tenga asociaciones $tmp = $sql['verificar_asociaciones1'].$sql['obtener_datos_permiso2']; $dbh = $this->_db->prepare($tmp); $res = $this->_db->execute($dbh, $datos); if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta']) { return new PEAR_Error("Hay sistemas asociados al permiso seleccionado"); } $tmp = $sql['verificar_asociaciones2'].$sql['obtener_datos_permiso2']; $dbh = $this->_db->prepare($tmp); $res = $this->_db->execute($dbh, $datos); if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && !$re['cuenta'] == 0) { return new PEAR_Error("Hay pefiles asociados al permiso seleccionado"); } // //Borro el permiso de la base $tmp = $sql['borrar_permiso'].$sql['obtener_datos_permiso2']; $dbh = $this->_db->prepare($tmp); return $this->_db->execute($dbh, $datos); // } // -X2C // +X2C Operation 319 /** * Actualiza los datos del permiso * * @return mixed * @access protected */ function _modificarDb()// ~X2C { $datos = array ( 'id_permiso' => $this->getId(), 'desc_permiso' => $this->getDescripcion(), 'responsable' => $this->getResponsable(), ); return $this->_db->autoExecute('permiso', $datos, DB_AUTOQUERY_UPDATE, 'id_permiso ='.$this->getId()); } // -X2C } // -X2C Class :Permiso ?>