X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/8704893ea4164a220d44203d6c8623cd423dbb78..0ecc42815b25c93505bdc63406044ebd4c37283b:/sistema/local_lib/Permiso.php diff --git a/sistema/local_lib/Permiso.php b/sistema/local_lib/Permiso.php index a795192..cc51373 100644 --- a/sistema/local_lib/Permiso.php +++ b/sistema/local_lib/Permiso.php @@ -24,7 +24,7 @@ // $Rev$ // -#require_once 'PEAR.php'; +require_once 'PEAR.php'; @@ -39,7 +39,6 @@ class Permiso { * Identificador del permiso. * * @var int $id - * * @access private */ var $_id; @@ -48,7 +47,6 @@ class Permiso { * Descripcion del permiso. * * @var string $descripcion - * * @access private */ var $_descripcion; @@ -57,11 +55,87 @@ class Permiso { * 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 @@ -72,67 +146,153 @@ class Permiso { * @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 +?>