Relacion de tablas ORDR, ODPI Y ORCT

Buenas tardes, alguien me podria dar una idea de como sacar un query que es el siguiente :
necesito hacer un reporte con los datos de Orden de venta , los anticipos que se aplicaron a esa orden de venta y el pago recibido de la misma , e intentado mil maneras pero no encuentro cuál es la llave con las que las puedo relacionar…

Saludos

Hola Arleny,

Pues espero que esta información te sirva.

ORDR TABLE
ORDR INDEXES

ODPI TABLE
ODPI INDEXES

ORCT TABLE
ORCT INDEXES

Si necesitas algo más en cuanto a tablas e indices estoy a tus órdenes.

Saludos,

1 me gusta

Hola.
Antes que todo debes revisar los conceptos que tienes de cada documento ya que ni los anticipos, ni los pagos recibidos puedes aplicarlos a una orden de venta, los pagos recibidos y anticipos los aplicas a una factura, no a una orden de venta.

  • La orden de venta se graba en las tablas ORDR y RDR1.
  • Las facturas de venta las graba SAP en las tablas OINV y INV1
  • Los pagos recibidos estan en las tablas ORCT, RCT1, RCT2

Acá te dejo un Query de ejemplo (no es el que necesitás, solo es un ejemplo) para que tomes el concepto y en base a eso ya desarrolles el query que necesitás.

select  *
from 
oinv oi  --Facturas
,dln1 d1 --Entregas
,rdr1 r1  --Orden de venta
,qut1 q1  --Cotizacion
,orct rc --Recibos
where
rc.docnum = oi.receiptnum
and oi.docentry =d1.trgetentry
and d1.docentry = r1.trgetentry
and r1.docentry = q1.trgetentry
and q1.docentry = 35714  --este es un numero de ejemplo

En este ejemplo se recorre todo el seguimiento de tus documentos desde la cotizacion, orden de venta, entrega, factura, recibo.
Alli puedes observar cuales son los campos llave, que puedes utilizar.

Espero esto te sirva de ayuda.

Saludos.

2 Me gusta

Muchas Gracias!!! por la información…

Este fue el Query que realicé…

SELECT DISTINCT
b.DocNum NoPagoRecibido , b.TaxDate 'Fecha Pago Recibido ',
b.CardCode 'Código Cliente', b.CardName 'Nombre Cliente', b.DocTotal 'ImportePagad',a.SumApplied 'pagado' ,
CASE WHEN a.InvType = 18 THEN 'FA' WHEN a.InvType = 19 THEN 'NC' ELSE 'AN' END Documento,a3.DocEntry,
  e.DocDate 'FechaAnticipo',a3.DocNum, a3.PaidDpm, a3.DocDate, a3.DocTotal, a3.VatSum, (a3.DocTotal /1.128) .20  'Terreno', (a3.DocTotal /1.128) .80  'Cosntrucción', e.DocTotal 'ImporteAnticipo',  a3.NumAtCard, a3.Comments, e.DocDueDate 'FechaVencimientoAnticipo',
   
   
   CASE WHEN e.DocEntry = a.DocEntry AND e.ObjType = a.InvType then SUM (a.SumApplied)    ELSE 0   END  pagos1
   
FROM RCT2 a
LEFT JOIN ORCT b ON b.DocNum = a.DocNum
 LEFT JOIN ODPI e ON e.DocEntry = a.DocEntry AND e.ObjType = a.InvType
LEFT JOIN (SELECT  distinct  a1.DocNum, a2.DocEntry,  a1.PaidDpm ,a1.DocDate , a1.DocTotal, a1.VatSum, NumAtCard, a1.Comments
 from ORDR a1
 INNER JOIN DPI1 a2 ON a2.BaseEntry = a1.DocEntry AND  a2.BaseType = 17 
   GROUP BY a1.DocNum, a2.DocEntry, a1.DocDate, a1.DocTotal, a1.VatSum,a1.NumAtCard, a1.Comments, a1.PaidDpm ) a3 ON a3.DocEntry = a.baseAbs
 WHERE b.Canceled = 'N' AND a3.DocNum >=1  AND a3.DocNum = a3.DocNum


 GROUP BY b.DocNum , b.TaxDate, e.DocEntry,a.DocEntry, e.ObjType,
   b.CardCode , b.CardName ,b.DocTotal ,a.SumApplied  ,a3.DocEntry,
  e.DocDate ,a3.DocNum, a3.DocDate, a3.DocTotal, a3.VatSum, (a3.DocTotal /1.128) .20  , (a3.DocTotal /1.128) .80  , e.DocTotal ,  a3.NumAtCard, a3.Comments, a.InvType, e.DocDueDate, a3.PaidDpm
1 me gusta

espero que alguien más que busque algo parecido le pueda servir… saludos :slight_smile:

De nada Arleny, para eso estamos.

Saludos

Hola estimada @Arleny favor de marcar la respuesta que te solucionó como “solucion” y si alguna de las otras respuestas te ayudo, marcale como “me gusta”, para cerrar este debate y mantener un mejor orden en nuestra comunidad.

Saludos.

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