Autor Tema: error al querer imprimir solicitud de becas URGENTE  (Leído 1031 veces)

0 Usuarios y 1 Visitante están viendo este tema.

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
error al querer imprimir solicitud de becas URGENTE
« on: Diciembre 02, 2020, 12:33:27 pm »
Buenas tardes
estoy teniendo un problema en producción que no tuve en testeo.
imagino qeu es un problema de permisos de carpetas.

al querer descargar la solicitud por parte del alumno por autogestion la misma sale vacía por firefox y da error por chrome
SAludos!

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #1 on: Diciembre 02, 2020, 02:18:07 pm »
Hola Luciana,

¿en que versión están?

Pasanos los logs del sistema y de Apache al momento de hacer la descarga.

saludos.
2

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #2 on: Diciembre 02, 2020, 03:11:36 pm »
Hola Leonel, me olvidé de decirte la versión es la 3.16.2

es un error al generarlo me parece porqeu no da error al bajar solo cuando lo qeures abrir
Recién nos dimos cuenta qeu lo está bajando como .pdf y sin embargo es un .zip
si al bajar le cambio la extensión puedo descomprimirlo y me aparecen los dos archivos de la convocatoria qeu son uno Kolla y otro Guaraní con las convocatorias.
Como podemos hacer para qeu lo baje como corresponde .zip

Saludos!

« Última Modificación: Diciembre 02, 2020, 04:16:06 pm por lsoria »

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #3 on: Diciembre 02, 2020, 05:11:44 pm »
Hola Luciana,

Dicho problema fue solucionado para la versión 3.18.1 en el ticket #32888 (https://redmine.siu.edu.ar/redmine/issues/32888).

Por favor, crea un GDS (y ponémelo acá en el foro) y te adelanto la solución.

saludos.
2

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #4 on: Diciembre 03, 2020, 08:31:04 am »
Gracias Leonel!
Ahí armé GDS
Solicitud número 49120

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #5 on: Diciembre 03, 2020, 03:00:01 pm »
Leonel el parche no funcionó y lo qeu nos llama la atención es qeu en testeo, con la misma fuente de guarani (3.16.2.1).
funciona perfectamente, es en la generación del archivo zip
te marco en rojo lo que creo que está fallando porqeu el archivo lo genera y lo descarga pero como .pdf en vez de .zip
para mi es una extensión  php qeu está haciendo lío o algo que le falte al composer no se, igualmente no da error, solo lo descarga en formato incorrecto en producción

         // Si existe la convocatoria
         if (isset($convocatorias_aplicadas[$hash_habilitacion])) {

            $convocatoria = $convocatorias_aplicadas[$hash_habilitacion];
            $datos_impresion = $this->modelo()->info__convocatoria_impresion($convocatoria['becas_convocatoria']);
            $datos_impresion['convocatoria_nombre'] = "{$convocatoria['tehuelche_nombre']} - {$convocatoria['tehuelche_tipo_de_beca']}";
            $datos_impresion['convocatoria_descripcion'] = $convocatoria['tehuelche_informacion_adicional'];

            // https://packagist.org/packages/maennchen/zipstream-php#v0.5.2
            $zip = new \ZipStream\ZipStream('convocatoria.zip');

            $path_pdf_kolla = $this->modelo()->info__pdf_formulario_kolla($convocatoria['kolla_id_habilitacion'], $convocatoria['formulario'], $convocatoria['hash'], $convocatoria['kolla_unidad_gestion']);
            $zip->addFileFromPath('kolla.pdf', $path_pdf_kolla);
            unlink($path_pdf_kolla);

            ob_start();
            $this->generar_pdf_guarani($datos_impresion);
            $content = ob_get_clean();
            $zip->addFile('guarani.pdf', $content);

            $zip->finish();



Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #6 on: Diciembre 03, 2020, 08:17:22 pm »
Hola Luciana,

Entonces se pude llegar a deber en algo que te falta en el ambiente de producción, revisa los requisitos técnicos de la 3.16.2.

Te sugiero también:
1) Ver las diferencias que hay entre el entorno de producción y testeo, ejecutando php -m en consola vas a poder ver las extensiones instaladas para PHP CLI (linea de comandos), para Apache podes poner un phpinfo(); en el código para ver todas las extensiones que temes instaladas para PHP Web.

