diff --git a/AportaContenido.php b/AportaContenido.php index e6d312b..87ef562 100644 --- a/AportaContenido.php +++ b/AportaContenido.php @@ -162,8 +162,6 @@ class AportaContenido { public function __call($metodo, $parametros) { switch ($metodo) { // Dependiendo del método invocado - case 'titulo': // devolvemos el título - return PROGRAMA . " v" . VERSION; case 'usuario': if ($this->registrado) return "Usuario=$this->usuario"; @@ -249,7 +247,7 @@ class AportaContenido { if (!$this->pefil['Informe']) { $this->procesaURL(); $fichero = 'xml/informe' . ucfirst($opcion) . '.xml'; - $salida = 'tmp/informe' . ucfirst($opcion) . '.xml'; + $salida = TMP.'/informe' . ucfirst($opcion) . '.xml'; //Establece los posibles parámetros del listado. $orden = $this->datosURL['orden']; $sentido = $this->datosURL['sentido'] == "asc" ? ' ' : ' desc '; @@ -279,7 +277,7 @@ class AportaContenido { if (!$this->pefil['Informe']) { $this->procesaURL(); $fichero = 'xml/informe' . ucfirst($opcion) . '.xml'; - $salida = 'tmp/informe' . ucfirst($opcion) . '.xml'; + $salida = TMP.'/informe' . ucfirst($opcion) . '.xml'; //Establece los posibles parámetros del listado. $orden = $this->datosURL['orden']; $sentido = $this->datosURL['sentido'] == "asc" ? ' ' : ' desc '; @@ -380,7 +378,7 @@ class AportaContenido { private function devuelveInforme($informe) { $letras = "abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - $nombre = "tmp/informe" . substr(str_shuffle($letras), 0, 10) . ".pdf"; + $nombre = TMP."/informe" . substr(str_shuffle($letras), 0, 10) . ".pdf"; $informe->guardaArchivo($nombre); return '
diff --git a/CHANGELOG b/CHANGELOG index 14dcb9e..4d7765d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,11 @@ -Versión 1.12 29-04-2014 --Mantenimiento muestra el 'Titulo' del campo tanto en Consulta como en el formulario de edición. +Versión 1.12 05-05-2014 +-Mantenimiento muestra el 'Titulo' del campo tanto en Consulta como en el formulario de edición -Muestra cuadro de búsqueda y mensaje correcto cuando no se encuentra la cadena de búsqueda en Mantenimiento --Cambiados los informes de Articulos y Ubicaciones para recoger el campo Nº de elementos --Añadido el campo Nº de elementos en el mantenimiento de Articulos y Ubicaciones a través de archivo xml +-Añadidos mensajes de ayuda en los campos de configuración +-Añadida la columna de cantidad ubicada en mantenimiento de artículos +-Fix #35. Cambiados los informes de Articulos y Ubicaciones para recoger el campo Nº de elementos +-Fix #35. Añadido el campo Nº de elementos en el mantenimiento de Articulos y Ubicaciones a través de archivo xml +-Fix #31. Añadido el directorio temporal en el archivo de configuración Versión 1.11b 26-04-2014 -Cambiada la referencia de etiquetas Apli diff --git a/Configuracion.php b/Configuracion.php index 32cc446..88ed186 100644 --- a/Configuracion.php +++ b/Configuracion.php @@ -25,7 +25,7 @@ class Configuracion { private $confAnterior = "inc/configuracion.ant"; private $datosConf; //Campos del fichero de configuración que se van a editar. - private $lista = array('SERVIDOR', 'PUERTO', 'BASEDATOS', 'BASEDATOSTEST', 'USUARIO', 'CLAVE', 'CENTRO', 'NUMFILAS', 'ESTILO', 'PLANTILLA', 'COLORLAT', 'COLORFON', 'MYSQLDUMP', 'GZIP'); + private $lista = array('SERVIDOR', 'PUERTO', 'BASEDATOS', 'BASEDATOSTEST', 'USUARIO', 'CLAVE', 'CENTRO', 'NUMFILAS', 'ESTILO', 'PLANTILLA', 'COLORLAT', 'COLORFON', 'MYSQLDUMP', 'GZIP', 'TMP'); private $campos; public function __construct() @@ -54,6 +54,11 @@ class Configuracion { $valor = trim($valor); } + private function creaTitulo($titulo, $ayuda) + { + return ''.$titulo.''; + } + public function ejecuta() { $fichero = $this->obtieneFichero(); $datos = explode("\n", $fichero); @@ -107,17 +112,17 @@ class Configuracion { //$salida.='

'; $salida.='

'; $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''.$this->creaTitulo("Nombre del Centro","Nombre que aparecerá en los informes y en la página principal de la aplicación").''; + $salida.=''.$this->creaTitulo("Número de filas","Número de filas que aparecerán en la pantalla de consulta de los maestros. Valor entre 10 y 25.").''; + $salida.=''.$this->creaTitulo("Plantilla","Plantilla html utilizada para mostrar el contenido de la aplicación.").''; - $salida.=''.$this->creaTitulo("Estilo","Estilo de los botones de control en los mantenimientos de los maestros").''; - $salida.=''.$this->creaTitulo("Color Lateral","Color que se aplicará a la parte izquierda de la aplicación donde aparece el menú").''; - $salida.=''.$this->creaTitulo("Color Fondo","Color que aparecerá como fondo en todas las pantallas de la aplicación").''; + $salida.=''.$this->creaTitulo("Directorio tmp","Directorio donde se almacenarán los archivos temporales de la aplicación y también los archivos e informes que genera").''; $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; - $salida.=''; + $salida.=''.$this->creaTitulo("Servidor","Nombre o dirección IP del servidor MySQL").''; + $salida.=''.$this->creaTitulo("Puerto","Número de puerto donde el servidor admite conexiones MySQL").''; + $salida.=''.$this->creaTitulo("Base de datos","Nombre de la base de datos donde se almacenarán los datos de la aplicación").''; + $salida.=''.$this->creaTitulo("Base de datos Tests","Nombre de la base de datos donde se almacenarán los datos de prueba de la aplicación").''; + $salida.=''.$this->creaTitulo("Usuario","Usuario con permisos de lectura/escritura en la base de datos").''; + $salida.=''.$this->creaTitulo("Clave","Contraseña del usuario con permisos sobre la base de datos").''; + $salida.=''.$this->creaTitulo("mysqldump","Ruta completa a la utilidad mysqldump. Este programa es necesario para que se puedan hacer las copias de seguridad de la aplicación").''; + $salida.=''.$this->creaTitulo("gzip","Ruta completa a la utilidad gzip. Este programa es necesario para que se puedan comprimir las copias de seguridad de la aplicación").''; $salida.='

'; $salida.=''; $salida.=""; return $salida; diff --git a/CopiaSeguridad.php b/CopiaSeguridad.php index 6d0fa0c..ed9f37c 100644 --- a/CopiaSeguridad.php +++ b/CopiaSeguridad.php @@ -53,7 +53,7 @@ class CopiaSeguridad { } private function copiaBaseDatos() { - $archivo_sql = "tmp/baseDatos" . BASEDATOS . ".sql"; + $archivo_sql = TMP."/baseDatos" . BASEDATOS . ".sql"; $baseDatosComprimida = $archivo_sql . ".gz"; $this->baseDatos = $baseDatosComprimida; if (file_exists($baseDatosComprimida)) { @@ -78,7 +78,7 @@ class CopiaSeguridad { } private function copiaImagenes() { - $copiaImagenes = "tmp/Imagenes.tbz"; + $copiaImagenes = TMP."/Imagenes.tbz"; $this->imagenes = $copiaImagenes; if (file_exists($copiaImagenes)) { unlink($copiaImagenes); @@ -98,7 +98,7 @@ class CopiaSeguridad { private function empaqueta() { // Empaqueta los dos archivos en el que va a devolver - $nombreCopia = "tmp/Copia" . BASEDATOS . strftime("%Y%m%d%H%M") . ".tar"; + $nombreCopia = TMP."/Copia" . BASEDATOS . strftime("%Y%m%d%H%M") . ".tar"; if (file_exists($nombreCopia)) { unlink($nombreCopia); } diff --git a/EtiquetasPDF.php b/EtiquetasPDF.php index e4713fd..daf46ae 100644 --- a/EtiquetasPDF.php +++ b/EtiquetasPDF.php @@ -1,4 +1,3 @@ - nombreFichero = TMP."/informeEtiquetas.pdf"; // Recuperamos la definición del informe $this->def = simplexml_load_file($definicion); $this->bdd = $bdd; @@ -105,7 +105,7 @@ class EtiquetasPDF { } $py = 6 + 41 * $fila; $enlace2=$enlace.$tupla['idEl']; - $fichero = "tmp/etiq".rand(1000,9999).".png"; + $fichero = TMP."/etiq".rand(1000,9999).".png"; QRcode::png($enlace2, $fichero); $this->pdf->image($fichero, $etiq2, $py, 30, 30); unlink($fichero); @@ -155,7 +155,7 @@ class EtiquetasPDF { return $cabecera; } - public function guardaArchivo($nombre = "tmp/Informe.pdf") + public function guardaArchivo($nombre) { $fichero = fopen($nombre, "w"); fwrite($fichero, $this->getCabecera()); diff --git a/Importacion.php b/Importacion.php index 334314c..fac23d0 100644 --- a/Importacion.php +++ b/Importacion.php @@ -44,7 +44,7 @@ class Importacion { } private function importarFichero() { - $uploadfile = "tmp/" . basename($_FILES['fichero']['name']); + $uploadfile = TMP."/" . basename($_FILES['fichero']['name']); if (!move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile)) { die('No se pudo subir el fichero ' . $_FILES['userfile']['tmp_name']); } diff --git a/InformeInventario.php b/InformeInventario.php index d2e28c7..29502a4 100644 --- a/InformeInventario.php +++ b/InformeInventario.php @@ -54,7 +54,7 @@ class InformeInventario { private function devuelveInforme($informe) { $letras = "abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; - $nombre = "tmp/informe" . substr(str_shuffle($letras), 0, 10) . ".pdf"; + $nombre = TMP."/informe" . substr(str_shuffle($letras), 0, 10) . ".pdf"; $informe->guardaArchivo($nombre); return '
@@ -69,15 +69,15 @@ class InformeInventario { switch ($salidaInforme) { case "pantalla": $fichero = "xml/inventarioUbicacion.xml"; - $salida = "tmp/inventarioUbicacion.xml"; + $salida = TMP."/inventarioUbicacion.xml"; break; case "csv": $fichero = "xml/inventarioUbicacionCSV.xml"; - $salida = "tmp/inventarioUbicacionCSV.xml"; + $salida = TMP."/inventarioUbicacionCSV.xml"; break; case "etiquetas": $fichero = "xml/inventarioUbicacionEtiquetas.xml"; - $salida = "tmp/inventarioUbicacionEtiquetas.xml"; + $salida = TMP."/inventarioUbicacionEtiquetas.xml"; break; } $plantilla = file_get_contents($fichero) or die('Fallo en la apertura de la plantilla ' . $fichero); @@ -99,7 +99,7 @@ class InformeInventario { return $this->devuelveInforme($informe); case "csv": //Genera una hoja de cálculo en formato csv - $nombre = "tmp/Ubicacion" . strftime("%Y%m%d") . rand(100, 999) . ".csv"; + $nombre = TMP."/Ubicacion" . strftime("%Y%m%d") . rand(100, 999) . ".csv"; $hoja = new Csv($this->bdd); $hoja->crea($nombre); $hoja->ejecutaConsulta($salida); @@ -119,15 +119,15 @@ class InformeInventario { switch ($salidaInforme) { case "pantalla": $fichero = "xml/inventarioArticulo.xml"; - $salida = "tmp/inventarioArticulo.xml"; + $salida = TMP."/inventarioArticulo.xml"; break; case "csv": $fichero = "xml/inventarioArticuloCSV.xml"; - $salida = "tmp/inventarioArticuloCSV.xml"; + $salida = TMP."/inventarioArticuloCSV.xml"; break; case "etiquetas": $fichero = "xml/inventarioArticuloEtiquetas.xml"; - $salida = "tmp/inventarioArticuloEtiquetas.xml"; + $salida = TMP."/inventarioArticuloEtiquetas.xml"; break; } $plantilla = file_get_contents($fichero) or die('Fallo en la apertura de la plantilla ' . $fichero); @@ -151,7 +151,7 @@ class InformeInventario { return $this->devuelveInforme($informe); case "csv": //Genera una hoja de cálculo en formato csv - $nombre = "tmp/Articulo" . strftime("%Y%m%d") . rand(100, 999) . ".csv"; + $nombre = TMP."/Articulo" . strftime("%Y%m%d") . rand(100, 999) . ".csv"; $hoja = new Csv($this->bdd); $hoja->crea($nombre); $hoja->ejecutaConsulta($salida); @@ -237,7 +237,7 @@ class InformeInventario {

¿Desea obtener el inventario de todo el centro?

Volver - Continuar

+ Continuar

'; return $dialogo; } @@ -245,7 +245,7 @@ class InformeInventario { private function listarTotal() { $fichero = "xml/inventarioUbicacion.xml"; - $salida = "tmp/inventarioUbicacion.xml"; + $salida = TMP."/inventarioUbicacion.xml"; $comando = "select * from Ubicaciones ;"; $resultado = $this->bdd->ejecuta($comando); if (!$resultado) { diff --git a/InformePDF.php b/InformePDF.php index b94088b..ae76cd8 100644 --- a/InformePDF.php +++ b/InformePDF.php @@ -1,4 +1,3 @@ - docu); - $cabecera = $cabecera . "Content-Disposition: inline; filename=tmp/Informe.pdf"; + $cabecera = $cabecera . "Content-Disposition: inline; filename=".TMP."/Informe.pdf"; return $cabecera; } - public function guardaArchivo($nombre = "tmp/Informe.pdf") { + public function guardaArchivo($nombre) { + if (!isset($nombre)) + $nombre = TMP . "/Informe.pdf"; $fichero = fopen($nombre, "w"); fwrite($fichero, $this->getCabecera()); fwrite($fichero, $this->getContenido(), strlen($this->getContenido())); @@ -109,7 +110,7 @@ class InformePDF { header("Content-type: application/pdf"); $longitud = strlen($this->docu); header("Content-length: $longitud"); - header("Content-Disposition: inline; filename=tmp/Informe.pdf"); + header("Content-Disposition: inline; filename=".TMP."/Informe.pdf"); } public function imprimeInforme() { diff --git a/Instalar.php b/Instalar.php index 8b48bdc..20d32bf 100644 --- a/Instalar.php +++ b/Instalar.php @@ -31,8 +31,7 @@ define('NUMPASOS', 3); define('MINBYTES', 4096000); // post_max_size y max_upload van con esto define('CADENAMINBYTES', '4M'); define('CONFIGURACION', 'inc/configuracion.inc'); -define('CONFIGTMP', 'tmp/config.tmp'); -define('TMP', './tmp'); +define('CONFIGTMP', TMP.'/config.tmp'); define('INC', './inc'); $instalar = new Instalar(); diff --git a/inc/configuracion.inc b/inc/configuracion.inc index 8660140..22d6a40 100644 --- a/inc/configuracion.inc +++ b/inc/configuracion.inc @@ -33,12 +33,13 @@ define('PROGRAMA', 'Gestión de Inventario.'); define('CENTRO', 'I.E.S.O. Pascual Serrano'); define('NUMFILAS', '17'); // Número de registros a mostrar en las pantallas de consulta iniciales define('PAUSA', '2'); //Nº segundos de pausa para mostrar mensaje id insertado -define('ESTILO', 'personal'); //Estilo de los iconos de edición (personal, personal, personal) +define('ESTILO', 'bootstrap'); //Estilo de los iconos de edición (bootstrap, bootstrap, bootstrap) define('PLANTILLA', 'bootstrap'); //Estilo de la plantilla y recursos a utilizar define('COLORLAT', '#a4bdfc'); //Color de la barra de menú lateral define('COLORFON', '#ffb878'); //Color del fondo de la pantalla define('MYSQLDUMP', '/usr/local/bin/mysqldump'); //camino a mysqldump define('GZIP', '/usr/bin/gzip'); //Camino a gzip define('IMAGEDATA', 'img.data'); //Directorio donde se almacenarán las imágenes -define('INSTALADO', 'sí') //Indicador que permite ejecutar instalar.php +define('TMP', './tmp'); //Directorio para archivos temporales +define('INSTALADO', 'sí'); //Indicador que permite ejecutar instalar.php ?> diff --git a/xml/mantenimientoArticulos.xml b/xml/mantenimientoArticulos.xml index 2468607..9390905 100644 --- a/xml/mantenimientoArticulos.xml +++ b/xml/mantenimientoArticulos.xml @@ -3,8 +3,9 @@ Mantenimiento de Artículos select SQL_CALC_FOUND_ROWS A.id as id,A.descripcion as descripcion, A.marca as marca, A.modelo as modelo, A.cantidad as cantidad, - A.imagen as imagen, (select count(E.id) from Elementos E where E.id_Articulo=A.id) as numero from Articulos A - {buscar} {orden} limit {inferior},{superior}; + (select sum(E.cantidad) from Elementos E where E.id_Articulo=A.id) as cantubi, + (select count(E.id) from Elementos E where E.id_Articulo=A.id) as numero,A.imagen as imagen from Articulos A + {buscar} {orden} limit {inferior},{superior}; @@ -12,7 +13,8 @@ - + +
Preferencias
Nombre del Centro
Número de filas
Plantilla
Estilo
Color Lateral (bootstrap)
Color Fondo (bootstrap)
Base de datos
Servidor
Puerto
Base de datos
Base de datos Tests
Usuario
Clave
mysqldump
gzip