cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda con análisis de venta por vendedor Exacto

juandfranco
Explorer
0 Kudos

Buenas amigos ,

Les quiero comentar que he intentado con este informe de muchas maneras,

logre que uno me cuadrara con el del sistema pero solo me cuadro en un mes y en los otros meses solo cuadran algunos vendedores, he intentado hacer la consulta de diferentes maneras, estuve mirando algo sobre el procedimiento almacenado donde se genera y aun así no lo logro.

Alguno de ustedes ha logrado cuadrar un informe con el análisis de ventas de sap ? o me puede dar algunas pistas?

Estaré eternamente agradecido.

Accepted Solutions (1)

Accepted Solutions (1)

marco_ramirez
Active Contributor
0 Kudos

Te comparto este código que me ha funcionado para el tema que expones, puede ser que le debas hacer ajustes al mismo o bien te sirva tal como está.

Saludos

SELECT

T1.SlpName AS 'Personal de ventas ',

--T0.SlpCode AS 'SP Code',

COUNT(T0.DocNum) AS 'Numero de documentos',

'Nota de Crédito' AS 'Tipo documento',

SUM ((T0.DocTotal) * -1) AS 'Total de los documentos',

SUM (((T0.DocTotal - T0.VatSum) - T0.TotalExpns) * -1) AS 'Total en productos',

SUM ((T0.GrosProfit) * -1) AS 'Ganancia bruta',

CASE

WHEN (SUM (((T0.DocTotal - T0.VatSum) - T0.TotalExpns) * -1)) = 0.00 THEN 0.00

ELSE (SUM ((T0.GrosProfit) * -1)/SUM (((T0.DocTotal - T0.VatSum) - T0.TotalExpns) * -1)) * 100

END AS 'Ganancia bruta %',

SUM ((T0.PaidToDate) * -1) AS 'Pagado a la fecha',

SUM ((T0.DocTotal - T0.PaidToDate) *-1) AS 'Documentos abiertos'

FROM ORIN T0

INNER JOIN OSLP T1

ON T0.SlpCode = T1.SlpCode

WHERE

(T1.SlpName LIKE '%%%%' OR '%' = ' ')

AND T0.TaxDate >= [%0]

AND T0.TaxDate <= [%1]

GROUP BY T0.SlpCode, T1.SlpName

UNION

SELECT

T1.SlpName AS 'Personal de ventas ',

--T0.SlpCode AS 'SP Code',

COUNT(T0.DocNum) AS 'Numero de documentos',

'Factura' AS 'Tipo documento',

SUM (T0.DocTotal) AS 'Total de los documentos',

SUM ((T0.DocTotal - T0.VatSum) - T0.TotalExpns) AS 'Total en productos',

SUM (T0.GrosProfit) AS 'Ganancia bruta',

CASE

WHEN (SUM ((T0.DocTotal - T0.VatSum) - T0.TotalExpns)) = 0.00 THEN 0.00

ELSE (SUM (T0.GrosProfit)/SUM ((T0.DocTotal - T0.VatSum) - T0.TotalExpns)) * 100

END AS 'Ganancia bruta %',

SUM (T0.PaidToDate) AS 'Pagado a la fecha',

SUM (T0.DocTotal - T0.PaidToDate) AS 'Documentos abiertos'

FROM OINV T0

INNER JOIN OSLP T1

ON T0.SlpCode = T1.SlpCode

WHERE

(T1.SlpName LIKE '%%%%' OR '%' = ' ')

AND T0.TaxDate >= [%0]

AND T0.TaxDate <= [%1]

GROUP BY T0.SlpCode, T1.SlpName

juandfranco
Explorer
0 Kudos

Muchas gracias marco pero no me cuadra, tienes alguna idea para el caso que comente mas arriba ?

Gracias de antemano.

Former Member
0 Kudos

Juan,

El SP que usas es uno generado por SAP y además está encriptado, por lo que no puedes editarlo. Aunque usaras herramientas para desencriptarlo, no convendría editarlo sino generar una copia del mismo desde el que puedas ahora sí editar los parámetros de fechas que comentas.

Si lo que quieres es enviar valores de variable tipo fecha, pudieras jugar con nuevas variables que conviertan tus variables para mandar tipo nvarchar.

Lo necesitas para utilizarlo en algún informe de Crystal? No tengo SQL a la mano como para validar, pero intenta así:

Declare @FECHAINI nvarchar(8)

Declare @FECHAFIN nvarchar(8)