2) Revisa los permisos, paso 3 de esta documentación.

3) Revisemos los logs de Apache al momento de descargar el ZIP.

4) En el archivo composer.lock revisa que versión de la librería maennchen/zipstream-php tenes instalada, en mi caso dice:
Código: [Seleccionar]
"name": "maennchen/zipstream-php",
"version": "v0.5.2",

saludos.
2
« Última Modificación: Diciembre 03, 2020, 08:23:58 pm por Leonel Leonardis »

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #7 on: Diciembre 04, 2020, 09:44:48 am »
Leonel tengo la misma versión qeu vos en ambos ambientes y ambos tienen las mismas librerías php



Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #8 on: Diciembre 04, 2020, 10:08:21 am »
Hola Luciana, gracias por la información!!!

Probemos lo siguiente:

1) La librería maennchen/zipstream-php requiere la extensión ext-mbstring, ¿la tenes instalada?

2) Si en la función accion__imprimir_solicitud de la clase src/siu/operaciones/convocatorias_becas/controlador.php comentas temporalmente los unlink vas a poder ver los PDFs en la carpeta instalacion/temp/<bloque_acceso>:
Código: [Seleccionar]
//unlink($path_pdf_kolla);
//unlink($path_pdf_guarani);
¿Dichos PDFs se generan bien o están corruptos?

3) También decime cuanto pesan los PDFs, ya que hay una opción de la librería ZipStream donde carga archivos de como máximo 20 megabytes, se puede incrementar dicho valor.

Te adjunto como me lo descarga a mi.

saludos.
2

« Última Modificación: Diciembre 04, 2020, 10:11:17 am por Leonel Leonardis »

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #9 on: Diciembre 04, 2020, 10:33:05 am »
te envío fotos pero
te recuerdo tengo todas las librerías requeridas en ambos ambientes, no da ningún error ni en el apache o guaraní, ya qeu genera el archivo y lo descarga, el tema es que lo baja como .pdf y no como .zip
si lo cambio de extensión puedo descomprimirlos y están bien los puedo ver y abrir y todo.
Pero los baja con la extensión incorrecta

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #10 on: Diciembre 04, 2020, 11:04:36 am »
Hola Luciana, gracias por las capturas, parecería estar todo bien!!!

Probemos las siguientes opciones de la librería ZipStream, en la función accion__imprimir_solicitud de la clase src/siu/operaciones/convocatorias_becas/controlador.php:

Código: [Seleccionar]
$opt = [
\ZipStream\ZipStream::OPTION_CONTENT_TYPE => 'application/x-zip',
\ZipStream\ZipStream::OPTION_CONTENT_DISPOSITION => 'attachment; filename=\"convocatoria.zip\"',
\ZipStream\ZipStream::OPTION_SEND_HTTP_HEADERS => true
];
// https://packagist.org/packages/maennchen/zipstream-php#v0.5.2
$zip = new \ZipStream\ZipStream('convocatoria.zip', $opt);

Avísame si con ese cambio lo descarga con el nombre convocatoria.zip en lugar de convocatoria.pdf.

saludos.
2

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #11 on: Diciembre 04, 2020, 11:28:56 am »
eso es lo mas loco que lo descarga como guarani.pdf
ni siquiera como convocatoria.
te paso como sale el archivo.
Aviso qeu sigue igual con las modificaciones qeu me decis.

Te pregunto donde se definen los nombres de lso archivos de bajada, quizá esté ahí el tema, proque ya probé hasta hacer un rename en el controlador y nada

fijate lo que te adjunto, se llama guarani.pdf
pero tendría que ser convocatoria.zip

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #12 on: Diciembre 04, 2020, 12:26:56 pm »
Hola Luciana,

Claro, veo que que pone mal la extensión, si le renombro a .zip se descomprime bien!!!

 Toda la lógica esta en la función accion__imprimir_solicitud de la clase src/siu/operaciones/convocatorias_becas/controlador.php, yo lo tengo así con los cambios:

