Inscripción a curso por 3W

Hola Claudio, gracias por los logs!!!

Parece que se rompe dentro de la función aceptar_inscripcion_propuesta de la clase src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php.
Lo raro es que el parámetro se esta cargando bien:

$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras, false);

¿ustedes personalizaron algunas de las funciones que se usan allí adentro (post_solicitudes_consumos_externos_rest_hooks o post_suscripciones_novedades_propuestas_send)?

Te voy a volver a pedir los logs de Apache pero de otra manera, corre el comando sudo tail -f /var/log/apache2/error.log, y luego volve a reproducir el error. Pasame lo que te muestra por consola.

saludos.

Te paso:

[Thu Mar 14 12:21:12.891344 2019] [:error] [pid 20694] [client 192.168.100.12:45874] PHP Fatal error:  Call to undefined method toba::solicitud() in /usr/local/proyectos/g3w3/3.13.0/src/siu/modelo_g3/nucleo/_lib/guarani_nucleo.php on line 128, referer: https://posgradog3w.unr.edu.ar/inscripcion_cursos/elegir_actividad_curso/ed88f44fd1f6cd4cb27ed7ee3a093a2bd5a5e7c3/def4fb24d1ac1032204b9d9bbaf671f8174e2758

No hay nada personalizado.

Hola, probemos una cosa:

En las funciones post_solicitudes_consumos_externos_rest_hooks y post_suscripciones_novedades_propuestas_send de la clase src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php cambia:

$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras, false);

por:

$usa_sq = 'N';

Esto de manera temporal para ver si lo que falla es la obtención del parámetro.

saludos.

Gracias, eso soluciono el inconveniente.

Ahora habra que investigar porque llega mal el parametro.

Hola, me alegro!!!

Cuando se quiere obtener el parámetro se esta invocando como sigue:

$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras, false);

En $ras se le pasa lo que sigue:


Array
(
    [0] => 12
)

¿Dicho parámetro lo tenes configurado por niveles? Envíame capturas de como tenes configurado el parámetro sq_usa_sanaviron.

Ahora veamos cual es el error, hagamos lo siguiente:

El error que te da es este:

[Thu Mar 14 12:21:12.891344 2019] [:error] [pid 20694] [client 192.168.100.12:45874] PHP Fatal error:  Call to undefined method toba::solicitud() in /usr/local/proyectos/g3w3/3.13.0/src/siu/modelo_g3/nucleo/_lib/guarani_nucleo.php on line 128, referer: https://posgradog3w.unr.edu.ar/inscripcion_cursos/elegir_actividad_curso/ed88f44fd1f6cd4cb27ed7ee3a093a2bd5a5e7c3/def4fb24d1ac1032204b9d9bbaf671f8174e2758
  1. Antes de la linea 128 (antes del return) de la clase src/siu/modelo_g3/nucleo/_lib/guarani_nucleo.php agrega lo siguiente:
klog2("=== backtrace ===", debug_backtrace());
  1. Luego volve a reproducir el error, por un momento deshace el cambio que te dije en el mensaje anterior.

  2. Envíame los logs de 3W que se generan, vas a ver que en el mismo va a estar el texto “=== backtrace ===” con toda la traza para saber como esta llegando allí.

Quedo a la espera de los logs.

saludos.

Hola, envio lo pedido.
Los parametros de usa sanaviron en NO, lo teniamos para toda la institucion, pero al ver que lo trataba de usar igual, le agregamos el nivel de la responsable academica en cuestion.


parametro1.jpg

parametro1.png

parametro 2 - niveles.jpg

parametro 2 - niveles.png

error_3w.txt (99.2 KB)

Hola,

Viendo los logs, la variable $ras tiene el siguiente valor (Responsable Académica con ID 12):


Array
(
    [0] => 12
)

El problema ya se cual es, gracias al debug_backtrace() veo lo siguiente:


....
    [1] => Array
        (
            [file] => /usr/local/proyectos/g3w3/3.13.0/src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php
            [line] => 670
            [function] => get_valor
            [class] => guarani_parametros_nucleo
            [object] => guarani_parametros Object
                (
                    [parametros:protected] => Array
                        (
                        )

                    [co:protected] => toba_consulta Object
                        (
                            [clase_co:protected] => co_parametros
                            [co:protected] => co_parametros Object
                                (
                                )

                            [usar_cache:protected] => 
                            [metadata:protected] => 
                        )

                )

            [type] => ->
            [args] => Array
                (
                    [0] => sq_usa_sanaviron
                    [1] => Array
                        (
                            [0] => 12
                        )

                )

        )
....

En la función post_solicitudes_consumos_externos_rest_hooks del archivo src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php no se esta pasando el tercer argumento cuando se obtiene el parámetro sq_usa_sanaviron, se tendría que estar llamando de la siguiente manera:

$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras, false);

En su caso parece que no le esta pasando el false, lo cual es extraño porque veo que en las versiones 3.15.0 y 3.15.1 se esta llamando así.

Por favor revisen que se este llamando de esa manera.

saludos.

Hola,

¿A que versión dentro del COLAB están apuntando?