SET @FECHAINI = (select convert(nvarchar(8),{?FechaIni},112)

SET @FECHAFIN = (select convert(nvarchar(8),{?FechaFin},112)

EXECUTE TmSp_Sales_An_Itm_Sng_M N'INV',N'SNG',N'@FECHAINI',N'@FECHAFIN',N'',N'',N'',N'',N'',N'',N'',N'',N'',N'',N'001-Clientes en Proceso Juridico Pereira',N'T303-Serviteca',N'',N'',N'0',N'',0,N'SLP',N'Y',N'Y',N'',N'N'

Si no te sirve, indícanos qué error te sale y el medio en el que quieres los resultados.

Saludos,

JC.

juandfranco
Explorer
0 Kudos

Gracias Juan pero crystal reconoce el campo nuevamente como varchar necesito que pueda crear un parametro fecha y que lo reconozca alguna otra idea?

Gracias.

Former Member
0 Kudos

USE [MYBD]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [dbo].[VENTAS_POR_VENDEDOR]

@VENDEDOR AS NVARCHAR(20),

@FECHAINI AS DATE,

@FECHAFIN AS DATE

AS

SET NOCOUNT ON;

SELECT DISTINCT

T1.SlpCode Cod_Empleado,

T1.SlpName Empleado_Ventas,

T0.CardCode Cod_Cliente,

T0.CardName Cliente,

(select ISNULL( SUM(T2.doctotal - T2.VatSum),0) from OINV T2 WHERE T2.CardCode = T0.CardCode AND T2.SlpCode = T0.SlpCode AND T2.DocDate  BETWEEN @FECHAINI AND @FECHAFIN) AS TOTAL_FACTURAS,

(select ISNULL( SUM(T3.doctotal - T3.VatSum),0) from ORIN T3 where T3.CardCode = T0.CardCode AND T3.SlpCode = T0.SlpCode AND T3.DocDate  BETWEEN @FECHAINI AND @FECHAFIN) AS TOTAL_NC

FROM OINV T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode

WHERE (T1.Memo= @VENDEDOR OR T1.SlpName = @VENDEDOR) AND T0.DocDate BETWEEN @FECHAINI AND @FECHAFIN

union

SELECT DISTINCT

T1.SlpCode Cod_Empleado,

T1.SlpName Empleado_Ventas,

T0.CardCode Cod_Cliente,

T0.CardName Cliente,

(select ISNULL( SUM(T2.doctotal-t2.VatSum),0) from OINV T2 WHERE T2.CardCode = T0.CardCode AND T2.SlpCode = T0.SlpCode AND T2.DocDate  BETWEEN @FECHAINI AND @FECHAFIN) AS TOTAL_FACTURAS,

(select ISNULL( SUM(T3.doctotal-t3.VatSum),0) from ORIN T3 where T3.CardCode = T0.CardCode AND T3.SlpCode = T0.SlpCode AND T3.DocDate  BETWEEN @FECHAINI AND @FECHAFIN) AS TOTAL_NC

FROM ORIN T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode

WHERE (T1.Memo= @VENDEDOR OR T1.SlpName = @VENDEDOR) AND T0.DocDate BETWEEN @FECHAINI AND @FECHAFIN

ORDER BY T1.SlpName

Espero te Sirva Saludos ...

Answers (1)

Answers (1)

Former Member
0 Kudos

Hola Juan,

EL informe de ventas de SAP los totales que observas es sin impuestos, debes tener en cuenta que si vas a realizar algún reporte con consultas de ventas debes quitarle el impuesto si quieres cuadrarlo con el de sap, o en defecto calcular el impuesto al total que Sap te muestra.

Saludos,

WV

juandfranco
Explorer
0 Kudos

gracias Wilmer pero con el mismo procedimiento almacenado lo puse en mi informe y todo bien pero ahora quisiera saber si hay forma de convertir ese parámetro en fecha ?

Declare @FECHAINI varchar(15)

Declare @FECHAFIN varchar(15)

SET @FECHAINI = CAST('2014/01/01' AS DATETIME)

SET @FECHAFIN = CAST('2014/01/31' AS DATETIME)

EXECUTE TmSp_Sales_An_Itm_Sng_M N'INV',N'SNG',N'@FECHAINI',N'@FECHAFIN',N'',N'',N'',N'',N'',N'',N'',N'',N'',N'',N'001-Clientes en Proceso Juridico Pereira',N'T303-Serviteca',N'',N'',N'0',N'',0,N'SLP',N'Y',N'Y',N'',N'N'

lo he intentado de diversas formas y no he podido  alguien tiene alguna idea