Código: [Seleccionar]
function accion__imprimir_solicitud()
{
try {

$hash_habilitacion = $this->validate_param(0, 'get', validador::TIPO_ALPHANUM);
$convocatorias_aplicadas = $this->modelo()->info__convocatorias_aplicadas();

// Si existe la convocatoria
if (isset($convocatorias_aplicadas[$hash_habilitacion])) {

$convocatoria = $convocatorias_aplicadas[$hash_habilitacion];
$datos_impresion = $this->modelo()->info__convocatoria_impresion($convocatoria['becas_convocatoria']);
$datos_impresion['convocatoria_nombre'] = $convocatoria['tehuelche_nombre'];
$datos_impresion['convocatoria_descripcion'] = $convocatoria['tehuelche_informacion_adicional'];

$opt = [
\ZipStream\ZipStream::OPTION_CONTENT_TYPE => 'application/x-zip',
\ZipStream\ZipStream::OPTION_CONTENT_DISPOSITION => 'attachment; filename=\"convocatoria.zip\"',
\ZipStream\ZipStream::OPTION_SEND_HTTP_HEADERS => true,
\ZipStream\ZipStream::OPTION_LARGE_FILE_SIZE => 100 * 1024 * 1024
];
// https://packagist.org/packages/maennchen/zipstream-php#v0.5.2
$zip = new \ZipStream\ZipStream('convocatoria.zip', $opt);

$path_pdf_kolla = $this->modelo()->info__pdf_formulario_kolla($convocatoria['kolla_id_habilitacion'], $convocatoria['formulario'], $convocatoria['hash'], $convocatoria['kolla_unidad_gestion']);
$zip->addFileFromPath('kolla.pdf', $path_pdf_kolla);
unlink($path_pdf_kolla);

$path_pdf_guarani = $this->generar_pdf_guarani($datos_impresion);
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani);
unlink($path_pdf_guarani);

$zip->finish();


} else { // sino

$data['mensaje_tipo'] = 'alert-error';
$data['mensaje'] = 'convocatorias_becas.convocatoria_inexistente';
$this->vista()->set_pagelet('mensaje', $data);

}

} catch (\Exception $e) {

kernel::log()->add_error($e);

$data['mensaje_tipo'] = 'alert-error';
$data['mensaje'] = 'convocatorias_becas.ha_ocurrido_error';
$this->vista()->set_pagelet('mensaje', $data);

}
}

El nombre se lo estoy poniendo en dos lugares:
Código: [Seleccionar]
$zip = new \ZipStream\ZipStream('convocatoria.zip', $opt);
y acá también:
Código: [Seleccionar]
\ZipStream\ZipStream::OPTION_CONTENT_DISPOSITION => 'attachment; filename=\"convocatoria.zip\"',
Este ultimo esta generando problemas, ya que le pone ese nombre:
Código: [Seleccionar]
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani);
¿que pasa si se lo pasas así?
Código: [Seleccionar]
$zip->addFileFromPath('guarani.pdf', $path_pdf_guarani, [], 'store');
saludos.
2

lsoria

  • Hero Member
  • *****
  • Mensajes: 557
    • Ver Perfil
  • Institución: UNER
  • Nombre y apellido: Luciana Soria
  • Sistema: Guarani - Araucano - Calchaqui - Wichi
  • Teléfono laboral: 03442 421522
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #13 on: Diciembre 04, 2020, 12:47:45 pm »
sigue bajando como guarani.pdf
por eso te decía que debe ser algo qeu hemos cambiado en donde se definen los nombres de lso archivos de bajada, alguna constante que hemos puesto, eso donde se define tiene que ser en algún lugar de la fuente.

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2485
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:error al querer imprimir solicitud de becas URGENTE
« Respuesta #14 on: Diciembre 04, 2020, 12:54:44 pm »
Hola Luciana,

Todo se hace en la función finish de vendor/maennchen/zipstream-php/src/ZipStream.php.

Probemos esto antes que nada:

Quizás hay cambios dentro de vendor que se agregaron sin querer. Podes borrar la carpeta vendor y luego volver a ejecutar el comando composer install.

El archivo que tiene la lógica para generar en zip es este: vendor/maennchen/zipstream-php/src/ZipStream.php. Lo revise y no encontré nada raro. Quizás hay cambios que se introdujeron sin querer y por eso falla.

saludos.
2
« Última Modificación: Diciembre 04, 2020, 12:58:04 pm por Leonel Leonardis »