cancel
Showing results for 
Search instead for 
Did you mean: 

consulta de pagos a proveedores

Former Member
0 Kudos

Hola

tengo la siguiente consulta:

SELECT distinct T0.DocDate'Fecha de Egreso',

T0.DocNum'N° de Egreso', T3.[LicTradNum]'Nit', T0.CardName'Nombre de Proveedor', T3.[DocNum]'N° Factura Compra',T3.[NumAtCard]'N°Fact Proveedor', (T3.[DocTotal])'V. Factura', T3.[VatSum]'Iva',T2.[Dcount], T2.[DcntSum]'Valor descuento', T4.[TrgetEntry],T2.[SumApplied]'Valor Pagado',

T0.DocTotal'Total de Egreso',

T1.Name'Nombre de Banco',

T0.U_Cuenta_Prov'Numero de Cuenta',

T0.U_Num_consig'Tipo de Transacción' FROM OVPM T0 INNER JOIN .[@BANCO_PROVEEDORES] T1 ON T0.U_Banco_Prov = T1.Code INNER JOIN VPM2 T2 ON T0.DocEntry = T2.DocNum INNER JOIN OPCH T3 ON T2.DocEntry = T3.DocEntry INNER JOIN PCH1 T4 ON T3.DocEntry = T4.DocEntry and T0.[Canceled]!='Y' order by T0.DocDate

la cual arroja pagos que se le han realizado a proveedore o acreedores pero necesito que el informe me muestre devoluciones si la tiene y el valor de esa devolucion

el campo T4.[TrgetEntry] me dice el numero de la devolucion relacionada a esa factura de proveedores, pero no puedo traer el valor porque eso esta en ORPC, además se me esta duplicando el valor de la factura donde encuentra el campo campo T4.[TrgetEntry] devolucion

Edited by: jcarito on Nov 6, 2010 11:18 AM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Buenas

Bueno hice la prueba con lo que me comentas y da lo mismo porque le estamos descontando el valor del iva, y en algunos pagos efectuados lo toma y en otros no, y al verificar la factura y devolucion tienen las mismas caqracteristicas los dos tienen iva, te envio un link del problema que se presenta con la consulta que llevo

http://www.sendspace.com/file/m5m14m

y este otro con la modificacion que me sugieres

http://www.sendspace.com/file/44l0vl

te daras cuenta que es lo mismo

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes

Gracias a tu imagen, encontre la diferencia entre los campos

Se aprecia claramente en el Egreso Nº4869

El total antes descuento es la diferencia entre los Totales de los documentos (Total Factura - Total Nota de credito) asi mismo el neto antes del descuento es la diferencia entre los Netos (Neto Factura - Neto Nota de Credito).

Ahora el Egreso Nº4925 me parece extraño, si fuese de la misma manera que el 4869 tendria la solucion pero deben tener algo diferentes las facturas, ademas el dcto se lo aplica al total neto de la factura.

Necesito que tires toda la tabla OPCH y PCH1 solo con estas 2 facturas, y veas si tienen algun campo diferente y cual es.

ya que en neto de la factura 3387 es igual al total y deberia ser por 2,852,416.39 siguiendo la logica.

O la otra posibilidad seria cambiar el calculo del dcto por la siguiente, esto si no se encuentra

((T6.BfNetDcnt*T6.Dcount)/100) 'Descuento'

Prueba con esta -

-


Saludos

FLR

Edited by: Floyola on Dec 3, 2010 4:37 PM

Answers (20)

Answers (20)

Former Member
0 Kudos

es cierto, cree esta tabla de usuario de banco de proveedores: codigo de banco y nombre de banco; ademas en el pago efectuado los campos de usuario llamados cuenta de proveedor y numero de consignacion; con el fin de que cuando este egreso se lleve a cabo quede registro tambien del numero de consignacion y en que banco se le consigno al proveedor para hacer mas completo el informe.

saludos!!

Former Member
0 Kudos

Hola, solo una duda

inner join [dbo].[@BANCO_PROVEEDORES] B

Esta que tabla es? No entiendo

Gracias.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Es una tabla de usuario, no es nativa de SAP

