21 Commits
1.15 ... master

Author SHA1 Message Date
67a7080e59 Fix escape string deprectaed method 2024-04-24 12:44:52 +02:00
e1151343bd Fix charset view problem 2024-04-24 11:37:10 +02:00
08122054ce README.md edited online with Bitbucket 2017-03-28 07:22:53 +00:00
c033d788a0 Añadida línea en blanco para probar el editor del iPhone 2016-11-07 19:58:21 +01:00
335674a0bc Merge branch 'release/1.17'
* release/1.17:
  Eliminados los mensajes de aviso de php en todos los archivos php, actualizada la versión y el changelog
  Modificado el README para eliminar los saltos de línea introducidos por el editor online
  Modificado el README para eliminar los saltos de línea introducidos por el editor online
  Modificado el README para eliminar los saltos de línea introducidos por el editor online
  Modificados los programas para eliminar todos los "warnings" de php
2014-07-29 21:41:51 +02:00
2488b7943d Cambiados los saltos de línea en README.md 2014-07-29 21:41:24 +02:00
37f7e1a6cf Eliminados los mensajes de aviso de php en todos los archivos php, actualizada la versión y el changelog 2014-07-29 21:29:32 +02:00
c42fae0514 Merge branch 'feature/warnings' into develop
* feature/warnings:
  Modificado el README para eliminar los saltos de línea introducidos por el editor online
  Modificado el README para eliminar los saltos de línea introducidos por el editor online
  Modificados los programas para eliminar todos los "warnings" de php

Conflicts:
	README.md
2014-07-29 21:23:52 +02:00
0e38e97ff5 Modificado el README para eliminar los saltos de línea introducidos por el editor online 2014-07-29 21:21:27 +02:00
9105f92c26 Modificado el README para eliminar los saltos de línea introducidos por el editor online 2014-07-29 21:19:28 +02:00
1b64dba9b2 Modificado el README para eliminar los saltos de línea introducidos por el editor online 2014-07-29 21:14:54 +02:00
52ddeee4ba Modificados los programas para eliminar todos los "warnings" de php 2014-07-29 21:12:37 +02:00
453045eee2 Merge branch 'release/1.16' 2014-07-29 17:12:26 +02:00
c6bc31a275 Merge branch 'release/1.16' into develop 2014-07-29 17:12:26 +02:00
rmontanana
f5577a4119 Fix #41. Corrige las llamadas que se hacían a instalar.php en lugar de a Instalar.php desde Inventario.php y desde Instalar.php 2014-07-28 15:54:29 +02:00
rmontanana
5676f75b97 Actualizado el README para incluir las estadísticas de ohloh 2014-07-28 15:44:17 +02:00
da1fccf1fd README.md edited online with Bitbucket 2014-07-15 11:38:59 +00:00
dcc0662dfb README.md edited online with Bitbucket 2014-07-15 11:38:05 +00:00
f47e1e5cd1 README.md edited online with Bitbucket 2014-07-15 09:37:12 +00:00
5484495d5a README.md edited online with Bitbucket 2014-07-15 09:36:51 +00:00
c0b0878a74 Merge branch 'release/1.15' into develop
* release/1.15:
  Actualizado el número de versión a 1.15
2014-06-29 21:22:58 +02:00
14 changed files with 200 additions and 151 deletions

View File

