. * */ class InformeInventario { private $bdd; public function __construct($baseDatos) { $this->bdd=$baseDatos; } public function ejecuta() { $opc=$_GET['opc']; switch ($opc) { case 'Ubicacion':return $this->formularioUbicacion(); case 'listarUbicacion':return $this->listarUbicacion(); case 'listarArticulo':return $this->listarArticulo(); case 'Articulo':return $this->formularioArticulo(); case 'Total':return $this->inventarioTotal(); } } private function listarUbicacion() { $fichero="xml/inventarioUbicacion.xml"; $salida="tmp/inventarioUbicacion.xml"; $plantilla=file_get_contents($fichero) or die('Fallo en la apertura de la plantilla '.$fichero); $comando="select * from Ubicaciones where id='".$_POST['id']."';"; $resultado=$this->bdd->ejecuta($comando); if (!$resultado) { return $this->bdd->mensajeError($comando); } $fila=$this->bdd->procesaResultado(); $plantilla=str_replace("{id}",$_POST['id'],$plantilla); $plantilla=str_replace("{Descripcion}",utf8_encode($fila['Descripcion']),$plantilla); file_put_contents($salida,$plantilla) or die('Fallo en la escritura de la plantilla '.$salida); $informe=new InformePDF($this->bdd,$salida,true); } private function listarArticulo() { $fichero="xml/inventarioArticulo.xml"; $salida="tmp/inventarioArticulo.xml"; $plantilla=file_get_contents($fichero) or die('Fallo en la apertura de la plantilla '.$fichero); $comando="select * from Articulos where id='".$_POST['id']."';"; $resultado=$this->bdd->ejecuta($comando); if (!$resultado) { return $this->bdd->mensajeError($comando); } $fila=$this->bdd->procesaResultado(); $plantilla=str_replace("{id}",$_POST['id'],$plantilla); $plantilla=str_replace("{Descripcion}",utf8_encode($fila['descripcion']),$plantilla); $plantilla=str_replace("{Marca}",utf8_encode($fila['marca']),$plantilla); $plantilla=str_replace("{Modelo}",utf8_encode($fila['modelo']),$plantilla); file_put_contents($salida,$plantilla) or die('Fallo en la escritura de la plantilla '.$salida); $informe=new InformePDF($this->bdd,$salida,true); } private function listaUbicaciones() { $salida="\n"; return $salida; } private function listaArticulos() { $salida="\n"; return $salida; } private function formulario($accion,$etiqueta,$lista) { $salida='
'."\n"; $salida.="

Elige $etiqueta\n"; $salida.="

"; $salida.=$lista; $salida.="

"; $salida.='


'."\n"; return $salida; } private function formularioUbicacion() { //Genera un formulario con las ubicaciones disponibles. $accion="index.php?informeInventario&opc=listarUbicacion"; return $this->formulario($accion,'Ubicación',$this->listaUbicaciones()); } private function formularioArticulo() { $accion="index.php?informeInventario&opc=listarArticulo"; return $this->formulario($accion,'Artículo',$this->listaArticulos()); } private function inventarioTotal() { $fichero="xml/inventarioUbicacion.xml"; $salida="tmp/inventarioUbicacion.xml"; $comando="select * from Ubicaciones where id='".$_POST['id']."';"; $resultado=$this->bdd->ejecuta($comando); if (!$resultado) { return $this->bdd->mensajeError($comando); } $salidaTotal=''; while ($fila=$this->bdd->procesaResultado()) { $plantilla=file_get_contents($fichero) or die('Fallo en la apertura de la plantilla '.$fichero); $plantilla=str_replace("{id}",$_POST['id'],$plantilla); $plantilla=str_replace("{Descripcion}",utf8_encode($fila['Descripcion']),$plantilla); file_put_contents($salida,$plantilla) or die('Fallo en la escritura de la plantilla '.$salida); $salidaTotal+=$salida; } $informe=new InformePDF($this->bdd,$salidaTotal,true); } } ?>