cada usuario puede crear tablas de datos en la base que son llamadas Tablas de usuario, asi como los campos de usuarios.

Por algo se dice que SAP es un sistema que se adapta a las necesidades del negocio

Estas tablas son propioas de cada empresa, por lo que para que te fucione a ti, debes eliminarla de la query, ademas de eliminar todos los campos de usuario, estos empiezan con U_XXXX

Utiliza esta Query

[http://www.sendspace.com/file/5pj8e8l]

Saludos

Atte.

FLR

Edited by: Floyola on Dec 9, 2010 7:47 PM

Former Member
0 Kudos

oki !! muchas gracias por tu ayuda

Former Member
0 Kudos

Bueno creo que con este query concluimos jajajaj http://www.sendspace.com/file/b99pi3, modifique el campo de donde tomaba la fecha para no tener inconvenientes, mañana se estara aplicando para corroborar su funcionamiento. muchas gracias por todo

felipe_loyolarodriguez
Active Contributor
0 Kudos

Jejeje

tambien habia modificado el T0.Refdate por T7.Refdate, pero como estaba un poquito ocupado no lo pude postear

Bueno cualquier cosa lo seguimos viendo

saludos

Atte.

FLR

Former Member
0 Kudos
Former Member
0 Kudos

Buenas tardes

mira lo que pasa en el informe es lo siguiente: por ejemplo en el rango de fechas voy a buscar el dia 26 de nov y no lo encuentro asi que si le digito de la fecha 26 de nov a 26 de nov no me trae datos y si le pongo el rango desde el 23 de nov al 27 de nov(solo me aparecen estos rangos cercanos), entonces me muestra solo algunos datos pero si le doy el mes completo si aparecen todos los que deberia mostrar, cabe recordarte que ya hice la prueba con lo que me dijiste de las devoluciones pero al parecer es otra cosa. La fecha para los filtros debe ser la del egreso y no la de las facturas(OPCH) por eso no me salen

En cuanto a lo otro que te comentaba el problema no era principalmente con la tabla de usuario de banco porque rectifique algunos pagos efectuados asignandoles el nombre de banco como efectivo para los que no tenian que asociarles para que no quedara en blanco, el problema era en el primer query, debia quitarsele la relacion con la devolucion ya que no habia necesidad y esto hacia que no saliera algunos registros

Edited by: jcarito on Dec 9, 2010 3:38 PM

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas,

Puedes dejarme la consulta, tal cual la llevas hecha, y en base a lo que comentaste hare la modificacion correspondiente a ver si me sale

saludos

FLR

Former Member
0 Kudos

Buenos Dias,

Lo mejor fue cambiar el calculo del descuento por:((T6.BfNetDcnt*T6.Dcount)/100) 'Descuento'

Ahora el problema que se presenta es que al tomar el rango de fechas, se debe seleccionar todas las fechas para que salgan todos los egresos, ya que si tiene alguna devolucion en otra fecha fuera del rango no se vera reflejado en el informe,ademas por mas de que se seleccione todas las fechas se debe tener en cuenta la fecha que me muestra de diciembre del 2009(saldos iniciales) porque sino no me muestra diciembre del presente año.

Ahora no se porque motivo algunos egresos no me salen en el informe, en el enlace con la tabla que tengo: inner join .[@BANCO_PROVEEDORES] B ON T7.U_Banco_Prov = B.Code, me di cuenta que no estaban seleccionando este campo y por eso en el filtro no entraban estos egresos al informe pero otras si tienen todos los campos llenos y no salen.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes

mmmm

Lo que entiendo, es que en el informe quieres que aparezcan los egresos desde un rango de fechas especifico, y tambien las devoluciones sin importa la fecha de esta, que puede ser mayor al rango de fechas que le diste al informe.

Para ello se me ocurre eliminar la variable de fechas en las devoluciones y solo dejar el de las facturas, algo como esto:

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

T0.VatSum 'Iva',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND T0.CEECFlag = 'Y') 'Total NC',

Pero solo aplicarselo a las Devoluciones asociadas a facturas, osea solo en la primera UNION.

