// $Rev$
//
-#require_once 'PEAR.php';
+require_once 'PEAR.php';
* 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
* @param int $id Identificador del permiso
*
* @return void
- *
* @access public
*/
- function Permiso(&$db, $id = null) // ~X2C
+ function Permiso(&$db, $id = null)// ~X2C
{
- if (!is_null($id)) {
- //BUSCAR INFO EN LA DB,
- //SETEAR LAS VI
- }
- else {
- //INICIALIZO LA VI
- $this->_id = null;
- $this->_descripcion = null;
+ $this->_db = $db;
+ $this->_id = $id;
+ $this->setDescripcion(null);
+ if (!is_null($id)) {
+ $this->_obtenerDatosDb();
}
}
// -X2C
- // +X2C Operation 260
+
+
+
+ // +X2C Operation 295
/**
- * Devuelve el identificador del permiso.
- *
- * @return int
+ * Obtiene de la base de datos la informacion del permiso
*
- * @access public
+ * @return void
+ * @access private
*/
- function getId() // ~X2C
+ function _obtenerDatosDb()// ~X2C
{
- return $this->_id;
+ $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 261
+
+
+ // +X2C Operation 316
/**
- * Devuelve la descripcion del permiso.
+ * Modifica la base de datos segun accion
*
- * @return string
+ * @param string $accion Indica la accion a realizar
*
+ * @return mixed
* @access public
*/
- function getDescripcion() // ~X2C
+ function guardarDatos($accion = grabar)// ~X2C
{
- return $this->_descripcion;
+ $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 262
+ // +X2C Operation 317
/**
- * Setea la descripcion del permiso.
+ * Graba en base el permiso
*
- * @param string $descripcion Descripcion del 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 void
+ * @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
*
- * @access public
+ * @return mixed
+ * @access protected
*/
- function setDescripcion($descripcion = null) // ~X2C
+ function _modificarDb()// ~X2C
{
- $this->_descripcion = $descripcion;
+ $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
-?>
\ No newline at end of file
+?>