cancel
Showing results for 
Search instead for 
Did you mean: 

Query para saber que ordenes de compra pendientes de pagar

Former Member
0 Kudos

Hola a todos! me están pidiendo en mi departamento una consulta donde se muestren las ordenes de compra que están pendientes de pagar y las que ya se pagaron. Tengo esta consulta para ver las ordenes de compra

SELECT    DocEntry, DocNum, CANCELED, DocStatus, DocDate, CardCode, CardName, DocTotal, Project as'Proyecto', Comments, TrnspCode AS 'Tipo de Compra', UserSign2 AS 'Comprador', Address

FROM         OPOR

ORDER BY DocNum

Comúnmente cuando una cuenta esta pagada aparece cierta relación en la tabla OVPM que es la de los pagos efectuados, entonces si aparecen ahí comúnmente ya están pagadas pero a veces solo se hacen la mitad o un porcentaje de los pagos. Mi idea es hacer un join entre las tablas OPOR, OVPM y ODPO (que es una de Solicitud de anticipo de proveedor) y/o una condición que me pueda indicar si se pagaron o no.

Alguna idea que tengan o alguna consulta similar que hayan utilizado?

Gracias!

p.d. Les dejo el mapa de relación de las tablas mencionadas

Accepted Solutions (0)

Answers (1)

Answers (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

En ese caso, mejor no consultas las solicitudes de anticipo que están pendientes de pago y despues filtras cuales vienen desde una OC?

Atte.

Former Member
0 Kudos

Hola Felipe, vengo contestando mas de un mes después. El problema con lo que me dices es que no siempre son pagadas de la misma manera, a veces se hace la orden de compra y directamente el pago o la orden y luego la solicitud o la orden y luego factura y luego pagan. Incluso hay veces que se realiza la factura y se paga mucho tiempo después.

La siguiente consulta que tengo, muestra algunas pero solo las que la orden de compra ya esta cerrada, y no me esta mostrando unas que ya tienen relación directa con la tabla OVPM y se repiten algunas.


select distinct t1.DocNum  [Orden de compra], t1.CardName,t1.DocDate,Status=

CASE

when t1.DocTotal>t0.TrsfrSum then 'Pagada parcial'

end

from OVPM t0 inner  join OPOR t1 on 1=1   

   where t1.CANCELED='N' and t1.docstatus ='C'

   and t1.DocTotal>t0.TrsfrSum and t0.DocDate>t1.DocDate

union

select distinct t1.DocNum [Orden de compra], t1.CardName,t1.DocDate,Status=

CASE

when t1.DocTotal=t0.TrsfrSum then 'Pagada'

end

from OVPM t0 inner join OPOR t1 on t0.TrsfrSum=t1.DocTotal

   where t1.CANCELED='N' and t1.docstatus ='C'

   and t0.TrsfrSum=t1.DocTotal and t0.DocDate>t1.DocDate 

  order by 1 desc

La verdad esta un poco sucia y hay que pulirla pero lo que necesito antes de todo es que funcione bien. No se si puedas ver o agregar un detalle o alguna observacion que tengas. La verdad estoy un poco atorado.

En pocas palabras, yo solo quiero ver si estan pagadas. Ya sea por solicitud o factura o pago directo, no importa realmente pero que diga si estan pagadas o no.

Si puedes ayudarme con eso te lo agradecería muchisimo!!

Saludos.