Les pediría ademas que me pasen un svn info y svn status de la instalación para ver donde apuntan, y si hay cambios que pueden llegar a estar molestando.

saludos.

# svn status
?       composer.lock
?       doc/Testeo/pruebas/#33 #60 #54 Envío de Mensajes y Mensajes Recibidos.xls
?       doc/Testeo/pruebas/#33 y #54 Envío de Mensajes y Mensajes Recibidos.xls
?       doc/Testeo/pruebas/ALUMNO - INSCRIPCIÓN MATERIAS - g3w2.doc
?       doc/Testeo/pruebas/Actuación Provisoria de Cursadas.xls
?       doc/Testeo/pruebas/Actuación Provisoria de Exámenes.xls
?       doc/Testeo/pruebas/Agenda de exámenes.xls
?       doc/Testeo/pruebas/Historia Académica.xls
?       doc/Testeo/pruebas/Inscripciones a exámenes.xls
?       doc/Testeo/pruebas/gda00110 - Configuración de recepción - G3W2.xls
X       instalacion/servicio_noticias
?       remi-release-7.rpm
X       src/pers_gestion
M       src/siu/conf/acceso/acc_anonimo.php
M       src/siu/modelo/transacciones/cursos.php
M       src/siu/modelo_g3/nucleo/_lib/guarani_nucleo.php
M       src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php
M       src/siu/operaciones/inscripcion_cursos/controlador.php

Performing status on external item at 'src/pers_gestion':

Performing status on external item at 'instalacion/servicio_noticias':
# svn info
Ruta: .
Working Copy Root Path: /usr/local/proyectos/g3w3/3.13.0
URL: https://colab.siu.edu.ar/svn/guarani3/nodos/unr/3w/trunk/3.15.0
Ra▒z del repositorio: https://colab.siu.edu.ar/svn/guarani3
UUID del repositorio: e0a68ae1-9d37-43c1-981e-8b60bee60b31
Revisi▒n: 22514
Tipo de nodo: directorio
Agendado: normal
Autor del ▒ltimo cambio: sergio
Revisi▒n del ▒ltimo cambio: 21534
Fecha de ▒ltimo cambio: 2018-04-09 17:44:24 -0300 (lun 09 de abr de 2018)

Hola Claudio, gracias por la info!!!

Veo que tenes modificado el archivo src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php, veamos lo que hay modificado, corre el comando:

svn diff src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php

No deberían estar modifica las lineas 669 y 747 del archivo [b]https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unr/3w/trunk/3.15.0/src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php[/b]. Donde se carga el parámetro sq_usa_sanaviron, el tercer argumento debería ser false.

saludos.

svn diff src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php
Index: src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php
===================================================================
--- src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php     (revisi▒n: 22514)
+++ src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php     (copia de trabajo)
@@ -666,9 +666,11 @@
                        $detalle = guarani::co('co_inscripciones')->get_detalle_propuesta_aspira($propuesta_aspira);

                        $ras = guarani::co('co_responsables_academicas')->get_propuestas_ras($detalle['propuesta']);
-                       $usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras);
+                       $usa_sq = 'N';
+                       //$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras);
+
                        $es_plan_cobrable = ($detalle['plan_cobrable'] == comunes::si);
-
+

                        /**
                         * @see https://repositorio.siu.edu.ar/trac/guarani/ticket/3121 Ticket.
@@ -744,8 +746,10 @@
        public static function post_suscripciones_novedades_propuestas_send($detalle, $tipo_novedad) {

                $ras = guarani::co('co_responsables_academicas')->get_propuestas_ras($detalle['propuesta']);
-               $usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras);
+               $usa_sq = 'N';
+               //$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras);

+
                $es_plan_cobrable = ($detalle['plan_cobrable'] == comunes::si);

                /**

Hola Claudio,

Deberías revertir ese archivo svn revert src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php, y luego actualizar el proyecto svn up.

Al hacer eso, en el archivo src/siu/modelo_g3/nucleo/cobro/cobro_nucleo.php debería quedar así en las lineas 669 y 747:

$usa_sq = guarani::parametros()->get_valor('sq_usa_sanaviron', $ras, false);

Con eso debería dejar de dar el error.

saludos.

Leo, te comento lo que note:
Hice un checkout en otro server para comparar, y veo que la revisión que descargue (24164) y la que teniamos (21534) esta última no trae el tercer parametro “False”, ahi la raiz del problema.

Hola Claudio,

Claro, ahora viendo bien el svn info que nos enviaron, observo que estaban en la revisión 21534.

Nosotros subimos un HOTFIX en la revisión 24164 que justo arregla ese bug.

Les recomendamos que de vez en cuando revisen los cambios al repositorio, así se actualizan y no se pierden de estos HOTFIXES.

En este caso se resuelve haciendo un svn up, si en producción tienen una versión de 4 dígitos, deberán crear una versión nueva que incluya este cambio.

saludos.

Excelente, tema cerrado.

Muchas gracias por el apoyo

De nada Claudio, me alegro que lo hayan podido solucionar!!!

saludos.