on 05-20-2010 2:15 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola, solo una duda
inner join [dbo].[@BANCO_PROVEEDORES] B
Esta que tabla es? No entiendo
Gracias.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
oki !! muchas gracias por tu ayuda
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
este es el query: http://www.sendspace.com/file/sutw6o
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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???
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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,
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
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
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,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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,
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
que puedo hacer???
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
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.