cancel
Showing results for 
Search instead for 
Did you mean: 

Reporte mensual de ventas Sap Business One

Former Member
0 Kudos

Necesito sacar un reporte mensual de ventas(facturas). Lo que intento es sacar todas las facturas en un periodo de tiempo restandole las Notas de credito.

Bosquejare un ejemplo

Mayo 2013

Numero
FechaSocio de negocios
Numero de documentoTotal de documento

Artculo 1

cant/Importe

Artculo 2

cant/desc

Artculo 3

cant/desc

IVA
IVA Retenido
101/05/2013El patito S.A.2315$10001-1002 - 500


























































Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Si lo que necesitas son los monto por mes te podría ayudar lo siguiente:

Declare @mes INT= datepart(month,getdate())

DECLARE @CREDITO money  = (SELECT SUM(ORIN.DocTotal-ORIN.VatSum) FROM ORIN  WHERE DATEPART(mm, ORIN.DocDate) = @mes )

DECLARE @FACTURAS money = (SELECT SUM((OINV.DocTotal-OInv.VatSum) )  FROM OINV WHERE DATEPART(mm, OINV.DocDate) = @mes )

SELECT (@FACTURAS - @CREDITO) AS 'Total Mensual'

El reporte de facturas no veo como quieres que reste las notas de crédito simplemente que no las muestre las facturas con nota de crédito?

SELECT distinct T0.[DocDate], T5.[DocEntry]as '#Oferta de venta', T0.[DocNum]as '#Factura de venta',

T0.[CardName], T1.[CardFName],T0.[DocTotal]

FROM OINV T0  INNER JOIN OCRD T1  ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry

  INNER JOIN DLN1 T3 ON T1.CardCode = T3.BaseCard INNER JOIN RDR1 T4 ON T1.CardCode

  = T4.BaseCard INNER JOIN QUT1 T5 ON T1.CardCode = T5.BaseCard

WHERE (T3.[TrgetEntry]= T2.[DocEntry] and  T4.[TrgetEntry] = T3.[DocEntry] and  T5.[TrgetEntry] = T4.[DocEntry])and T2.[TargetType]  != '14'

Yo uso esta consulta para mostrar las ofertas de ventas que tienen una factura, pero a su vez descarto las que cuentan con nota de crédito.

Saludos

Former Member
0 Kudos

Sigo con el error

Former Member
0 Kudos

Creo que el problema lo tienes en el between prueba con

WHERE (T0.[DocDate] >= [%0] and (T0.[DocDate] <= [%1]) AND T0.[CardCode] not in ('C3167', 'C3145', 'C0203') AND T4.[SlpName] = [%2]

Prueba con varios formatos de fecha. 15/05/2013 o 05/15/2013 o 2013/05/15 y hasta cambia el / por -

saludos hay nos avisas

former_member203638
Active Contributor
0 Kudos

anteponle al query:

set dateformat dmy

Former Member
0 Kudos

buenas eh echo uno que te tae lo que deseas pero por vendedor lo cores si es lo que deseas te lo dejo hace lo mismo las ventas del mes menos las devoluciones de la misam si tiene y me dejas saber si te funciono :

select T0.CardCode,T0.CardName,T0.DocNum,T3.PymntGroup,T0.DocDate,T4.SlpName,T6.descript 'zona',T7.GroupName 'Tipo Cliente',T8.ListName 'Lista De Precio',T0.DocTotal-T0.VatSum 'brutas'

,(select isnull(SUM(T1.DocTotal - t1.VatSum),0) from ORIN as T1 where T1.TransId = T2.TransId)as Total

from OINV  T0

left join OJDT as T2 on convert(varchar,T0.DocNum )= T2.Ref2

INNER JOIN OCTG   T3 ON T0.GroupNum = T3.GroupNum

INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode

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

  LEFT JOIN OTER T6 ON T5.Territory = T6.territryID

  INNER JOIN OCRG T7 ON T5.GroupCode = T7.GroupCode

  INNER JOIN OPLN T8 ON T5.ListNum = T8.ListNum

WHERE (T0.[DocDate] BETWEEN   [%0] and [%1]) AND T0.[CardCode] not in ('C3167', 'C3145', 'C0203') AND T4.[SlpName] = [%2]

marco_ramirez
Active Contributor
0 Kudos

SELECT T0.[DocNum], T0.[DocDate], T0.[CardName], T0.[DocTotal] FROM OINV T0 WHERE T0.[DocDate] Between [%0] and [%1]

Con esto obtienes los datos de tus facturas en un período determinado

Agrega un Union All con la tabla de Notas de crédito y te saldrá el valor neto.

Juan Valentin Quevedo Batista wrote:

Necesito sacar un reporte mensual de ventas(facturas). Lo que intento es sacar todas las facturas en un periodo de tiempo restandole las Notas de credito.

Bosquejare un ejemplo

Mayo 2013

Numero
FechaSocio de negocios
Numero de documentoTotal de documento

Artculo 1

cant/Importe

Artculo 2

cant/desc

Artculo 3

cant/desc

IVA
IVA Retenido
101/05/2013El patito S.A.2315$10001-1002 - 500


























































Former Member
0 Kudos

Marco agradezco de antemano el apoyo brindado pero la consulta que me sugieres me marca el siguiente error

1). [Microsoft][SQL Native Client][SQL Server]Arithmetic overflow error converting expression to data type datetime.  'Valores definidos por usuario' (CSHS)

