Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @cuit | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- [sp_balances_2007_grupos_actualiza] '30695556531'
CREATE OR ALTER PROCEDURE dbo.sp_balances_2007_grupos_actualiza
@cuit varchar(20) = null
AS
BEGIN
SET NOCOUNT ON;
declare @id int,
@fecha_balance date,
@ventas decimal(20,2),
@ventas_act decimal(20,2),
@anio int,
@anio_por int,
@porcentaje decimal(10,2),
@hoy int = datepart(year,getdate())
if (@cuit is null)
begin
DECLARE C_balances CURSOR FOR
select id, fecha_balance, ventas_netas
from balances_por_grupo
/**/
where (isnull(sueldos,0) = 0 or isnull(sueldos_ultimo,0) = 0)
and fecha_balance < '2017-01-01'
/**/
order by id
end
else
begin
DECLARE C_balances CURSOR FOR
select id, fecha_balance, ventas_netas
from balances_por_grupo
where cuit = @cuit
order by id
end
OPEN C_balances
FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas
WHILE @@fetch_status = 0
BEGIN
set @anio = DATEPART(year,@fecha_balance)
set @anio = @anio + 1
set @ventas_act = @ventas
DECLARE c_inflacion CURSOR FOR
select anio, porcentaje
from inflacion_anual
where anio between @anio and @hoy
order by anio
OPEN C_inflacion
FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje
WHILE @@fetch_status = 0
BEGIN
--select @anio, @porcentaje
set @ventas_act = @ventas_act + (@ventas_act * @porcentaje / 100)
FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje
END
CLOSE C_inflacion
DEALLOCATE C_inflacion
update balances_por_grupo set ventas_netas_actualizadas = @ventas_act where id = @id
--select @fecha_balance, @anio
FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas
END
CLOSE C_Balances
DEALLOCATE C_Balances
if (@cuit is null)
BEGIN
exec [sp_balances_2007_medias]
END
else
BEGIN
declare @grupo int = (select grupo from balances_por_grupo where cuit = @cuit)
exec [sp_balances_2007_medias] @grupo
END
END
GO
GO
-- [sp_balances_2007_grupos_actualiza] '30695556531'
CREATE OR ALTER PROCEDURE dbo.sp_balances_2007_grupos_actualiza
@cuit varchar(20) = null
AS
BEGIN
SET NOCOUNT ON;
declare @id int,
@fecha_balance date,
@ventas decimal(20,2),
@ventas_act decimal(20,2),
@anio int,
@anio_por int,
@porcentaje decimal(10,2),
@hoy int = datepart(year,getdate())
if (@cuit is null)
begin
DECLARE C_balances CURSOR FOR
select id, fecha_balance, ventas_netas
from balances_por_grupo
/**/
where (isnull(sueldos,0) = 0 or isnull(sueldos_ultimo,0) = 0)
and fecha_balance < '2017-01-01'
/**/
order by id
end
else
begin
DECLARE C_balances CURSOR FOR
select id, fecha_balance, ventas_netas
from balances_por_grupo
where cuit = @cuit
order by id
end
OPEN C_balances
FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas
WHILE @@fetch_status = 0
BEGIN
set @anio = DATEPART(year,@fecha_balance)
set @anio = @anio + 1
set @ventas_act = @ventas
DECLARE c_inflacion CURSOR FOR
select anio, porcentaje
from inflacion_anual
where anio between @anio and @hoy
order by anio
OPEN C_inflacion
FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje
WHILE @@fetch_status = 0
BEGIN
--select @anio, @porcentaje
set @ventas_act = @ventas_act + (@ventas_act * @porcentaje / 100)
FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje
END
CLOSE C_inflacion
DEALLOCATE C_inflacion
update balances_por_grupo set ventas_netas_actualizadas = @ventas_act where id = @id
--select @fecha_balance, @anio
FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas
END
CLOSE C_Balances
DEALLOCATE C_Balances
if (@cuit is null)
BEGIN
exec [sp_balances_2007_medias]
END
else
BEGIN
declare @grupo int = (select grupo from balances_por_grupo where cuit = @cuit)
exec [sp_balances_2007_medias] @grupo
END
END
GO
Used By
No items found