Autor Tema: test sanaviron 2.0.x error en reporte  (Leído 331 veces)

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

pablo_unq

  • Guarani
  • *
  • Mensajes: 777
    • Ver Perfil
    • Email
  • Institución: Uiversidad Nacional de Quilmes
  • Nombre y apellido: pablo romero
  • Sistema: siu_guarani2,siu_guarani3,sanaviron,quilmes,wichi
  • Utilizo algun sistéma del SIU: Sí
test sanaviron 2.0.x error en reporte
« on: Marzo 29, 2022, 10:06:14 am »
Hola,

Estamos testeando la versión Sanaviron-Quilmes 2.0.x, y en Inicio > Ventas > Reportes > Listado de cobranzas por ventas, si no se filtras por nada y se presiona "filtrar", tira el siguiente error:

Se han encontrado los siguientes problemas:
 El resultado de SELECT INTO es una tabla resultante de más de una fila o el resultado de la subconsulta de un predicado básico es más de un valor. Más info...
SQLSTATE: db_21000

CODIGO: 7

MENSAJE: ERROR: una subconsulta utilizada como expresión retornó más de un registro

SQL: SELECT \n com.numero_comprobante, \n com.presentacion, \n \n uv.descripcion as unidad_venta_descripcion,\n cve.descripcion as concepto_venta_descripcion, \n v.leyenda,\n \n co.id,\n date_trunc("seconds", co.cobrada_en) as cobrada_en,\n co.importe,\n co.id_externo,\n date_trunc("seconds", co.liberada_en) as liberada_en,\n co.estado,\n co.id_medio_pago,\n co.id_comprobante,\n \n cv.conciliada_automaticamente,\n date(cv.conciliada_en) conciliada_en,\n cv.conciliada_por,\n cv.importe importe_cobranza_venta,\n \n CASE WHEN p.es_persona_fisica THEN p.nombres || " " ||p.apellido ELSE p.razon_social END cliente,\n \n mp.descripcion medio_de_pago, \n \n v.id id_venta,\n ve.descripcion as venta_estado_descripcion,\n \n (select distinct rp.id_pilaga as id_recaudacion_pilaga from recaudaciones_pilaga rp join recaudaciones_pilaga_cf rpc on rp.id = rpc.id_recaudacion_pilaga and rpc.id_venta = v.id\n where rp.estado = "F") as id_recaudacion_pilaga\n \n FROM \n ventas v\n LEFT JOIN ventas_articulos va ON va.id_venta = v.id\n LEFT JOIN ventas_estados ve ON v.id_venta_estado = ve.id\n LEFT JOIN conceptos_ventas cve ON va.id_concepto_venta = cve.id\n JOIN cobranzas_ventas cv ON v.id = cv.id_venta\n JOIN cobranzas co ON co.id = cv.id_cobranza\n JOIN medios_pagos mp ON co.id_medio_pago = mp.id\n \n JOIN unidades_ventas uv on uv.id = v.id_unidad_venta\n \n LEFT JOIN clientes cli ON co.id_cliente = cli.id\n LEFT JOIN personas p ON cli.id_persona = p.id\n LEFT JOIN comprobantes com ON co.id_comprobante = com.id\n LEFT JOIN comprobantes_templates ct on com.id_comprobante_template = ct.id\n \n WHERE 1 = 1 \n \n GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21\n ORDER BY v.id desc\n ; -- toba_log: 355


Solamente devuelve datos si se selecciona un cliente.

Muchas gracias!!!

Ana María Canedo Peró

  • General
  • *
  • Mensajes: 673
    • Ver Perfil
    • Email
  • Institución: SIU
  • Nombre y apellido: Ana Maria Canedo Peró
  • Sistema: SIU-SanavirónQuilmes y SIU-Wichi
Re:test sanaviron 2.0.x error en reporte
« Respuesta #1 on: Marzo 29, 2022, 10:39:15 am »
Hola Pablo,
Se está recuperando más de un registro en una subconsulta, suena a problema de datos pero por favor cargá un GDS así podemos analizar que pasa exactamente con alguna base núcleo anonimizada tuya.

De nada!
Ana María

