mirror of
https://github.com/rmontanana/inventario2.git
synced 2025-08-16 07:56:00 +00:00
-Cambiado el alineamiento del fuente en varios archivos
-Cambiado el menú para poder elegir si se abre en la misma hoja en una diferente -Mantenimiento ahora el contenido se centra en la página. -El fichero pdf ahora se puede grabar en disco y se puede visualizar en una ventana nueva.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package Inventario
|
* @package Inventario
|
||||||
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
||||||
@@ -18,7 +19,6 @@
|
|||||||
* along with Inventario. If not, see <http://www.gnu.org/licenses/>.
|
* along with Inventario. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define('PIE', '<center><a target="_blank" href="http://www.gnu.org/licenses/gpl-3.0-standalone.html"><img src="img/gplv3.png" alt="GPL v3"/></a>' .
|
define('PIE', '<center><a target="_blank" href="http://www.gnu.org/licenses/gpl-3.0-standalone.html"><img src="img/gplv3.png" alt="GPL v3"/></a>' .
|
||||||
'<a target="_blank" href="http://www.apache.org"><img src="img/apache.gif" alt="Sitio web creado con Apache" /></a>' .
|
'<a target="_blank" href="http://www.apache.org"><img src="img/apache.gif" alt="Sitio web creado con Apache" /></a>' .
|
||||||
'<a target="_blank" href="http://www.mysql.org"><img src="img/mysql.png" width=125 height=47 alt="Gestor de bases de datos mySQL" /></a>' .
|
'<a target="_blank" href="http://www.mysql.org"><img src="img/mysql.png" width=125 height=47 alt="Gestor de bases de datos mySQL" /></a>' .
|
||||||
@@ -28,37 +28,46 @@ define ('FORMULARIO_ACCESO','<form name="formulario_acceso" action="index.php?re
|
|||||||
'<br><br><input type="submit" value="Iniciar" name="iniciar" /></form>');
|
'<br><br><input type="submit" value="Iniciar" name="iniciar" /></form>');
|
||||||
define('MENSAJE_DEMO', 'Puede Iniciar sesión con<br>usuario <i><b>demo</b></i><br>contraseña <i>demo</i><br>');
|
define('MENSAJE_DEMO', 'Puede Iniciar sesión con<br>usuario <i><b>demo</b></i><br>contraseña <i>demo</i><br>');
|
||||||
define('USUARIO_INCORRECTO', '<label class="error">Usuario y clave incorrectos!</label><br><br>');
|
define('USUARIO_INCORRECTO', '<label class="error">Usuario y clave incorrectos!</label><br><br>');
|
||||||
|
|
||||||
// Esta clase aportará el contenido a la plantilla
|
// Esta clase aportará el contenido a la plantilla
|
||||||
class AportaContenido {
|
class AportaContenido {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @var boolean Aporta información sobre si el usuario está registrado o no.
|
* @var boolean Aporta información sobre si el usuario está registrado o no.
|
||||||
*/
|
*/
|
||||||
private $registrado;
|
private $registrado;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Nombre del usuario
|
* @var string Nombre del usuario
|
||||||
*/
|
*/
|
||||||
private $usuario = NULL;
|
private $usuario = NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Menu Menú de la página.
|
* @var Menu Menú de la página.
|
||||||
*/
|
*/
|
||||||
private $miMenu;
|
private $miMenu;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var database Controlador de la base de datos
|
* @var database Controlador de la base de datos
|
||||||
*/
|
*/
|
||||||
private $bdd;
|
private $bdd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Opción elegida por el usuario
|
* @var string Opción elegida por el usuario
|
||||||
*/
|
*/
|
||||||
private $opcionActual;
|
private $opcionActual;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var boolean Usuario y clave incorrectos?
|
* @var boolean Usuario y clave incorrectos?
|
||||||
*/
|
*/
|
||||||
private $usuario_inc = false;
|
private $usuario_inc = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array Permisos del usuario
|
* @var array Permisos del usuario
|
||||||
*/
|
*/
|
||||||
private $perfil;
|
private $perfil;
|
||||||
|
|
||||||
// El constructor necesita saber cuál es la opción actual
|
// El constructor necesita saber cuál es la opción actual
|
||||||
/**
|
/**
|
||||||
* Constructor de la clase.
|
* Constructor de la clase.
|
||||||
@@ -68,8 +77,7 @@ class AportaContenido {
|
|||||||
* @param array $perfil Permisos de acceso del usuario
|
* @param array $perfil Permisos de acceso del usuario
|
||||||
* @param String $opcion Opción elegida por el usuario
|
* @param String $opcion Opción elegida por el usuario
|
||||||
*/
|
*/
|
||||||
public function __construct($baseDatos,$registrado,$usuario,$perfil,$opcion)
|
public function __construct($baseDatos, $registrado, $usuario, $perfil, $opcion) {
|
||||||
{
|
|
||||||
$this->bdd = $baseDatos;
|
$this->bdd = $baseDatos;
|
||||||
$this->miMenu = new Menu('inc/inventario.menu');
|
$this->miMenu = new Menu('inc/inventario.menu');
|
||||||
$this->registrado = $registrado;
|
$this->registrado = $registrado;
|
||||||
@@ -77,28 +85,25 @@ class AportaContenido {
|
|||||||
$this->perfil = $perfil;
|
$this->perfil = $perfil;
|
||||||
$this->opcionActual = $opcion;
|
$this->opcionActual = $opcion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Devuelve la fecha actual
|
* Devuelve la fecha actual
|
||||||
* @param string $formato formato de devolución de la fecha
|
* @param string $formato formato de devolución de la fecha
|
||||||
* @param string $idioma idioma para formatear la fecha, p.ej. es_ES
|
* @param string $idioma idioma para formatear la fecha, p.ej. es_ES
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function fechaActual($formato='',$idioma='es_ES')
|
public function fechaActual($formato = '', $idioma = 'es_ES') {
|
||||||
{
|
|
||||||
if ($formato == '')
|
if ($formato == '')
|
||||||
$formato = "%d-%b-%Y %H:%M";
|
$formato = "%d-%b-%Y %H:%M";
|
||||||
setlocale(LC_TIME, $idioma);
|
setlocale(LC_TIME, $idioma);
|
||||||
return strftime($formato);
|
return strftime($formato);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return string Mensaje el usuario debe registrarse.
|
* @return string Mensaje el usuario debe registrarse.
|
||||||
*/
|
*/
|
||||||
private function mensajeRegistro()
|
private function mensajeRegistro() {
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @todo: tarea de prueba
|
|
||||||
*/
|
|
||||||
return 'Debe registrarse para acceder a este apartado';
|
return 'Debe registrarse para acceder a este apartado';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,8 +115,7 @@ class AportaContenido {
|
|||||||
* @param string $parametros Parámetros del método
|
* @param string $parametros Parámetros del método
|
||||||
* @return string Contenido devuelto por el método
|
* @return string Contenido devuelto por el método
|
||||||
*/
|
*/
|
||||||
public function __call($metodo,$parametros)
|
public function __call($metodo, $parametros) {
|
||||||
{
|
|
||||||
switch ($metodo) { // Dependiendo del método invocado
|
switch ($metodo) { // Dependiendo del método invocado
|
||||||
case 'titulo': // devolvemos el título
|
case 'titulo': // devolvemos el título
|
||||||
return APLICACION;
|
return APLICACION;
|
||||||
@@ -231,14 +235,16 @@ class AportaContenido {
|
|||||||
return "Marca {$metodo} queda sin procesar";
|
return "Marca {$metodo} queda sin procesar";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param string $tipo
|
* @param string $tipo
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function mensajePermisos($tipo)
|
public function mensajePermisos($tipo) {
|
||||||
{
|
|
||||||
return "<center><h1>No tiene permiso para acceder a " . $tipo . "</h1></center>";
|
return "<center><h1>No tiene permiso para acceder a " . $tipo . "</h1></center>";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
BIN
Informe.pdf
Normal file
BIN
Informe.pdf
Normal file
Binary file not shown.
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package Inventario
|
* @package Inventario
|
||||||
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
||||||
@@ -19,13 +20,14 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class InformeInventario {
|
class InformeInventario {
|
||||||
|
|
||||||
private $bdd;
|
private $bdd;
|
||||||
public function __construct($baseDatos)
|
|
||||||
{
|
public function __construct($baseDatos) {
|
||||||
$this->bdd = $baseDatos;
|
$this->bdd = $baseDatos;
|
||||||
}
|
}
|
||||||
public function ejecuta()
|
|
||||||
{
|
public function ejecuta() {
|
||||||
$opc = $_GET['opc'];
|
$opc = $_GET['opc'];
|
||||||
switch ($opc) {
|
switch ($opc) {
|
||||||
case 'Ubicacion':return $this->formularioUbicacion();
|
case 'Ubicacion':return $this->formularioUbicacion();
|
||||||
@@ -35,12 +37,11 @@
|
|||||||
case 'Total':return $this->inventarioTotal();
|
case 'Total':return $this->inventarioTotal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function listarUbicacion()
|
|
||||||
{
|
private function listarUbicacion() {
|
||||||
$fichero = "xml/inventarioUbicacion.xml";
|
$fichero = "xml/inventarioUbicacion.xml";
|
||||||
$salida = "tmp/inventarioUbicacion.xml";
|
$salida = "tmp/inventarioUbicacion.xml";
|
||||||
$plantilla=file_get_contents($fichero)
|
$plantilla = file_get_contents($fichero) or die('Fallo en la apertura de la plantilla ' . $fichero);
|
||||||
or die('Fallo en la apertura de la plantilla '.$fichero);
|
|
||||||
$comando = "select * from Ubicaciones where id='" . $_POST['id'] . "';";
|
$comando = "select * from Ubicaciones where id='" . $_POST['id'] . "';";
|
||||||
$resultado = $this->bdd->ejecuta($comando);
|
$resultado = $this->bdd->ejecuta($comando);
|
||||||
if (!$resultado) {
|
if (!$resultado) {
|
||||||
@@ -49,18 +50,16 @@
|
|||||||
$fila = $this->bdd->procesaResultado();
|
$fila = $this->bdd->procesaResultado();
|
||||||
$plantilla = str_replace("{id}", $_POST['id'], $plantilla);
|
$plantilla = str_replace("{id}", $_POST['id'], $plantilla);
|
||||||
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['Descripcion']), $plantilla);
|
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['Descripcion']), $plantilla);
|
||||||
file_put_contents($salida,$plantilla)
|
file_put_contents($salida, $plantilla) or die('Fallo en la escritura de la plantilla ' . $salida);
|
||||||
or die('Fallo en la escritura de la plantilla '.$salida);
|
|
||||||
$informe = new InformePDF($this->bdd, $salida, true);
|
$informe = new InformePDF($this->bdd, $salida, true);
|
||||||
$informe->imprimeInforme();
|
$informe->guardaArchivo("Informe.pdf");
|
||||||
|
echo '<script type="text/javascript"> window.open( "Informe.pdf" ) </script>';
|
||||||
}
|
}
|
||||||
private function listarArticulo()
|
|
||||||
{
|
private function listarArticulo() {
|
||||||
$fichero = "xml/inventarioArticulo.xml";
|
$fichero = "xml/inventarioArticulo.xml";
|
||||||
$salida = "tmp/inventarioArticulo.xml";
|
$salida = "tmp/inventarioArticulo.xml";
|
||||||
$plantilla=file_get_contents($fichero)
|
$plantilla = file_get_contents($fichero) or die('Fallo en la apertura de la plantilla ' . $fichero);
|
||||||
or die('Fallo en la apertura de la plantilla '.$fichero);
|
|
||||||
$comando = "select * from Articulos where id='" . $_POST['id'] . "';";
|
$comando = "select * from Articulos where id='" . $_POST['id'] . "';";
|
||||||
$resultado = $this->bdd->ejecuta($comando);
|
$resultado = $this->bdd->ejecuta($comando);
|
||||||
if (!$resultado) {
|
if (!$resultado) {
|
||||||
@@ -71,13 +70,13 @@
|
|||||||
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['descripcion']), $plantilla);
|
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['descripcion']), $plantilla);
|
||||||
$plantilla = str_replace("{Marca}", utf8_encode($fila['marca']), $plantilla);
|
$plantilla = str_replace("{Marca}", utf8_encode($fila['marca']), $plantilla);
|
||||||
$plantilla = str_replace("{Modelo}", utf8_encode($fila['modelo']), $plantilla);
|
$plantilla = str_replace("{Modelo}", utf8_encode($fila['modelo']), $plantilla);
|
||||||
file_put_contents($salida,$plantilla)
|
file_put_contents($salida, $plantilla) or die('Fallo en la escritura de la plantilla ' . $salida);
|
||||||
or die('Fallo en la escritura de la plantilla '.$salida);
|
|
||||||
$informe = new InformePDF($this->bdd, $salida, true);
|
$informe = new InformePDF($this->bdd, $salida, true);
|
||||||
$informe->imprimeInforme();
|
$informe->guardaArchivo("Informe.pdf");
|
||||||
|
echo '<script type="text/javascript"> window.open( "Informe.pdf" ) </script>';
|
||||||
}
|
}
|
||||||
private function listaUbicaciones()
|
|
||||||
{
|
private function listaUbicaciones() {
|
||||||
$salida = "<select name=\"id\">\n";
|
$salida = "<select name=\"id\">\n";
|
||||||
$comando = "select * from Ubicaciones order by Descripcion";
|
$comando = "select * from Ubicaciones order by Descripcion";
|
||||||
$resultado = $this->bdd->ejecuta($comando);
|
$resultado = $this->bdd->ejecuta($comando);
|
||||||
@@ -90,8 +89,8 @@
|
|||||||
$salida.="</select>\n";
|
$salida.="</select>\n";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
private function listaArticulos()
|
|
||||||
{
|
private function listaArticulos() {
|
||||||
$salida = "<select name=\"id\">\n";
|
$salida = "<select name=\"id\">\n";
|
||||||
$comando = "select * from Articulos order by descripcion, marca, modelo";
|
$comando = "select * from Articulos order by descripcion, marca, modelo";
|
||||||
$resultado = $this->bdd->ejecuta($comando);
|
$resultado = $this->bdd->ejecuta($comando);
|
||||||
@@ -104,8 +103,8 @@
|
|||||||
$salida.="</select>\n";
|
$salida.="</select>\n";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
private function formulario($accion,$etiqueta,$lista)
|
|
||||||
{
|
private function formulario($accion, $etiqueta, $lista) {
|
||||||
$salida = '<form name="mantenimiento.form" method="post" action="' . $accion . '">' . "\n";
|
$salida = '<form name="mantenimiento.form" method="post" action="' . $accion . '">' . "\n";
|
||||||
$salida.="<fieldset style=\"width: 96%;\"><p><legend style=\"color: red;\"><b>Elige $etiqueta</b></legend>\n";
|
$salida.="<fieldset style=\"width: 96%;\"><p><legend style=\"color: red;\"><b>Elige $etiqueta</b></legend>\n";
|
||||||
$salida.="<br><br><label>$etiqueta</label>";
|
$salida.="<br><br><label>$etiqueta</label>";
|
||||||
@@ -114,19 +113,19 @@
|
|||||||
$salida.='<p align="center"><button type=submit>Aceptar</button></p><br>' . "\n";
|
$salida.='<p align="center"><button type=submit>Aceptar</button></p><br>' . "\n";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
private function formularioUbicacion()
|
|
||||||
{
|
private function formularioUbicacion() {
|
||||||
//Genera un formulario con las ubicaciones disponibles.
|
//Genera un formulario con las ubicaciones disponibles.
|
||||||
$accion = "index.php?informeInventario&opc=listarUbicacion";
|
$accion = "index.php?informeInventario&opc=listarUbicacion";
|
||||||
return $this->formulario($accion, 'Ubicación', $this->listaUbicaciones());
|
return $this->formulario($accion, 'Ubicación', $this->listaUbicaciones());
|
||||||
}
|
}
|
||||||
private function formularioArticulo()
|
|
||||||
{
|
private function formularioArticulo() {
|
||||||
$accion = "index.php?informeInventario&opc=listarArticulo";
|
$accion = "index.php?informeInventario&opc=listarArticulo";
|
||||||
return $this->formulario($accion, 'Artículo', $this->listaArticulos());
|
return $this->formulario($accion, 'Artículo', $this->listaArticulos());
|
||||||
}
|
}
|
||||||
private function inventarioTotal()
|
|
||||||
{
|
private function inventarioTotal() {
|
||||||
$fichero = "xml/inventarioUbicacion.xml";
|
$fichero = "xml/inventarioUbicacion.xml";
|
||||||
$salida = "tmp/inventarioUbicacion.xml";
|
$salida = "tmp/inventarioUbicacion.xml";
|
||||||
$comando = "select * from Ubicaciones ;";
|
$comando = "select * from Ubicaciones ;";
|
||||||
@@ -137,12 +136,10 @@
|
|||||||
$salidaTotal = '';
|
$salidaTotal = '';
|
||||||
while ($fila = $this->bdd->procesaResultado()) {
|
while ($fila = $this->bdd->procesaResultado()) {
|
||||||
//$fila=$this->bdd->procesaResultado();
|
//$fila=$this->bdd->procesaResultado();
|
||||||
$plantilla=file_get_contents($fichero)
|
$plantilla = file_get_contents($fichero) or die('Fallo en la apertura de la plantilla ' . $fichero);
|
||||||
or die('Fallo en la apertura de la plantilla '.$fichero);
|
|
||||||
$plantilla = str_replace("{id}", $fila['id'], $plantilla);
|
$plantilla = str_replace("{id}", $fila['id'], $plantilla);
|
||||||
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['Descripcion']), $plantilla);
|
$plantilla = str_replace("{Descripcion}", utf8_encode($fila['Descripcion']), $plantilla);
|
||||||
file_put_contents($salida,$plantilla)
|
file_put_contents($salida, $plantilla) or die('Fallo en la escritura de la plantilla ' . $salida);
|
||||||
or die('Fallo en la escritura de la plantilla '.$salida);
|
|
||||||
$informe = new InformePDF($this->bdd, $salida, true);
|
$informe = new InformePDF($this->bdd, $salida, true);
|
||||||
$salidaTotal.=$informe->getContenido();
|
$salidaTotal.=$informe->getContenido();
|
||||||
}
|
}
|
||||||
@@ -150,5 +147,7 @@
|
|||||||
$informe->enviaCabecera();
|
$informe->enviaCabecera();
|
||||||
echo $salidaTotal;
|
echo $salidaTotal;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@@ -82,6 +82,20 @@
|
|||||||
{
|
{
|
||||||
return $this->docu;
|
return $this->docu;
|
||||||
}
|
}
|
||||||
|
public function getCabecera()
|
||||||
|
{
|
||||||
|
$cabecera = "Content-type: application/pdf";
|
||||||
|
$cabecera = $cabecera . "Content-length: " . strlen($this->docu);
|
||||||
|
$cabecera = $cabecera . "Content-Disposition: inline; filename=Informe.pdf";
|
||||||
|
return $cabecera;
|
||||||
|
}
|
||||||
|
public function guardaArchivo($nombre = "Informe.pdf")
|
||||||
|
{
|
||||||
|
$fichero = fopen($nombre, "w");
|
||||||
|
fwrite($fichero,$this->getCabecera());
|
||||||
|
fwrite($fichero,$this->getContenido(), strlen($this->getContenido()));
|
||||||
|
fclose($fichero);
|
||||||
|
}
|
||||||
public function enviaCabecera()
|
public function enviaCabecera()
|
||||||
{
|
{
|
||||||
header("Content-type: application/pdf");
|
header("Content-type: application/pdf");
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clase Inventario que controla la ejecución principal del programa.
|
* Clase Inventario que controla la ejecución principal del programa.
|
||||||
* @author Ricardo Montañana Gómez <rmontanana@gmail.com>
|
* @author Ricardo Montañana Gómez <rmontanana@gmail.com>
|
||||||
@@ -23,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
// Clase del objeto principal de la aplicación
|
// Clase del objeto principal de la aplicación
|
||||||
class Inventario {
|
class Inventario {
|
||||||
|
|
||||||
// Declaración de miembros
|
// Declaración de miembros
|
||||||
private $bdd; // Enlace con el SGBD
|
private $bdd; // Enlace con el SGBD
|
||||||
private $registrado; // Usuario registrado s/n
|
private $registrado; // Usuario registrado s/n
|
||||||
@@ -32,9 +34,9 @@ class Inventario {
|
|||||||
private $perfil; //Permisos del usuario.
|
private $perfil; //Permisos del usuario.
|
||||||
private $estado; //BD conectada o no
|
private $estado; //BD conectada o no
|
||||||
private $plant = 'plant/principal.html';
|
private $plant = 'plant/principal.html';
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
public function __construct()
|
public function __construct() {
|
||||||
{
|
|
||||||
// Analizamos la cadena de solicitud para saber
|
// Analizamos la cadena de solicitud para saber
|
||||||
// qué opción es la actual
|
// qué opción es la actual
|
||||||
$this->opcActual = $_SERVER['QUERY_STRING'] == '' ? 'principal' : $_SERVER['QUERY_STRING'];
|
$this->opcActual = $_SERVER['QUERY_STRING'] == '' ? 'principal' : $_SERVER['QUERY_STRING'];
|
||||||
@@ -44,7 +46,8 @@ class Inventario {
|
|||||||
$this->bdd = new Sql(SERVIDOR, USUARIO, CLAVE, BASEDATOS);
|
$this->bdd = new Sql(SERVIDOR, USUARIO, CLAVE, BASEDATOS);
|
||||||
if ($this->bdd->error()) {
|
if ($this->bdd->error()) {
|
||||||
echo '<h1>Fallo al conectar con el servidor MySQL.</h1>';
|
echo '<h1>Fallo al conectar con el servidor MySQL.</h1>';
|
||||||
echo SERVIDOR;echo "Servidor [ ". SERVIDOR ." ] usuario [".USUARIO."] clave [".CLAVE."] base [".BASEDATOS."]";
|
echo SERVIDOR;
|
||||||
|
echo "Servidor [ " . SERVIDOR . " ] usuario [" . USUARIO . "] clave [" . CLAVE . "] base [" . BASEDATOS . "]";
|
||||||
$this->estado = false;
|
$this->estado = false;
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@@ -64,16 +67,15 @@ class Inventario {
|
|||||||
$this->usuario = '';
|
$this->usuario = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function estado()
|
|
||||||
{
|
public function estado() {
|
||||||
return $this->estado;
|
return $this->estado;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Esta función pondrá en marcha la aplicación ocupándose
|
// Esta función pondrá en marcha la aplicación ocupándose
|
||||||
// de las acciones que no generan contenido, esto es
|
// de las acciones que no generan contenido, esto es
|
||||||
// iniciar sesión, cerrarla, etc.
|
// iniciar sesión, cerrarla, etc.
|
||||||
public function Ejecuta()
|
public function Ejecuta() {
|
||||||
{
|
|
||||||
// Dependiendo de la opción a procesar
|
// Dependiendo de la opción a procesar
|
||||||
switch ($this->opcActual) {
|
switch ($this->opcActual) {
|
||||||
// El usuario quiere cerrar la sesión actual
|
// El usuario quiere cerrar la sesión actual
|
||||||
@@ -134,15 +136,15 @@ class Inventario {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function creaContenido()
|
|
||||||
{
|
private function creaContenido() {
|
||||||
return new AportaContenido($this->bdd, $this->registrado, $this->usuario, $this->perfil, $this->opcActual);
|
return new AportaContenido($this->bdd, $this->registrado, $this->usuario, $this->perfil, $this->opcActual);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Esta función comprueba si el usuario está o no registrado,
|
// Esta función comprueba si el usuario está o no registrado,
|
||||||
// devolviendo su IdSesion en caso afirmativo o false
|
// devolviendo su IdSesion en caso afirmativo o false
|
||||||
// en caso contrario
|
// en caso contrario
|
||||||
private function usuarioRegistrado()
|
private function usuarioRegistrado() {
|
||||||
{
|
|
||||||
$this->usuario = $_POST['usuario'];
|
$this->usuario = $_POST['usuario'];
|
||||||
$this->clave = $_POST['clave'];
|
$this->clave = $_POST['clave'];
|
||||||
// ejecuta la consulta para buscar el usuario
|
// ejecuta la consulta para buscar el usuario
|
||||||
@@ -165,19 +167,19 @@ class Inventario {
|
|||||||
// la clave no es correcta
|
// la clave no es correcta
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
private function creaPerfil($fila)
|
|
||||||
{
|
private function creaPerfil($fila) {
|
||||||
return array("Consulta" => $fila['consulta'], "Modificacion" => $fila['modificacion'],
|
return array("Consulta" => $fila['consulta'], "Modificacion" => $fila['modificacion'],
|
||||||
"Alta" => $fila['alta'], "Borrado" => $fila['borrado'], "Informe" => $fila['informe'],
|
"Alta" => $fila['alta'], "Borrado" => $fila['borrado'], "Informe" => $fila['informe'],
|
||||||
"Usuarios" => $fila['usuarios'], "Config" => $fila['config']);
|
"Usuarios" => $fila['usuarios'], "Config" => $fila['config']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Esta función intenta recuperar el nombre del usuario
|
// Esta función intenta recuperar el nombre del usuario
|
||||||
// a partir del Id de sesión almacenado en una cookie,
|
// a partir del Id de sesión almacenado en una cookie,
|
||||||
// dejando las variables Registrado y Usuario con
|
// dejando las variables Registrado y Usuario con
|
||||||
// los valores apropiados
|
// los valores apropiados
|
||||||
// @param String Identificador de sesión del usuario actual
|
// @param String Identificador de sesión del usuario actual
|
||||||
private function recuperaNombreConId($idSesion)
|
private function recuperaNombreConId($idSesion) {
|
||||||
{
|
|
||||||
// para ejecutar la consulta para buscar el Id de sesión
|
// para ejecutar la consulta para buscar el Id de sesión
|
||||||
$res = $this->bdd->ejecuta("SELECT * FROM Usuarios WHERE idSesion='$idSesion'");
|
$res = $this->bdd->ejecuta("SELECT * FROM Usuarios WHERE idSesion='$idSesion'");
|
||||||
// Si no hemos encontrado el ID
|
// Si no hemos encontrado el ID
|
||||||
@@ -202,6 +204,7 @@ class Inventario {
|
|||||||
$_SESSION['Perfil'] = $this->perfil;
|
$_SESSION['Perfil'] = $this->perfil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package Inventario
|
* @package Inventario
|
||||||
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
* @copyright Copyright (c) 2008, Ricardo Montañana Gómez
|
||||||
@@ -22,7 +23,9 @@
|
|||||||
define('EDICION', 'Edición');
|
define('EDICION', 'Edición');
|
||||||
define('BORRADO', '<i>Borrado</i>');
|
define('BORRADO', '<i>Borrado</i>');
|
||||||
define('ANADIR', 'Inserción');
|
define('ANADIR', 'Inserción');
|
||||||
|
|
||||||
class Mantenimiento {
|
class Mantenimiento {
|
||||||
|
|
||||||
private $descripcion;
|
private $descripcion;
|
||||||
protected $bdd;
|
protected $bdd;
|
||||||
protected $url;
|
protected $url;
|
||||||
@@ -35,16 +38,15 @@
|
|||||||
protected $comandoConsulta = "";
|
protected $comandoConsulta = "";
|
||||||
protected $perfil;
|
protected $perfil;
|
||||||
|
|
||||||
public function __construct($baseDatos,$perfil,$nombre)
|
public function __construct($baseDatos, $perfil, $nombre) {
|
||||||
{
|
|
||||||
$this->bdd = $baseDatos;
|
$this->bdd = $baseDatos;
|
||||||
$this->url = "index.php?$nombre&opc=inicial";
|
$this->url = "index.php?$nombre&opc=inicial";
|
||||||
$this->cabecera = 'Location: ' . $this->url;
|
$this->cabecera = 'Location: ' . $this->url;
|
||||||
$this->tabla = ucfirst($nombre);
|
$this->tabla = ucfirst($nombre);
|
||||||
$this->perfil = $perfil;
|
$this->perfil = $perfil;
|
||||||
}
|
}
|
||||||
public function ejecuta()
|
|
||||||
{
|
public function ejecuta() {
|
||||||
$opc = $_GET['opc'];
|
$opc = $_GET['opc'];
|
||||||
$id = $_GET['id'];
|
$id = $_GET['id'];
|
||||||
$orden = isset($_GET['orden']) ? $_GET['orden'] : '';
|
$orden = isset($_GET['orden']) ? $_GET['orden'] : '';
|
||||||
@@ -66,8 +68,8 @@
|
|||||||
default:return 'La clase Mantenimiento No entiende lo solicitado.';
|
default:return 'La clase Mantenimiento No entiende lo solicitado.';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected function obtieneClavesForaneas()
|
|
||||||
{
|
protected function obtieneClavesForaneas() {
|
||||||
$salida = null;
|
$salida = null;
|
||||||
foreach ($this->campos as $clave => $valor) {
|
foreach ($this->campos as $clave => $valor) {
|
||||||
$trozos = explode(",", $valor["Comment"]);
|
$trozos = explode(",", $valor["Comment"]);
|
||||||
@@ -84,8 +86,8 @@
|
|||||||
}
|
}
|
||||||
$this->foraneas = $salida;
|
$this->foraneas = $salida;
|
||||||
}
|
}
|
||||||
private function consulta($pagina,$orden,$sentido)
|
|
||||||
{
|
private function consulta($pagina, $orden, $sentido) {
|
||||||
//Calcula los números de página anterior y siguiente.
|
//Calcula los números de página anterior y siguiente.
|
||||||
$pagina = $pagina + 0;
|
$pagina = $pagina + 0;
|
||||||
$pagSigte = $pagina <= 0 ? 1 : $pagina + 1;
|
$pagSigte = $pagina <= 0 ? 1 : $pagina + 1;
|
||||||
@@ -110,12 +112,13 @@
|
|||||||
}
|
}
|
||||||
//Introduce un botón para hacer búsquedas
|
//Introduce un botón para hacer búsquedas
|
||||||
$salida = $this->enlaceBusqueda();
|
$salida = $this->enlaceBusqueda();
|
||||||
|
//Esta orden de centrado se cierra en el pie de la tabla
|
||||||
|
$salida.='<center><h4>Página ' . $pagSigte . '</h4>';
|
||||||
$salida.=$this->cabeceraTabla();
|
$salida.=$this->cabeceraTabla();
|
||||||
//Consulta paginada de todas las tuplas
|
//Consulta paginada de todas las tuplas
|
||||||
$comando = str_replace('{inferior}', ($pagAnt + 1) * NUMFILAS, $comando);
|
$comando = str_replace('{inferior}', ($pagAnt + 1) * NUMFILAS, $comando);
|
||||||
$comando = str_replace('{superior}', NUMFILAS, $comando);
|
$comando = str_replace('{superior}', NUMFILAS, $comando);
|
||||||
//$salida.=$comando;
|
//$salida.=$comando;
|
||||||
$salida.='<h4>Página '.$pagSigte.'</h4>';
|
|
||||||
$tabla = strtolower($this->tabla);
|
$tabla = strtolower($this->tabla);
|
||||||
$this->bdd->ejecuta($comando);
|
$this->bdd->ejecuta($comando);
|
||||||
if ($this->bdd->numeroTuplas() == 0) {
|
if ($this->bdd->numeroTuplas() == 0) {
|
||||||
@@ -129,7 +132,7 @@
|
|||||||
}
|
}
|
||||||
//$salida.=print_r($this->perfil);
|
//$salida.=print_r($this->perfil);
|
||||||
while ($fila = $this->bdd->procesaResultado()) {
|
while ($fila = $this->bdd->procesaResultado()) {
|
||||||
$salida.="<tr>";
|
$salida.='<tr align="center" bottom="middle">';
|
||||||
foreach ($fila as $clave => $valor) {
|
foreach ($fila as $clave => $valor) {
|
||||||
if ($clave == "id") {
|
if ($clave == "id") {
|
||||||
$id = $valor;
|
$id = $valor;
|
||||||
@@ -148,7 +151,7 @@
|
|||||||
'"><img title="Eliminar" src="img/' . ESTILO . '/eliminar.png" alt="eliminar"></a></td></tr>' . "\n";
|
'"><img title="Eliminar" src="img/' . ESTILO . '/eliminar.png" alt="eliminar"></a></td></tr>' . "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$salida.="</tbody></table></p>";
|
$salida.="</tbody></table></center></p>";
|
||||||
//Añade botones de comandos
|
//Añade botones de comandos
|
||||||
$enlace = '<a href="' . $this->url . $sufijoOrden . '&id=';
|
$enlace = '<a href="' . $this->url . $sufijoOrden . '&id=';
|
||||||
if ($this->bdd->numeroTuplas()) {
|
if ($this->bdd->numeroTuplas()) {
|
||||||
@@ -178,8 +181,8 @@
|
|||||||
"$rew  $anterior  $az  $anadir  $informe  $za  $siguiente  $fwd</p>";
|
"$rew  $anterior  $az  $anadir  $informe  $za  $siguiente  $fwd</p>";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
private function enlaceBusqueda()
|
|
||||||
{
|
private function enlaceBusqueda() {
|
||||||
$salida = '<p align="center">';
|
$salida = '<p align="center">';
|
||||||
$salida.='<center><form name="busqueda" method="POST"><input type="text" name="buscar"';
|
$salida.='<center><form name="busqueda" method="POST"><input type="text" name="buscar"';
|
||||||
$salida.='value="' . $this->cadenaBusqueda . '" size="40" /><input type="submit" value="Buscar" name=';
|
$salida.='value="' . $this->cadenaBusqueda . '" size="40" /><input type="submit" value="Buscar" name=';
|
||||||
@@ -187,8 +190,8 @@
|
|||||||
$salida.='</p>';
|
$salida.='</p>';
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
protected function borrar($id)
|
|
||||||
{
|
protected function borrar($id) {
|
||||||
$comando = "delete from " . $this->tabla . " where id=\"$id\"";
|
$comando = "delete from " . $this->tabla . " where id=\"$id\"";
|
||||||
if (!$this->bdd->ejecuta($comando)) {
|
if (!$this->bdd->ejecuta($comando)) {
|
||||||
return $this->errorBD($comando);
|
return $this->errorBD($comando);
|
||||||
@@ -196,8 +199,8 @@
|
|||||||
header('Location: ' . $this->url);
|
header('Location: ' . $this->url);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
protected function insertar()
|
|
||||||
{
|
protected function insertar() {
|
||||||
$comando = "insert into " . $this->tabla . " (";
|
$comando = "insert into " . $this->tabla . " (";
|
||||||
$lista = explode("&", $_POST['listacampos']);
|
$lista = explode("&", $_POST['listacampos']);
|
||||||
$primero = true;
|
$primero = true;
|
||||||
@@ -236,8 +239,8 @@
|
|||||||
$enlace.="&opc=inicial";
|
$enlace.="&opc=inicial";
|
||||||
return "<h1><a href=\"$enlace\">Se ha insertado el registro con la clave " . $this->bdd->ultimoId() . "</a></h1>";
|
return "<h1><a href=\"$enlace\">Se ha insertado el registro con la clave " . $this->bdd->ultimoId() . "</a></h1>";
|
||||||
}
|
}
|
||||||
protected function modificar($id,$pag,$orden,$sentido)
|
|
||||||
{
|
protected function modificar($id, $pag, $orden, $sentido) {
|
||||||
//Los datos a utilizar para actualizar la tupla vienen en $_POST.
|
//Los datos a utilizar para actualizar la tupla vienen en $_POST.
|
||||||
//La lista de atributos de la tupla viene en el campo oculto listacampos
|
//La lista de atributos de la tupla viene en el campo oculto listacampos
|
||||||
//print_r($_GET);
|
//print_r($_GET);
|
||||||
@@ -251,7 +254,8 @@
|
|||||||
if ($primero) {
|
if ($primero) {
|
||||||
$primero = false;
|
$primero = false;
|
||||||
$coma = " ";
|
$coma = " ";
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
$coma = ",";
|
$coma = ",";
|
||||||
if (strlen(trim($_POST[$campo])) == 0)
|
if (strlen(trim($_POST[$campo])) == 0)
|
||||||
$comando.="$coma $campo=null";
|
$comando.="$coma $campo=null";
|
||||||
@@ -268,8 +272,8 @@
|
|||||||
header('Location: ' . $enlace);
|
header('Location: ' . $enlace);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
protected function muestra($id,$tipoAccion,$pag="",$orden="",$sentido="")
|
|
||||||
{
|
protected function muestra($id, $tipoAccion, $pag = "", $orden = "", $sentido = "") {
|
||||||
if (isset($id)) {
|
if (isset($id)) {
|
||||||
$comando = "select * from " . $this->tabla . " where id='$id'";
|
$comando = "select * from " . $this->tabla . " where id='$id'";
|
||||||
$resultado = $this->bdd->ejecuta($comando);
|
$resultado = $this->bdd->ejecuta($comando);
|
||||||
@@ -299,10 +303,10 @@
|
|||||||
//Genera un formulario con los datos de la tupla seleccionada.
|
//Genera un formulario con los datos de la tupla seleccionada.
|
||||||
return $this->formularioCampos($accion, $tipoAccion, $fila);
|
return $this->formularioCampos($accion, $tipoAccion, $fila);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Función que genera un campo de lista con los valores de descripción de la
|
//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.
|
//tabla a la cual pertenece la clave foránea.
|
||||||
protected function generaLista($datos,$campo,$valorInicial,$modo)
|
protected function generaLista($datos, $campo, $valorInicial, $modo) {
|
||||||
{
|
|
||||||
$salida = "<select name=\"$campo\">\n";
|
$salida = "<select name=\"$campo\">\n";
|
||||||
list($tabla, $atributos) = explode(",", $datos);
|
list($tabla, $atributos) = explode(",", $datos);
|
||||||
$atributos = str_replace("/", ",", $atributos);
|
$atributos = str_replace("/", ",", $atributos);
|
||||||
@@ -334,12 +338,12 @@
|
|||||||
$salida.="</select>\n<br><br>";
|
$salida.="</select>\n<br><br>";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo Hay que hacer lo de las búsquedas automatizadas. Buscar el comment de buscar.
|
* @todo Hay que hacer lo de las búsquedas automatizadas. Buscar el comment de buscar.
|
||||||
* @todo Hay que hacer lo de las ordenaciones automatizadas. Buscar el comment de ordenable.
|
* @todo Hay que hacer lo de las ordenaciones automatizadas. Buscar el comment de ordenable.
|
||||||
*/
|
*/
|
||||||
private function obtenerCampos()
|
private function obtenerCampos() {
|
||||||
{
|
|
||||||
//Si hay un fichero de descripción xml lo utiliza.
|
//Si hay un fichero de descripción xml lo utiliza.
|
||||||
$nombre = "xml/mantenimiento" . $this->tabla . ".xml";
|
$nombre = "xml/mantenimiento" . $this->tabla . ".xml";
|
||||||
if (file_exists($nombre)) {
|
if (file_exists($nombre)) {
|
||||||
@@ -361,8 +365,8 @@
|
|||||||
$this->comandoConsulta = "select * from " . $this->tabla . " {buscar} {orden} limit {inferior},{superior}";
|
$this->comandoConsulta = "select * from " . $this->tabla . " {buscar} {orden} limit {inferior},{superior}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function cabeceraTabla()
|
|
||||||
{
|
private function cabeceraTabla() {
|
||||||
$salida = '<p align="center"><table border=1 class="tablaDatos"><tbody>';
|
$salida = '<p align="center"><table border=1 class="tablaDatos"><tbody>';
|
||||||
foreach ($this->campos as $clave => $datos) {
|
foreach ($this->campos as $clave => $datos) {
|
||||||
$comen = explode(",", $datos["Comment"]);
|
$comen = explode(",", $datos["Comment"]);
|
||||||
@@ -383,6 +387,7 @@
|
|||||||
$salida.="<th><b>Acción</b></th>\n";
|
$salida.="<th><b>Acción</b></th>\n";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param string $accion URL de la acción del POST
|
* @param string $accion URL de la acción del POST
|
||||||
@@ -390,8 +395,7 @@
|
|||||||
* @param array $datos Vector con los datos del registro
|
* @param array $datos Vector con los datos del registro
|
||||||
* @return array lista de campos y formulario de entrada
|
* @return array lista de campos y formulario de entrada
|
||||||
*/
|
*/
|
||||||
private function formularioCampos($accion,$tipo,$datos)
|
private function formularioCampos($accion, $tipo, $datos) {
|
||||||
{
|
|
||||||
$modo = $tipo == BORRAR ? "readonly" : "";
|
$modo = $tipo == BORRAR ? "readonly" : "";
|
||||||
$salida.='<form name="mantenimiento.form" method="post" action="' . $accion . '">' . "\n";
|
$salida.='<form name="mantenimiento.form" method="post" action="' . $accion . '">' . "\n";
|
||||||
$salida.="<fieldset style=\"width: 96%;\"><p><legend style=\"color: red;\"><b>$tipo</b></legend>\n";
|
$salida.="<fieldset style=\"width: 96%;\"><p><legend style=\"color: red;\"><b>$tipo</b></legend>\n";
|
||||||
@@ -420,8 +424,12 @@
|
|||||||
list($resto, $tamano) = explode("(", $tipoCampo);
|
list($resto, $tamano) = explode("(", $tipoCampo);
|
||||||
$tamano = substr($tamano, 0, -1);
|
$tamano = substr($tamano, 0, -1);
|
||||||
}
|
}
|
||||||
|
if ($tipoCampo == "Password")
|
||||||
|
$tipo_campo = "password";
|
||||||
|
else
|
||||||
|
$tipo_campo = "text";
|
||||||
//Si no es una clave foránea añade un campo de texto normal
|
//Si no es una clave foránea añade un campo de texto normal
|
||||||
$salida.='<input type="text" name="'.$campo.'" value="'.$valorDato.
|
$salida.='<input type="' . $tipo_campo . '" name="' . $campo . '" value="' . $valorDato .
|
||||||
'" maxlength="' . $tamano . '" size="' . $tamano . '" ' . $modoEfectivo . " ><br><br>\n";
|
'" maxlength="' . $tamano . '" size="' . $tamano . '" ' . $modoEfectivo . " ><br><br>\n";
|
||||||
} else {
|
} else {
|
||||||
$salida.=$this->generaLista($this->foraneas[$campo], $campo, $valorDato, $modoEfectivo);
|
$salida.=$this->generaLista($this->foraneas[$campo], $campo, $valorDato, $modoEfectivo);
|
||||||
@@ -435,13 +443,15 @@
|
|||||||
$salida.="<button type=reset>Cancelar</button> <button type=submit>Aceptar</button><br>\n";
|
$salida.="<button type=reset>Cancelar</button> <button type=submit>Aceptar</button><br>\n";
|
||||||
return $salida;
|
return $salida;
|
||||||
}
|
}
|
||||||
protected function errorBD($comando,$mensaje="")
|
|
||||||
{
|
protected function errorBD($comando, $mensaje = "") {
|
||||||
if (!$mensaje) {
|
if (!$mensaje) {
|
||||||
return "<h1>No pudo ejecutar correctamente el comando $comando error=" . $this->bdd->mensajeError() . " </h1>";
|
return "<h1>No pudo ejecutar correctamente el comando $comando error=" . $this->bdd->mensajeError() . " </h1>";
|
||||||
} else {
|
} else {
|
||||||
return "<h1>$mensaje error=" . $this->bdd->mensajeError() . "</h1>";
|
return "<h1>$mensaje error=" . $this->bdd->mensajeError() . "</h1>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
8
Menu.php
8
Menu.php
@@ -29,10 +29,10 @@ class Menu {
|
|||||||
// Obtenemos la lista de pares Opción|Enlace
|
// Obtenemos la lista de pares Opción|Enlace
|
||||||
$elementos=explode("\n", $contenido);
|
$elementos=explode("\n", $contenido);
|
||||||
foreach($elementos as $elemento) {
|
foreach($elementos as $elemento) {
|
||||||
list($tipo, $opcion, $enlace)=explode('|', $elemento);
|
list($tipo, $opcion, $enlace, $destino)=explode('|', $elemento);
|
||||||
// Los guardamos en la matriz de opciones
|
// Los guardamos en la matriz de opciones
|
||||||
if ($tipo)
|
if ($tipo)
|
||||||
$this->opciones[]=$tipo.",".$opcion.",".$enlace;
|
$this->opciones[]=$tipo.",".$opcion.",".$enlace.",".$destino;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function insertaMenu()
|
public function insertaMenu()
|
||||||
@@ -40,9 +40,9 @@ class Menu {
|
|||||||
$salida="";
|
$salida="";
|
||||||
reset($this->opciones);
|
reset($this->opciones);
|
||||||
foreach($this->opciones as $opcion) {
|
foreach($this->opciones as $opcion) {
|
||||||
list($tipo,$opcion,$enlace)=explode(",",$opcion);
|
list($tipo,$opcion,$enlace,$destino)=explode(",",$opcion);
|
||||||
if ($tipo==2)
|
if ($tipo==2)
|
||||||
$salida.='<a href="'.$enlace.'">'.$opcion.'</a><br />';
|
$salida.='<a href="'.$enlace.'" target="'.$destino.'">'.$opcion.'</a><br />';
|
||||||
else
|
else
|
||||||
$salida.='<label class="key">'.$opcion.'</label><br/>';
|
$salida.='<label class="key">'.$opcion.'</label><br/>';
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
1|Maestros|
|
1|Maestros|
|
||||||
2|Ubicaciones|index.php?ubicaciones&opc=inicial
|
2|Ubicaciones|index.php?ubicaciones&opc=inicial|_self
|
||||||
2|Artículos|index.php?articulos&opc=inicial
|
2|Artículos|index.php?articulos&opc=inicial|_self
|
||||||
2|Elementos|index.php?elementos&opc=inicial&orden=ubicacion&sentido=asc
|
2|Elementos|index.php?elementos&opc=inicial&orden=ubicacion&sentido=asc|_self
|
||||||
2|Usuarios|index.php?usuarios&opc=inicial
|
2|Usuarios|index.php?usuarios&opc=inicial|_self
|
||||||
1|Inventario|
|
1|Inventario|
|
||||||
2|Ubicación|index.php?informeInventario&opc=Ubicacion
|
2|Ubicación|index.php?informeInventario&opc=Ubicacion|_self
|
||||||
2|Artículo|index.php?informeInventario&opc=Articulo
|
2|Artículo|index.php?informeInventario&opc=Articulo|_self
|
||||||
2|Total|index.php?informeInventario&opc=Total
|
2|Total|index.php?informeInventario&opc=Total|_blank
|
||||||
2|Descuadres|index.php?descuadres
|
2|Descuadres|index.php?descuadres|_blank
|
||||||
1|Varios|
|
1|Varios|
|
||||||
2|Configuración|index.php?configuracion
|
2|Configuración|index.php?configuracion|_self
|
||||||
|
@@ -1,11 +1,8 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
|
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
|
||||||
<title>Gestión de Inventario</title>
|
<title>Gestión de Inventario</title>
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="css/estilo.css" type="text/css">
|
<link rel="stylesheet" href="css/estilo.css" type="text/css">
|
||||||
<link rel="shortcut icon" href="img/tux.ico">
|
<link rel="shortcut icon" href="img/tux.ico">
|
||||||
</head>
|
</head>
|
||||||
@@ -51,17 +48,6 @@
|
|||||||
{contenido}<br>
|
{contenido}<br>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Piwik -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var pkBaseURL = (("https:" == document.location.protocol) ? "https://alpera.arpicm.org/piwik/" : "http://alpera.arpicm.org/piwik/");
|
|
||||||
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script><script type="text/javascript">
|
|
||||||
try {
|
|
||||||
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
|
|
||||||
piwikTracker.trackPageView();
|
|
||||||
piwikTracker.enableLinkTracking();
|
|
||||||
} catch( err ) {}
|
|
||||||
</script><noscript><p><img src="http://alpera.arpicm.org/piwik/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>
|
|
||||||
<!-- End Piwik Tracking Code -->
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
168
sql/inv2.sql
Normal file
168
sql/inv2.sql
Normal file
File diff suppressed because one or more lines are too long
117
sql/setup.sql
Normal file
117
sql/setup.sql
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
-- Creación de tablas
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: Inventario2
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Articulos`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Articulos`;
|
||||||
|
SET @saved_cs_client = @@character_set_client;
|
||||||
|
SET character_set_client = utf8;
|
||||||
|
CREATE TABLE `Articulos` (
|
||||||
|
`id` smallint(6) NOT NULL auto_increment,
|
||||||
|
`descripcion` varchar(60) NOT NULL COMMENT 'ordenable',
|
||||||
|
`marca` varchar(20) default NULL COMMENT 'ordenable',
|
||||||
|
`modelo` varchar(20) default NULL COMMENT 'ordenable',
|
||||||
|
`cantidad` int(11) default NULL COMMENT 'ordenable',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=785 DEFAULT CHARSET=latin1;
|
||||||
|
SET character_set_client = @saved_cs_client;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Elementos`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Elementos`;
|
||||||
|
SET @saved_cs_client = @@character_set_client;
|
||||||
|
SET character_set_client = utf8;
|
||||||
|
CREATE TABLE `Elementos` (
|
||||||
|
`id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`id_Articulo` smallint(6) NOT NULL COMMENT 'foreign(Articulos;id),ordenable',
|
||||||
|
`id_Ubicacion` smallint(5) unsigned NOT NULL COMMENT 'foreign(Ubicaciones;id),ordenable',
|
||||||
|
`numserie` varchar(30) default NULL COMMENT 'ordenable',
|
||||||
|
`cantidad` int(10) unsigned default NULL COMMENT 'ordenable',
|
||||||
|
`fechaCompra` datetime NOT NULL COMMENT 'ordenable',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `id` (`id`),
|
||||||
|
KEY `id_Articulo` (`id_Articulo`),
|
||||||
|
KEY `id_Ubicacion` (`id_Ubicacion`),
|
||||||
|
CONSTRAINT `Elementos_ibfk_1` FOREIGN KEY (`id_Articulo`) REFERENCES `Articulos` (`id`) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT `Elementos_ibfk_2` FOREIGN KEY (`id_Ubicacion`) REFERENCES `Ubicaciones` (`id`) ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1884 DEFAULT CHARSET=latin1;
|
||||||
|
SET character_set_client = @saved_cs_client;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Ubicaciones`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Ubicaciones`;
|
||||||
|
SET @saved_cs_client = @@character_set_client;
|
||||||
|
SET character_set_client = utf8;
|
||||||
|
CREATE TABLE `Ubicaciones` (
|
||||||
|
`id` smallint(5) unsigned NOT NULL auto_increment,
|
||||||
|
`Descripcion` varchar(30) NOT NULL COMMENT 'ordenable',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=184 DEFAULT CHARSET=latin1;
|
||||||
|
SET character_set_client = @saved_cs_client;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `Usuarios`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `Usuarios`;
|
||||||
|
SET @saved_cs_client = @@character_set_client;
|
||||||
|
SET character_set_client = utf8;
|
||||||
|
CREATE TABLE `Usuarios` (
|
||||||
|
`id` int(10) unsigned NOT NULL auto_increment,
|
||||||
|
`nombre` varchar(16) NOT NULL default '',
|
||||||
|
`clave` varchar(32) NOT NULL default '',
|
||||||
|
`idSesion` varchar(20) NOT NULL default '',
|
||||||
|
`alta` tinyint(1) NOT NULL default '0',
|
||||||
|
`modificacion` tinyint(1) NOT NULL default '0',
|
||||||
|
`borrado` tinyint(1) NOT NULL default '0',
|
||||||
|
`consulta` tinyint(1) NOT NULL default '1',
|
||||||
|
`informe` tinyint(1) NOT NULL default '1',
|
||||||
|
`usuarios` tinyint(1) NOT NULL default '0',
|
||||||
|
`config` tinyint(1) NOT NULL default '0',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `nombre` (`nombre`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
|
||||||
|
SET character_set_client = @saved_cs_client;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Usuarios iniciales
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `Usuarios` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `Usuarios` DISABLE KEYS */;
|
||||||
|
INSERT INTO `Usuarios` VALUES (1,'admin','galeote','s3LUSqxg{s',1,1,1,1,1,1,1),(2,'demo','demo','NogP_U0Byi',0,0,0,1,1,0,0);
|
||||||
|
/*!40000 ALTER TABLE `Usuarios` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<Informe>
|
<Informe>
|
||||||
<Titulo Texto="Estantería de madera con trasera" />
|
<Titulo Texto="Agitador magnético" />
|
||||||
<Datos>
|
<Datos>
|
||||||
<Consulta>
|
<Consulta>
|
||||||
select A.id as id,U.Descripcion as ubicacion,E.fechaCompra as fechaCompra,
|
select A.id as id,U.Descripcion as ubicacion,E.fechaCompra as fechaCompra,
|
||||||
E.numSerie as numserie,E.Cantidad as cantidad
|
E.numSerie as numserie,E.Cantidad as cantidad
|
||||||
from Elementos E, Articulos A, Ubicaciones U where A.id=E.id_Articulo and U.id=E.id_Ubicacion
|
from Elementos E, Articulos A, Ubicaciones U where A.id=E.id_Articulo and U.id=E.id_Ubicacion
|
||||||
and A.id='593' order by U.Descripcion,numserie;
|
and A.id='700' order by U.Descripcion,numserie;
|
||||||
</Consulta>
|
</Consulta>
|
||||||
</Datos>
|
</Datos>
|
||||||
<Pagina Orientacion="P" Formato="A4">
|
<Pagina Orientacion="P" Formato="A4">
|
||||||
|
BIN
tmp/prueba.pdf
BIN
tmp/prueba.pdf
Binary file not shown.
@@ -1,20 +1,21 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<Mantenimiento>
|
<Mantenimiento>
|
||||||
<Titulo>Mantenimiento de Elementos</Titulo>
|
<Titulo>Mantenimiento de Usuarios</Titulo>
|
||||||
<Consulta>
|
<Consulta>
|
||||||
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,
|
SELECT id, nombre, clave, idSesion, alta, modificacion, borrado, consulta, informe, usuarios, config
|
||||||
DATE_FORMAT(E.fechacompra, '%d/%m/%Y') as fechaCompra,E.cantidad as cantidad
|
FROM Usuarios {buscar} {orden} limit {inferior}, {superior};
|
||||||
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};
|
|
||||||
</Consulta>
|
</Consulta>
|
||||||
<Campos>
|
<Campos>
|
||||||
<Col Campo="id" Nombre="id" Ancho="5" Ajuste="D" Titulo="id" Tipo="smallint(6)"/>
|
<Col Campo="id" Nombre="id" Ancho="5" Ajuste="D" Titulo="id" Tipo="int(6)"/>
|
||||||
<Col Campo="id_Ubicacion" Nombre="ubicacion" Ancho="40" Ajuste="L" Titulo="Ubicación" Varios="ordenable,foreign(Ubicaciones->id;{Descripcion})" Editable="si"/>
|
<Col Campo="nombre" Nombre="nombre" Ancho="16" Ajuste="L" Titulo="Nombre" Varios="ordenable" Editable="si"/>
|
||||||
<Col Campo="id_Articulo" Nombre="articulo" Ancho="40" Ajuste="L" Titulo="Artículo" Varios="ordenable,foreign(Articulos->id;{Descripcion/Marca/Modelo})" Editable="si"/>
|
<Col Campo="clave" Nombre="clave" Ancho="40" Ajuste="L" Titulo="Clave" Tipo="Password" Editable="si"/>
|
||||||
<Col Nombre="marca" Ancho="40" Ajuste="L" Titulo="Marca" Varios="ordenable" Editable="no"/>
|
<Col Nombre="idSesion" Ancho="40" Ajuste="L" Titulo="id Sesión" Editable="si"/>
|
||||||
<Col Nombre="modelo" Ancho="40" Ajuste="L" Titulo="Modelo" Varios="ordenable" Editable="no"/>
|
<Col Campo="alta" Nombre="Alta" Ancho="1" Ajuste="R" Titulo="Altas" Editable="si"/>
|
||||||
<Col Campo="numserie" Nombre="numserie" Ancho="30" Ajuste="L" Titulo="Nº Serie" Varios="ordenable" Editable="si"/>
|
<Col Campo="modificacion" Nombre="modificacion" Ancho="1" Ajuste="R" Titulo="Modificaciones" Editable="si"/>
|
||||||
<Col Campo="fechaCompra" Nombre="fechaCompra" Ancho="25" Ajuste="L" Titulo="Compra" Varios="ordenable" Tipo="fecha" Editable="si"/>
|
<Col Campo="borrado" Nombre="borrado" Ancho="1" Ajuste="R" Titulo="Borrados" Editable="si"/>
|
||||||
<Col Campo="cantidad" Nombre="cantidad" Ancho="15" Ajuste="D" Titulo="Cant." Tipo="Int(11)" Editable="si"/>
|
<Col Campo="consulta" Nombre="consulta" Ancho="1" Ajuste="R" Titulo="Consultas" Editable="si"/>
|
||||||
|
<Col Campo="informe" Nombre="informe" Ancho="1" Ajuste="R" Titulo="Informes" Editable="si"/>
|
||||||
|
<Col Campo="usuarios" Nombre="usuarios" Ancho="1" Ajuste="R" Titulo="Usuarios" Editable="si"/>
|
||||||
|
<Col Campo="config" Nombre="config" Ancho="1" Ajuste="R" Titulo="Configuración" Editable="si"/>
|
||||||
</Campos>
|
</Campos>
|
||||||
</Mantenimiento>
|
</Mantenimiento>
|
||||||
|
Reference in New Issue
Block a user