Skip to Content
avatar image
Former Member

Query para saber que ordenes de compra pendientes de pagar

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

Sin título.png (31.7 kB)
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • avatar image
    Former Member
    Oct 19, 2015 at 04:00 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      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.