Cabe mencionar que soy nuevo en esto como hago el union all con la tabla RIN1

saludos

former_member203638
Active Contributor
0 Kudos

Mira este tema: Ventas NETAS | SCN

Como Ejemplo:

SELECT Distinct TIPO = 'FACTURAS'

,SUM(T0.DocTOTAL-T0.VatSum-T0.TotalExpns) 'Ventas S/IVA(Desc Aplicados)'

,sum(T0.Discsum) 'Desc Ventas',sum(T0.TotalExpns) 'Fletes Cobrados'

,sum(T0.vatsum) 'IVA (Vta+Flete)'

,Count(T0.Docnum) '# Facts'

FROM OINV T0

INNER JOIN NNM1 T1 ON T0.SERIES = T1.SERIES

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

AND T0.CANCELED != 'Y'

UNION

Select Distinct TIPO='NOTA DE CREDITO'

,(Sum(T0.DocTotal-T0.VatSum-T0.TotalExpns))*-1 'Ventas S/IVA (Desc Aplicados)'

,(Sum(T0.DiscSum))*-1 'Desc Ventas'

,(Sum(TotalExpns))*-1 'Fletes Cobrados'

,(Sum(T0.VatSum))*-1 'IVA (Vta+Flete)'

,Count(T0.DocNum)*-1 '#Facts'

FROM ORIN T0

INNER JOIN NNM1 T1 ON T0 .Series=T1.Series

WHERE T0.DocDate Between [%0] and [%1]

Saludos.

Alessandro.

Former Member
0 Kudos

Alessandro Buenos dias de antemano agradesco la pronta ayuda y tambien quiero comentarte que la consulta que me sugieres me marca el siguiente error:

1). [Microsoft][SQL Native Client][SQL Server]Arithmetic overflow error converting expression to data type datetime.  'Valores definidos por usuario' (CSHS)

OJALA Y PUEDAS AYUDARME YA QUE ME EST OCACIONANDO MUCHSO DOLORES DE CABEZA

SALUDOS

former_member204202
Active Participant
0 Kudos

Hola Juan, lo que tienes es un problema con el tipo de datos asignado al campo (date, numeric, float, etc, etc) dime donde (SAP, SQL) y como estas corriendo las consultas que los compañeros te facilitaron?? asi te podemos ayudar mas.

Saludos

Former Member
0 Kudos

CORRO LA CONSULTA DESDE EL GENERADOR DE CONSULTAS DE SAP Y DESDE SQL Y LO MISMO

SALUDOS

Former Member
0 Kudos

Saludos Juan, a ver por que no subes el .sql que estas trabajando, si lo estas ejecutando en la base de datos que corresponde?

Prueba este código en el SQL directamente

SELECT T0.DocNum, T0.DocDate, T0.CardName, T0.DocTotal FROM OINV T0 WHERE T0.DocDate Between '11-14-2013' and '11-15-2013'

ojo al formato de la fecha que use, MMDDYYYY

allí tendrías la primer parte adicional mente debes descontar las Notas de crédito

avísanos como te va

Former Member
0 Kudos

SI LO CORRO ASI COMO SUGIERES SI ME MUESTRA RESULTADOS LA VERSION QUE MANEJO ES SQL SERVER 2005 ENTERPRISE

former_member204202
Active Participant
0 Kudos

Hola buenos dias!!

Como te fue con la consulta que te paso Jonhy? la corriste en SAP o solo en SQL

Prueba corriendo las consutas pequeñas sin los WHERE solo para hacerlo por pasos y ver donde marca el error en SAP. Si no te corre sube una imagen de tu error.

SELECT T0.DocNum, T0.DocDate, T0.CardName, T0.DocTotal FROM OINV T0

Saludos

Former Member
0 Kudos

Ok entonces si colocas esa misma consulta en el querry manager te debería funcionar. Y lo que deberías es cambiar la constante de la fecha por las variables en el querry.

Ojo recordar usar el union y la consulta a la tabla de Notas de Crédito ORIN.

Saludos avisas como te va

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenos días

Favor corre el query de esta manera.

SELECT Distinct TIPO = 'FACTURAS'

,SUM(T0.DocTOTAL-T0.VatSum-T0.TotalExpns) 'Ventas S/IVA(Desc Aplicados)'

,sum(T0.Discsum) 'Desc Ventas',sum(T0.TotalExpns) 'Fletes Cobrados'

,sum(T0.vatsum) 'IVA (Vta+Flete)'

,Count(T0.Docnum) '# Facts'

FROM dbo.OINV T0

INNER JOIN dbo.NNM1 T1 ON T0.SERIES = T1.SERIES

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

AND T0.CANCELED != 'Y'

UNION

Select Distinct TIPO='NOTA DE CREDITO'

,(Sum(T0.DocTotal-T0.VatSum-T0.TotalExpns))*-1 'Ventas S/IVA (Desc Aplicados)'

,(Sum(T0.DiscSum))*-1 'Desc Ventas'

,(Sum(TotalExpns))*-1 'Fletes Cobrados'

,(Sum(T0.VatSum))*-1 'IVA (Vta+Flete)'

,Count(T0.DocNum)*-1 '#Facts'

FROM dbo.ORIN T0

INNER JOIN dbo.NNM1 T1 ON T0 .Series=T1.Series

WHERE T0.DocDate Between '[%0]' and '[%1]'

Saludos