diff --git a/Elementos.php b/Elementos.php
deleted file mode 100644
index fab88d4..0000000
--- a/Elementos.php
+++ /dev/null
@@ -1,224 +0,0 @@
-
- * @version 1.0
- * @package Inventario
- * @copyright Copyright (c) 2008, Ricardo Montañana Gómez
- * @license http://www.gnu.org/licenses/gpl-3.0.txt
- * This file is part of Inventario.
- * Inventario is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Inventario is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Inventario. If not, see .
- *
- */
-//Es una especialización de Mantenimiento.
-class Elementos extends Mantenimiento{
-
- public function __construct($baseDatos,$nombre)
- {
- parent::__construct($baseDatos,$nombre);
- }
- public function ejecuta()
- {
- $opc=$_GET['opc'];
- $id=$_GET['id'];
- //sig o ant
- $op=$_GET['op'];
- //campo por el que ordenar la consulta
- $orden=isset($_GET['orden'])?$_GET['orden']:'ubicacion';
- //ascendente o descendente
- $sentido=isset($_GET['sentido'])?$_GET['sentido']:'asc';
- switch ($opc) {
- case 'inicial':
- return $this->consulta($id,$op,$orden,$sentido);
- case 'editar':
- return $this->muestra($id,EDICION);
- case 'eliminar':
- return $this->muestra($id,BORRADO);
- case 'nuevo':
- return $this->muestra(null,ANADIR);
- case 'insertar':
- return $this->insertar();
- case 'modificar':
- return $this->modificar($id);
- case 'borrar':
- return $this->borrar($id);
- case 'informe':
- return $this->informe();
- case 'baja':
- return $this->baja($id);
- default:
- return 'La clase gestion No entiende lo solicitado.';
- }
- }
- //La consulta es distinta de la general ya que va ordenada por fechas y
- //no mostramos el id, además hay más botones de opciones.
- private function consulta($fec,$op,$orden,$sentido)
- {
- //Esto es necesario ya que no se puede poner un alias en la clausula where
- switch ($orden) {
- case "ubicacion":$campoWhere="U.Descripcion";break;
- case "articulo":$campoWhere="A.Descripcion";break;
- case "marca":$campoWhere="A.Marca";break;
- case "modelo":$campoWhere="A.Modelo";break;
- case "numserie":$campoWhere="E.numserie";break;
- case "fecha":$campoWhere="fecha";break;
- }
- $opSig=$sentido=='desc'?'<=':'>=';
- $opAnt=$sentido=='desc'?'>=':'<=';
- switch ($op) {
- case "sig":$sufijo="and $campoWhere $opSig\"$fec\"";break;
- case "ant":$ix=$fec;$sufijo="and $campoWhere $opAnt\"$ix\"";break;
- default:$sufijo="";
- }
- //Tratamiento de las claves foráneas
- list($existen,$respuesta)=$this->obtieneClavesForaneas();
- if ($existen) {
- foreach ($respuesta as $linea) {
- list($campo,$tabla,$atributo)=explode(",",$linea);
- $foraneas[$campo]=$tabla;
- }
- }
- //Consulta paginada de las incidencias abiertas.
- //$comando="select id,fecha,id_elemento,id_ubicacion,descripcion,id_proveedor ".
- // "from Incidencias where isnull(fechaResolucion) $sufijo order by fecha desc limit ".NUMFILAS;
- //$comando="select I.id,fecha,E.Descripcion as elemento,U.Descripcion as ubicacion,I.descripcion,P.Descripcion as proveedor ".
- // "from Incidencias I inner join Elementos E on id_elemento=E.id inner join Ubicaciones U on id_ubicacion=U.id ".
- // "inner join Proveedores P on id_proveedor=P.id where (isnull(fechaResolucion) or fechaResolucion='00-00-000') $sufijo order by ".$orden." ".$sentido." limit ".NUMFILAS;
- $comando="SELECT E.id,U.Descripcion as ubicacion,A.Descripcion as articulo,A.Marca as marca,A.Modelo as modelo,E.numserie as numserie,E.cantidad,".
- " DATE_FORMAT(E.fechacompra, '%d/%m/%Y') as fechaCompra ".
- "FROM Elementos E inner join Articulos A on E.id_articulo=A.id inner join ".
- "Ubicaciones U on E.id_ubicacion=U.id $sufijo order by ".$orden." ".$sentido." limit ".NUMFILAS;
- //echo $comando;exit;
- $resultado=$this->bdd->query($comando);
- if (!$resultado)
- return $this->errorBD("","No se pudo ejecutar la consulta $comando en la base de datos");
- if ($resultado->num_rows==0) {
- //Evita un bucle infinito
- if ($fec!="" && $op!="")
- return $this->consulta("","",$orden,$sentido);
- else
- return "
No se pudo ejecutar la consulta $comando.
";
- }
- //Prepara la salida de datos en una tabla.
- //En la cabecera los nombres de los campos
- $salida='
';
- $i=0;
- $primero=true;
- while ($campo=$resultado->fetch_field()) {
- if($primero) {
- //Saltamos el id que no lo queremos en pantalla
- $primero=false;
- continue;
- }
- //Si es una clave foránea pondrá el nombre de la tabla
- if ($foraneas[$campo->name]) {
- $listaClaves[$i]=$foraneas[$campo->name];
- $dato=$foraneas[$campo->name];
- } else
- $dato=ucfirst($campo->name);
- $i+=1;
- $salida.="
";
- //En el cuerpo los datos
- $primero=true;
- while($fila=$resultado->fetch_assoc()) {
- $salida.="
";
- $resultado->field_seek(0);
- $idSig=$fila[$orden];
- $id=$fila['id'];
- //Se queda con la fecha mayor
- if ($primero) {
- $primero=false;
- $idAnt=$idSig;
- }
- $i=0;
- $primer=true;
- while($campo=$resultado->fetch_field()) {
- if ($primer) {
- //Se debe saltar el primer campo que es el id y no lo queremos en pantalla.
- $primer=false;
- continue;
- }
- if ($listaClaves[$i])
- $dato=$this->obtenerDescripcion($listaClaves[$i],$fila[$campo->name]);
- else
- $dato=$fila[$campo->name];
- $salida.="
";
- $resultado->close();
- return $salida;
- }
- //Función que genera un campo de lista con los valores de descripción de la
- //tabla a la cual pertenece la clave foránea.
- protected function generaLista($tabla,$campo,$valor,$modo)
- {
- //La tabla debe tener un campo Descripción
- $comando="select id,Descripcion from $tabla order by Descripcion";
- if ($tabla=="Articulos")
- $comando="select id,Descripcion,Marca,Modelo from $tabla order by Descripcion";
- $resultado=$this->bdd->query($comando);
- if (!$resultado)
- return $this->errorBD($comando);
- $modoEfectivo=$modo=="readonly" ? "disabled" : "";
- $salida="\n
";
- $resultado->close();
- return $salida;
- }
- private function baja($id)
- {
- //Baja del elemento de inventario
- /*
- $fecha=strftime("%Y-%m-%d");
- $comando="update Incidencias set fechaResolucion='$fecha' where id='$id';";
- $resultado=$this->bdd->query($comando);
- if (!$resultado)
- return $this->errorBDD($comando);*/
- header('location: '.$this->url);
- }
-}
diff --git a/xml/mantenimientoUsuarios.xml b/xml/mantenimientoUsuarios.xml
new file mode 100644
index 0000000..2f09e55
--- /dev/null
+++ b/xml/mantenimientoUsuarios.xml
@@ -0,0 +1,20 @@
+
+
+ Mantenimiento de Elementos
+
+ SELECT E.id as id,U.Descripcion as ubicacion,A.Descripcion as articulo,A.Marca as marca,A.Modelo as modelo,E.numserie as numserie,
+ DATE_FORMAT(E.fechacompra, '%d/%m/%Y') as fechaCompra,E.cantidad as cantidad
+ FROM Elementos E inner join Articulos A on E.id_articulo=A.id inner join
+ Ubicaciones U on E.id_ubicacion=U.id {buscar} {orden} limit {inferior},{superior};
+
+
+