on 2015 Jun 15 5:06 PM
Buen día Estimados expertos en SAP.
Tengo un pequeño detalle con un query para evaluar la venta de mis productos.
Necesito saber los productos que he vendido con sus cantidades y costos totales de la venta, separando o seleccionando solamente de algunas propiedades de los articulos, hasta aquí me da todo lo que necesito el informe de análisis de ventas que tiene Nativo el SAP BO que manejo, el problema se me presenta cuando requiero que el reporte me indique que productos han sido efectivamente cobrados hasta ese momento.
Tengo un query en el cual me indica la recuperación por factura, sin embargo no me dice que productos contienen los documentos.
Alguien me puede decir como se puede realizar este reporte?
Request clarification before answering.
Hola Juan Manuel.
Porqué no nos muestras tu query y así tal vez sea mucho más rápido adecuarlo a lo que necesitas.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
el reporte con el que saco el dato de las facturas pagadas es el siguiente.
Select T3.SlpName, T0.CardCode, T0.CardName, T0.DocNum As 'Pago', T2.DocNum As 'Factura', T2.DocTotal, T2.DocDate As 'Fecha factura', T0.DocDate As 'Fecha pago',
Cast(T0.DocDate - T2.DocDate As Int) As 'Días transcurridos',
ROUND(ISNULL(R1.Aplicado,0) / R0.Aplicado * 100,0) As '% Descuento', (ISNULL(R1.Aplicado,0) / R0.Aplicado) * T1.SumApplied As 'Descuento',
(ISNULL(R2.Aplicado,0) / R0.Aplicado) * T1.SumApplied As 'Devolución', T1.SumApplied - ((ISNULL(R2.Aplicado,0) / R0.Aplicado) * T1.SumApplied) - (ISNULL(R1.Aplicado,0) / R0.Aplicado) * T1.SumApplied As 'Pagado',
Case T4.Commission When 0 Then 3 Else T4.Commission End As '% Comisión',
Case T4.Commission When 0 Then 3 Else T4.Commission End / 100 * (T1.SumApplied - ((ISNULL(R2.Aplicado,0) / R0.Aplicado) * T1.SumApplied) - (ISNULL(R1.Aplicado,0) / R0.Aplicado) * T1.SumApplied) As 'Monto de comisión'
From ORCT T0
Inner Join RCT2 T1 On T0.DocEntry = T1.DocNum
Left Join OINV T2 On T1.DocEntry = T2.DocEntry And T1.InvType = 13
Left Join OSLP T3 On T2.SlpCode = T3.SlpCode
Left Join (Select T0.DocNum, SUM(T2.DocTotal) 'Total', SUM(T1.SumApplied) 'Aplicado'
From ORCT T0
Inner Join RCT2 T1 On T0.DocEntry = T1.DocNum
Left Join OINV T2 On T1.DocEntry = T2.DocEntry And T1.InvType = 13
Where T0.DocDate Between [%0] And [%1] And T1.InvType = 13
Group By T0.DocNum) R0 On T0.DocNum = R0.DocNum
Left Join (Select T0.DocNum, SUM(T2.DocTotal) 'Total', SUM(T1.SumApplied) 'Aplicado'
From ORCT T0
Inner Join RCT2 T1 On T0.DocEntry = T1.DocNum
Left Join ORIN T2 On T1.DocEntry = T2.DocEntry And T1.InvType = 14
Where T0.DocDate Between [%0] And [%1] And T1.InvType = 14 And T2.U_Motivo = 4
Group By T0.DocNum) R1 On T0.DocNum = R1.DocNum
Left Join (Select T0.DocNum, SUM(T2.DocTotal) 'Total', SUM(T1.SumApplied) 'Aplicado'
From ORCT T0
Inner Join RCT2 T1 On T0.DocEntry = T1.DocNum
Left Join ORIN T2 On T1.DocEntry = T2.DocEntry And T1.InvType = 14
Where T0.DocDate Between [%0] And [%1] And T1.InvType = 14 And (T2.U_Motivo <> 4 Or T2.U_Motivo Is Null)
Group By T0.DocNum) R2 On T0.DocNum = R2.DocNum
Inner Join OCRD T4 On T0.CardCode = T4.CardCode
Where T0.DocDate Between [%0] And [%1] And T1.InvType = 13
Sin emabrgo lo que necesito es algo mas bien parecido a lo de la siguiente screenshot. y que al final de la columna me aparezca cuando esta pendiente de pago..
Se me ocurre algo más simple como esto:
SELECT T0.DocEntry, T0.DocNum, T0.DocTotal, T0.PaidToDate, T1.ItemCode, T1.Dscription, T1.Quantity, T1.Price, T1.GrssProfit, T1.LineTotal FROM OINV T0 Inner Join INV1 T1 On T0.DocEntry = T1.DocEntry Where T0.PaidToDate = T0.DocTotal AND T0.DocDate >= [%0] And T0.DocDate <= [%1]
Este query te puede servir como base, ya tu lo puedes adecuar a tus necesidades.
En espera de tus comentarios. Saludos,
Muchas gracias Gerardo.
Si me sirve, solo tendria que agregarle un un dato, que me aparezca que que característica esta seleccionada en la ficha del producto.
tengo la idea de que seria así el reporte, pero no me lo arroja.
en el screenshot puedes ver a que características me refiero.
para agregarlo segun yo sería así.
Case When t1.QryGroup1 = 'Y' Then 'A' When t1.QryGroup2 = 'Y' Then 'B' When t1.QryGroup3 = 'Y' Then 'C' When t1.QryGroup4 = 'Y' Then 'D' When t1.QryGroup5 = 'Y' Then 'Z' When t1.QryGroup6 = 'Y' Then 'Nuevo' When t1.QryGroup7 = 'Y' Then 'Sobre pedido' When t1.QryGroup8 = 'Y' Then 'Remplazar' Else '-' End As 'Clasificación'
Te agradezco mucho tu apoyo Gerardo.
De acuerdo.
Para esto debes agregar la tabla OITM que es la que contiene las propiedades de los artículos:
SELECT T0.DocEntry, T0.DocNum, T0.DocTotal, T0.PaidToDate, T1.ItemCode, T1.Dscription, T1.Quantity, T1.Price, T1.GrssProfit, T1.LineTotal,
Case When T2.QryGroup1 = 'Y' Then 'A' When T2.QryGroup2 = 'Y' Then 'B' When T2.QryGroup3 = 'Y' Then 'C' When T2.QryGroup4 = 'Y' Then 'D' When T2.QryGroup5 = 'Y' Then 'Z' When T2.QryGroup6 = 'Y' Then 'Nuevo' When T2.QryGroup7 = 'Y' Then 'Sobre pedido' When T2.QryGroup8 = 'Y' Then 'Remplazar' Else '-' End As 'Clasificación'
FROM OINV T0 Inner Join INV1 T1 On T0.DocEntry = T1.DocEntry Inner Join OITM T2 On T1.ItemCode = T2.ItemCode Where T0.PaidToDate = T0.DocTotal AND T0.DocDate >= [%0] And T0.DocDate <= [%1]
En espera de tus comentarios. Saludos.
User | Count |
---|---|
103 | |
39 | |
6 | |
5 | |
4 | |
3 | |
3 | |
2 | |
2 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.