cancel
Showing results for 
Search instead for 
Did you mean: 

Luces con reporte de ultima fecha de compra y venta de articulos

0 Kudos

Buenos días amigos,

Soy nuevo en SAP acaban de instalarlo en nuestra empresa, estoy en pleno proceso de elaboración de reportes pero hay uno que no pillo de donde sacar o como sacar los datos, quizás a alguien mas le haya pasado y me pueda dar una manito, es "La ultima fecha de compra y venta de todos mis artículos", se que las ventas las puedo conseguir de las tablas OINV y la INV1 ahora en la parte de compras es donde esta el dilema por que la ultima fecha de compra la tomamos desde cuando se mueven los artículos del almacén predeterminado (Ej: AT) hacia los almacenes destinos (Ej: Cristo) y no se de donde sacar esos datos ni como hacerlo. Podría alguien ayudarme o darme luces sobre este tema por favor?

Agradezco de antemano su colaboración.

Saludos

Pablo Coca.

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas noches

La vista OINM contiene la lista de todos los movimientos de inventario (entradas, salidas y transferencias), creo que es el mejor lugar de donde puedes empezar.

Como dato adicional, los campos:

LastPurDat - Última fecha de compra

LstSalDate - Última fecha de venta

se encuentran en la tabla OITM, podrías revisar si te sirven.

Saludos

FLR

0 Kudos

Muy bien amigo, no sabia de esos campos pero comentar que solo el campo

LastPurDat - Última fecha de compra es el que tiene datos, el campo LstSalDate esta vacío, como se puede llenar ese campo?

Saludos

felipe_loyolarodriguez
Active Contributor
0 Kudos

Estuve chequeando y el campo ni siquiera aparece en la documentación de la definición de tablas de B1 por lo que creo que aun no está en funcionamiento.

Ese dato deberás obtenerlo desde un query.

Saludos

rjovel
Active Participant
0 Kudos

hola, tienen que hacerlo de la inv1 y de la pdn1 (es mejor de la entrada op en compras, porque a veces la compra se ingresa despues de la entrada de mercaderia y para tener un dato mas rapidamente es mejor usar la entrada de mercaderia)

intenta con esto por favor.

select itemcode, itemname,

                    ult_vta=(select max(ActDelDate) from inv1 whith(nolock) where itemcode=oitm.itemcode),

                    ult_comp=(select max(ActDelDate) from pdn1 whith(nolock) where itemcode=oitm.itemcode)

from oitm with(nolock)

0 Kudos

Muy bien amigo, con todos los datos recabados y tu valiosa ayuda pude realizar la consulta, en realidad es la misma solo que utilizando el convert saco las fechas cortas:

select itemcode, itemname,

                    ult_vta=(select convert(varchar(20),max(ActDelDate),103) from inv1 whith(nolock) where itemcode=oitm.itemcode),

                    ult_comp=(select convert(varchar(20),max(ActDelDate),103) from pdn1 whith(nolock) where itemcode=oitm.itemcode)

from oitm with(nolock)

order by ItemCode

Muchas gracias nuevamente y saludos.

Former Member
0 Kudos

Felipe, estaba revisando la consulta, pero no encuentro como pegarle la ultima fecha de venta

select ItemCode ,ItemName, isnull((Select top 1 PDN1.DocEntry from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDN.DocEntry

                                   where ItemCode = OITM.ItemCode order by OPDN.TaxDate desc),'') as LatestGRPONo,

                         

                           isnull((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

                                   where ItemCode = OITm.ItemCode order by opdn.TaxDate desc),'')  as LatestPurchaseDate_Postingdate,

                                                                       

                           isnull((Select top 1 PDN1.Price from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDn.DocEntry where ItemCode = OITm.ItemCode

                           order by OPDN.TaxDate desc),0) as LastPurchasePrice,

                                                                                                                           

                           isnull((Select top 1 OPDN.DocEntry from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDN.DocEntry

                                   where PDN1.ItemCode = OITM.ItemCode and OPDN.TaxDate = ((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

                                   where ItemCode = OITm.ItemCode and OPDn.TaxDate < ((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

                                   where ItemCode = OITm.ItemCode order by opdn.TaxDate desc)) order by opdn.TaxDate desc))),'') as PreviousGRPONo,

                                                                         

isnull((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

where ItemCode = OITm.ItemCode and OPDn.TaxDate < ((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

where ItemCode = OITm.ItemCode order by opdn.TaxDate desc))

order by opdn.TaxDate desc),'') as PreviousPurchaseDate,

--    ISNULL((Select top 1 OINM.DocDate from OINM  inner join OITM on OINM.ItemCode = OITm.ItemCode

  --                          where OINM.TransType = 15 order by OINM.DocDate desc),'') as UltimaVenta,

isnull((Select top 1 PDN1.Price from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDN.DocEntry

where PDN1.ItemCode = OITM.ItemCode and  OPDN.TaxDate = (Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry 

where ItemCode = OITm.ItemCode and OPDn.TaxDate < ((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

where ItemCode = OITm.ItemCode order by opdn.TaxDate desc)) order by opdn.TaxDate desc)),0) as PreviousPurchasePrice,

isnull((Select top 1 PDN1.Price from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDn.DocEntry

where ItemCode = OITm.ItemCode order by OPDN.TaxDate desc) -  (Select top 1 PDN1.Price from PDN1 INNER JOIN OPDN ON PDN1.DocEntry = OPDN.DocEntry

where PDN1.ItemCode = OITM.ItemCode and  OPDN.TaxDate = (Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

where ItemCode = OITm.ItemCode and OPDn.TaxDate < ((Select top 1 opdn.TaxDate from PDN1 INner join OPDN ON PDN1.DocEntry = OPDN.DocEntry

where ItemCode = OITm.ItemCode order by opdn.TaxDate desc)) order by opdn.TaxDate desc)),0) as PriceDifference

from OITM

Answers (0)