@@ -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
@@ -25,7 +26,8 @@ require_once 'Sql.php';
$ajax = new Ajax(); $ajax = new Ajax();
echo $ajax->procesa(); echo $ajax->procesa();
class Ajax { class Ajax
{
private $sql; private $sql;
private $tabla; private $tabla;
@@ -46,8 +48,10 @@ class Ajax {
{ {
$opc = $_GET['opc']; $opc = $_GET['opc'];
switch ($opc) { switch ($opc) {
case "get": return $this->obtiene(); case "get":
case "put": return $this->actualiza(); return $this->obtiene();
case "put":
return $this->actualiza();
} }
} }
private function mensaje($exito, $texto) private function mensaje($exito, $texto)
@@ -57,7 +61,7 @@ class Ajax {
private function actualiza() private function actualiza()
{ {
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$comando = "update " . mysql_escape_string($this->tabla) . " set " . mysql_escape_string($_POST['name']) . " = '" . mysql_escape_string($_POST['value']) . "' where id = '" . mysql_escape_string($_POST['pk']). "';"; $comando = "update " . $this->sql->filtra($this->tabla) . " set " . $this->sql->filtra($_POST['name']) . " = '" . $this->sql->filtra($_POST['value']) . "' where id = '" . $this->sql->filtra($_POST['pk']) . "';";
$this->sql->ejecuta($comando); $this->sql->ejecuta($comando);
$exito = !$this->sql->error(); $exito = !$this->sql->error();
$mensaje = $this->sql->mensajeError(); $mensaje = $this->sql->mensajeError();
@@ -84,5 +88,3 @@ class Ajax {
} }
} }
} }
?>

View File

@@ -210,7 +210,11 @@ class AportaContenido {
return $salida; return $salida;
} }
case 'opcion': case 'opcion':
if (strstr($this->opcionActual, "&")) {
list($opcion, $parametro) = explode("&", $this->opcionActual); list($opcion, $parametro) = explode("&", $this->opcionActual);
} else {
$opcion = $this->opcionActual; $parametro = "";
}
switch ($opcion) { switch ($opcion) {
case 'bienvenido': case 'bienvenido':
return "Men&uacute; Principal"; return "Men&uacute; Principal";
@@ -244,13 +248,17 @@ class AportaContenido {
// if (!$this->registrado) { // if (!$this->registrado) {
// return $this->mensajeRegistro(); // return $this->mensajeRegistro();
// } // }
if (strstr($this->opcionActual, "&")) {
list($opcion, $parametro) = explode("&", $this->opcionActual); list($opcion, $parametro) = explode("&", $this->opcionActual);
} else {
$opcion = $this->opcionActual; $parametro = "";
}
switch ($opcion) { switch ($opcion) {
case 'bienvenido': case 'bienvenido':
$mensaje = '<div class="alert alert-success">'; $mensaje = '<div class="alert alert-success">';
$mensaje .= 'Bienvenid@ ' . $this->usuario . '</div>'; $mensaje .= 'Bienvenid@ ' . $this->usuario . '</div>';
case 'principal': // contenido inicial case 'principal': // contenido inicial
$mensaje = "";
$creditos = "$('#creditos').modal({keyboard: false});"; $creditos = "$('#creditos').modal({keyboard: false});";
$centro = '<div class="well well-sm">' . CENTRO . '</div>'; $centro = '<div class="well well-sm">' . CENTRO . '</div>';
$tabla = $this->creaTablaAcercaDe(); $tabla = $this->creaTablaAcercaDe();
@@ -264,7 +272,7 @@ class AportaContenido {
case 'elementos': case 'elementos':
$this->cargaDatosURL(); $this->cargaDatosURL();
if ($this->datosURL['opc'] == "informe") { if ($this->datosURL['opc'] == "informe") {
if (!$this->pefil['Informe']) { if ($this->perfil['Informe']) {
$this->procesaURL(); $this->procesaURL();
$fichero = 'xml/informe' . ucfirst($opcion) . '.xml'; $fichero = 'xml/informe' . ucfirst($opcion) . '.xml';
$salida = TMP.'/informe' . ucfirst($opcion) . '.xml'; $salida = TMP.'/informe' . ucfirst($opcion) . '.xml';
@@ -343,7 +351,7 @@ class AportaContenido {
case 'copiaseg': case 'copiaseg':
if ($this->perfil['Config']) { if ($this->perfil['Config']) {
$copia = new CopiaSeguridad(); $copia = new CopiaSeguridad();
if ($_GET['confirmado'] == "1") { if (isset($_GET['confirmado']) && $_GET['confirmado'] == "1") {
if (!$copia->creaCopia()) { if (!$copia->creaCopia()) {
$tipo = "danger"; $tipo = "danger";
$cabecera = "ERROR"; $cabecera = "ERROR";

View File

@@ -1,3 +1,9 @@
Version 1.17 29-07-2014
-Eliminados los mensajes de aviso de php en todos los archivos php
Versión 1.16 28-07-2014
-Fix #41. Arregla las llamadas a Instalar.php que se hacían desde Inventario.php y desde Instalar.php
Versión 1.15 29-06-2014 Versión 1.15 29-06-2014
-Crear la opción de clonar registro en Mantenimiento. -Crear la opción de clonar registro en Mantenimiento.
-Crear iconos de clonado en todos los estilos. -Crear iconos de clonado en todos los estilos.

View File

@@ -82,7 +82,7 @@ class Configuracion {
fwrite($fsalida, $registro); fwrite($fsalida, $registro);
} }
} }
$salida.=$this->formulario(); $salida = $this->formulario();
if ($grabar) { if ($grabar) {
$salida.='<div class="alert alert-success">Configuraci&oacute;n guardada correctamente</div>'; $salida.='<div class="alert alert-success">Configuraci&oacute;n guardada correctamente</div>';
fclose($fsalida); fclose($fsalida);

View File

@@ -23,10 +23,6 @@ class CopiaSeguridad {
private $baseDatos; private $baseDatos;
private $imagenes; private $imagenes;
public function __construct()
{
$opcion = $_GET['opc'];
}
public function creaCopia() public function creaCopia()
{ {
if (!$this->copiaBaseDatos()) { if (!$this->copiaBaseDatos()) {

54
Csv.php
View File

@@ -70,13 +70,15 @@ class Csv {
private $cantidadReal; private $cantidadReal;
private $nSerie; private $nSerie;
/** /**
// 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.
* @param BaseDatos $baseDatos Manejador de la base de datos * @param BaseDatos $baseDatos Manejador de la base de datos
*/ */
public function __construct($baseDatos) { public function __construct($baseDatos)
{
$this->bdd = $baseDatos; $this->bdd = $baseDatos;
} }
@@ -84,7 +86,8 @@ class Csv {
* Crea un fichero csv con el nombre especificado * Crea un fichero csv con el nombre especificado
* @param String $fichero Nombre del fichero * @param String $fichero Nombre del fichero
*/ */
public function crea($fichero) { public function crea($fichero)
{
$this->nombre = $fichero; $this->nombre = $fichero;
$this->fichero = fopen($this->nombre, "w") or die("No puedo abrir " . $this->nombre . " para escritura."); $this->fichero = fopen($this->nombre, "w") or die("No puedo abrir " . $this->nombre . " para escritura.");
} }
@@ -93,15 +96,18 @@ class Csv {
* *
* @param array $datos escribe la línea en el archivo * @param array $datos escribe la línea en el archivo
*/ */
public function escribeLinea($datos) { public function escribeLinea($datos)
{
fputcsv($this->fichero, $datos, ',', '"') or die("No puedo escribir en el fichero csv"); fputcsv($this->fichero, $datos, ',', '"') or die("No puedo escribir en el fichero csv");
} }
public function __destruct() { public function __destruct()
{
$this->cierra(); $this->cierra();
} }
public function cierra() { public function cierra()
{
fclose($this->fichero) or die("No puedo cerrar el archivo csv"); fclose($this->fichero) or die("No puedo cerrar el archivo csv");
} }
@@ -109,7 +115,8 @@ class Csv {
* *
* @param String $fichero Archivo xml que contiene la definición de la consulta * @param String $fichero Archivo xml que contiene la definición de la consulta
*/ */
public function ejecutaConsulta($fichero) { public function ejecutaConsulta($fichero)
{
$consulta = simplexml_load_file($fichero) or die("No puedo cargar el fichero xml " . $fichero . " al csv"); $consulta = simplexml_load_file($fichero) or die("No puedo cargar el fichero xml " . $fichero . " al csv");
// Escribe la cabecera del fichero // Escribe la cabecera del fichero
$this->escribeLinea(array($consulta->Pagina->Cabecera, $consulta->Titulo['id'], $consulta->Titulo['Texto'])); $this->escribeLinea(array($consulta->Pagina->Cabecera, $consulta->Titulo['id'], $consulta->Titulo['Texto']));
@@ -132,7 +139,8 @@ class Csv {
* *
* @param String $ficheroCSV Nombre del archivo csv * @param String $ficheroCSV Nombre del archivo csv
*/ */
public function cargaCSV($ficheroCSV) { public function cargaCSV($ficheroCSV)
{
$this->nombre = $ficheroCSV; $this->nombre = $ficheroCSV;
$this->fichero = fopen($this->nombre, "r") or die('No puedo abrir el archivo ' . $this->nombre . " para lectura."); $this->fichero = fopen($this->nombre, "r") or die('No puedo abrir el archivo ' . $this->nombre . " para lectura.");
list($archivo, $idCabecera, $cabecera) = fgetcsv($this->fichero); list($archivo, $idCabecera, $cabecera) = fgetcsv($this->fichero);
@@ -149,7 +157,8 @@ class Csv {
* Muestra un resumen de los datos del fichero csv cargado por pantalla * Muestra un resumen de los datos del fichero csv cargado por pantalla
* *
*/ */
public function resumen() { public function resumen()
{
//$mensaje .= //$mensaje .=
$mensaje = "<center><h1>Archivo [inventario" . $this->cabecera[0] . "]</h1>"; $mensaje = "<center><h1>Archivo [inventario" . $this->cabecera[0] . "]</h1>";
$mensaje .= "<h2>id=[" . $this->cabecera[1] . "] Descripci&oacute;n=[" . $this->cabecera[2] . "]</h2><br>"; $mensaje .= "<h2>id=[" . $this->cabecera[1] . "] Descripci&oacute;n=[" . $this->cabecera[2] . "]</h2><br>";
@@ -211,12 +220,14 @@ class Csv {
* @param $array línea de datos del fichero csv para comprobar las cantidades si se han modificado o no * @param $array línea de datos del fichero csv para comprobar las cantidades si se han modificado o no
* @return string * @return string
*/ */
private function compruebaCantidades($i) { private function compruebaCantidades($i)
$ultimo = count($datos); {
//$ultimo = count($datos);
return $this->datosFichero[$i][$this->cantidadReal] - $this->datosFichero[$i][$this->cantidad]; return $this->datosFichero[$i][$this->cantidadReal] - $this->datosFichero[$i][$this->cantidad];
} }
private function panelMensaje($info, $tipo = "danger", $cabecera = "&iexcl;Atenci&oacute;n!") { private function panelMensaje($info, $tipo = "danger", $cabecera = "&iexcl;Atenci&oacute;n!")
{
$mensaje = '<div class="panel panel-' . $tipo . '"><div class="panel-heading">'; $mensaje = '<div class="panel panel-' . $tipo . '"><div class="panel-heading">';
$mensaje .= '<h3 class="panel-title">' . $cabecera . '</h3></div>'; $mensaje .= '<h3 class="panel-title">' . $cabecera . '</h3></div>';
$mensaje .= '<div class="panel-body">'; $mensaje .= '<div class="panel-body">';
@@ -226,14 +237,16 @@ class Csv {
return $mensaje; return $mensaje;
} }
private function escribeLog($comando) { private function escribeLog($comando)
{
$fp = fopen($this->nombre . ".log", "a"); $fp = fopen($this->nombre . ".log", "a");
$linea = strftime("%Y/%m/%d") . "|" . $this->nombre . "|" . $comando; $linea = strftime("%Y/%m/%d") . "|" . $this->nombre . "|" . $comando;
fputs($fp, $linea . "\n"); fputs($fp, $linea . "\n");
fclose($fp); fclose($fp);
} }
private function bajaElemento($i) { private function bajaElemento($i)
{
$id = $this->datosFichero[$i][$this->idElemento]; $id = $this->datosFichero[$i][$this->idElemento];
$comando = 'delete from Elementos where id="' . $id . '";'; $comando = 'delete from Elementos where id="' . $id . '";';
$this->escribeLog($comando); $this->escribeLog($comando);
@@ -242,7 +255,8 @@ class Csv {
} }
} }
private function modificaElemento($i) { private function modificaElemento($i)
{
$id = $this->datosFichero[$i][$this->idElemento]; $id = $this->datosFichero[$i][$this->idElemento];
$comando = 'update Elementos set Cantidad=' . $this->datosFichero[$i][$this->cantidadReal] . ' where id="' . $id . '";'; $comando = 'update Elementos set Cantidad=' . $this->datosFichero[$i][$this->cantidadReal] . ' where id="' . $id . '";';
$this->escribeLog($comando); $this->escribeLog($comando);
@@ -251,7 +265,8 @@ class Csv {
} }
} }
private function altaElemento($i) { private function altaElemento($i)
{
if ($this->cabecera[0] == "Articulo") { if ($this->cabecera[0] == "Articulo") {
$idUbicacion = $this->datosFichero[$i][$this->idUbicacion]; $idUbicacion = $this->datosFichero[$i][$this->idUbicacion];
$idArticulo = $this->cabecera[1]; $idArticulo = $this->cabecera[1];
@@ -269,7 +284,8 @@ class Csv {
} }
} }
private function cargaIndices($campos) { private function cargaIndices($campos)
{
for ($i = 0; $i < count($campos); $i++) { for ($i = 0; $i < count($campos); $i++) {
switch ($campos[$i]) { switch ($campos[$i]) {
case "Cant. Real": $this->cantidadReal = $i; case "Cant. Real": $this->cantidadReal = $i;
@@ -295,7 +311,8 @@ class Csv {
/** /**
* Procesa contra la base de datos todas las acciones del archivo * Procesa contra la base de datos todas las acciones del archivo
*/ */
public function ejecutaFichero() { public function ejecutaFichero()
{
$this->cargaIndices($this->datosFichero[0]); $this->cargaIndices($this->datosFichero[0]);
//Realiza una transacción para que no se ejecute parcialmente una actualización //Realiza una transacción para que no se ejecute parcialmente una actualización
try { try {
@@ -330,7 +347,8 @@ class Csv {
} }
} }
private function ejecutaFichero2() { private function ejecutaFichero2()
{
echo '<script>visualizaProgreso();</script>'; echo '<script>visualizaProgreso();</script>';
for ($i = 1; $i < 80; $i++) { for ($i = 1; $i < 80; $i++) {
//sleep(1); //sleep(1);

View File

@@ -55,6 +55,7 @@ class Importacion {
private function formulario() { private function formulario() {
$accion = "index.php?importacion&opc=importar"; $accion = "index.php?importacion&opc=importar";
$salida = "";
//$salida .= '<script type="text/javascript" src="css/bootstrap-filestyle.min.js"> </script>'; //$salida .= '<script type="text/javascript" src="css/bootstrap-filestyle.min.js"> </script>';
$salida .='<div class="col-sm-6 col-md-6">'; $salida .='<div class="col-sm-6 col-md-6">';
$salida .= '<form enctype="multipart/form-data" name="importacion.form" method="post" action="' . $accion . '">' . "\n"; $salida .= '<form enctype="multipart/form-data" name="importacion.form" method="post" action="' . $accion . '">' . "\n";

View File

@@ -149,7 +149,7 @@ class Instalar {
// Final del paso // Final del paso
$info .='</ul>'; $info .='</ul>';
$info .= $this->validaPaso0() ? $this->retornaBoton(false, "instalar.php?paso=1") : $this->retornaBoton(true, "instalar.php"); $info .= $this->validaPaso0() ? $this->retornaBoton(false, "Instalar.php?paso=1") : $this->retornaBoton(true, "Instalar.php");
$panel = $this->panelMensaje($info, 'primary', 'PASO 1: Configuración del servidor y la aplicación'); $panel = $this->panelMensaje($info, 'primary', 'PASO 1: Configuración del servidor y la aplicación');
return $panel; return $panel;
} }
@@ -284,7 +284,7 @@ class Instalar {
return $this->paso2(); return $this->paso2();
} }
$info = '<form method="post" name="conf" action="instalar.php?paso=1">'; $info = '<form method="post" name="conf" action="Instalar.php?paso=1">';
$info .= '<ul class="list-group">'; $info .= '<ul class="list-group">';
$info .= '<li class="list-group-item list-group-item-info">Datos de configuración</li>'; $info .= '<li class="list-group-item list-group-item-info">Datos de configuración</li>';
$info .= '<li class="list-group-item">Servidor <input type="text" name="SERVIDOR" class="form-control" placeholder="Nombre del servidor o dirección IP" value="'. $datos['SERVIDOR'] .'"></li>'; $info .= '<li class="list-group-item">Servidor <input type="text" name="SERVIDOR" class="form-control" placeholder="Nombre del servidor o dirección IP" value="'. $datos['SERVIDOR'] .'"></li>';
@@ -293,8 +293,8 @@ class Instalar {
$info .= '<li class="list-group-item">Usuario <input type="text" name="USUARIO" class="form-control" placeholder="Usuario" value="'. $datos['USUARIO'] .'"></li>'; $info .= '<li class="list-group-item">Usuario <input type="text" name="USUARIO" class="form-control" placeholder="Usuario" value="'. $datos['USUARIO'] .'"></li>';
$info .= '<li class="list-group-item">Contraseña <input type="text" name="CLAVE" class="form-control" placeholder="Contraseña" value="'. $datos['CLAVE'] .'"></li>'; $info .= '<li class="list-group-item">Contraseña <input type="text" name="CLAVE" class="form-control" placeholder="Contraseña" value="'. $datos['CLAVE'] .'"></li>';
$info .= '</ul>'; $info .= '</ul>';
$info .= $this->botonVolver("instalar.php"); $info .= $this->botonVolver("Instalar.php");
$info .= $this->validaPaso1() ? $this->retornaBoton(false, "instalar.php?paso=1", false) : $this->retornaBoton(true, "instalar.php?paso=1", false); $info .= $this->validaPaso1() ? $this->retornaBoton(false, "Instalar.php?paso=1", false) : $this->retornaBoton(true, "Instalar.php?paso=1", false);
$info .= '</form>'; $info .= '</form>';
$panel = $this->panelMensaje($info, 'primary', 'PASO 2: Configuración de la Base de Datos.'); $panel = $this->panelMensaje($info, 'primary', 'PASO 2: Configuración de la Base de Datos.');
return $panel; return $panel;
@@ -415,7 +415,7 @@ class Instalar {
} }
$info = ' $info = '
<form data-toggle="validator" role="form" class="form-horizontal" method="post" action="instalar.php?paso=2"> <form data-toggle="validator" role="form" class="form-horizontal" method="post" action="Instalar.php?paso=2">
<div class="form-group"> <div class="form-group">
<label for="usuario" class="control-label col-sm-2">Usuario</label> <label for="usuario" class="control-label col-sm-2">Usuario</label>
<div class="form-group col-sm-10"> <div class="form-group col-sm-10">
@@ -435,7 +435,7 @@ class Instalar {
</div> </div>
<div class="form-group col-sm-12"> <div class="form-group col-sm-12">
' . $this->botonVolver("instalar.php?paso=1") . ' ' . $this->botonVolver("Instalar.php?paso=1") . '
<button type="submit" class="btn btn-primary pull-right btn-lg" disabled="disabled">Crear base de datos y usuario <span class="glyphicon glyphicon-arrow-right"></button> <button type="submit" class="btn btn-primary pull-right btn-lg" disabled="disabled">Crear base de datos y usuario <span class="glyphicon glyphicon-arrow-right"></button>
</div> </div>
</div> </div>

View File

@@ -42,7 +42,7 @@ class Inventario {
$this->opcActual = $_SERVER['QUERY_STRING'] == '' ? 'principal' : $_SERVER['QUERY_STRING']; $this->opcActual = $_SERVER['QUERY_STRING'] == '' ? 'principal' : $_SERVER['QUERY_STRING'];
//Si el programa no está instalado, llama al instalador. //Si el programa no está instalado, llama al instalador.
if (INSTALADO == "no") { if (INSTALADO == "no") {
header('location: instalar.php'); header('location: Instalar.php');
return; return;
} }
// Iniciamos una sesión // Iniciamos una sesión

View File

@@ -200,6 +200,7 @@ class Mantenimiento {
} }
//$salida.=$comando; //$salida.=$comando;
//$salida.=var_export($this->campos,true); //$salida.=var_export($this->campos,true);
$cant = 0;
while ($fila = $this->bdd->procesaResultado()) { while ($fila = $this->bdd->procesaResultado()) {
$salida.='<tr bottom="middle">'; $salida.='<tr bottom="middle">';
foreach ($fila as $clave => $valor) { foreach ($fila as $clave => $valor) {
@@ -218,7 +219,7 @@ class Mantenimiento {
$datoEnlace = $tmpco[1]; $datoEnlace = $tmpco[1];
} }
} }
$this->campoBusca = $dato[1]; $this->campoBusca = isset($dato[1]) ? $dato[1] : "";
$valor = '<a title="Inventario de ' . $valor . '" $target="_blank" href="index.php?informeInventario&opc=listar' . $datoEnlace . '&id=' . $id . '">' . $valor; $valor = '<a title="Inventario de ' . $valor . '" $target="_blank" href="index.php?informeInventario&opc=listar' . $datoEnlace . '&id=' . $id . '">' . $valor;
} }
if (strstr($this->campos[$clave]['Comment'], "imagen") && isset($valor)) { if (strstr($this->campos[$clave]['Comment'], "imagen") && isset($valor)) {
@@ -344,6 +345,8 @@ class Mantenimiento {
$informe = ""; $informe = "";
} }
$this->restoreURL(); $this->restoreURL();
} else {
$anterior = $rew = $az = $informe = $za = $siguiente = $fwd = "";
} }
if ($this->perfil['Alta']) { if ($this->perfil['Alta']) {
$this->datosURL['opc'] = 'nuevo'; $this->datosURL['opc'] = 'nuevo';
@@ -422,14 +425,14 @@ class Mantenimiento {
} else { } else {
$coma = ","; $coma = ",";
} }
if ($this->campos[$campo]['Type'] == 'Boolean(1)') { if (isset($this->campos[$campo]['Type']) && $this->campos[$campo]['Type'] == 'Boolean(1)') {
$valor = ""; $valor = "";
if (empty($_POST[$campo])) { if (empty($_POST[$campo])) {
$valor = "0"; $valor = "0";
} }
$valor = $_POST[$campo] == "on" ? '1' : $valor; $valor = $_POST[$campo] == "on" ? '1' : $valor;
} else { } else {
if (stristr($this->campos[$campo]['Comment'], "imagen")) { if (isset($this->campos[$campo]['Comment']) && stristr($this->campos[$campo]['Comment'], "imagen")) {
//procesa el envío de la imagen //procesa el envío de la imagen
$imagen = new Imagen(); $imagen = new Imagen();
$accion = $imagen->determinaAccion($campo); $accion = $imagen->determinaAccion($campo);
@@ -442,7 +445,11 @@ class Mantenimiento {
$campoImagen = $campo; $campoImagen = $campo;
} else { } else {
//Comprobamos si hay clonación y hay imagen a clonar. //Comprobamos si hay clonación y hay imagen a clonar.
if (isset($_POST[$campo])) {
$valor = $_POST[$campo]; $valor = $_POST[$campo];
} else {
$valor = "";
}
if ($_POST['tipoOperacion'] == CLONAR && file_exists($valor)) { if ($_POST['tipoOperacion'] == CLONAR && file_exists($valor)) {
$hayImagen = true; $hayImagen = true;
$campoImagen = $campo; $campoImagen = $campo;
@@ -719,9 +726,10 @@ class Mantenimiento {
break; break;
} }
$accion = $this->montaURL(); $accion = $this->montaURL();
$salida.='<div class="col-sm-8"><form name="mantenimiento.form" enctype="multipart/form-data" class="form-horizontal" role="form" method="post" action="' . $accion . '">' . "\n"; $salida = '<div class="col-sm-8"><form name="mantenimiento.form" enctype="multipart/form-data" class="form-horizontal" role="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";
//$salida.= var_export($datos,true); //$salida.= var_export($datos,true);
$campos = "";
foreach ($this->campos as $clave => $valor) { foreach ($this->campos as $clave => $valor) {
if ($valor["Editable"] == "no") { if ($valor["Editable"] == "no") {
//Se salta los campos que no deben aparecer //Se salta los campos que no deben aparecer
@@ -860,7 +868,7 @@ class Mantenimiento {
private function creaModal($valor, $id) private function creaModal($valor, $id)
{ {
$mensaje .= ' $mensaje = '
<div id="mensajeModal'.$id.'" class="modal fade " tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true"> <div id="mensajeModal'.$id.'" class="modal fade " tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog text-center"> <div class="modal-dialog text-center">
<div class="modal-content text-center"> <div class="modal-content text-center">

View File

@@ -111,7 +111,8 @@ class Pdf_mysql_table extends FPDF
if ($this->procesandoTotales) { if ($this->procesandoTotales) {
$this->SetFont('Arial','B',12); $this->SetFont('Arial','B',12);
} }
$this->Cell($col['w'],5,utf8_decode($data[$col['f']]),1,0,$alin,$fill); $dato = isset($data[$col['f']]) ? $data[$col['f']] : "";
$this->Cell($col['w'],5,utf8_decode($dato),1,0,$alin,$fill);
//$this->Cell($col['w'],5,utf8_decode($data[$col['f']]),1,0,$alin,$fill); //$this->Cell($col['w'],5,utf8_decode($data[$col['f']]),1,0,$alin,$fill);
//$this->Cell($col['w'],5,utf8_decode($data['proveedor']),1,0,$alin,$fill); //$this->Cell($col['w'],5,utf8_decode($data['proveedor']),1,0,$alin,$fill);
//$this->Write(5,"nombre=".$col['f'].",titulo=".$col['c'].",ancho=".$col['w'].",alin=".$col['a']); //$this->Write(5,"nombre=".$col['f'].",titulo=".$col['c'].",ancho=".$col['w'].",alin=".$col['a']);
@@ -119,7 +120,10 @@ class Pdf_mysql_table extends FPDF
//print_r($data); //print_r($data);
//print_r($this->aCols); //print_r($this->aCols);
if ($col['t']=='S' && !$this->procesandoTotales) { if ($col['t']=='S' && !$this->procesandoTotales) {
if (isset($this->totales[$col['f']]))
$this->totales[$col['f']] += $data[$col['f']]; $this->totales[$col['f']] += $data[$col['f']];
else
$this->totales[$col['f']] = $data[$col['f']];
} }
} }

View File

@@ -1,4 +1,4 @@
# Inventario de Centro Educativo # Inventario de Centro Educativo [![Project Stats](https://www.ohloh.net/p/inventario2/widgets/project_thin_badge.gif)](https://www.ohloh.net/p/inventario2)
Copyright (c) 2008-2014, Ricardo Montañana Gómez Copyright (c) 2008-2014, Ricardo Montañana Gómez
Inventario2 is free software: you can redistribute it and/or modify Inventario2 is free software: you can redistribute it and/or modify
@@ -15,7 +15,9 @@ Utiliza:
[Manual de Usuario](http://rmontanana.gitbooks.io/inventario2/) [Manual de Usuario](http://rmontanana.gitbooks.io/inventario2/)
[Instalación de ejemplo](http://inventario2.rmontanana.es) [Instalación de ejemplo](https://inventario.rmontanana.es)
[Estadísticas del proyecto](https://www.ohloh.net/p/inventario2)
##Instalación ##Instalación
Para instalar la aplicación basta con seguir estos pasos: Para instalar la aplicación basta con seguir estos pasos:

16
Sql.php
View File

@@ -1,4 +1,5 @@
<?php <?php
/** /**
* Gestión de una base de datos MySQL * Gestión de una base de datos MySQL
* @author Ricardo Montañana <rmontanana@gmail.com> * @author Ricardo Montañana <rmontanana@gmail.com>
@@ -21,7 +22,8 @@
* along with Inventario. If not, see <http://www.gnu.org/licenses/>. * along with Inventario. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
class Sql { class Sql
{
/** /**
* @var mixed Manejador de la base de datos. * @var mixed Manejador de la base de datos.
*/ */
@@ -75,6 +77,7 @@ class Sql {
$this->estado = true; $this->estado = true;
} }
$this->peticion = NULL; $this->peticion = NULL;
$this->bdd->set_charset("latin1");
return $this; return $this;
} }
public function __destruct() public function __destruct()
@@ -149,7 +152,8 @@ class Sql {
* Devuelve el número de tuplas afectadas en la última petición. * Devuelve el número de tuplas afectadas en la última petición.
* @return integer Número de tuplas. * @return integer Número de tuplas.
*/ */
public function numeroTuplas() { public function numeroTuplas()
{
return $this->numero; return $this->numero;
} }
/** /**
@@ -172,14 +176,16 @@ class Sql {
* Devuelve la condición de error de la última petición * Devuelve la condición de error de la última petición
* @return boolean condición de error. * @return boolean condición de error.
*/ */
public function error() { public function error()
{
return $this->error; return $this->error;
} }
/** /**
* Devuelve el mensaje de error de la última petición * Devuelve el mensaje de error de la última petición
* @return <type> * @return <type>
*/ */
public function mensajeError() { public function mensajeError()
{
return $this->mensajeError . $this->bdd->error; return $this->mensajeError . $this->bdd->error;
} }
/** /**
@@ -227,5 +233,3 @@ class Sql {
return $codigo; return $codigo;
} }
} }
?>

View File

@@ -23,5 +23,5 @@
*/ */
define('AUTOR', 'Ricardo Montañana Gómez'); define('AUTOR', 'Ricardo Montañana Gómez');
define('VERSION', '1.15'); define('VERSION', '1.17');
?> ?>