Informe de facturas

buen día el día de hoy me encuentro con un dilema intento sacar un informe de facturas de compra que me muestre el importe base pero barias de estas facturas me salen en cero y al buscar el documento me muestra que si tiene un valor mayor a cero.

este es el código que use para la consulta.

SELECT T0.[DocNum], T0.[DocDate], T1.[CardCode], T1.[CardName], T0.[BaseAmnt] FROM OPCH T0 INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode] WHERE T0.[DocDate] >=[%0]

agradezco la ayuda que me puedan dar sobre el tema.

bendiciones.

1 me gusta

si facturas es varias monedas posiblemente no estes tomando el campo total en moneda extranjera.

Hola @riveiro,

Yo normalmente calculo ese dato, total - impuestos o suma de total de lineas, haciendo un case que considere cada moneda. Puede ser una opción.

Observación: Tal como tienes la consulta no necesitas unir la tabla OCRD, todos los datos los puedes sacar de OPCH.

Saludos.

2 Me gusta

La tabla no guarda el importe base, lo puedes calcular con total-impuesto.
O como te dicen más abajo sumarizando el neto de las líneas.
En tu caso tendrías que hacer T0.DocTotal-T0.VatSum as ‘Base’

1 me gusta

buen día intente solucionarlo como me dice pero el inconveniente viene en las retenciones de impuesto y calcularlo saldría un código mas largo por lo cual me gustaría una lectura del valor del campo del documento.

me ayudaría para saber que le falta a mi código para esta lectura del campo?

SELECT T0.[DocNum], T0.[DocDate], T1.[CardCode], T1.[CardName], T0.[BaseAmnt] FROM OPCH T0 INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode] WHERE T0.[DocDate] >=[%0]

quedo enteramente agradecido.

Prueba este query, estoy exceptuando facturas canceladas.

Puedes adaptarlo a lo que necesitas. Esta para correr en hana pero solo cambia las comillas por corchetes y funcionara.

SELECT T0."DocNum", T0."DocDate", T0."CardCode",  T0."BaseAmnt" ,
CASE T0."DocCur" WHEN 'MXP' THEN SUM(T1."LineTotal" )
ELSE SUM(T1."TotalFrgn" )
END "Importe Base", T0."DocCur"
FROM OPCH T0 INNER JOIN PCH1 T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."DocDate" >=[%0] AND T0."CANCELED" != 'Y'
GROUP BY T0."DocNum", T0."DocDate", T0."CardCode",  T0."BaseAmnt", T0."DocCur"

Saludos.

1 me gusta

A ver… la idea es que te pegues un poco con la consulta, la entiendas y sepas o seas autónomo para realizar las consultas.

Nosotros no sabemos de tus peculiaridades, si tienes retenciones, portes, descuentos… Del total factura deberías restar todos los campos de cada uno de esos importes… sería t0.doctotal-(t0.vatsum+t0.discsum+t0.TotalExpns+t0.CashDiscnt+t0.WTSum)

3 Me gusta

efectiva mente esa es la idea gracias ya con los datos tuyos y los de vik_B1 tengo una idea de como solucionarlo y usarlo para próximos informes.

quedo agradecido.

1 me gusta

buen día e encontrado el dilema de porque salían varios sub totales en ceros y es porque el documento solo tiene un ítem y los que tiene varios si muestra el sub total esto me dio a entender mas de como funciona internamente sap b1 por lo cual puedo mejorar mi código haciéndolo mas corto les dejo el porque pasa por si les resulta de utilidad.

gracias por sus respuestas y atención en el asunto.

bendiciones.

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.