on 10-17-2015 1:34 AM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
98 | |
11 | |
10 | |
6 | |
5 | |
5 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.