En la tabla [[dbo]].@BANCO_PROVEEDORES supongo que contiene un codigo de banco y el nombre, revisa que esten actualizados los codigos, quizas hay bancos que no tienes agregados en ella.

Saludos

Atte.

FLR

Former Member
0 Kudos

Hola ,

Ps lamentablemente si me afecta el informe, ya que el valor que se tiene en cuenta para calcular el descuento es el total neto antes del descuento, y si este valor tiene en cuenta a veces el iva y a veces no entonces no voy a poder ajustarlo, sera que hay algo que se este haciendo mal??? alguna parametrizacion del proveedor???

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas

Realmente nose mucho al respecto de ese campo, no creo que haya nada parametrizado mal, porque a ambos nos aparecen los resultados de la misma manera.

Encontre en el campo VPM2,vatApplied el monto del impuesto de la factura pagada, por lo tanto para calcular el Neto antes del dcto se deberia aplicar (BfDcntSum - vatApplied) 'Importe neto antes del Dcto'. ahora si quieres aplicarle una formula a este campo, se deberia hacer asi ((BfDcntSum - vatApplied)"operaciones") 'nombre'.

Espero ayude

Saludos

Former Member
0 Kudos

Hola, te doy las gracias infinitassss por tu ayuda, hasta ahora no he tenido inconvenientes y gracias a tu consulta, agregue otras cosas y quedo solucionado, bueno a exepcion que he tenido problemas con el rango de fechas, ya que por obvias razones, como las devoluciones pueden hacerse meses despues al hacer la consulta en un rango determinado puede que me este suprimiendo lineas del pago efectuado donde tenga devoluciones.

Una duda más el pago efectuado tiene las siguientes columnas que quisiera aclarar que valor me trae:

1- Total antes del descuento: T0.[BfDcntSum] de la tabla VPM2

2- Total neto antes del descuento: T0.[BfNetDcnt] de la tabla VPM2

1-El total antes del descuento como su nombre lo indica es el valor de la factura antes del descuento aplicado pero el descuento nosotros no lo estamos definiendo como tal sino se creo como un articulo que se añade en el detalle de la factura, entonces deberia ver solo el total de la factura de compra ademas no se si es coincidencia pero si la factura de compra tiene aplicada una nota a credito entonces aqui me muestra el valor de la factura de compra menos la devolucion.

2-Total neto antes del descuento: deduje que era total antes del descuento menos el iva de la factura de compra mas el iva de la devolucion aplicada a la factura

No se si estoy en lo correcto, porque encontre un caso donde la factura tambien tenia una devolucion aplicada pero al calcular el total neto antes del descuento veo que no tienen en cuenta el iva a pesar de que en los documentos si llevan este valor.

esto solo sucede con los que llevan iva porque con los demas no hay problema

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola denuevo,

Estuve revisando los campos que me pusiste del VPM2, y resulta que en mi consulta tampoco aparece diferencia entre el Total antes del dcto y Total neto antes del dcto, es raro, como su nombre lo dice es total NETO por lo que se asume es que el valor de la factura menos el IVA, mas alla no sabria decirte.

Pero esto afecta en algo la query que quieres hacer?

Atte.

Felipe Loyola

Former Member
0 Kudos

hola

1.- Bueno para la primera parte, segui tu consejo y trabaje encima de tu query, ya no me genero problemas, pero lo que si tuve en cuenta es colocar todos los nombres de las tablas con [dbo].[xxx] , ya que estoy trabajando con una tabla de usuario

2.- Encuanto al descuento asi la habia incluido en el query: ((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [%0] AND [%1])*T6.Dcount)/100 'Descuento'., tal como me dices pero como hay otro query anidado como coloca en la segunda 0'descuento', si es asi, ya lo habia hecho y no me funciono, me distorsiono todo.

3.me falta revisar las notas credito, porque me dejaste confundida con este query que me dejaste

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola

Bueno aqui Esta la query con los los campos que estabas usando mas el calculo del valor del descuento calculado, ahi un problema eso si, aca no usamos el campo Dcount, asi que nose si el calculo del descuento habra quedado bien hecho, asi que me gustaria que la probaras y me cuentes que tal quedo