pablo_unq

  • Guarani
  • *
  • Mensajes: 777
    • Ver Perfil
    • Email
  • Institución: Uiversidad Nacional de Quilmes
  • Nombre y apellido: pablo romero
  • Sistema: siu_guarani2,siu_guarani3,sanaviron,quilmes,wichi
  • Utilizo algun sistéma del SIU: Sí
Re:test sanaviron 2.0.x error en reporte
« Respuesta #2 on: Marzo 30, 2022, 12:19:43 pm »
Ok! Genero un gds y subo la base.

Mucha gracias!!

pablo_unq

  • Guarani
  • *
  • Mensajes: 777
    • Ver Perfil
    • Email
  • Institución: Uiversidad Nacional de Quilmes
  • Nombre y apellido: pablo romero
  • Sistema: siu_guarani2,siu_guarani3,sanaviron,quilmes,wichi
  • Utilizo algun sistéma del SIU: Sí
Re:test sanaviron 2.0.x error en reporte
« Respuesta #3 on: Mayo 11, 2022, 02:29:58 pm »
Hola:

En /nucleo/src/siu/sq/nucleo/daos/dao_cobranzas.php, en la funcion

public function get_cobranzas_de_venta($filtro = []), en desarrollo probe modificando la consulta (lo q esta en negrita modifique), ya no tira errores, donde tiraba error devuelve todos los datos:


        $sql = "SELECT   
                    com.numero_comprobante,
                    com.presentacion,
                   
                    uv.descripcion as unidad_venta_descripcion,
                    cve.descripcion as concepto_venta_descripcion,
                    v.leyenda,
               
                    co.id,
                    date_trunc('seconds', co.cobrada_en) as cobrada_en,
                    co.importe,
                    co.id_externo,
                    date_trunc('seconds', co.liberada_en) as liberada_en,
                    co.estado,
                    co.id_medio_pago,
                    co.id_comprobante,
               
                    cv.conciliada_automaticamente,
                    date(cv.conciliada_en) conciliada_en,
                    cv.conciliada_por,
                    cv.importe importe_cobranza_venta,
                   
                    CASE WHEN p.es_persona_fisica THEN p.nombres || ' ' ||p.apellido ELSE p.razon_social END cliente,
                   
                    mp.descripcion medio_de_pago,
               
                    v.id id_venta,
                    ve.descripcion as venta_estado_descripcion,
--                   (select distinct rp.id_pilaga as id_recaudacion_pilaga
--               from recaudaciones_pilaga rp join recaudaciones_pilaga_cf rpc on rp.id = rpc.id_recaudacion_pilaga
--              and rpc.id_venta = v.id where rp.estado = '" . constantes::RECAUDACION_PILAGA_FINALADA . "') as id_recaudacion_pilaga
                 rp.id_pilaga as id_recaudacion_pilaga
                    FROM
                    ventas v
                    LEFT JOIN ventas_articulos va ON va.id_venta = v.id
                    LEFT JOIN ventas_estados ve ON v.id_venta_estado = ve.id
                    LEFT JOIN conceptos_ventas cve ON va.id_concepto_venta = cve.id

          LEFT JOIN recaudaciones_pilaga_cf rpc ON rpc.id_venta = v.id -- agregado
          LEFT JOIN recaudaciones_pilaga rp ON rp.id = rpc.id_recaudacion_pilaga and rp.estado = '" . constantes::RECAUDACION_PILAGA_FINALADA . "' -- agregado


          JOIN cobranzas_ventas cv ON v.id = cv.id_venta
                    JOIN cobranzas co ON co.id = cv.id_cobranza
                    JOIN medios_pagos mp ON co.id_medio_pago = mp.id
               
                    JOIN unidades_ventas uv on uv.id = v.id_unidad_venta
               
                    LEFT JOIN clientes cli ON co.id_cliente = cli.id
                    LEFT JOIN personas p ON cli.id_persona = p.id
                    LEFT JOIN comprobantes com ON co.id_comprobante = com.id
                    LEFT JOIN comprobantes_templates ct on com.id_comprobante_template = ct.id
                    $join
                WHERE 1 = 1
                  $where
                GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
                ORDER BY v.id desc
              ;";

gracias!!!