Les hago una consulta por un requerimiento que nos piden desde compras, y por ahí alguien lo pudo solucionar.
Nos piden que en el Dictamen de Evaluación se muestren diferenciados en la salida de Jasper:
- Renglones Aceptados - Renglones Desiertos - Renglones que por haber rechazado todas las ofertas (por ejemplo por precio excesivo), queden como fracasadas, es decir que muestre el renglón pero ningún oferente. Por ejemplo si se el renglón 3 tiene 4 oferentes y todos fueron rechazados, muestre el renglón 3 una sola vez, con una leyenda correspondiente. (similar al caso de los Desierto)
En el xsl el renglón puede tener campos con los siguientes estados:
renglon_estado_oferta = “D” (Cuando está desierto), “F” (asumimos que será fracasado??). En estos casos el campo estado_oferta es null
estado_oferta = “1” (aceptado), “2” (no aceptado). En estos casos el campo renglon_estado_oferta es null
Hasta ahora no detectamos bajo que circunstancia renglon_estado_oferta será igual a “F”.
Al tener, por ejemplo un renglón con todas ofertas no aceptadas (estado_oferta = 2), quisiéramos mostrar el renglón una sola vez, sin los oferentes. El problema es que no podemos con el Jasper, diferenciar los renglones que tienen todos los oferentes rechazados de los renglones que tienen oferentes aceptados y rechazados.
Para nuestro caso, sería ideal que un renglon al tener todos los oferentes no aceptados, el campo renglon_estado_oferta tenga un estado que lo contemple, por ejemplo “F” si correspondiese
No se si desde la aplicación esto se contempla, y lo desconocemos, o si es un requerimiento que hay que pedir.
Cualquier ayuda será bienvenida!
Muchas gracias, espero haber sido claro con la explicación.
Hola Gabriel, te respondo yo por el lado Jasper/PHP… si bien del lado funcional podría estar equivocandome. Sería interesante que lo puedas corroborar después.
En las salidas Jasper, se agrega la descripción Renglón Desierto y Renglón Fracasado por lo que en general esto se cumple… o digamos de otra forma: es posible hacerlo.
Nos estamos refiriendo al XML de datos, nodo [b]/acto_apertura/get_detalles_renglones/registro[/b]. Acabo de probar con un dictámen y tengo un renglón con @renglon_estado_oferta igual a “F”.
Bien, dentro del nodo [b]/acto_apertura/get_detalles_renglones/registro[/b] hay otro campo llamado @posee_oferta que te indica si el renglón posee alguna oferta sin importar el estado de la misma. Con esto y agregando un tercer subreporte más algunos filtros puntuales en el Report Query creo que pueden diferenciar bien los tres grupos.
Ante todo te agradezco por la pronta respuesta Sergio.
Te hago una consulta, en que circunstancia el XML @renglon_estado_oferta sera igual a “F”?
Podría tener esta combinación por ejemplo?:
@posee_oferta = s @renglon_estado_oferta= F @estado_oferta = 2
Porque si no es así no se me ocurre otra forma en la que pueda diferenciar los renglones que tienen ofertas, pero el caso que todas sean no aceptadas . Que por ejemplo nos esta apareciendo de esta forma cada renglón:
@estado_oferta = 2 @posee_oferta = s @renglon_estado_oferta NO APARECE
Desde ya te agradezco, y si llega a ser un tema que excede lo que respecta a Jasper, hago la consulta al GDS.
La etapa Dictamen de Evaluación se realiza en 2 pasos: 1) evaluación del Oferente, y posteriormente 2) evaluación de las Ofertas (si y sólo sí, el Oferente es admisible).
Paso 1:
a) Dictamen de Evaluación/Oferente Admisible: Oferente Admisible (renglón_estado_oferta = D)
b) Dictamen de Evaluación/Oferente Inadmisible: Oferente Inadmisible (renglón_estado_oferta = F)
Directamente no está evaluando si hay ofertas o no, no permitiendo realizar la evaluación de las mismas (en el caso de haber ofertas) por ser el Oferente inadmisible.
Paso 2 (si Oferente es admisible), hay 3 combinaciones:
a.1) Hay ofertas (posee_oferta = s) y se aceptó el renglón (estado_oferta = 1) por precio o calidad.
a.2) Hay ofertas (posee_oferta = s) pero NO se aceptó el renglón (estado oferta = 2) por precio o calidad.
a.3) NO hay ofertas (posee_oferta = n), por lo tanto no se puede aceptar/no aceptar el renglón (estado_oferta = null)
Pero el Oferente era admisible (renglón_estado_oferta = D).
Ok buenisimo, muchas gracias Matías, eso despeja mis dudas en cuanto a la forma en que vienen los xml.
Nosotros queremos listar en el reporte de Jasper los renglones que solo tienen estado oferta = 2 y ningún estado oferta = 1, agrupandolo por renglón en esa condición.
Mi pregunta es entonces si Jasper nos permitiría hacer eso, es decir recorrer el nodo /acto_apertura/get_detalles_renglones/registro , agrupar por renglón y mostrar los que solo tienen estado_oferta = 2.
Si nos dicen que es posible vamos a seguir investigando a ver si le encontramos la vuelta. Si tienen algún manual de Jasper que les haya servido, será bienvenido.
Gracias por todas las respuestas, y perdonen mi insistencia!
Hola Gabriel, te comento que estuve trabajando en esto con la solicitud GDS que realizaron…
Inicialmente la agrupación es posible en jasper y así es como tienen que resolverlo, pero la condición para cuando mostrar el renglón se complicaba realizar con los datos actuales (una falencia del atributo renglon_estado_oferta pero como está en uso no es bueno romper lo que ya todos usan).
La solución para saber cuando mostrar el renglón es que agregamos un atributo nuevo, renglon_con_oferta_aceptada que aparece en todos los renglones-ofertas e indica si el renglón tiene una oferta aceptada de alguno de todos sus oferentes . Con esto podrán trabajar la condición de filtro y así mostrar los renglones que necesiten.
Esto estará disponible para la versión 2.2.0 de Diaguita. Saludos!
Hola Sergio, genial, gracias por darle curso a nuestro pedido.
Quedamos a la espera de la versión 2.2.0 y comenzaremos a hacer las pruebas correspondientes (seguro que alguna cosita te vamos a tener que consultar nuevamente)
Hola Sergio, estuvimos probando el nuevo campo renglon_con_oferta_aceptada que agregaron y le encontramos un error.
El problema es que en los únicos casos que el campo renglon_con_oferta_aceptada es igual a ‘s’, es en los renglones que tiene una sola oferta, y aceptada. En los casos por ejemplo que hay cuatro ofertas y una es aceptada el campo renglon_con_oferta_aceptada es igual a ‘n’.
Ya subí el xml con un caso ejemplo en el mismo GDS que hicimos el pedido.