Asociar Articulo Salida de M - Entrada de M

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 :slight_smile:

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.