Buen día señores,
Me ha surgido una duda con respecto a una query que estoy haciendo dicen que quien no sabe e investigó y no logró solucionar tiene que ir con otros expertos que le ayuden a poder aclarar el panorama.
Necesito saber como puedo relacionar un articulo que se encuentra dentro de la salida de Mercancías con un Articulo de Entrada de mercancías.
He estado va de darle vuelta al asunto, estaba viendo si podía realizar la relación con estas tablas: OJDT, IGE1, OINM y PND1.
Por sus comentarios muy agradecida.
Juana Granados
Hola @Juanag
Pues yo también he buscado una relación directa entre OIGN - OIGE y no la encontré. La única relación que encontré fue a través de las ordenes de producción (OWOR):
SELECT *
FROM OIGE T0 INNER JOIN IGE1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OWOR T2 on T2.docnum = T1.baseentry
LEFT JOIN IGN1 T3 on T3.baseentry = T2.docnum
LEFT JOIN OIGN T4 on T4.docentry = T3.docentry
No me queda claro lo que necesitas, sin embargo, si lo que quieres es el registro de las entradas y salidas de un artículo el siguiente query te puede servir:
SELECT *
FROM OINM T0 INNER JOIN OITM T1 on T0.ItemCode = T1.ItemCode
WHERE TransType=59 or TransType=60
AND T1.ItemCode=@CodArticulo
Saludos.
2 Me gusta
Hola, mira fíjate que revisando hay una tabla OIBT se encuentran los registros de número de lote por articulo en esa tabla puedes ver de acuerdo al articulo con que entrada se realizó el registro y de esta forma enlazarlo con el detalle del articulo que se crea en la entrada.
Sigo revisando ya que prácticamente lo que necesito es poder rastrear un articulo que se encuentre en un asiento de salida a que proveedor se le compró, factura y con que cheque se le efectuó el pago.
Gracias por el aporte se que me funcionará en cuanto lo termine te cuento 
Ahh bueno ya entendí lo que quieres, lo que creo que tienes que hacer entonces es lo siguiente:
Primero: Un join entre OIBT e IBT1
OIBT T0 INNER JOIN IBT1 T1 ON T0.ItemCode = T1.ItemCode AND T0.BatchNum = T1.BatchNum
El Campo IBT1.BateType te indica el tipo de transacción (13 si es factura de venta, 59 si es entrada de inventario, etc.)
El Campo IBT1.BaseEntry te indica del DocEntry de la tabla a la que se hace referencia, es decir si es una factura de venta: es el DocEntry de la tabla OINV.
El Campo IBT1.BaseNum es el número de documento de la transacción, es decir el DocNum en la tabla OINV.
Ahora tomando en cuenta esos tres campos puedes hacer los join que quieras a las tablas que quieras: facturas de ventas (OINV) o compras (OPCH), entrega de mercancía (OPDN), entrada o salida de inventario (OIGN, OIGE), etc.
Después que tengas esos join a los documentos que necesitas solamente te hará falta hacer el join a pago efectuado (OVPM) y luego al asiento de diario (OJDT, JDT1).
Espero que te funcione, saludos.
1 me gusta
Gracias por tu apoyo Julio, haré las pruebas en estos días que al final me ocupé en otros asuntos en cuanto tenga resuelto el tema te estaré contando como me fue.