Como calcule el dcto : se toma el mismo calculo del total factura y se le aplica la operacion que tu querias hacer (total Factura*T6.Dcount)/100.

La mejor manera de hacer estas querys es hacer cada union por separado teniendo ojo en que los campos sean iguales, luego se unen y listo. Es mejor asi por que cada una es diferente en algo, y es mas dificil hacerla en conjunto, siempre salta algun error y para revisar despues ufff.

Bueno yo lo hago de esa forma, espero te sirva de algo

saludos

FLR

SELECT DISTINCT

T7.DocDate,

T7.DocNum,

T0.LicTradNum,

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

T0.VatSum 'Iva',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y') 'Total NC',

T6.Dcount,

(((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]])-(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y'))*T6.Dcount)/100 'Descuento',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

UNION

SELECT DISTINCT

T7.DocDate,

T7.DocNum,

T0.LicTradNum,

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total Factura',

T0.VatSum 'Iva',

0 'Total NC',

T6.Dcount,

((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N')*T6.Dcount)/100 'Descuento',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

UNION

SELECT DISTINCT

T7.DocDate,

T7.DocNum,

T3.LicTradNum,

T3.DocNum,

ISNULL((T3.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

0 'Total Factura',

0 'Iva',

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM ORPC T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T3.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total NC',

T6.Dcount,

((SELECT DISTINCT(T.DocTOTAL) FROM ORPC T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T3.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N')*T6.Dcount)/100 'Descuento',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T3.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM ORPC T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T3.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '19'

PD: si aparecen valores duplicados o extraños, elimina desde la ultima UNION Hacia Abajo.

Edited by: Floyola on Nov 23, 2010 9:51 PM

Former Member
0 Kudos

eres muy bueno para esto, muchas gracias por tu ayuda, la consulta quedo bien....la llevo asi:

SELECT DISTINCT

T7.DocDate,T7.DocNum,T0.[LicTradNum],T2.CardName,T0.DocNum,ISNULL((T0.NumAtCard),0)'Folio Factura',

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum ) 'Total Factura', T0.[VatSum]'Iva',T6.[Dcount],

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND T0.CEECFlag = 'Y' ) 'Total NC',

T6.SumApplied 'Pagado', B.Name'Nombre de Banco',T7.U_Cuenta_Prov'Numero de Cuenta', T7.U_Num_consig'Tipo de Transacción'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum inner join .[@BANCO_PROVEEDORES] B ON T7.U_Banco_Prov = B.Code AND T0.NumAtCard != '0' AND T7.Canceled = 'N' AND T6.InvType = '18'

UNION

SELECT DISTINCT

T7.DocDate,T7.DocNum,T0.[LicTradNum],T2.CardName,T0.DocNum,ISNULL((T0.NumAtCard),0)'Folio Factura',

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T0.CEECFlag = 'N'),0)) 'Total Factura',T0.[VatSum]'Iva',T6.[Dcount],0 'Total NC',T6.SumApplied 'Pagado',B.Name'Nombre de Banco',T7.U_Cuenta_Prov'Numero de Cuenta', T7.U_Num_consig'Tipo de Transacción'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum inner join .[@BANCO_PROVEEDORES] B ON T7.U_Banco_Prov = B.Code AND T0.NumAtCard != '0' AND (SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T0.CEECFlag = 'N') != '0' AND T7.Canceled = 'N' AND T6.InvType = '18'

pero tengo mas problemas:

- al meterle rango de fehas me sale un error.

-debo mostrar el valor del descuento : (valor de la factura de compra* T6.[Dcount])/100, pero como el total de factura es calculado genera problemas.

- el problema mas grave, algunas notas credito se hacen manuales ya sea de articulo o de servicios, estan se cruzan con el valor de algun egreso, osea el pago efectuado N° 452 por ejemplo Contiene: 2 facturas de compra y una nota credito. y en el informe no estan saliendo estas notas como una de las lineas del pago efectuado solo se ven las facturas.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas tardes

Jcarito, tratare de responder tus preguntas 1 por una

1.- Trata de no borrar los campos de fecha que use en la query , te sugiero que la termines sobre la que hice, despues la guardes en un txt y la modificas.

2.- Para calcular el dscto debes hacer la siguiente formula

((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum )T6.Dcount)/100 'Descuento', esto en base a la sentencia en tu query, aunque te sugiero que lo hagas como lo puse mas arriba. que querdaria asi ((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]])T6.Dcount)/100 'Descuento'.

