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.="\n"; - } - $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.=""; - $i+=1; - } - //Icono de editar - $iconoEditar='editar'; - //Icono de eliminar - $iconoEliminar='eliminar'; - $iconoBaja='Baja'; - $salida.="\n"; - } - $salida.="
url&orden=".strtolower($dato)."\"> $dato Acción
".$dato."$iconoAvisos $iconoEditar  $iconoBaja   $iconoEliminar

"; - //Añade botones de comandos - $enlace='\"anterior\"\n"; - $siguiente=$enlace.$idSig."&op=sig\">\"siguiente\"\n"; - $anadir=''. - 'nuevo'; - $az='asc'; - $za='desc'; - $informe='informe'; - $salida.='

'. - "$anterior  $az  $anadir  $informe  $za  $siguiente

"; - $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}; + + + + + + + + + + + +