Query o stored proc para obtener datos de factura

hola amigos,

no saben cual es el stored proc, vista o demas, que ejecuta SAP para imprimir una factura? necesito hacer para mi empresa una personalizacion de la factura, pero hasta ahora he tenido un dolor de cabeza para obtener los datos

ojala que me devuelva el descuento, los impuestos, lineas de producto! no mas que datos meramente de la factura

alguna ayuda por favor

Hola…,
Quieres modificar el archivo nativo de SAP o modificar el SP de un facturador tercerizado?, si es el caso 1, quieres modificar el pdt o con cristal reports?.

esq necesito hacer un reporte personalizado con los datos de cada factura! pero SAP no me da el reporte que necesito, por lo que necesito construirlo, cree un query pero siempre hay datos que no me dan bien! algunas facturas ya me funcionan, pero aveces me salen duplicados etc etc

por lo que queria saber si conocen cual stored proc ejecuta SAP para obtener los datos de una factura

saludos

Estas matando moscas a cañonazos.

Muchas veces depende tambien del uso que haces de la aplicacion para poder orientarte mejor, tienes que exponer claramente lo que necesitas.

Para hacer un report de una factura, desde crystal reports tienes 2 vias:

1.- Construir una select. Vas seleccionando campos y tablas y cuando tengas todo lo necesario la pasas a un crystal reports. Siempre podrás editarla y añadir campos de tablas a posteriori. Tablas: (INV1, OINV, OCRD, OITM…)
2.- Seleccionar el report con origen en las tablas, seleccionas dichas tablas y luego ya los campos de cada tabla que te hagan falta. En este caso solo tendrás que revisar la relación entre las tablas que se hace en la pestaña vinculos.

1 me gusta

Buen día, de igual manera nos ayudaría también que anexes la consulta que ya tienes.

Hola Riam
La gran mayoría de datos de una factura se obtienen de las tablas OINV(encabezado) y INV1(DETALLES)
En base a estas tablas puedes generar los informes de ventas y formatos que requieras

SELECT *  FROM OINV T0  
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry" 
WHERE T0."DocNum" ='NUMERO DE FACTURA'

Saludos,
Andres Ramirez Jaramillo :colombia:

Nunca habia visto una comunidad tan activa jeje!

SELECT DISTINCT
T0.DocNum AS Factura, ISNULL(R1.Price, T0.GrosProfit) AS Importe_PVP, T0.DocStatus AS Estatus, T0.DocDate AS Fecha, T0.CardCode AS Cliente, T0.CardName AS Nombre,
CASE WHEN T0.DocCur = ‘COL’ THEN ‘CRC’ ELSE T0.DocCur END AS Moneda, T0.DocTotal AS [Total Factura], T0.DocTotalFC, T0.PaidToDate AS [Total Pagado], CASE WHEN LEN(dbo.CRD1.LicTradNum)
= 9 THEN ‘01’ ELSE ‘02’ END AS TIPO_CEDULA, I1.LineStatus, I1.ItemCode, I1.Dscription AS Producto, I1.Quantity AS CANTIDAD, CAST(I1.Price AS money) AS PRECIO, CAST(CASE WHEN I1.TaxStatus = ‘Y’ THEN 13 ELSE 0 END AS numeric)
AS IVI, CAST(I1.Quantity * ISNULL(I1.Price, T0.GrosProfit) AS money) AS TOTAL, OCRD.E_Mail, CASE WHEN I1.Rate = 0 THEN 1 ELSE I1.Rate END AS TipoCambio, I1.Currency,
CASE WHEN I1.Rate <> 0 THEN ‘USD’ ELSE ‘CRC’ END AS MonedaProducto, T0.DiscPrcnt AS Descuento, I1.TaxOnly AS Impuesto, CASE WHEN CAST(I1.VatSum AS numeric) <> 0 THEN 0 ELSE 1 END AS Exonerado,
I1.DocEntry AS EntryDoc, OCRD.LicTradNum AS CEDULA
FROM RDR1 AS R1 RIGHT OUTER JOIN
INV1 AS I1 ON R1.ItemCode = I1.ItemCode AND R1.TrgetEntry = I1.BaseEntry RIGHT OUTER JOIN
OCRD INNER JOIN
CRD1 INNER JOIN
OINV AS T0 ON CRD1.CardCode = T0.CardCode ON OCRD.CardCode = CRD1.CardCode ON I1.DocEntry = T0.DocEntry LEFT OUTER JOIN
ODLN AS OD ON I1.BaseEntry = OD.DocEntry LEFT OUTER JOIN
DLN1 AS D1 ON OD.DocEntry = D1.DocEntry

este es el query que tengo ahorita, pero algunas facturas se filtran y no se porque!! tengo que hacer un reporte completo, ahi pueden ver los campos que tengo!! no ven el porq algunas facturas se filtran?

saludos, y de verdad gracias por la ayuda

el detalle de impuesto por linea de producto lo encuentras en la tabla INV4 y esta se una a la tabla INV1 con DocEntry, LineNum y creo que StaCode que viene siendo tu codigo de impuesto

Amigos, otra consulta

no saben en que tabla esta los datos de si la factura fue a credito? o si fue de contado?

saludos

en el dato maestro OCRD estan las condiciones de pago

Saludos

no sabes cual celda es amigo?? y de casualidad no sabes en cual tabla estan las ordenes de compra

OPOR y POR1 son las ordenes de compra

-groupnum se llama el campo pero si quieres el nombre debes de jalarlo de la OCTG

Saludos

SELECT T0.[CardCode], T0.[CardName], t0.[groupnum], T1.[PymntGroup] FROM OCRD T0 INNER JOIN OCTG T1 ON T0.[GroupNum] = T1.[GroupNum]

muchisimas gracias mi estimado!!

otra consulta amigo, de casualidad no sabes cuales son lso campos para definir el tipo de pago?

esq por ejemplo, yo tengo la factura y la factura me define que se compro a un plazo de 90 dias, pero no encuentro donde sale esa informacion!!

este era el query que ocupaba!! te agradezco mucho mi estimado!! como referencia adicional, para sacar esa info para la factura, deberia hacer un inner join a la tabla OINV por medio del [CardCode] o me equivoco?

A ver Raiam… deberías abrir un tema para cada consulta individual que haces…
No seguir acumulando sobre el mismo.
y en cada tema que se vaya cerrando marcar su solución

Un poco de orden y organización por favor.

Y es más, que lo he revisado… No has pasado por presentaciones…

tu consulta original ya tienes la union entre OCRD y OINV

@Raiam_Quesada, qué paso con este tema? :thinking:
Lee lo que te recomendaron aquí., marca por favor un mensaje como solución de este tema. Y para futuras dudas, abre temas nuevos :+1:

ya esta solved, me ayudaron muchisimo! les agradezco la ayuda a tod@s

Indica cuál mensaje solucionó tu duda inicial por favor @Raiam_Quesada