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