usuario = $usuario; $this->locale = $locale; $this->tablasSistema = array(); //perfil, tecnologias, idiomas, titulaciones, tipoVia, provincia, procedenciaCV, //incorporaciones, localidad, constantes, procedencia $this->tablasSistema["perfil"] = array("perfil", "oid", "id", "abrev"); $this->tablasSistema["perfil_funcional"] = array("perfil_funcional", "oid", "id", "abrev"); $this->tablasSistema["tecnologias"] = array("tecnologia", "oid", "id"); $this->tablasSistema["idiomas"] = array("idiomas", "oid", "id"); $this->tablasSistema["titulaciones"] = array("titulaciones", "oid", "id"); $this->tablasSistema["tipoVia"] = array("tipo_via", "oid", "id"); $this->tablasSistema["provincia"] = array("provincias", "oid", "id"); $this->tablasSistema["procedenciaCV"] = array("procedencia_cv", "id", "nombre"); $this->tablasSistema["incorporaciones"] = array("incorporaciones", "oid", "id"); $this->tablasSistema["localidad"] = array("localidades", "oid", "id", "provincia"); $this->tablasSistema["constantes"] = array("sistema", "id", "valor"); $this->tablasSistema["procedencia"] = array("procedencia", "num", "id", "color"); $this->tablasSistema["salario"] = array("salario", "id", "nombre"); } //Funciones de administración de perfiles: public function addItem($vista, $valores){ if(!$this->usuario->tieneRol(2)){ $error = $this->locale['4039']; throw new Exception($error); return -1; exit; } $valoresTabla = $this->tablasSistema[$vista]; $tabla = $valoresTabla[0]; $campos = array_slice($valoresTabla, 2); if(count($campos) != count($valores)){ $error = $this->locale['3007']; throw new Exception($error); return -1; exit; }else{ $cadenaCampos = ""; foreach($campos as $campo){ $cadenaCampos .= $campo.","; } //Quitamos la última coma if ($cadenaCampos{strlen($cadenaCampos) - 1} == ",") $cadenaCampos = substr($cadenaCampos,0,strlen($cadenaCampos) - 1); $cadenaValores = ""; foreach($valores as $valor){ $cadenaValores .= "'".$valor."',"; } //Quitamos la última coma if ($cadenaValores{strlen($cadenaValores) - 1} == ",") $cadenaValores = substr($cadenaValores,0,strlen($cadenaValores) - 1); $consulta = "INSERT INTO ".$tabla." (".$cadenaCampos.") VALUES (".$cadenaValores.")"; $bd = new BD(); if($bd->execQuery($consulta)){ return true; }else{ $error = $this->locale['bd']; throw new Exception($error); return -1; exit; } } } public function editItem($vista, $valores){ if(!$this->usuario->tieneRol(2)){ $error = $this->locale['4040']; throw new Exception($error); return -1; exit; } $valoresTabla = $this->tablasSistema[$vista]; $tabla = $valoresTabla[0]; $campoCod = $valoresTabla[1]; $cod = $valores[0]; $campos = array_slice($valoresTabla, 2); $valores = array_slice($valores, 1); $total = count($campos); if($total != count($valores)){ $error = $this->locale['3007']; throw new Exception($error); return -1; exit; }else{ $update = ""; for($i = 0; $i < $total; $i++){ $update .= $campos[$i]." = '".addslashes($valores[$i])."',"; } //Quitamos la última coma if ($update{strlen($update) - 1} == ",") $update = substr($update,0,strlen($update) - 1); $consulta = "UPDATE ".$tabla." SET ".$update." WHERE ".$campoCod."='".$cod."'"; $bd = new BD(); if($bd->execQuery($consulta)){ return true; }else{ $error = $this->locale['bd']; throw new Exception($error); return -1; exit; } } } public function removeItem($vista, $cod){ if(!$this->usuario->tieneRol(2)){ $error = $this->locale['4041']; throw new Exception($error); return -1; exit; } $valoresTabla = $this->tablasSistema[$vista]; $tabla = $valoresTabla[0]; $campoCod = $valoresTabla[1]; $consulta = "DELETE FROM ".$tabla." WHERE ".$campoCod."='".$cod."'"; //echo $consulta; $bd = new BD(); if($bd->execQuery($consulta)){ return true; }else{ $error = $this->locale['4038']; throw new Exception($error); return -1; exit; } } public function getItem($vista){ $tabla = $this->tablasSistema[$vista][0]; $consulta="SELECT * FROM ".$tabla; $bd = new BD(); $salida=$bd->keyValueQuery($consulta,$this->tablasSistema[$vista][1],$this->tablasSistema[$vista][2]); return $salida; } /* * Mantiene el sistema, sobre todo el tema de vacaciones y permisos: * - Vacaciones no aprobadas con permanencia de más de 7 días, se elimina * - Permisos no aprobados con permanencia de más de 7 días, se elimina */ public function mantenSistema(){ if(!$this->usuario->tieneRol(2)){ $error = $this->locale['4041']; throw new Exception($error); return -1; exit; } $acciones=array(); $bd = new BD(); //Vacaciones no aprobadas con permanencia de más de 7 días, se elimina $consulta="DELETE FROM vacaciones WHERE DATEDIFF(f_mod,curdate()) < -7 AND aprobada=2"; $bd->execQuery($consulta); $acciones[]= mysql_affected_rows().$this->locale['2313']; //Vacaciones no aprobadas con permanencia de más de 7 días, se elimina $consulta="DELETE FROM permisos WHERE DATEDIFF(f_mod,curdate()) < -7 AND aprobada=2"; $bd->execQuery($consulta); $acciones[]= mysql_affected_rows().$this->locale['2314']; return $acciones; } } ?>