3.- Ya me habia anticipado a eso y habia hecho ambas querys, pero como tu solo pedias facturas no te puse la otra jeje, aqui te la dejo

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y' ) 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

UNION

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total Factura',

0 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

UNION

SELECT DISTINCT

T3.DocNum,

ISNULL((T3.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

0 'Total Factura',

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM ORPC T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T3.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T3.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM ORPC T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T3.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '19'

Saludos

Atte

FLR

Former Member
0 Kudos

tienes razón, el valor del aultima columna correspondiente al campo pagado es distinto pero la verdad no se este valor de donde sale porque el valor de la nota a credito si corresponde a $ 121,576.00 y el valor de pagado si es la segunda linea que es por $ 10.382,520.00 ; pero el valor de $ 137,844.00, no se de donde sale

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola

Podrias decirme como se llama el campo, para revisarlo aqui y ver si puedo hacer otro JOIN para que no aparezca la duplicidad.

saludos

FLR

Former Member
0 Kudos

Hola...

Revisa de qué campo o fórmula estás obteniendo la ultima columna. Si ese dato no te es útil, entonces no lo consideres en el query. Probablemente al eliminarlo el query aparecerá como lo requieres.

Si el dato es necesario, entonces asumo que lo inmediato es que analices de donde obtiene el valor para efectos de determinar si el query puede filtrarse o necesariamente quedará con lineas duplicadas

Saludos Cordiales,

felipe_loyolarodriguez
Active Contributor
0 Kudos

Bueno, ya obtuve el campo que esta gererando el problema, este biene del VMP2 ya que el "docentry" en el VPM2 hace referencia al DocNum de lo que se esta pagando, en este caso OPCH y ORPC

cuando una NC no esta aplicada a una facura, y la incluyen dentro del pago rebajando el monto a pagar, sucede lo que paso en el pantallazo que muestras, y como el JOIN que esta hecho aqui "INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry" T0 es OPCH, por eso aparece el monto de la factura duplicado, sin embargo deberia aparecer el monto de la NC.

vere que puedo hacer.

saludos

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola denuevo jeje

Modifique la query, varifique los datos que me arrojo, y creo que solucione el tema de la duplicidad de algunos documentos

Esta query te arroja la factura, la NC Asociada a ella, y el pago correspondiente, pero tambien arroja las facturas que no tienen NC y sus correspondientes pagos.

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y' ) 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

UNION

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total Factura',

0 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

INNER JOIN OVPM T7 ON T7.DocNum = T6.DocNum

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

AND

T7.Canceled = 'N'

AND

T6.InvType = '18'

Saludos y ojala esta haya quedado ok

Atte.

Felipe Loyola

Former Member
0 Kudos

Muchas gracias por tu ayuda, pero se me sigue repitiendo cuando encuentra alguna nota credito pero no es siempre

anexo pantallazo http://www.sendspace.com/file/fq8vea, la verdad que ya me estoy dando por vencida jajaj

en este caso aparecen 3 notas credito pero solo una se repite,pero no encuentro la razon: el estado del documento es cerrado el de la nota credito tambien, el valor de la nota a credito es parcial,

las otras que no se repiten tiene las mismas caracteristicas: el estado del documento es cerrado el de la nota credito tambien, el valor de la nota a credito es parcial,

Former Member
0 Kudos

Hola...

En la imagen que subiste, se aprecia que hay una última columna que es diferente para ambas notas de crédito. Resulta lógico pensar que está repitiendo las lineas porque debe mostrar ambos valores. Si el valor fuese igual probablemente con un DISTINCT solo te mostraría una línea, pero como hay un valor distinto en ambas, te muestra el registro de cada una.

Saludos Cordiales,

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola denuevo, bueno lo que he aprendido haciendo esta query, es que es importante unir la mayor cantidad de campos entre la factura (OPCH, PCH1) y la NC (ORPC, RPC1) para que los datos sean lo mas exacto posible,sino ocurre lo que ya vimos en las anteriores, que se repiten valores que no son.

Volvere a revisar la query y te cuento, pero por lo que veo en tu imagen, lo mas probable es que haya un valor que la factura tiene distinto a la NC, y como tiene un SELECT DISTINCT, trae ambos valores.

Saludos.

Former Member
0 Kudos

Gracias por tu tiempo y colaboracion; en esta ultima consulta no me sirve porque debo mostrar los pagos efectuados pero bueno eso lo anexaria pero el inconveniente es que me sigue duplicando hasta triplicando valores y existen otros valores de notas credito que no se a que corresponden

esto es algunos de los valores que me muestra:

1. Número de documento Folio Factura Código SN Nombre de socio de negocios Total Factura Total NC

79 3453 C2 120309 PIN860002536 COMPAÑIA COLOMBIANA DE CERAMIC 960,991.00 0

82 3453 C2 120309 PIN860002536 COMPAÑIA COLOMBIANA DE CERAMIC 960,991.00 839,228.00

81 3453 C2 120309 PIN860002536 COMPAÑIA COLOMBIANA DE CERAMIC 960,991.00 7,789.00

80 3453 C2 120309 PIN860002536 COMPAÑIA COLOMBIANA DE CERAMIC 960,991.00 2,272.00

y revisando la factura proveedor es por el valor de 960,991.00 y la nota credito es por $ 2,957.00 ni siquiera corresponde a ninguno de los q sale

felipe_loyolarodriguez
Active Contributor
0 Kudos

mmmmm,

bueno en base a lo que me mostraste, volvi a cabecearme para poder unir la NC con la Factura, el problema es...que solo me muestra las Facturas que tienen NC,

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y' ) 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

Lo otro que se me ocurre es hacer una UNION con otra query y en ella solo mostrar las Facturas que no tienen asociada una NC.

ahi te dejo un pantallaso de la como me la muestra

<a href="http://www.sendspace.com/file/l2ccvw">http://www.sendspace.com/file/l2ccvw</a>

Bueno espero tus comentarios, que tambien me interesa resolver este tema.

Slds

FLR

Edited by: Floyola on Nov 11, 2010 3:24 PM

felipe_loyolarodriguez
Active Contributor
0 Kudos

Bueno, siguiendo con las ideas

aqui te dejo otra con el union ya hecho

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T4.TrgetEntry = T3.DocNum AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

(SELECT DISTINCT(Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T5.DocEntry AND T5.baseRef = T0.DocNum AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y' ) 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.TrgetEntry = T3.DocNum

INNER JOIN RPC1 T5 ON T5.BaseRef = T0.DocNum

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

UNION

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(ISNULL((SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N'),0)) 'Total Factura',

0 'Total NC',

T6.SumApplied 'Pagado'

FROM OPCH T0

INNER JOIN ORPC T3 ON T0.CardCode = T3.CardCode

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN VPM2 T6 ON T6.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.NumAtCard != '0'

AND

(SELECT DISTINCT(T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'N') != '0'

Saludos

FLR

Former Member
0 Kudos

y el otro problema es que en esta consulta final no me deja poner filtros para seleccionar un rango de fechas me sale un mensaje de "valores definidos por el usuario" o no me trae datos

Edited by: jcarito on Nov 8, 2010 5:01 PM

felipe_loyolarodriguez
Active Contributor
0 Kudos

Ami me trajo datos, con el rango de fecha en el OPCH

SELECT DISTINCT

T0.DocDate'Fecha de Egreso',

T0.DocNum'N° de Egreso',

T3.LicTradNum'Nit',

T0.CardName'Nombre de Proveedor',

T3.DocNum'N° Factura Compra',

T3.NumAtCard'N°Fact Proveedor',

T3.DocTotal'V. Factura',

T3.VatSum'Iva',

T2.Dcount,

T2.DcntSum'Valor descuento',

T4.TrgetEntry'N° de Dev',

T2.SumApplied'Valor Pagado',

T5.DocNum 'Devolucion',

T5.DocTotal'Valor Dev',

T0.DocTotal'Total de Egreso'

FROM OVPM T0

INNER JOIN VPM2 T2 ON T0.DocEntry = T2.DocNum

INNER JOIN OPCH T3 ON T2.DocEntry = T3.DocEntry

INNER JOIN PCH1 T4 ON T3.DocEntry = T4.DocEntry and T0.Canceled!='Y'

LEFT JOIN ORPC T5 ON T5.DocEntry = T4.TrgetEntry

WHERE T3.DocDate BETWEEN [[%0]] AND [[%1]]

ORDER BY T0.DocDate

Ojo que elimine tu tabla de usuario.

Revisalo de esa forma

Atte.

FLR

Edited by: Floyola on Nov 9, 2010 5:07 PM

Edited by: Floyola on Nov 9, 2010 7:01 PM

Former Member
0 Kudos

Cuando la devolucion es por el valor total de la factura de acreedor no aparece en el informe, si es el valor parcial se repite pero siempre y cuando la factura se haya cancelado en su totalidad porque si todavia tiene un saldo pendiente y en estado abierto tampoco sale en el informe

felipe_loyolarodriguez
Active Contributor
0 Kudos

Entonces significa que hay alguna union entre tablas que esta mal en alguna parte de la query.

Tratare de hacer algo parecido para poder obtener las devoluciones.

Atte.

FLR

Edited by: Floyola on Nov 8, 2010 9:58 PM

felipe_loyolarodriguez
Active Contributor
0 Kudos

Jcarito,

genere una query para que traiga la devolucion por factura y no sucedan los problemas de repeticion o que no arroje datos

SELECT DISTINCT

T0.DocNum,

ISNULL((T0.NumAtCard),0)'Folio Factura',

T2.CardCode,

T2.CardName,

(SELECT (T.DocTOTAL) FROM OPCH T WHERE T.CardCode = T2.CardCode AND T.DocEntry = T0.DocEntry AND T.DocDate BETWEEN [[%0]] AND [[%1]]) 'Total Factura',

(SELECT (Y.DocTOTAL) FROM ORPC Y WHERE Y.CardCode = T2.CardCode AND Y.DocEntry = T3.DocEntry AND Y.DocDate BETWEEN [[%0]] AND [[%1]] AND T0.CEECFlag = 'Y' ) 'Total NC'

FROM OPCH T0

LEFT OUTER JOIN ORPC T3 on T0.DocDate=T3.DocDate

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN PCH1 T4 ON T4.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN [[%0]] AND [[%1]]

AND

T0.DocEntry NOT IN (Select BaseEntry FROM RIN1 WHERE BaseType != -1)

AND

T0.DocEntry NOT IN (Select BaseEntry FROM ORPC WHERE BaseType != -1)

AND

T0.NumAtCard != '0'

Esta devuelve el Total de la NC que fue copiada desde la factura

Prubala y me cuentas.

Saludos

Edited by: Floyola on Nov 9, 2010 7:02 PM

Former Member
0 Kudos

que puedo hacer???

felipe_loyolarodriguez
Active Contributor
0 Kudos

mmm

y si haces una sub query, bajando la devolucion de la factura y uniendo por medio del documento base...

algo como

(Select T.DocTotal FROM ORPC INNER JOIN T.DocEntry = T3.DocEntry WHERE T.DocEntry NOT IN (Select BaseEntry FROM PCH1 WHERE BaseType != -1))

Nose si estara bien, pero la idea es bajar el valor de la NC asociada a la factura, ojo que esto es para las NC que se copiaron desde la factura como documento base.

Saludos.

FLR

Former Member
0 Kudos

El problema se produce cuando tienes algunas lineas con NC y otras NO.

pues como el enlace es a nivel de linea, en estos casos siempre te traerá al menos 2 lineas.

felipe_loyolarodriguez
Active Contributor
0 Kudos

mmmm,

entonces lo unico que se me ocurre es hacer un CASE en ese campo. para que traiga la devolucion por linea o por total de documento segun sea el caso.

es lo unico que se me ocurre...

Former Member
0 Kudos

llevo la consulta asi:

SELECT distinct

T0.DocDate'Fecha de Egreso',

T0.DocNum'N° de Egreso',

T3.[LicTradNum]'Nit',

T0.CardName'Nombre de Proveedor',

T3.[DocNum]'N° Factura Compra',

T3.[NumAtCard]'N°Fact Proveedor',

T3.[DocTotal]'V. Factura',

T3.[VatSum]'Iva',

T2.[Dcount],

T2.[DcntSum]'Valor descuento',

T4.[TrgetEntry]'N° de Dev',

T2.[SumApplied]'Valor Pagado',

T5.DocNum 'Devolucion',

T5.[DocTotal]'Valor Dev',

T0.DocTotal'Total de Egreso',

T1.Name'Nombre de Banco',

T0.U_Cuenta_Prov'Numero de Cuenta',

T0.U_Num_consig'Tipo de Transacción'

FROM OVPM T0 INNER JOIN .[@BANCO_PROVEEDORES] T1 ON T0.U_Banco_Prov = T1.Code INNER JOIN VPM2 T2 ON T0.DocEntry = T2.DocNum INNER JOIN OPCH T3 ON T2.DocEntry = T3.DocEntry INNER JOIN PCH1 T4 ON T3.DocEntry = T4.DocEntry and T0.[Canceled]!='Y' LEFT JOIN ORPC T5 ON T5.DocEntry = T4.TrgetEntry order by T0.DocDate

me muestra asi: quite algunas filas para mostrar lo que quiero decir

N° Fact Compra V. Factura Val descto Valor Pagado Devolucion V.devol Total de Egreso

3325 143,520.00 5,575.00 133,805.00 0 14,307,104.00

3325 143,520.00 5,575.00 133,805.00 440 4,140.00 14,307,104.00

Former Member
0 Kudos

en el ejemplo esta claramente expresado lo que te dije.

La NC es parcial sobre la factura, pues no es por el mismo valor de la factura.

prueba a realizar la misma consulta 2 veces, una mostrando sólo las facturas que no tengan ninguna devolución y en la otra sólo aquellas que tengan devolución.

slds.

Former Member
0 Kudos

Hola Paul,

Revise tu consulta y me sigue duplicando la linea donde encuentra devolucion???. otra duda..porque no hace la relacion automaticamente entre la factura del acreedor (OPCH)y la nota credito (ORPC) por mas que utiliza las del detalle, teniendo que construir el enlace

Former Member
0 Kudos

Jcarito,

si te esta duplicando el valor de la factura cuando tienen nota de credito es porque esa factura puede estar con nota de crédito parcial.

es decir, que una o alguna de las lineas y no todas tengan NC, lo mismo te pasaria si para esa factura tuvieses 2 o más NC, para una o mas lineas.

slds.

Former Member
0 Kudos

Hola...

Como no tengo esa tabla y esos campos de usuario, los omití (tú los agregas).

Prueba así y me comentas...

SELECT distinct T0.DocDate'Fecha de Egreso',

T0.DocNum'N° de Egreso', T3.LicTradNum'Nit', T0.CardName'Nombre de Proveedor', T3.DocNum'N° Factura Compra',T3.NumAtCard'N°Fact Proveedor', (T3.DocTotal)'V. Factura', T3.VatSum'Iva',T2.Dcount, T2.DcntSum'Valor descuento', T4.TrgetEntry,T2.SumApplied'Valor Pagado',

T5.DocNum 'Devolucion',

T0.DocTotal'Total de Egreso'

FROM OVPM T0 INNER JOIN VPM2 T2 ON T0.DocEntry = T2.DocNum INNER JOIN OPCH T3 ON T2.DocEntry = T3.DocEntry INNER JOIN PCH1 T4 ON T3.DocEntry = T4.DocEntry and T0.Canceled!='Y' LEFT JOIN ORPC T5 ON T5.DocEntry = T4.TrgetEntry order by T0.DocDate

Espero te sea de ayuda

Saludos Cordiales,